diff --git a/LICENSE b/LICENSE deleted file mode 100644 index d2fc6c3..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Twaik Yont - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build.json new file mode 100644 index 0000000..d8f98ca --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build.json @@ -0,0 +1,298 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + ], + "libraries": { + "lorie-debug-arm64-v8a": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so", + "toolchain": "toolchain-arm64-v8a", + "abi": "arm64-v8a", + "artifactName": "lorie", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so" + }, + "xkbcommon-debug-arm64-v8a": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a", + "toolchain": "toolchain-arm64-v8a", + "abi": "arm64-v8a", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a" + } + }, + "toolchains": { + "toolchain-arm64-v8a": { + "cCompilerExecutable": "/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.command.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.command.txt new file mode 100644 index 0000000..c468a38 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=arm64-v8a +NDK_ALL_ABIS=arm64-v8a +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libjniLoader.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.stderr.txt new file mode 100644 index 0000000..3317d5c --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.stderr.txt @@ -0,0 +1,4 @@ +/home/twaik/WTermux/app/src/main/jni/jniLoader/dt_needed_main.c:206:8: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] + char *name = (*env)->GetStringUTFChars(env, name_, 0); + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 warning generated. diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.stdout.txt new file mode 100644 index 0000000..956cddb --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_jniLoader_arm64-v8a.stdout.txt @@ -0,0 +1,2 @@ +[arm64-v8a] Compile : jniLoader <= dt_needed_main.c +[arm64-v8a] SharedLibrary : libjniLoader.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.command.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.command.txt new file mode 100644 index 0000000..c38ff9e --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=arm64-v8a +NDK_ALL_ABIS=arm64-v8a +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.stdout.txt new file mode 100644 index 0000000..fb8f648 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_lorie_arm64-v8a.stdout.txt @@ -0,0 +1,40 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +[arm64-v8a] Compile : lorie <= main.c +[arm64-v8a] Compile : lorie <= backend-android.c +[arm64-v8a] Compile : lorie <= renderer.c +[arm64-v8a] Compile : xkbcommon <= parser.c +[arm64-v8a] Compile : xkbcommon <= paths.c +[arm64-v8a] Compile : xkbcommon <= state.c +[arm64-v8a] Compile : xkbcommon <= table.c +[arm64-v8a] Compile : xkbcommon <= action.c +[arm64-v8a] Compile : xkbcommon <= ast-build.c +[arm64-v8a] Compile : xkbcommon <= compat.c +[arm64-v8a] Compile : xkbcommon <= expr.c +[arm64-v8a] Compile : xkbcommon <= include.c +[arm64-v8a] Compile : xkbcommon <= keycodes.c +[arm64-v8a] Compile : xkbcommon <= keymap.c +[arm64-v8a] Compile : xkbcommon <= keymap-dump.c +[arm64-v8a] Compile : xkbcommon <= keywords.c +[arm64-v8a] Compile : xkbcommon <= parser.c +[arm64-v8a] Compile : xkbcommon <= rules.c +[arm64-v8a] Compile : xkbcommon <= scanner.c +[arm64-v8a] Compile : xkbcommon <= symbols.c +[arm64-v8a] Compile : xkbcommon <= types.c +[arm64-v8a] Compile : xkbcommon <= vmod.c +[arm64-v8a] Compile : xkbcommon <= xkbcomp.c +[arm64-v8a] Compile : xkbcommon <= atom.c +[arm64-v8a] Compile : xkbcommon <= context.c +[arm64-v8a] Compile : xkbcommon <= context-priv.c +[arm64-v8a] Compile : xkbcommon <= keysym.c +[arm64-v8a] Compile : xkbcommon <= keysym-utf.c +[arm64-v8a] Compile : xkbcommon <= keymap.c +[arm64-v8a] Compile : xkbcommon <= keymap-priv.c +[arm64-v8a] Compile : xkbcommon <= state.c +[arm64-v8a] Compile : xkbcommon <= text.c +[arm64-v8a] Compile : xkbcommon <= utf8.c +[arm64-v8a] Compile : xkbcommon <= utils.c +[arm64-v8a] SharedLibrary : libxkbcommon.so +[arm64-v8a] SharedLibrary : liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 0000000..e7e6ebb --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,23 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + ], + "libraries": { + "lorie-debug-arm64-v8a": { + "artifactName": "lorie", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so", + "abi": "arm64-v8a", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so" + }, + "xkbcommon-debug-arm64-v8a": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a", + "abi": "arm64-v8a", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a" + } + } +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_command.txt new file mode 100644 index 0000000..9c49a86 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_command.txt @@ -0,0 +1,17 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=arm64-v8a +NDK_ALL_ABIS=arm64-v8a +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +APP_SHORT_COMMANDS=false +LOCAL_SHORT_COMMANDS=false +-B +-n +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_output.txt new file mode 100644 index 0000000..369dd3c --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/arm64-v8a/ndkBuild_build_output.txt @@ -0,0 +1,128 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/* +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdbserver +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a +echo [arm64-v8a] "Gdbserver ": "[aarch64-linux-android] /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdbserver" +install -p /opt/AndroidSdk/ndk-bundle/prebuilt/android-arm64/gdbserver/gdbserver /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdbserver +echo [arm64-v8a] "Gdbsetup ": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdb.setup" +echo "set solib-search-path /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a" > /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdb.setup +echo "directory /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot /home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ /opt/AndroidSdk/ndk-bundle/sources/cxx-stl/system /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src" >> /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie +echo [arm64-v8a] "Compile ": "lorie <= main.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/main.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/main.o +echo [arm64-v8a] "Compile ": "lorie <= backend-android.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/backend-android.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/backend-android.o +echo [arm64-v8a] "Compile ": "lorie <= renderer.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/renderer.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/renderer.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose +echo [arm64-v8a] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +echo [arm64-v8a] "Compile ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +echo [arm64-v8a] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +echo [arm64-v8a] "Compile ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp +echo [arm64-v8a] "Compile ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [arm64-v8a] "Compile ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [arm64-v8a] "Compile ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [arm64-v8a] "Compile ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [arm64-v8a] "Compile ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [arm64-v8a] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [arm64-v8a] "Compile ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [arm64-v8a] "Compile ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [arm64-v8a] "Compile ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [arm64-v8a] "Compile ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [arm64-v8a] "Compile ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [arm64-v8a] "Compile ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src +echo [arm64-v8a] "Compile ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/atom.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/atom.o +echo [arm64-v8a] "Compile ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context.o +echo [arm64-v8a] "Compile ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +echo [arm64-v8a] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/state.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/state.o +echo [arm64-v8a] "Compile ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/text.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/text.o +echo [arm64-v8a] "Compile ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utf8.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utf8.o +echo [arm64-v8a] "Compile ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utils.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utils.o +echo [arm64-v8a] "StaticLibrary ": "libxkbcommon.a" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar crsD /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/xkbcommon/xkbcommon/src/utils.o +echo [arm64-v8a] "SharedLibrary ": "liblorie.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/objs-debug/lorie/renderer.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/libxkbcommon.a -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target aarch64-none-linux-android21 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/arm64-v8a -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so +echo [arm64-v8a] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/liblorie.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/arm64-v8a/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/arm64-v8a/liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build.json index a188210..7d2e742 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build.json +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build.json @@ -1,31 +1,165 @@ { "buildFiles": [ - "/home/twaik/WTermux/app/src/main/jni/Android.mk" + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" ], "cleanCommands": [ - "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" ], "libraries": { "lorie-debug-armeabi-v7a": { - "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so", "toolchain": "toolchain-armeabi-v7a", "abi": "armeabi-v7a", "artifactName": "lorie", "files": [ { "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", - "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" }, { "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", - "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" }, { "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", - "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" } ], "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so" + }, + "xkbcommon-debug-armeabi-v7a": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so", + "toolchain": "toolchain-armeabi-v7a", + "abi": "armeabi-v7a", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so" } }, "toolchains": { diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.command.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.command.txt new file mode 100644 index 0000000..4d910e3 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=armeabi-v7a +NDK_ALL_ABIS=armeabi-v7a +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libjniLoad.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.stderr.txt new file mode 100644 index 0000000..167a948 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.stderr.txt @@ -0,0 +1,23 @@ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:158:9: error: cannot use 'throw' with exceptions disabled + throw SysError(msg); + ^ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:160:9: error: cannot use 'throw' with exceptions disabled + throw std::runtime_error(msg); + ^ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:173:9: error: cannot use 'throw' with exceptions disabled + throw SysError(fmt("getting info about '", fileName, "'")); + ^ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:176:9: error: cannot use 'throw' with exceptions disabled + throw SysError(fmt("cannot read file of size ", st.st_size, " into memory")); + ^ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:185:19: error: cannot use 'throw' with exceptions disabled + if (fd == -1) throw SysError(fmt("opening '", fileName, "'")); + ^ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:193:9: error: cannot use 'throw' with exceptions disabled + throw SysError(fmt("reading '", fileName, "'")); + ^ +/home/twaik/WTermux/app/src/main/jni/patchelf.cpp:374:2: error: cannot use 'try' with exceptions disabled + try { + ^ +7 errors generated. +make: *** [/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/jniLoad/patchelf.o] Error 1 diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.stdout.txt new file mode 100644 index 0000000..6f36e82 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoad_armeabi-v7a.stdout.txt @@ -0,0 +1 @@ +[armeabi-v7a] Compile++ thumb: jniLoad <= patchelf.cpp diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.command.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.command.txt new file mode 100644 index 0000000..6d82b90 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=armeabi-v7a +NDK_ALL_ABIS=armeabi-v7a +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libjniLoader.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.stdout.txt new file mode 100644 index 0000000..add65d2 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_jniLoader_armeabi-v7a.stdout.txt @@ -0,0 +1,2 @@ +[armeabi-v7a] Compile thumb : jniLoader <= dt_needed_main.c +[armeabi-v7a] SharedLibrary : libjniLoader.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.command.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.command.txt index 3c71c54..00b0082 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.command.txt +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.command.txt @@ -2,6 +2,7 @@ Executable : /opt/AndroidSdk/ndk-bundle/ndk-build arguments : NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stderr.txt index e69de29..acf16d0 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stderr.txt +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stderr.txt @@ -0,0 +1,4 @@ +/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c:257:33: warning: result of comparison against a string literal is unspecified (use strncmp instead) [-Wstring-compare] + if (backend->xkb_names.layout != "us") { + ^ ~~~~ +1 warning generated. diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stdout.txt index 3d15895..5dc85d0 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stdout.txt +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_lorie_armeabi-v7a.stdout.txt @@ -1 +1,6 @@ -make: `/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so' is up to date. +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +[armeabi-v7a] Compile thumb : lorie <= backend-android.c +[armeabi-v7a] SharedLibrary : liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_mini.json index 7fc41a0..f659c7a 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_mini.json +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_mini.json @@ -1,16 +1,23 @@ { "buildFiles": [ - "/home/twaik/WTermux/app/src/main/jni/Android.mk" + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" ], "cleanCommands": [ - "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" ], "libraries": { "lorie-debug-armeabi-v7a": { "artifactName": "lorie", - "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so", "abi": "armeabi-v7a", "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so" + }, + "xkbcommon-debug-armeabi-v7a": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so", + "abi": "armeabi-v7a", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so" } } } \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.command.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.command.txt new file mode 100644 index 0000000..ecd9eb0 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=armeabi-v7a +NDK_ALL_ABIS=armeabi-v7a +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.stdout.txt new file mode 100644 index 0000000..e4bd975 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/android_gradle_build_xkbcommon_armeabi-v7a.stdout.txt @@ -0,0 +1,5 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +make: `/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so' is up to date. diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_command.txt index 37ce4f6..827b605 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_command.txt +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_command.txt @@ -2,6 +2,7 @@ Executable : /opt/AndroidSdk/ndk-bundle/ndk-build arguments : NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 diff --git a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_output.txt index 994ec2a..57e1355 100644 --- a/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_output.txt +++ b/app/.externalNativeBuild/ndkBuild/debug/armeabi-v7a/ndkBuild_build_output.txt @@ -1,3 +1,7 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/* rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdbserver rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup @@ -6,35 +10,121 @@ echo [armeabi-v7a] "Gdbserver ": "[arm-linux-androideabi] /home/twaik/WTerm install -p /opt/AndroidSdk/ndk-bundle/prebuilt/android-arm/gdbserver/gdbserver /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdbserver echo [armeabi-v7a] "Gdbsetup ": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup" echo "set solib-search-path /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a" > /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup -echo "directory /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot /home/twaik/WTermux/app/src/main/jni/prebuilt /home/twaik/WTermux/app/src/main/jni/prebuilt/include /home/twaik/WTermux/app/src/main/jni/lorie /opt/AndroidSdk/ndk-bundle/sources/cxx-stl/system" >> /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup -mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a -echo [armeabi-v7a] "Prebuilt ": "libandroid-support.so <= /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/" -cp -f /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/libandroid-support.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libandroid-support.so -echo [armeabi-v7a] "Install ": "libandroid-support.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libandroid-support.so" -install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libandroid-support.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libandroid-support.so -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libandroid-support.so -echo [armeabi-v7a] "Prebuilt ": "libffi.so <= /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/" -cp -f /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/libffi.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libffi.so -echo [armeabi-v7a] "Install ": "libffi.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libffi.so" -install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libffi.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libffi.so -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libffi.so +echo "directory /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot /home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include /opt/AndroidSdk/ndk-bundle/sources/cxx-stl/system /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src" >> /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/gdb.setup mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie echo [armeabi-v7a] "Compile thumb ": "lorie <= main.c" rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o echo [armeabi-v7a] "Compile thumb ": "lorie <= backend-android.c" rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o echo [armeabi-v7a] "Compile thumb ": "lorie <= renderer.c" rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o -echo [armeabi-v7a] "Prebuilt ": "libwayland-server.so <= /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/" -cp -f /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/libwayland-server.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libwayland-server.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a echo [armeabi-v7a] "SharedLibrary ": "liblorie.so" -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libwayland-server.so -target armv7-none-linux-androideabi19 -no-canonical-prefixes -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/lorie/renderer.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/armeabi-v7a -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so echo [armeabi-v7a] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/liblorie.so" install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/liblorie.so /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/liblorie.so -echo [armeabi-v7a] "Install ": "libwayland-server.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libwayland-server.so" -install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libwayland-server.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libwayland-server.so -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libwayland-server.so +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/atom.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/atom.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/state.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/state.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/text.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/text.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utf8.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utf8.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utils.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utils.o +echo [armeabi-v7a] "SharedLibrary ": "libxkbcommon.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,libxkbcommon.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/objs-debug/xkbcommon/xkbcommon/src/utils.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 -no-canonical-prefixes -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so +echo [armeabi-v7a] "Install ": "libxkbcommon.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libxkbcommon.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libxkbcommon.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libxkbcommon.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/armeabi-v7a/libxkbcommon.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/debug/x86/android_gradle_build.json new file mode 100644 index 0000000..ff69f62 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86/android_gradle_build.json @@ -0,0 +1,302 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + ], + "libraries": { + "lorie-debug-x86": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/liblorie.so", + "toolchain": "toolchain-x86", + "abi": "x86", + "artifactName": "lorie", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/locale/android-utils.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/liblorie.so" + }, + "xkbcommon-debug-x86": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so", + "toolchain": "toolchain-x86", + "abi": "x86", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so" + } + }, + "toolchains": { + "toolchain-x86": { + "cCompilerExecutable": "/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/debug/x86/android_gradle_build_mini.json new file mode 100644 index 0000000..4d6899f --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86/android_gradle_build_mini.json @@ -0,0 +1,23 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + ], + "libraries": { + "lorie-debug-x86": { + "artifactName": "lorie", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/liblorie.so", + "abi": "x86", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/liblorie.so" + }, + "xkbcommon-debug-x86": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so", + "abi": "x86", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so" + } + } +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/debug/x86/ndkBuild_build_command.txt new file mode 100644 index 0000000..e89083d --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86/ndkBuild_build_command.txt @@ -0,0 +1,17 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=x86 +NDK_ALL_ABIS=x86 +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +APP_SHORT_COMMANDS=false +LOCAL_SHORT_COMMANDS=false +-B +-n +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/debug/x86/ndkBuild_build_output.txt new file mode 100644 index 0000000..065f839 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86/ndkBuild_build_output.txt @@ -0,0 +1,134 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/* +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdbserver +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86 +echo [x86] "Gdbserver ": "[i686-linux-android] /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdbserver" +install -p /opt/AndroidSdk/ndk-bundle/prebuilt/android-x86/gdbserver/gdbserver /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdbserver +echo [x86] "Gdbsetup ": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdb.setup" +echo "set solib-search-path /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86" > /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdb.setup +echo "directory /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot /home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ /opt/AndroidSdk/ndk-bundle/sources/cxx-stl/system /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src" >> /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie +echo [x86] "Compile ": "lorie <= main.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/main.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/main.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/locale +echo [x86] "Compile ": "lorie <= android-utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/locale/android-utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/locale/android-utils.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/locale/android-utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/locale/android-utils.o +echo [x86] "Compile ": "lorie <= backend-android.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/backend-android.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/backend-android.o +echo [x86] "Compile ": "lorie <= renderer.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/renderer.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/renderer.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86 +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose +echo [x86] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +echo [x86] "Compile ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +echo [x86] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/state.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +echo [x86] "Compile ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/table.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp +echo [x86] "Compile ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [x86] "Compile ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [x86] "Compile ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [x86] "Compile ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [x86] "Compile ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [x86] "Compile ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [x86] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [x86] "Compile ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [x86] "Compile ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [x86] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [x86] "Compile ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [x86] "Compile ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [x86] "Compile ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [x86] "Compile ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [x86] "Compile ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [x86] "Compile ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src +echo [x86] "Compile ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/atom.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/atom.o +echo [x86] "Compile ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context.o +echo [x86] "Compile ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context-priv.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +echo [x86] "Compile ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym.o +echo [x86] "Compile ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +echo [x86] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap.o +echo [x86] "Compile ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +echo [x86] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/state.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/state.o +echo [x86] "Compile ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/text.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/text.o +echo [x86] "Compile ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utf8.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utf8.o +echo [x86] "Compile ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utils.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utils.o +echo [x86] "SharedLibrary ": "libxkbcommon.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,libxkbcommon.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/xkbcommon/xkbcommon/src/utils.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target i686-none-linux-android19 -no-canonical-prefixes -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so +echo [x86] "SharedLibrary ": "liblorie.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/locale/android-utils.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/objs-debug/lorie/renderer.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so -target i686-none-linux-android19 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/x86 -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/liblorie.so +echo [x86] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/liblorie.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/liblorie.so +echo [x86] "Install ": "libxkbcommon.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/libxkbcommon.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86/libxkbcommon.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/libxkbcommon.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86/libxkbcommon.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build.json new file mode 100644 index 0000000..6ca2fd1 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build.json @@ -0,0 +1,298 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + ], + "libraries": { + "xkbcommon-debug-x86_64": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a", + "toolchain": "toolchain-x86_64", + "abi": "x86_64", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a" + }, + "lorie-debug-x86_64": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so", + "toolchain": "toolchain-x86_64", + "abi": "x86_64", + "artifactName": "lorie", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so" + } + }, + "toolchains": { + "toolchain-x86_64": { + "cCompilerExecutable": "/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.command.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.command.txt new file mode 100644 index 0000000..746ff32 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=x86_64 +NDK_ALL_ABIS=x86_64 +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libjniLoader.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.stderr.txt new file mode 100644 index 0000000..3317d5c --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.stderr.txt @@ -0,0 +1,4 @@ +/home/twaik/WTermux/app/src/main/jni/jniLoader/dt_needed_main.c:206:8: warning: initializing 'char *' with an expression of type 'const char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] + char *name = (*env)->GetStringUTFChars(env, name_, 0); + ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 warning generated. diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.stdout.txt new file mode 100644 index 0000000..429fa27 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_jniLoader_x86_64.stdout.txt @@ -0,0 +1,2 @@ +[x86_64] Compile : jniLoader <= dt_needed_main.c +[x86_64] SharedLibrary : libjniLoader.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.command.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.command.txt new file mode 100644 index 0000000..fc8280d --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.command.txt @@ -0,0 +1,14 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=x86_64 +NDK_ALL_ABIS=x86_64 +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.stderr.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.stderr.txt new file mode 100644 index 0000000..e69de29 diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.stdout.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.stdout.txt new file mode 100644 index 0000000..3bc5e7e --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_lorie_x86_64.stdout.txt @@ -0,0 +1,40 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +[x86_64] Compile : lorie <= main.c +[x86_64] Compile : lorie <= backend-android.c +[x86_64] Compile : lorie <= renderer.c +[x86_64] Compile : xkbcommon <= parser.c +[x86_64] Compile : xkbcommon <= paths.c +[x86_64] Compile : xkbcommon <= state.c +[x86_64] Compile : xkbcommon <= table.c +[x86_64] Compile : xkbcommon <= action.c +[x86_64] Compile : xkbcommon <= ast-build.c +[x86_64] Compile : xkbcommon <= compat.c +[x86_64] Compile : xkbcommon <= expr.c +[x86_64] Compile : xkbcommon <= include.c +[x86_64] Compile : xkbcommon <= keycodes.c +[x86_64] Compile : xkbcommon <= keymap.c +[x86_64] Compile : xkbcommon <= keymap-dump.c +[x86_64] Compile : xkbcommon <= keywords.c +[x86_64] Compile : xkbcommon <= parser.c +[x86_64] Compile : xkbcommon <= rules.c +[x86_64] Compile : xkbcommon <= scanner.c +[x86_64] Compile : xkbcommon <= symbols.c +[x86_64] Compile : xkbcommon <= types.c +[x86_64] Compile : xkbcommon <= vmod.c +[x86_64] Compile : xkbcommon <= xkbcomp.c +[x86_64] Compile : xkbcommon <= atom.c +[x86_64] Compile : xkbcommon <= context.c +[x86_64] Compile : xkbcommon <= context-priv.c +[x86_64] Compile : xkbcommon <= keysym.c +[x86_64] Compile : xkbcommon <= keysym-utf.c +[x86_64] Compile : xkbcommon <= keymap.c +[x86_64] Compile : xkbcommon <= keymap-priv.c +[x86_64] Compile : xkbcommon <= state.c +[x86_64] Compile : xkbcommon <= text.c +[x86_64] Compile : xkbcommon <= utf8.c +[x86_64] Compile : xkbcommon <= utils.c +[x86_64] SharedLibrary : libxkbcommon.so +[x86_64] SharedLibrary : liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_mini.json new file mode 100644 index 0000000..bcb7a31 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/android_gradle_build_mini.json @@ -0,0 +1,23 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib clean" + ], + "libraries": { + "xkbcommon-debug-x86_64": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a", + "abi": "x86_64", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a" + }, + "lorie-debug-x86_64": { + "artifactName": "lorie", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d1 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so", + "abi": "x86_64", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so" + } + } +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/ndkBuild_build_command.txt new file mode 100644 index 0000000..851c67e --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/ndkBuild_build_command.txt @@ -0,0 +1,17 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=x86_64 +NDK_ALL_ABIS=x86_64 +NDK_DEBUG=1 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib +APP_SHORT_COMMANDS=false +LOCAL_SHORT_COMMANDS=false +-B +-n +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/debug/x86_64/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/debug/x86_64/ndkBuild_build_output.txt new file mode 100644 index 0000000..d4388b7 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/debug/x86_64/ndkBuild_build_output.txt @@ -0,0 +1,128 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/* +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdbserver +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64 +echo [x86_64] "Gdbserver ": "[x86_64-linux-android] /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdbserver" +install -p /opt/AndroidSdk/ndk-bundle/prebuilt/android-x86_64/gdbserver/gdbserver /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdbserver +echo [x86_64] "Gdbsetup ": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdb.setup" +echo "set solib-search-path /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64" > /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdb.setup +echo "directory /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot /home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ /opt/AndroidSdk/ndk-bundle/sources/cxx-stl/system /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src" >> /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie +echo [x86_64] "Compile ": "lorie <= main.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/main.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/main.o +echo [x86_64] "Compile ": "lorie <= backend-android.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/backend-android.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/backend-android.o +echo [x86_64] "Compile ": "lorie <= renderer.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/renderer.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/renderer.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64 +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose +echo [x86_64] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o +echo [x86_64] "Compile ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o +echo [x86_64] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/state.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/state.o +echo [x86_64] "Compile ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/table.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp +echo [x86_64] "Compile ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [x86_64] "Compile ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [x86_64] "Compile ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [x86_64] "Compile ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [x86_64] "Compile ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [x86_64] "Compile ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [x86_64] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [x86_64] "Compile ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [x86_64] "Compile ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [x86_64] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [x86_64] "Compile ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [x86_64] "Compile ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [x86_64] "Compile ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [x86_64] "Compile ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [x86_64] "Compile ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [x86_64] "Compile ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src +echo [x86_64] "Compile ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/atom.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/atom.o +echo [x86_64] "Compile ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context.o +echo [x86_64] "Compile ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context-priv.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context-priv.o +echo [x86_64] "Compile ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym.o +echo [x86_64] "Compile ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o +echo [x86_64] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap.o +echo [x86_64] "Compile ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o +echo [x86_64] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/state.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/state.o +echo [x86_64] "Compile ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/text.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/text.o +echo [x86_64] "Compile ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utf8.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utf8.o +echo [x86_64] "Compile ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utils.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O0 -UNDEBUG -fno-limit-debug-info -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utils.o +echo [x86_64] "StaticLibrary ": "libxkbcommon.a" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-ar crsD /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/xkbcommon/xkbcommon/src/utils.o +echo [x86_64] "SharedLibrary ": "liblorie.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/objs-debug/lorie/renderer.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/libxkbcommon.a -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target x86_64-none-linux-android21 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/x86_64 -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so +echo [x86_64] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/liblorie.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/obj/local/x86_64/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/debug/lib/x86_64/liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/android_gradle_build.json new file mode 100644 index 0000000..8744547 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/android_gradle_build.json @@ -0,0 +1,298 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + ], + "libraries": { + "xkbcommon-release-arm64-v8a": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a", + "toolchain": "toolchain-arm64-v8a", + "abi": "arm64-v8a", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a" + }, + "lorie-release-arm64-v8a": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/liblorie.so", + "toolchain": "toolchain-arm64-v8a", + "abi": "arm64-v8a", + "artifactName": "lorie", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", + "flags": "-target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/liblorie.so" + } + }, + "toolchains": { + "toolchain-arm64-v8a": { + "cCompilerExecutable": "/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/android_gradle_build_mini.json new file mode 100644 index 0000000..bda3b33 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/android_gradle_build_mini.json @@ -0,0 +1,23 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + ], + "libraries": { + "xkbcommon-release-arm64-v8a": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a", + "abi": "arm64-v8a", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a" + }, + "lorie-release-arm64-v8a": { + "artifactName": "lorie", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darm64-v8a NDK_ALL_ABIS\u003darm64-v8a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/liblorie.so", + "abi": "arm64-v8a", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/liblorie.so" + } + } +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_command.txt new file mode 100644 index 0000000..6b1169f --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_command.txt @@ -0,0 +1,17 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=arm64-v8a +NDK_ALL_ABIS=arm64-v8a +NDK_DEBUG=0 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib +APP_SHORT_COMMANDS=false +LOCAL_SHORT_COMMANDS=false +-B +-n +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_output.txt new file mode 100644 index 0000000..1ab647f --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/arm64-v8a/ndkBuild_build_output.txt @@ -0,0 +1,123 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a/* +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a/gdbserver +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie +echo [arm64-v8a] "Compile ": "lorie <= main.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/main.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/main.o +echo [arm64-v8a] "Compile ": "lorie <= backend-android.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/backend-android.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/backend-android.o +echo [arm64-v8a] "Compile ": "lorie <= renderer.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/renderer.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/renderer.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose +echo [arm64-v8a] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/parser.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/parser.o +echo [arm64-v8a] "Compile ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/paths.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/paths.o +echo [arm64-v8a] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/state.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/state.o +echo [arm64-v8a] "Compile ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/table.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp +echo [arm64-v8a] "Compile ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [arm64-v8a] "Compile ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [arm64-v8a] "Compile ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [arm64-v8a] "Compile ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [arm64-v8a] "Compile ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [arm64-v8a] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [arm64-v8a] "Compile ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [arm64-v8a] "Compile ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [arm64-v8a] "Compile ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [arm64-v8a] "Compile ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [arm64-v8a] "Compile ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [arm64-v8a] "Compile ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src +echo [arm64-v8a] "Compile ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/atom.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/atom.o +echo [arm64-v8a] "Compile ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context.o +echo [arm64-v8a] "Compile ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context-priv.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context-priv.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym-utf.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym-utf.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap.o +echo [arm64-v8a] "Compile ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap-priv.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap-priv.o +echo [arm64-v8a] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/state.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/state.o +echo [arm64-v8a] "Compile ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/text.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/text.o +echo [arm64-v8a] "Compile ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utf8.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utf8.o +echo [arm64-v8a] "Compile ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utils.o.d -target aarch64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utils.o +echo [arm64-v8a] "StaticLibrary ": "libxkbcommon.a" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar crsD /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/xkbcommon/xkbcommon/src/utils.o +echo [arm64-v8a] "SharedLibrary ": "liblorie.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/objs/lorie/renderer.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/libxkbcommon.a -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target aarch64-none-linux-android21 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/arm64-v8a -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/liblorie.so +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a +echo [arm64-v8a] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a/liblorie.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/arm64-v8a/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/arm64-v8a/liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build.json index 0d7d111..9200498 100644 --- a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build.json +++ b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build.json @@ -1,31 +1,289 @@ { "buildFiles": [ - "/home/twaik/WTermux/app/src/main/jni/Android.mk" + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" ], "cleanCommands": [ - "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" ], "libraries": { "lorie-release-armeabi-v7a": { - "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so", "toolchain": "toolchain-armeabi-v7a", "abi": "armeabi-v7a", "artifactName": "lorie", "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, { "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", - "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" }, { "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", - "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" }, { "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", - "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" } ], "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so" + }, + "xkbcommon-release-armeabi-v7a": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a", + "toolchain": "toolchain-armeabi-v7a", + "abi": "armeabi-v7a", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march\u003darmv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a" } }, "toolchains": { diff --git a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build_mini.json index 6b592a0..788a3ff 100644 --- a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build_mini.json +++ b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/android_gradle_build_mini.json @@ -1,16 +1,23 @@ { "buildFiles": [ - "/home/twaik/WTermux/app/src/main/jni/Android.mk" + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" ], "cleanCommands": [ - "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" ], "libraries": { "lorie-release-armeabi-v7a": { "artifactName": "lorie", - "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so", "abi": "armeabi-v7a", "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so" + }, + "xkbcommon-release-armeabi-v7a": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003darmeabi-v7a NDK_ALL_ABIS\u003darmeabi-v7a NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a", + "abi": "armeabi-v7a", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a" } } } \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_command.txt index 0a8608a..6ae0d1f 100644 --- a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_command.txt +++ b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_command.txt @@ -2,6 +2,7 @@ Executable : /opt/AndroidSdk/ndk-bundle/ndk-build arguments : NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=0 diff --git a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_output.txt index 9a8fb2e..4e562f1 100644 --- a/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_output.txt +++ b/app/.externalNativeBuild/ndkBuild/release/armeabi-v7a/ndkBuild_build_output.txt @@ -1,35 +1,123 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/* rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/gdbserver rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/gdb.setup -mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a -echo [armeabi-v7a] "Prebuilt ": "libandroid-support.so <= /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/" -cp -f /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/libandroid-support.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libandroid-support.so -mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a -echo [armeabi-v7a] "Install ": "libandroid-support.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libandroid-support.so" -install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libandroid-support.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libandroid-support.so -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libandroid-support.so -echo [armeabi-v7a] "Prebuilt ": "libffi.so <= /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/" -cp -f /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/libffi.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libffi.so -echo [armeabi-v7a] "Install ": "libffi.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libffi.so" -install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libffi.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libffi.so -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libffi.so mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie echo [armeabi-v7a] "Compile thumb ": "lorie <= main.c" rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o echo [armeabi-v7a] "Compile thumb ": "lorie <= backend-android.c" rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o echo [armeabi-v7a] "Compile thumb ": "lorie <= renderer.c" rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o -echo [armeabi-v7a] "Prebuilt ": "libwayland-server.so <= /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/" -cp -f /home/twaik/WTermux/app/src/main/jni/prebuilt/armeabi-v7a/libwayland-server.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libwayland-server.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/parser.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/parser.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/paths.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/paths.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/state.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/state.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/table.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/atom.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/atom.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context-priv.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context-priv.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym-utf.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym-utf.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap-priv.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap-priv.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/state.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/state.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/text.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/text.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utf8.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utf8.o +echo [armeabi-v7a] "Compile thumb ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utils.o.d -target armv7-none-linux-androideabi19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fpic -march=armv7-a -mthumb -Oz -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utils.o +echo [armeabi-v7a] "StaticLibrary ": "libxkbcommon.a" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar crsD /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/xkbcommon/xkbcommon/src/utils.o echo [armeabi-v7a] "SharedLibrary ": "liblorie.so" -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libwayland-server.so -target armv7-none-linux-androideabi19 -no-canonical-prefixes -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/objs/lorie/renderer.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libxkbcommon.a -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target armv7-none-linux-androideabi19 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/armeabi-v7a -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a echo [armeabi-v7a] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/liblorie.so" install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/liblorie.so /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/liblorie.so -echo [armeabi-v7a] "Install ": "libwayland-server.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libwayland-server.so" -install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/armeabi-v7a/libwayland-server.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libwayland-server.so -/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/armeabi-v7a/libwayland-server.so diff --git a/app/.externalNativeBuild/ndkBuild/release/x86/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/release/x86/android_gradle_build.json new file mode 100644 index 0000000..a3d77f0 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86/android_gradle_build.json @@ -0,0 +1,298 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + ], + "libraries": { + "lorie-release-x86": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/liblorie.so", + "toolchain": "toolchain-x86", + "abi": "x86", + "artifactName": "lorie", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/liblorie.so" + }, + "xkbcommon-release-x86": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a", + "toolchain": "toolchain-x86", + "abi": "x86", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security -mstackrealign" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a" + } + }, + "toolchains": { + "toolchain-x86": { + "cCompilerExecutable": "/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/x86/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/release/x86/android_gradle_build_mini.json new file mode 100644 index 0000000..623cba0 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86/android_gradle_build_mini.json @@ -0,0 +1,23 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + ], + "libraries": { + "lorie-release-x86": { + "artifactName": "lorie", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/liblorie.so", + "abi": "x86", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/liblorie.so" + }, + "xkbcommon-release-x86": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86 NDK_ALL_ABIS\u003dx86 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a", + "abi": "x86", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a" + } + } +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/x86/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/release/x86/ndkBuild_build_command.txt new file mode 100644 index 0000000..6a95df1 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86/ndkBuild_build_command.txt @@ -0,0 +1,17 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=x86 +NDK_ALL_ABIS=x86 +NDK_DEBUG=0 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib +APP_SHORT_COMMANDS=false +LOCAL_SHORT_COMMANDS=false +-B +-n +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/release/x86/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/release/x86/ndkBuild_build_output.txt new file mode 100644 index 0000000..793a50a --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86/ndkBuild_build_output.txt @@ -0,0 +1,123 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86/* +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86/gdbserver +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie +echo [x86] "Compile ": "lorie <= main.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/main.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/main.o +echo [x86] "Compile ": "lorie <= backend-android.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/backend-android.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/backend-android.o +echo [x86] "Compile ": "lorie <= renderer.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/renderer.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/renderer.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86 +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose +echo [x86] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/parser.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/parser.o +echo [x86] "Compile ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/paths.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/paths.o +echo [x86] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/state.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/state.o +echo [x86] "Compile ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/table.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp +echo [x86] "Compile ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [x86] "Compile ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [x86] "Compile ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [x86] "Compile ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [x86] "Compile ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [x86] "Compile ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [x86] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [x86] "Compile ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [x86] "Compile ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [x86] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [x86] "Compile ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [x86] "Compile ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [x86] "Compile ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [x86] "Compile ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [x86] "Compile ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [x86] "Compile ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src +echo [x86] "Compile ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/atom.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/atom.o +echo [x86] "Compile ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context.o +echo [x86] "Compile ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context-priv.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context-priv.o +echo [x86] "Compile ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym.o +echo [x86] "Compile ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym-utf.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym-utf.o +echo [x86] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap.o +echo [x86] "Compile ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap-priv.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap-priv.o +echo [x86] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/state.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/state.o +echo [x86] "Compile ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/text.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/text.o +echo [x86] "Compile ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utf8.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utf8.o +echo [x86] "Compile ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utils.o.d -target i686-none-linux-android19 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -mstackrealign -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utils.o +echo [x86] "StaticLibrary ": "libxkbcommon.a" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-ar crsD /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/xkbcommon/xkbcommon/src/utils.o +echo [x86] "SharedLibrary ": "liblorie.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/objs/lorie/renderer.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/libxkbcommon.a -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target i686-none-linux-android19 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/x86 -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/liblorie.so +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86 +echo [x86] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86/liblorie.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86/liblorie.so diff --git a/app/.externalNativeBuild/ndkBuild/release/x86_64/android_gradle_build.json b/app/.externalNativeBuild/ndkBuild/release/x86_64/android_gradle_build.json new file mode 100644 index 0000000..06a1680 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86_64/android_gradle_build.json @@ -0,0 +1,298 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + ], + "libraries": { + "xkbcommon-release-x86_64": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a", + "toolchain": "toolchain-x86_64", + "abi": "x86_64", + "artifactName": "xkbcommon", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a" + }, + "lorie-release-x86_64": { + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/liblorie.so", + "toolchain": "toolchain-x86_64", + "abi": "x86_64", + "artifactName": "lorie", + "files": [ + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std\u003dc99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR\u003d\\\"/data/data/com.termux/files/usr/share/X11/locale\\\" -DDEFAULT_XKB_LAYOUT\u003d\\\"us\\\" -DDEFAULT_XKB_MODEL\u003d\\\"pc105\\\" -DDEFAULT_XKB_RULES\u003d\\\"evdev\\\" -DDFLT_XKB_CONFIG_ROOT\u003d\\\"/data/data/com.termux/files/usr/share/X11/xkb\\\" -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/main.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + }, + { + "src": "/home/twaik/WTermux/app/src/main/jni/lorie/renderer.c", + "flags": "-target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror\u003dformat-security" + } + ], + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/liblorie.so" + } + }, + "toolchains": { + "toolchain-x86_64": { + "cCompilerExecutable": "/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" + } + }, + "cFileExtensions": [ + "c" + ], + "cppFileExtensions": [] +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/x86_64/android_gradle_build_mini.json b/app/.externalNativeBuild/ndkBuild/release/x86_64/android_gradle_build_mini.json new file mode 100644 index 0000000..0e8273b --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86_64/android_gradle_build_mini.json @@ -0,0 +1,23 @@ +{ + "buildFiles": [ + "/home/twaik/WTermux/app/src/main/jni/Android.mk", + "/home/twaik/WTermux/app/src/main/jni/Application.mk" + ], + "cleanCommands": [ + "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib clean" + ], + "libraries": { + "xkbcommon-release-x86_64": { + "artifactName": "xkbcommon", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a", + "abi": "x86_64", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a" + }, + "lorie-release-x86_64": { + "artifactName": "lorie", + "buildCommand": "/opt/AndroidSdk/ndk-bundle/ndk-build NDK_PROJECT_PATH\u003dnull APP_BUILD_SCRIPT\u003d/home/twaik/WTermux/app/src/main/jni/Android.mk NDK_APPLICATION_MK\u003d/home/twaik/WTermux/app/src/main/jni/Application.mk APP_ABI\u003dx86_64 NDK_ALL_ABIS\u003dx86_64 NDK_DEBUG\u003d0 APP_PLATFORM\u003dandroid-19 NDK_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj NDK_LIBS_OUT\u003d/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/liblorie.so", + "abi": "x86_64", + "output": "/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/liblorie.so" + } + } +} \ No newline at end of file diff --git a/app/.externalNativeBuild/ndkBuild/release/x86_64/ndkBuild_build_command.txt b/app/.externalNativeBuild/ndkBuild/release/x86_64/ndkBuild_build_command.txt new file mode 100644 index 0000000..ab7ae4a --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86_64/ndkBuild_build_command.txt @@ -0,0 +1,17 @@ +Executable : /opt/AndroidSdk/ndk-bundle/ndk-build +arguments : +NDK_PROJECT_PATH=null +APP_BUILD_SCRIPT=/home/twaik/WTermux/app/src/main/jni/Android.mk +NDK_APPLICATION_MK=/home/twaik/WTermux/app/src/main/jni/Application.mk +APP_ABI=x86_64 +NDK_ALL_ABIS=x86_64 +NDK_DEBUG=0 +APP_PLATFORM=android-19 +NDK_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj +NDK_LIBS_OUT=/home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib +APP_SHORT_COMMANDS=false +LOCAL_SHORT_COMMANDS=false +-B +-n +jvmArgs : + diff --git a/app/.externalNativeBuild/ndkBuild/release/x86_64/ndkBuild_build_output.txt b/app/.externalNativeBuild/ndkBuild/release/x86_64/ndkBuild_build_output.txt new file mode 100644 index 0000000..2047674 --- /dev/null +++ b/app/.externalNativeBuild/ndkBuild/release/x86_64/ndkBuild_build_output.txt @@ -0,0 +1,123 @@ +Android NDK: WARNING:/home/twaik/WTermux/app/src/main/jni/lorie/Android.mk:lorie: non-system libraries in linker flags: -lwayland-server +Android NDK: This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES +Android NDK: or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the +Android NDK: current module +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64/* +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64/gdbserver +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64/gdb.setup +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie +echo [x86_64] "Compile ": "lorie <= main.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/main.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/main.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/main.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/main.o +echo [x86_64] "Compile ": "lorie <= backend-android.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/backend-android.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/backend-android.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/backend-android.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/backend-android.o +echo [x86_64] "Compile ": "lorie <= renderer.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/renderer.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/renderer.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/include -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/ -I/home/twaik/WTermux/app/src/main/jni/lorie -DANDROID -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/lorie/renderer.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/renderer.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64 +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose +echo [x86_64] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/parser.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/parser.o +echo [x86_64] "Compile ": "xkbcommon <= paths.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/paths.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/paths.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/paths.o +echo [x86_64] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/state.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/state.o +echo [x86_64] "Compile ": "xkbcommon <= table.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/table.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/table.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/table.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp +echo [x86_64] "Compile ": "xkbcommon <= action.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o +echo [x86_64] "Compile ": "xkbcommon <= ast-build.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o +echo [x86_64] "Compile ": "xkbcommon <= compat.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o +echo [x86_64] "Compile ": "xkbcommon <= expr.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o +echo [x86_64] "Compile ": "xkbcommon <= include.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o +echo [x86_64] "Compile ": "xkbcommon <= keycodes.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o +echo [x86_64] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o +echo [x86_64] "Compile ": "xkbcommon <= keymap-dump.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o +echo [x86_64] "Compile ": "xkbcommon <= keywords.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o +echo [x86_64] "Compile ": "xkbcommon <= parser.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o +echo [x86_64] "Compile ": "xkbcommon <= rules.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o +echo [x86_64] "Compile ": "xkbcommon <= scanner.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o +echo [x86_64] "Compile ": "xkbcommon <= symbols.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o +echo [x86_64] "Compile ": "xkbcommon <= types.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o +echo [x86_64] "Compile ": "xkbcommon <= vmod.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o +echo [x86_64] "Compile ": "xkbcommon <= xkbcomp.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src +echo [x86_64] "Compile ": "xkbcommon <= atom.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/atom.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/atom.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/atom.o +echo [x86_64] "Compile ": "xkbcommon <= context.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context.o +echo [x86_64] "Compile ": "xkbcommon <= context-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context-priv.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context-priv.o +echo [x86_64] "Compile ": "xkbcommon <= keysym.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym.o +echo [x86_64] "Compile ": "xkbcommon <= keysym-utf.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym-utf.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym-utf.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym-utf.o +echo [x86_64] "Compile ": "xkbcommon <= keymap.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap.o +echo [x86_64] "Compile ": "xkbcommon <= keymap-priv.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap-priv.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap-priv.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap-priv.o +echo [x86_64] "Compile ": "xkbcommon <= state.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/state.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/state.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/state.o +echo [x86_64] "Compile ": "xkbcommon <= text.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/text.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/text.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/text.o +echo [x86_64] "Compile ": "xkbcommon <= utf8.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utf8.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utf8.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utf8.o +echo [x86_64] "Compile ": "xkbcommon <= utils.c" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utils.o +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang -MMD -MP -MF /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utils.o.d -target x86_64-none-linux-android21 -fdata-sections -ffunction-sections -fstack-protector-strong -funwind-tables -no-canonical-prefixes --sysroot /opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/sysroot -g -Wno-invalid-command-line-argument -Wno-unused-command-line-argument -fno-addrsig -fPIC -O2 -DNDEBUG -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src -I/home/twaik/WTermux/app/src/main/jni/libxkbcommon -DANDROID -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers -D_GNU_SOURCE -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" -DDEFAULT_XKB_LAYOUT=\"us\" -DDEFAULT_XKB_MODEL=\"pc105\" -DDEFAULT_XKB_RULES=\"evdev\" -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" -Wa,--noexecstack -Wformat -Werror=format-security -c /home/twaik/WTermux/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utils.o +echo [x86_64] "StaticLibrary ": "libxkbcommon.a" +rm -f /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-ar crsD /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/paths.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/compose/table.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/action.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/ast-build.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/compat.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/expr.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/include.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keycodes.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keymap-dump.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/keywords.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/parser.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/rules.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/scanner.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/symbols.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/types.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/vmod.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/xkbcomp/xkbcomp.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/atom.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/context-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keysym-utf.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/keymap-priv.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/state.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/text.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utf8.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/xkbcommon/xkbcommon/src/utils.o +echo [x86_64] "SharedLibrary ": "liblorie.so" +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++ -Wl,-soname,liblorie.so -shared /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/main.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/backend-android.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/objs/lorie/renderer.o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/libxkbcommon.a -lgcc -Wl,--exclude-libs,libgcc.a -latomic -Wl,--exclude-libs,libatomic.a -target x86_64-none-linux-android21 -no-canonical-prefixes -L/home/twaik/WTermux/app/src/main/jni/lorie/../prebuilt/x86_64 -lwayland-server -Wl,--build-id -stdlib=libstdc++ -Wl,--no-undefined -Wl,-z,noexecstack -Wl,--warn-shared-textrel -Wl,--fatal-warnings -lEGL -lGLESv2 -llog -landroid -lc -lm -o /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/liblorie.so +mkdir -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64 +echo [x86_64] "Install ": "liblorie.so => /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64/liblorie.so" +install -p /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/obj/local/x86_64/liblorie.so /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64/liblorie.so +/opt/AndroidSdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-strip --strip-unneeded /home/twaik/WTermux/app/build/intermediates/ndkBuild/release/lib/x86_64/liblorie.so diff --git a/app/app.iml b/app/app.iml index e944511..9d048c6 100644 --- a/app/app.iml +++ b/app/app.iml @@ -24,7 +24,7 @@ - @@ -33,7 +33,11 @@ + + + + diff --git a/app/build.gradle b/app/build.gradle index ea22853..47881c0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,6 +21,11 @@ android { path "src/main/jni/Android.mk" } } + sourceSets { + main { + jniLibs.srcDirs 'src/main/jni/prebuilt' + } + } } dependencies { diff --git a/app/src/main/java/com/termux/wtermux/KeyboardUtils.java b/app/src/main/java/com/termux/wtermux/KeyboardUtils.java new file mode 100644 index 0000000..6ee0671 --- /dev/null +++ b/app/src/main/java/com/termux/wtermux/KeyboardUtils.java @@ -0,0 +1,127 @@ +package com.termux.wtermux; + +import android.app.Activity; +import android.graphics.Rect; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewTreeObserver; +import android.content.Context; +import android.view.inputmethod.InputMethodManager; + +import java.util.HashMap; + +/** + * Based on the following Stackoverflow answer: + * http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android + */ +@SuppressWarnings("WeakerAccess") +public class KeyboardUtils implements ViewTreeObserver.OnGlobalLayoutListener +{ + private final static int MAGIC_NUMBER = 200; + + private SoftKeyboardToggleListener mCallback; + private View mRootView; + private Boolean prevValue = null; + private float mScreenDensity; + private static HashMap sListenerMap = new HashMap<>(); + + public interface SoftKeyboardToggleListener + { + void onToggleSoftKeyboard(boolean isVisible); + } + + + @Override + public void onGlobalLayout() + { + Rect r = new Rect(); + mRootView.getWindowVisibleDisplayFrame(r); + + int heightDiff = mRootView.getRootView().getHeight() - (r.bottom - r.top); + float dp = heightDiff/ mScreenDensity; + boolean isVisible = dp > MAGIC_NUMBER; + + if (mCallback != null && (prevValue == null || isVisible != prevValue)) { + prevValue = isVisible; + mCallback.onToggleSoftKeyboard(isVisible); + } + } + + /** + * Add a new keyboard listener + * @param act calling activity + * @param listener callback + */ + public static void addKeyboardToggleListener(Activity act, SoftKeyboardToggleListener listener) + { + removeKeyboardToggleListener(listener); + + sListenerMap.put(listener, new KeyboardUtils(act, listener)); + } + + /** + * Remove a registered listener + * @param listener {@link SoftKeyboardToggleListener} + */ + public static void removeKeyboardToggleListener(SoftKeyboardToggleListener listener) + { + if(sListenerMap.containsKey(listener)) + { + KeyboardUtils k = sListenerMap.get(listener); + k.removeListener(); + + sListenerMap.remove(listener); + } + } + + /** + * Remove all registered keyboard listeners + */ + public static void removeAllKeyboardToggleListeners() + { + for(SoftKeyboardToggleListener l : sListenerMap.keySet()) + sListenerMap.get(l).removeListener(); + + sListenerMap.clear(); + } + + /** + * Manually toggle soft keyboard visibility + * @param context calling context + */ + public static void toggleKeyboardVisibility(Context context) + { + InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + if(inputMethodManager != null) + inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + + /** + * Force closes the soft keyboard + * @param activeView the view with the keyboard focus + */ + public static void forceCloseKeyboard(View activeView) + { + InputMethodManager inputMethodManager = (InputMethodManager) activeView.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + if(inputMethodManager != null) + inputMethodManager.hideSoftInputFromWindow(activeView.getWindowToken(), 0); + } + + private void removeListener() + { + mCallback = null; + + mRootView.getViewTreeObserver().removeOnGlobalLayoutListener(this); + } + + private KeyboardUtils(Activity act, SoftKeyboardToggleListener listener) + { + mCallback = listener; + + mRootView = ((ViewGroup) act.findViewById(android.R.id.content)).getChildAt(0); + mRootView.getViewTreeObserver().addOnGlobalLayoutListener(this); + + mScreenDensity = act.getResources().getDisplayMetrics().density; + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/termux/wtermux/LorieService.java b/app/src/main/java/com/termux/wtermux/LorieService.java index 4dc0597..2f05633 100644 --- a/app/src/main/java/com/termux/wtermux/LorieService.java +++ b/app/src/main/java/com/termux/wtermux/LorieService.java @@ -1,14 +1,20 @@ package com.termux.wtermux; import android.annotation.SuppressLint; +import android.content.Context; import android.util.Log; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; +import android.view.inputmethod.InputMethodManager; +import android.view.inputmethod.InputMethodSubtype; -public class LorieService implements SurfaceHolder.Callback, View.OnTouchListener { +import java.util.Locale; + +public class LorieService implements SurfaceHolder.Callback, View.OnTouchListener, View.OnKeyListener { private static final int BTN_LEFT = 0x110; private static final int BTN_MIDDLE = 0x110; private static final int BTN_RIGHT = 0x110; @@ -17,9 +23,13 @@ public class LorieService implements SurfaceHolder.Callback, View.OnTouchListene private static final int WL_STATE_RELEASED = 0; private static final int WL_POINTER_MOTION = 2; - private static final int WL_POINTER_BUTTON = 3; - private long compositor = 0; - LorieService() { + //private static final int WL_POINTER_BUTTON = 3; + private InputMethodManager imm; + private long compositor; + Context ctx; + LorieService(Context context) { + imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); + ctx = context; compositor = createLorieThread(); if (compositor == 0) { Log.e("WestonService", "compositor thread was not created"); @@ -30,6 +40,11 @@ public class LorieService implements SurfaceHolder.Callback, View.OnTouchListene void connectSurfaceView(SurfaceView surface) { surface.getHolder().addCallback(this); surface.setOnTouchListener(this); + surface.setOnKeyListener(this); + + surface.setFocusable(true); + surface.setFocusableInTouchMode(true); + surface.requestFocus(); } @Override @@ -88,10 +103,20 @@ public class LorieService implements SurfaceHolder.Callback, View.OnTouchListene return true; } + @Override + public boolean onKey(View v, int keyCode, KeyEvent e) { + int action = 0; + int shift = e.isShiftPressed() ? 1 : 0; + if (e.getAction() == KeyEvent.ACTION_DOWN) action = WL_STATE_PRESSED; + if (e.getAction() == KeyEvent.ACTION_UP) action = WL_STATE_RELEASED; + onKey(compositor, action, keyCode, shift, e.getCharacters()); + return false; + } + private native long createLorieThread(); private native void windowChanged(long compositor, Surface surface, int width, int height); private native void onTouch(long compositor, int type, int button, int x, int y); - private native void onKey(long compositor, int type, int key); + private native void onKey(long compositor, int type, int key, int shift, String characters); static { System.loadLibrary("lorie"); diff --git a/app/src/main/java/com/termux/wtermux/MainActivity.java b/app/src/main/java/com/termux/wtermux/MainActivity.java index eb8154c..495a445 100644 --- a/app/src/main/java/com/termux/wtermux/MainActivity.java +++ b/app/src/main/java/com/termux/wtermux/MainActivity.java @@ -1,22 +1,65 @@ package com.termux.wtermux; +import android.content.Context; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; +import android.view.KeyEvent; import android.view.SurfaceView; import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; -public class MainActivity extends AppCompatActivity { +public class MainActivity extends AppCompatActivity implements KeyboardUtils.SoftKeyboardToggleListener { LorieService weston; + boolean kbdVisible = false; + InputMethodManager imm; + SurfaceView root; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + //jniLoader.loadLibrary("wayland-server"); setContentView(R.layout.activity_main); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - SurfaceView surface = findViewById(R.id.WestonView); - weston = new LorieService(); - weston.connectSurfaceView(surface); + root = findViewById(R.id.WestonView); + weston = new LorieService(this); + weston.connectSurfaceView(root); + KeyboardUtils.addKeyboardToggleListener(this, this); + + } + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + Log.d("LorieActivity", "keydown: " + keyCode + "(keycode_back = " + KeyEvent.KEYCODE_BACK + " )"); + if (keyCode == KeyEvent.KEYCODE_BACK) { + onBackPressed(); + return true; + } + return super.onKeyDown(keyCode, event); + } + + + @Override + public void onBackPressed() { + //KeyboardUtils.toggleKeyboardVisibility(this); + Log.d("Asdasd", "asdasdasd"); + if (root == null) return; + if (kbdVisible) { + ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)) + .hideSoftInputFromWindow(root.getWindowToken(), 0); + } else + { + ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)) + .showSoftInput(root, InputMethodManager.SHOW_FORCED); + } + } + + + @Override + public void onToggleSoftKeyboard(boolean isVisible) { + kbdVisible = isVisible; + Log.d("LorieActivity", "keyboard is " + (isVisible?"visible":"not visible")); } } diff --git a/app/src/main/java/com/termux/wtermux/jniLoader.java b/app/src/main/java/com/termux/wtermux/jniLoader.java new file mode 100644 index 0000000..0ad373d --- /dev/null +++ b/app/src/main/java/com/termux/wtermux/jniLoader.java @@ -0,0 +1,12 @@ +package com.termux.wtermux; + +final class jniLoader { + static void loadLibrary(String name) { + _loadLibrary("lib" + name + ".so"); + } + + private static native void _loadLibrary(String name); + static { + System.loadLibrary("jniLoader"); + } +} diff --git a/app/src/main/jni/Android.mk b/app/src/main/jni/Android.mk index cef17d6..ec371df 100644 --- a/app/src/main/jni/Android.mk +++ b/app/src/main/jni/Android.mk @@ -1,3 +1,3 @@ ROOT_PATH := $(call my-dir) -include $(ROOT_PATH)/prebuilt/Android.mk +include $(ROOT_PATH)/libxkbcommon/Android.mk include $(ROOT_PATH)/lorie/Android.mk diff --git a/app/src/main/jni/Application.mk b/app/src/main/jni/Application.mk new file mode 100644 index 0000000..9db6250 --- /dev/null +++ b/app/src/main/jni/Application.mk @@ -0,0 +1 @@ +#APP_STL := c++_shared diff --git a/app/src/main/jni/jniLoader/Android.mk b/app/src/main/jni/jniLoader/Android.mk new file mode 100644 index 0000000..390d41c --- /dev/null +++ b/app/src/main/jni/jniLoader/Android.mk @@ -0,0 +1,7 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := jniLoader +LOCAL_SRC_FILES := dt_needed_main.c +LOCAL_LDLIBS := -llog +include $(BUILD_SHARED_LIBRARY) diff --git a/app/src/main/jni/jniLoader/dt_needed.c b/app/src/main/jni/jniLoader/dt_needed.c new file mode 100644 index 0000000..2db9904 --- /dev/null +++ b/app/src/main/jni/jniLoader/dt_needed.c @@ -0,0 +1,99 @@ +#if defined(bit64) + #define Elf_Ehdr Elf64_Ehdr + #define Elf_Shdr Elf64_Shdr + #define Elf_Dyn Elf64_Dyn + #define dlneeds dlneeds64 +#else + #define Elf_Ehdr Elf32_Ehdr + #define Elf_Shdr Elf32_Shdr + #define Elf_Dyn Elf32_Dyn + #define dlneeds dlneeds32 +#endif + +char ** dlneeds(int fd) +{ + Elf_Ehdr hdr; + char *strdata = 0; + char **result = NULL; + int i; + + if( read( fd, &hdr, sizeof( Elf_Ehdr ) ) < 0 ) { + LOGE("Cannot read elf header: %s", strerror( errno ) ); + return NULL; + } + + /* Jump to the section header table. */ + lseek( fd, hdr.e_shoff, SEEK_SET ); + + /* Find and load the dynamic symbol strings. */ + for( i = 0; i < hdr.e_shnum; i++ ) { + Elf_Shdr shdr; + + lseek( fd, hdr.e_shoff + (i * hdr.e_shentsize), SEEK_SET ); + read( fd, &shdr, sizeof( Elf_Shdr ) ); + + if( shdr.sh_type == SHT_DYNSYM ) { + Elf_Shdr symstr; + + lseek( fd, hdr.e_shoff + (shdr.sh_link * hdr.e_shentsize), + SEEK_SET ); + read( fd, &symstr, sizeof( Elf_Shdr ) ); + lseek( fd, symstr.sh_offset, SEEK_SET ); + strdata = malloc( symstr.sh_size ); + read( fd, strdata, symstr.sh_size ); + break; + } + } + + /* Quit if we couldn't find any. */ + if( strdata == 0 ) { + LOGE("No symbol strings found."); + close(fd); + return NULL; + } + + /* Now find the .dynamic section. */ + for( i = 0; i < hdr.e_shnum; i++ ) { + Elf_Shdr shdr; + + lseek( fd, hdr.e_shoff + (i * hdr.e_shentsize), SEEK_SET ); + read( fd, &shdr, sizeof( Elf_Shdr ) ); + + if( shdr.sh_type == SHT_DYNAMIC ) { + int j; + int k; + int needed_count = 0; + Elf_Dyn cur; + + /* Load its data and print all DT_NEEDED strings. */ + lseek( fd, shdr.sh_offset, SEEK_SET ); + for(j=0; j +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "log.h" +#ifdef __ANDROID__ +#include +int System_load(JNIEnv *env, char *filename); +#endif + +#ifndef __ANDROID__ +#define __USE_GNU +#include +#include +int trace_funcs = 0; +void __attribute__((no_instrument_function)) +__cyg_profile_func_enter (void *func, void *caller) { + if (!trace_funcs) return; + Dl_info info; + if (dladdr(func, &info)) + LOGD ("enter [%s] %s", (info.dli_fname) ? info.dli_fname : "?", info.dli_sname ? info.dli_sname : "?"); +} +void __attribute__((no_instrument_function)) +__cyg_profile_func_exit (void *func, void *caller) { + if (!trace_funcs) return; + Dl_info info; + if (dladdr(func, &info)) + LOGD ("leave [%s] %s", (info.dli_fname) ? info.dli_fname : "?", info.dli_sname ? info.dli_sname : "?"); +} +#endif +#define static // backtrace do not report static function names + + +#define bit64 +#include "dt_needed.c" +#undef bit64 +#include "dt_needed.c" + +char ** str_split(char *s, char *delim) { + char *strings[128]; + char *pch, **result, *str = strdup(s); + int i=0, j=0; + pch = strtok (str,delim); + while (pch != NULL) { + strings[i] = strdup(pch); + pch = strtok(NULL, ":"); + i++; + } + result = calloc(i+1, sizeof(char*)); + if (!result) { + LOGE("str_split: Failed to allocate result array: %s", strerror(errno)); + return NULL; + } + + for (j=0; j", argv[0]); + return 1; + } + + android_dlopen(argv[1]); + return 0; +} +#endif + +#ifdef __ANDROID__ +JavaVM *jvm = NULL; + +JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) { + jvm = vm; + return JNI_VERSION_1_4; +} + +int System_load(JNIEnv *env, char *filename) { + jclass System = (*env)->FindClass (env, "java/lang/System"); + if(System == NULL) { + LOGE("ERROR: class java.land.System is not found!"); + } + + jmethodID load = (*env)->GetStaticMethodID(env, System, "load","(Ljava/lang/String;)V"); + if (load == NULL) { + LOGE("ERROR: method System.load is not found!"); + } + + jstring file = (*env)->NewStringUTF(env, filename); + if (file == NULL) { + LOGE("failed to create jstring"); + } + + (*env)->CallStaticVoidMethod(env, System, load, file); + (*env)->DeleteLocalRef(env, file); + (*env)->DeleteLocalRef(env, System); + + + jboolean flag = (*env)->ExceptionCheck(env); + if (flag) { + jthrowable e = (*env)->ExceptionOccurred(env); + (*env)->ExceptionClear(env); + jclass clazz = (*env)->GetObjectClass(env, e); + jmethodID getMessage = (*env)->GetMethodID(env, clazz, "getMessage", "()Ljava/lang/String;"); + jstring message = (jstring)(*env)->CallObjectMethod(env, e, getMessage); + + const char *mstr = (*env)->GetStringUTFChars(env, message, NULL); + LOGE("%s", mstr); + (*env)->ReleaseStringUTFChars(env, message, mstr); + + (*env)->DeleteLocalRef(env, message); + (*env)->DeleteLocalRef(env, clazz); + (*env)->DeleteLocalRef(env, e); + + return 1; + } + return 0; +} + + + + +JNIEXPORT void JNICALL +Java_com_termux_wtermux_jniLoader__1loadLibrary(JNIEnv *env, jclass type, jstring name_) { + char *name = (char*) (*env)->GetStringUTFChars(env, name_, 0); + android_dlopen(env, name); + (*env)->ReleaseStringUTFChars(env, name_, name); +} +#endif diff --git a/app/src/main/jni/jniLoader/log.h b/app/src/main/jni/jniLoader/log.h new file mode 100644 index 0000000..173e37f --- /dev/null +++ b/app/src/main/jni/jniLoader/log.h @@ -0,0 +1,56 @@ +#ifdef __ANDROID__ +#include + +#ifndef LOG_TAG +#define LOG_TAG "jniLoader" +#endif + +#define LOG(prio, ...) __android_log_print(prio, LOG_TAG, __VA_ARGS__) + +#define LOGI(...) LOG(ANDROID_LOG_INFO, __VA_ARGS__) +#define LOGW(...) LOG(ANDROID_LOG_WARN, __VA_ARGS__) +#define LOGD(...) LOG(ANDROID_LOG_DEBUG, __VA_ARGS__) +#define LOGV(...) LOG(ANDROID_LOG_VERBOSE, __VA_ARGS__) +#define LOGE(...) LOG(ANDROID_LOG_ERROR, __VA_ARGS__) +#define LOGF(...) LOG(ANDROID_LOG_FATAL, __VA_ARGS__) + +#else +#include + +#define LOG(prio, ...) { printf(prio __VA_ARGS__); printf("\n"); } + +#define LOGI(...) LOG("I: " , __VA_ARGS__) +#define LOGW(...) LOG("W: " , __VA_ARGS__) +#define LOGD(...) LOG("D: " , __VA_ARGS__) +#define LOGV(...) LOG("V: " , __VA_ARGS__) +#define LOGE(...) LOG("E: " , __VA_ARGS__) +#define LOGF(...) LOG("F: " , __VA_ARGS__) + +#endif +#ifdef DBG +#undef DBG +#endif + +#define DBG LOGD("Here! %s %d", __FILE__, __LINE__) + +extern int trace_funcs; +#if defined(TRACE_FUNCS) && !defined(__ANDROID__) +#include +#include +void __attribute__((no_instrument_function)) +__cyg_profile_func_enter (void *func, void *caller) { + if (!trace_funcs) return; + Dl_info info; + if (dladdr(func, &info)) + LOGD ("enter %p [%s] %s\n", func, (info.dli_fname) ? info.dli_fname : "?", info.dli_sname ? info.dli_sname : "?"); +} +void __attribute__((no_instrument_function)) +__cyg_profile_func_exit (void *func, void *caller) { + if (!trace_funcs) return; + Dl_info info; + if (dladdr(func, &info)) + LOGD ("leave %p [%s] %s\n", func, (info.dli_fname) ? info.dli_fname : "?", info.dli_sname ? info.dli_sname : "?"); +} + +#define static // backtrace do not report static function names +#endif diff --git a/app/src/main/jni/libxkbcommon/Android.bp b/app/src/main/jni/libxkbcommon/Android.bp new file mode 100644 index 0000000..503d42d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/Android.bp @@ -0,0 +1,68 @@ +// Copyright (C) 2017 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +cc_library_static { + srcs: [ + "xkbcommon/src/compose/parser.c", + "xkbcommon/src/compose/paths.c", + "xkbcommon/src/compose/state.c", + "xkbcommon/src/compose/table.c", + "xkbcommon/src/xkbcomp/action.c", + "xkbcommon/src/xkbcomp/ast-build.c", + "xkbcommon/src/xkbcomp/compat.c", + "xkbcommon/src/xkbcomp/expr.c", + "xkbcommon/src/xkbcomp/include.c", + "xkbcommon/src/xkbcomp/keycodes.c", + "xkbcommon/src/xkbcomp/keymap.c", + "xkbcommon/src/xkbcomp/keymap-dump.c", + "xkbcommon/src/xkbcomp/keywords.c", + "xkbcommon/src/xkbcomp/parser.c", + "xkbcommon/src/xkbcomp/rules.c", + "xkbcommon/src/xkbcomp/scanner.c", + "xkbcommon/src/xkbcomp/symbols.c", + "xkbcommon/src/xkbcomp/types.c", + "xkbcommon/src/xkbcomp/vmod.c", + "xkbcommon/src/xkbcomp/xkbcomp.c", + "xkbcommon/src/atom.c", + "xkbcommon/src/context.c", + "xkbcommon/src/context-priv.c", + "xkbcommon/src/keysym.c", + "xkbcommon/src/keysym-utf.c", + "xkbcommon/src/keymap.c", + "xkbcommon/src/keymap-priv.c", + "xkbcommon/src/state.c", + "xkbcommon/src/text.c", + "xkbcommon/src/utf8.c", + "xkbcommon/src/utils.c", + ], + cflags: [ + "-std=c99", + "-Wall", + "-Werror", + "-Wno-unused-parameter", + "-Wno-missing-field-initializers", + "-DXLOCALEDIR=\"/usr/share/X11/locale\"", + // Needed because libxkbcommon uses GNU extension asprintf(). + "-D_GNU_SOURCE", + "-DDEFAULT_XKB_LAYOUT=\"us\"", + "-DDEFAULT_XKB_MODEL=\"pc105\"", + "-DDEFAULT_XKB_RULES=\"evdev\"", + "-DDFLT_XKB_CONFIG_ROOT=\"/usr/share/X11/xkb\"", + ], + local_include_dirs: ["xkbcommon/src"], + export_include_dirs: ["xkbcommon"], + vendor_available: true, + host_supported: true, + name: "libxkbcommon", +} diff --git a/app/src/main/jni/libxkbcommon/Android.mk b/app/src/main/jni/libxkbcommon/Android.mk new file mode 100644 index 0000000..9ac86b0 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/Android.mk @@ -0,0 +1,47 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_MODULE := xkbcommon +LOCAL_SRC_FILES := \ + xkbcommon/src/compose/parser.c \ + xkbcommon/src/compose/paths.c \ + xkbcommon/src/compose/state.c \ + xkbcommon/src/compose/table.c \ + xkbcommon/src/xkbcomp/action.c \ + xkbcommon/src/xkbcomp/ast-build.c \ + xkbcommon/src/xkbcomp/compat.c \ + xkbcommon/src/xkbcomp/expr.c \ + xkbcommon/src/xkbcomp/include.c \ + xkbcommon/src/xkbcomp/keycodes.c \ + xkbcommon/src/xkbcomp/keymap.c \ + xkbcommon/src/xkbcomp/keymap-dump.c \ + xkbcommon/src/xkbcomp/keywords.c \ + xkbcommon/src/xkbcomp/parser.c \ + xkbcommon/src/xkbcomp/rules.c \ + xkbcommon/src/xkbcomp/scanner.c \ + xkbcommon/src/xkbcomp/symbols.c \ + xkbcommon/src/xkbcomp/types.c \ + xkbcommon/src/xkbcomp/vmod.c \ + xkbcommon/src/xkbcomp/xkbcomp.c \ + xkbcommon/src/atom.c \ + xkbcommon/src/context.c \ + xkbcommon/src/context-priv.c \ + xkbcommon/src/keysym.c \ + xkbcommon/src/keysym-utf.c \ + xkbcommon/src/keymap.c \ + xkbcommon/src/keymap-priv.c \ + xkbcommon/src/state.c \ + xkbcommon/src/text.c \ + xkbcommon/src/utf8.c \ + xkbcommon/src/utils.c +LOCAL_CFLAGS := \ + -std=c99 -Wall -Werror -Wno-unused-parameter -Wno-missing-field-initializers \ + -D_GNU_SOURCE \ + -DXLOCALEDIR=\"/data/data/com.termux/files/usr/share/X11/locale\" \ + -DDEFAULT_XKB_LAYOUT=\"us\" \ + -DDEFAULT_XKB_MODEL=\"pc105\" \ + -DDEFAULT_XKB_RULES=\"evdev\" \ + -DDFLT_XKB_CONFIG_ROOT=\"/data/data/com.termux/files/usr/share/X11/xkb\" +LOCAL_C_INCLUDES := $(LOCAL_PATH)/xkbcommon $(LOCAL_PATH)/xkbcommon/src +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/xkbcommon/ +include $(BUILD_SHARED_LIBRARY) diff --git a/app/src/main/jni/libxkbcommon/LICENSE b/app/src/main/jni/libxkbcommon/LICENSE new file mode 100644 index 0000000..d96c428 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/LICENSE @@ -0,0 +1,215 @@ +The following is a list of all copyright notices and license statements which +appear in the xkbcommon source tree. + +If making new contributions, the first form (i.e. Daniel Stone, Ran Benita, +etc) is vastly preferred. + +All licenses are derivative of the MIT/X11 license, mostly identical other +than no-endorsement clauses (e.g. paragraph 4 of The Open Group's license). + +These statements are split into two sections: one for the code compiled and +distributed as part of the libxkbcommon shared library and the code +component of all tests (i.e. everything under src/ and xkbcommon/, plus the +.c and .h files under test/), and another for the test data under test/data, +which is distributed with the xkbcommon source tarball, but not installed to +the system. + + +BEGINNING OF SOFTWARE COPYRIGHT/LICENSE STATEMENTS: + + +------------------------------------------------------------------------------- + +Copyright © 2009-2012 Daniel Stone +Copyright © 2012 Ran Benita +Copyright © 2010, 2012 Intel Corporation +Copyright © 2008, 2009 Dan Nicholson +Copyright © 2010 Francisco Jerez + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright 1985, 1987, 1988, 1990, 1998 The Open Group + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. + + +------------------------------------------------------------------------------- + + +Copyright (c) 1993, 1994, 1995, 1996 by Silicon Graphics Computer Systems, Inc. + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of Silicon Graphics not be +used in advertising or publicity pertaining to distribution +of the software without specific prior written permission. +Silicon Graphics makes no representation about the suitability +of this software for any purpose. It is provided "as is" +without any express or implied warranty. + +SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright (C) 2011 Joseph Adams + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +------------------------------------------------------------------------------- + + + +END OF SOFTWARE COPYRIGHT/LICENSE STATEMENTS + + +BEGINNING OF LICENSE STATEMENTS FOR UNDISTRIBUTED DATA FILES IN test/data, +derived from xkeyboard-config: + + + +------------------------------------------------------------------------------- + +Copyright 1996 by Joseph Moss +Copyright (C) 2002-2007 Free Software Foundation, Inc. +Copyright (C) Dmitry Golubev , 2003-2004 +Copyright (C) 2004, Gregory Mokhin +Copyright (C) 2006 Erdal Ronahî + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the copyright holder(s) not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. The copyright holder(s) makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +------------------------------------------------------------------------------- + + Copyright 1992 by Oki Technosystems Laboratory, Inc. + Copyright 1992 by Fuji Xerox Co., Ltd. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear +in supporting documentation, and that the name of Oki Technosystems +Laboratory and Fuji Xerox not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. +Oki Technosystems Laboratory and Fuji Xerox make no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS +LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE OF THIS SOFTWARE. diff --git a/app/src/main/jni/libxkbcommon/METADATA b/app/src/main/jni/libxkbcommon/METADATA new file mode 100644 index 0000000..4d140f1 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/METADATA @@ -0,0 +1,20 @@ +name: "libxkbcommon" +description: + "libxkbcommon is a keyboard keymap compiler and support library which " + "processes a reduced subset of keymaps as defined by the XKB (X Keyboard " + "Extension) specification. It also contains a module for handling Compose " + "and dead keys." + +third_party { + url { + type: HOMEPAGE + value: "https://github.com/xkbcommon/libxkbcommon" + } + url { + type: ARCHIVE + value: "https://github.com/xkbcommon/libxkbcommon/archive/xkbcommon-0.5.0.tar.gz" + } + version: "0.5.0" + last_upgrade_date { year: 2017 month: 9 day: 29 } + license_type: NOTICE +} diff --git a/app/src/main/jni/libxkbcommon/MODULE_LICENSE_MIT b/app/src/main/jni/libxkbcommon/MODULE_LICENSE_MIT new file mode 100644 index 0000000..e69de29 diff --git a/app/src/main/jni/libxkbcommon/NOTICE b/app/src/main/jni/libxkbcommon/NOTICE new file mode 100644 index 0000000..d96c428 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/NOTICE @@ -0,0 +1,215 @@ +The following is a list of all copyright notices and license statements which +appear in the xkbcommon source tree. + +If making new contributions, the first form (i.e. Daniel Stone, Ran Benita, +etc) is vastly preferred. + +All licenses are derivative of the MIT/X11 license, mostly identical other +than no-endorsement clauses (e.g. paragraph 4 of The Open Group's license). + +These statements are split into two sections: one for the code compiled and +distributed as part of the libxkbcommon shared library and the code +component of all tests (i.e. everything under src/ and xkbcommon/, plus the +.c and .h files under test/), and another for the test data under test/data, +which is distributed with the xkbcommon source tarball, but not installed to +the system. + + +BEGINNING OF SOFTWARE COPYRIGHT/LICENSE STATEMENTS: + + +------------------------------------------------------------------------------- + +Copyright © 2009-2012 Daniel Stone +Copyright © 2012 Ran Benita +Copyright © 2010, 2012 Intel Corporation +Copyright © 2008, 2009 Dan Nicholson +Copyright © 2010 Francisco Jerez + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright 1985, 1987, 1988, 1990, 1998 The Open Group + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. + + +------------------------------------------------------------------------------- + + +Copyright (c) 1993, 1994, 1995, 1996 by Silicon Graphics Computer Systems, Inc. + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of Silicon Graphics not be +used in advertising or publicity pertaining to distribution +of the software without specific prior written permission. +Silicon Graphics makes no representation about the suitability +of this software for any purpose. It is provided "as is" +without any express or implied warranty. + +SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright (C) 2011 Joseph Adams + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +------------------------------------------------------------------------------- + + + +END OF SOFTWARE COPYRIGHT/LICENSE STATEMENTS + + +BEGINNING OF LICENSE STATEMENTS FOR UNDISTRIBUTED DATA FILES IN test/data, +derived from xkeyboard-config: + + + +------------------------------------------------------------------------------- + +Copyright 1996 by Joseph Moss +Copyright (C) 2002-2007 Free Software Foundation, Inc. +Copyright (C) Dmitry Golubev , 2003-2004 +Copyright (C) 2004, Gregory Mokhin +Copyright (C) 2006 Erdal Ronahî + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the copyright holder(s) not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. The copyright holder(s) makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +------------------------------------------------------------------------------- + + Copyright 1992 by Oki Technosystems Laboratory, Inc. + Copyright 1992 by Fuji Xerox Co., Ltd. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear +in supporting documentation, and that the name of Oki Technosystems +Laboratory and Fuji Xerox not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. +Oki Technosystems Laboratory and Fuji Xerox make no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS +LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE OF THIS SOFTWARE. diff --git a/app/src/main/jni/libxkbcommon/OWNERS b/app/src/main/jni/libxkbcommon/OWNERS new file mode 100644 index 0000000..6ccd5b6 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/OWNERS @@ -0,0 +1,5 @@ +# Default code reviewers picked from top 3 or more developers. +# Please update this list if you find better candidates. +prabirmsp@google.com +xutan@google.com +yhanada@google.com diff --git a/app/src/main/jni/libxkbcommon/README.version b/app/src/main/jni/libxkbcommon/README.version new file mode 100644 index 0000000..85e5e76 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/README.version @@ -0,0 +1,3 @@ +URL: https://github.com/xkbcommon/libxkbcommon/archive/xkbcommon-0.5.0.tar.gz +Version: 0.5.0 +Owners: denniskempin, adlr diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/.autom4te.cfg b/app/src/main/jni/libxkbcommon/xkbcommon/.autom4te.cfg new file mode 100644 index 0000000..36e4354 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/.autom4te.cfg @@ -0,0 +1,3 @@ +begin-language: "Autoconf-without-aclocal-m4" +args: --cache=build-aux +end-language: "Autoconf-without-aclocal-m4" diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/.travis.yml b/app/src/main/jni/libxkbcommon/xkbcommon/.travis.yml new file mode 100644 index 0000000..88dd261 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/.travis.yml @@ -0,0 +1,12 @@ +language: c + +before_install: + - sudo apt-get update -qq + - sudo apt-get install xutils-dev + +compiler: + - gcc + - clang + +# libxcb too old -- should enable when possible. +script: ./autogen.sh --disable-x11 && make && make check diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/.uncrustify.cfg b/app/src/main/jni/libxkbcommon/xkbcommon/.uncrustify.cfg new file mode 100644 index 0000000..3a02039 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/.uncrustify.cfg @@ -0,0 +1,228 @@ +tok_split_gte=false +utf8_byte=true +utf8_force=true +indent_cmt_with_tabs=false +indent_align_string=false +indent_braces=false +indent_braces_no_func=false +indent_braces_no_class=false +indent_braces_no_struct=false +indent_brace_parent=false +indent_namespace=false +indent_extern=false +indent_class=false +indent_class_colon=false +indent_else_if=false +indent_var_def_cont=false +indent_func_call_param=false +indent_func_def_param=false +indent_func_proto_param=false +indent_func_class_param=false +indent_func_ctor_var_param=false +indent_template_param=false +indent_func_param_double=false +indent_relative_single_line_comments=false +indent_col1_comment=false +indent_access_spec_body=false +indent_paren_nl=false +indent_comma_paren=false +indent_bool_paren=false +indent_first_bool_expr=false +indent_square_nl=false +indent_preserve_sql=false +indent_align_assign=true +sp_balance_nested_parens=false +align_keep_tabs=false +align_with_tabs=false +align_on_tabstop=false +align_number_left=false +align_func_params=false +align_same_func_call_params=false +align_var_def_colon=true +align_var_def_attribute=true +align_var_def_inline=true +align_right_cmt_mix=false +align_on_operator=false +align_mix_var_proto=false +align_single_line_func=false +align_single_line_brace=false +align_nl_cont=false +align_left_shift=true +align_oc_decl_colon=true +nl_collapse_empty_body=true +nl_assign_leave_one_liners=true +nl_class_leave_one_liners=true +nl_enum_leave_one_liners=true +nl_getset_leave_one_liners=true +nl_func_leave_one_liners=true +nl_if_leave_one_liners=true +nl_multi_line_cond=false +nl_multi_line_define=false +nl_before_case=true +nl_after_case=true +nl_after_return=false +nl_after_semicolon=true +nl_after_brace_open=true +nl_after_brace_open_cmt=false +nl_after_vbrace_open=false +nl_after_vbrace_open_empty=false +nl_after_brace_close=false +nl_after_vbrace_close=false +nl_define_macro=false +nl_squeeze_ifdef=false +nl_ds_struct_enum_cmt=false +nl_ds_struct_enum_close_brace=false +nl_create_if_one_liner=false +nl_create_for_one_liner=false +nl_create_while_one_liner=false +ls_for_split_full=false +ls_func_split_full=false +nl_after_multiline_comment=false +eat_blanks_after_open_brace=false +eat_blanks_before_close_brace=false +mod_full_brace_if_chain=false +mod_pawn_semicolon=false +mod_full_paren_if_bool=false +mod_remove_extra_semicolon=false +mod_sort_import=false +mod_sort_using=false +mod_sort_include=false +mod_move_case_break=false +mod_remove_empty_return=false +cmt_indent_multi=true +cmt_c_group=false +cmt_c_nl_start=false +cmt_c_nl_end=false +cmt_cpp_group=false +cmt_cpp_nl_start=false +cmt_cpp_nl_end=false +cmt_cpp_to_c=true +cmt_star_cont=true +cmt_multi_check_last=true +cmt_insert_before_preproc=false +pp_indent_at_level=false +pp_region_indent_code=false +pp_if_indent_code=false +pp_define_at_level=false +indent_columns=4 +indent_brace=0 +indent_switch_case=0 +align_struct_init_span=2 +align_pp_define_gap=0 +align_pp_define_span=2 +align_oc_msg_colon_span=16 +nl_end_of_file_min=1 +nl_func_var_def_blk=0 +code_width=78 +nl_max=2 +newlines=auto +indent_with_tabs=0 +sp_arith=force +sp_assign=force +sp_assign_default=force +sp_before_assign=force +sp_after_assign=force +sp_enum_assign=force +sp_enum_before_assign=force +sp_enum_after_assign=force +sp_pp_stringify=add +sp_bool=force +sp_compare=force +sp_inside_paren=remove +sp_paren_paren=remove +sp_paren_brace=force +sp_before_ptr_star=ignore +sp_before_unnamed_ptr_star=force +sp_before_byref=force +sp_before_unnamed_byref=force +sp_after_byref=remove +sp_after_type=force +sp_before_sparen=force +sp_inside_sparen=remove +sp_inside_sparen_close=remove +sp_after_sparen=force +sp_sparen_brace=force +sp_special_semi=force +sp_before_semi=remove +sp_after_semi=force +sp_after_semi_for=force +sp_after_semi_for_empty=force +sp_before_square=remove +sp_inside_square=remove +sp_after_comma=force +sp_before_comma=remove +sp_paren_comma=force +sp_before_ellipsis=force +sp_after_class_colon=force +sp_before_class_colon=force +sp_before_case_colon=remove +sp_after_cast=force +sp_inside_paren_cast=remove +sp_sizeof_paren=remove +sp_inside_braces_enum=force +sp_inside_braces_struct=force +sp_inside_braces=force +sp_inside_braces_empty=force +sp_func_proto_paren=remove +sp_func_def_paren=remove +sp_inside_fparens=remove +sp_inside_fparen=remove +sp_square_fparen=remove +sp_fparen_brace=force +sp_func_call_paren=remove +sp_func_call_paren_empty=remove +sp_return_paren=force +sp_attribute_paren=remove +sp_defined_paren=remove +sp_macro=force +sp_macro_func=force +sp_else_brace=force +sp_brace_else=force +sp_brace_typedef=force +sp_not=remove +sp_inv=remove +nl_start_of_file=remove +nl_end_of_file=force +nl_assign_square=remove +nl_after_square_assign=remove +nl_fcall_brace=remove +nl_enum_brace=remove +nl_struct_brace=remove +nl_union_brace=remove +nl_if_brace=remove +nl_brace_else=force +nl_elseif_brace=remove +nl_else_brace=remove +nl_else_if=remove +nl_for_brace=remove +nl_do_brace=remove +nl_brace_while=remove +nl_switch_brace=remove +nl_case_colon_brace=force +nl_func_type_name=force +nl_func_type_name_class=force +nl_func_proto_type_name=force +nl_func_paren=remove +nl_func_def_paren=remove +nl_func_decl_start=remove +nl_func_def_start=remove +nl_func_decl_args=remove +nl_func_decl_end=remove +nl_func_def_end=remove +nl_func_decl_end_single=remove +nl_func_def_end_single=remove +nl_func_decl_empty=remove +nl_func_def_empty=remove +nl_fdef_brace=force +nl_return_expr=remove +nl_before_if=ignore +nl_after_if=ignore +nl_before_for=ignore +nl_after_for=ignore +nl_before_while=ignore +nl_after_while=ignore +nl_before_switch=ignore +nl_after_switch=ignore +nl_before_do=ignore +nl_after_do=ignore +pp_space=remove diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/COPYING b/app/src/main/jni/libxkbcommon/xkbcommon/COPYING new file mode 100644 index 0000000..d96c428 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/COPYING @@ -0,0 +1,215 @@ +The following is a list of all copyright notices and license statements which +appear in the xkbcommon source tree. + +If making new contributions, the first form (i.e. Daniel Stone, Ran Benita, +etc) is vastly preferred. + +All licenses are derivative of the MIT/X11 license, mostly identical other +than no-endorsement clauses (e.g. paragraph 4 of The Open Group's license). + +These statements are split into two sections: one for the code compiled and +distributed as part of the libxkbcommon shared library and the code +component of all tests (i.e. everything under src/ and xkbcommon/, plus the +.c and .h files under test/), and another for the test data under test/data, +which is distributed with the xkbcommon source tarball, but not installed to +the system. + + +BEGINNING OF SOFTWARE COPYRIGHT/LICENSE STATEMENTS: + + +------------------------------------------------------------------------------- + +Copyright © 2009-2012 Daniel Stone +Copyright © 2012 Ran Benita +Copyright © 2010, 2012 Intel Corporation +Copyright © 2008, 2009 Dan Nicholson +Copyright © 2010 Francisco Jerez + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice (including the next +paragraph) shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright 1985, 1987, 1988, 1990, 1998 The Open Group + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. + + +------------------------------------------------------------------------------- + + +Copyright (c) 1993, 1994, 1995, 1996 by Silicon Graphics Computer Systems, Inc. + +Permission to use, copy, modify, and distribute this +software and its documentation for any purpose and without +fee is hereby granted, provided that the above copyright +notice appear in all copies and that both that copyright +notice and this permission notice appear in supporting +documentation, and that the name of Silicon Graphics not be +used in advertising or publicity pertaining to distribution +of the software without specific prior written permission. +Silicon Graphics makes no representation about the suitability +of this software for any purpose. It is provided "as is" +without any express or implied warranty. + +SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS +SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON +GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL +DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH +THE USE OR PERFORMANCE OF THIS SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + + +------------------------------------------------------------------------------- + + +Copyright (C) 2011 Joseph Adams + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +------------------------------------------------------------------------------- + + + +END OF SOFTWARE COPYRIGHT/LICENSE STATEMENTS + + +BEGINNING OF LICENSE STATEMENTS FOR UNDISTRIBUTED DATA FILES IN test/data, +derived from xkeyboard-config: + + + +------------------------------------------------------------------------------- + +Copyright 1996 by Joseph Moss +Copyright (C) 2002-2007 Free Software Foundation, Inc. +Copyright (C) Dmitry Golubev , 2003-2004 +Copyright (C) 2004, Gregory Mokhin +Copyright (C) 2006 Erdal Ronahî + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation, and that the name of the copyright holder(s) not be used in +advertising or publicity pertaining to distribution of the software without +specific, written prior permission. The copyright holder(s) makes no +representations about the suitability of this software for any purpose. It +is provided "as is" without express or implied warranty. + +THE COPYRIGHT HOLDER(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. + + +------------------------------------------------------------------------------- + + Copyright 1992 by Oki Technosystems Laboratory, Inc. + Copyright 1992 by Fuji Xerox Co., Ltd. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear +in supporting documentation, and that the name of Oki Technosystems +Laboratory and Fuji Xerox not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. +Oki Technosystems Laboratory and Fuji Xerox make no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS +LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE OF THIS SOFTWARE. diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/Makefile.am b/app/src/main/jni/libxkbcommon/xkbcommon/Makefile.am new file mode 100644 index 0000000..8e45ccb --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/Makefile.am @@ -0,0 +1,309 @@ +ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = xkbcommon.pc + +EXTRA_DIST = \ + makekeys.py \ + src/xkbcomp/keywords.gperf \ + test/data \ + README.md \ + doc/quick-guide.md \ + doc/compat.md \ + doc/keymap-format-text-v1.txt \ + doc/rules-format.txt \ + doc/doxygen-extra.css \ + xkbcommon.map \ + xkbcommon-x11.map \ + PACKAGING + +AM_CPPFLAGS = \ + -DDFLT_XKB_CONFIG_ROOT='"$(XKBCONFIGROOT)"' \ + -DXLOCALEDIR='"$(XLOCALEDIR)"' \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/xkbcomp \ + -I$(top_builddir)/src/xkbcomp \ + -include $(top_builddir)/src/config.h + +AM_CFLAGS = $(BASE_CFLAGS) + +AM_LDFLAGS = -no-undefined +if HAVE_NO_UNDEFINED +AM_LDFLAGS += -Wl,--no-undefined +endif + +AM_YFLAGS = -d -p _xkbcommon_ + +xkbcommonincludedir = $(includedir)/xkbcommon +xkbcommoninclude_HEADERS = \ + xkbcommon/xkbcommon.h \ + xkbcommon/xkbcommon-compat.h \ + xkbcommon/xkbcommon-compose.h \ + xkbcommon/xkbcommon-keysyms.h \ + xkbcommon/xkbcommon-names.h + +lib_LTLIBRARIES = libxkbcommon.la +libxkbcommon_la_SOURCES = \ + src/compose/parser.c \ + src/compose/parser.h \ + src/compose/paths.c \ + src/compose/paths.h \ + src/compose/state.c \ + src/compose/table.c \ + src/compose/table.h \ + src/xkbcomp/action.c \ + src/xkbcomp/action.h \ + src/xkbcomp/ast.h \ + src/xkbcomp/ast-build.c \ + src/xkbcomp/ast-build.h \ + src/xkbcomp/compat.c \ + src/xkbcomp/expr.c \ + src/xkbcomp/expr.h \ + src/xkbcomp/include.c \ + src/xkbcomp/include.h \ + src/xkbcomp/keycodes.c \ + src/xkbcomp/keymap.c \ + src/xkbcomp/keymap-dump.c \ + src/xkbcomp/keywords.c \ + src/xkbcomp/parser.y \ + src/xkbcomp/parser-priv.h \ + src/xkbcomp/rules.c \ + src/xkbcomp/rules.h \ + src/xkbcomp/scanner.c \ + src/xkbcomp/symbols.c \ + src/xkbcomp/types.c \ + src/xkbcomp/vmod.c \ + src/xkbcomp/vmod.h \ + src/xkbcomp/xkbcomp.c \ + src/xkbcomp/xkbcomp-priv.h \ + src/atom.c \ + src/atom.h \ + src/context.c \ + src/context.h \ + src/context-priv.c \ + src/darray.h \ + src/keysym.c \ + src/keysym.h \ + src/keysym-utf.c \ + src/ks_tables.h \ + src/keymap.c \ + src/keymap.h \ + src/keymap-priv.c \ + src/scanner-utils.h \ + src/state.c \ + src/text.c \ + src/text.h \ + src/utf8.c \ + src/utf8.h \ + src/utils.c \ + src/utils.h +libxkbcommon_la_LDFLAGS = -Wl,--version-script=${srcdir}/xkbcommon.map + +if ENABLE_X11 +pkgconfig_DATA += xkbcommon-x11.pc + +xkbcommon_x11includedir = $(xkbcommonincludedir) +xkbcommon_x11include_HEADERS = \ + xkbcommon/xkbcommon-x11.h + +lib_LTLIBRARIES += libxkbcommon-x11.la + +libxkbcommon_x11_la_CFLAGS = $(AM_CFLAGS) $(XCB_XKB_CFLAGS) +libxkbcommon_x11_la_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/src/x11 +libxkbcommon_x11_la_LIBADD = libxkbcommon.la $(XCB_XKB_LIBS) +libxkbcommon_x11_la_LDFLAGS = -Wl,--version-script=${srcdir}/xkbcommon-x11.map + +libxkbcommon_x11_la_SOURCES = \ + src/x11/keymap.c \ + src/x11/state.c \ + src/x11/util.c \ + src/x11/x11-priv.h \ + src/context.h \ + src/context-priv.c \ + src/keymap.h \ + src/keymap-priv.c \ + src/atom.h \ + src/atom.c +endif ENABLE_X11 + +BUILT_SOURCES = \ + src/xkbcomp/parser.c \ + src/xkbcomp/parser.h +CLEANFILES = $(BUILT_SOURCES) + +src/xkbcomp/parser.c: $(top_builddir)/src/$(am__dirstamp) $(top_builddir)/src/xkbcomp/$(am__dirstamp) +src/xkbcomp/parser.h: $(top_builddir)/src/$(am__dirstamp) $(top_builddir)/src/xkbcomp/$(am__dirstamp) + +## +# Documentation +## + +if ENABLE_DOCS +if HAVE_DOXYGEN +doc: doc/stamp-doxygen +clean-doc: clean-doxygen +all-local:: doc +clean-local:: clean-doc + +doc/stamp-doxygen: $(top_srcdir)/xkbcommon/*.h + $(AM_V_GEN)$(DOXYGEN) doc/Doxyfile + touch $@ + +clean-doxygen: + rm -rf doc/html doc/stamp-doxygen + +install-data-local:: doc + $(MKDIR_P) $(DESTDIR)$(htmldir) + $(INSTALL_DATA) doc/html/* $(DESTDIR)$(htmldir) + +uninstall-local:: + rm -rf $(DESTDIR)$(htmldir) +endif HAVE_DOXYGEN +endif ENABLE_DOCS + +## +# Tests +## + +# Some tests need to use unexported symbols, so we link them against +# a private copy of libxkbcommon with all symbols exposed. +check_LTLIBRARIES = libtest.la +libtest_la_SOURCES = \ + $(libxkbcommon_la_SOURCES) \ + test/common.c \ + test/test.h \ + test/evdev-scancodes.h + +AM_TESTS_ENVIRONMENT = \ + XKB_LOG_LEVEL=debug; export XKB_LOG_LEVEL; \ + XKB_LOG_VERBOSITY=10; export XKB_LOG_VERBOSITY; \ + $(XORG_MALLOC_DEBUG_ENV) + +TESTS = \ + test/keysym \ + test/filecomp \ + test/context \ + test/rules-file \ + test/stringcomp \ + test/buffercomp \ + test/log \ + test/atom \ + test/utf8 \ + test/state \ + test/keyseq \ + test/rulescomp \ + test/compose +check_PROGRAMS = \ + test/rmlvo-to-kccgst \ + test/print-compiled-keymap + +TESTS_LDADD = libtest.la + +test_keysym_LDADD = $(TESTS_LDADD) +test_filecomp_LDADD = $(TESTS_LDADD) +test_context_LDADD = $(TESTS_LDADD) +test_rules_file_CFLAGS = $(AM_CFLAGS) -Wno-declaration-after-statement +test_rules_file_LDADD = $(TESTS_LDADD) +test_stringcomp_LDADD = $(TESTS_LDADD) +test_buffercomp_LDADD = $(TESTS_LDADD) +test_log_LDADD = $(TESTS_LDADD) +test_atom_LDADD = $(TESTS_LDADD) +test_utf8_LDADD = $(TESTS_LDADD) +test_state_LDADD = $(TESTS_LDADD) +test_keyseq_LDADD = $(TESTS_LDADD) +test_rulescomp_LDADD = $(TESTS_LDADD) +test_rmlvo_to_kccgst_LDADD = $(TESTS_LDADD) +test_print_compiled_keymap_LDADD = $(TESTS_LDADD) +test_compose_LDADD = $(TESTS_LDADD) $(RT_LIBS) + +if BUILD_LINUX_TESTS +check_PROGRAMS += \ + test/interactive-evdev + +test_interactive_evdev_LDADD = $(TESTS_LDADD) +endif BUILD_LINUX_TESTS + +if ENABLE_X11 +TESTS += \ + test/x11 \ + test/x11comp +check_PROGRAMS += \ + test/interactive-x11 + +TESTS_X11_LDADD = $(XCB_XKB_LIBS) $(TESTS_LDADD) libxkbcommon-x11.la +TESTS_X11_CFLAGS = $(XCB_XKB_CFLAGS) + +test_x11_LDADD = $(TESTS_X11_LDADD) +test_x11_CFLAGS = $(TESTS_X11_CFLAGS) +test_x11comp_LDADD = $(TESTS_X11_LDADD) +test_x11comp_CFLAGS = $(TESTS_X11_CFLAGS) +test_interactive_x11_LDADD = $(TESTS_X11_LDADD) +test_interactive_x11_CFLAGS = $(TESTS_X11_CFLAGS) +endif ENABLE_X11 + +check_PROGRAMS += $(TESTS) + +## +# Benchmarks +## + +BENCH_LDADD = $(TESTS_LDADD) $(RT_LIBS) + +check_PROGRAMS += \ + bench/key-proc \ + bench/rules \ + bench/rulescomp \ + bench/compose +bench_key_proc_LDADD = $(BENCH_LDADD) +bench_rules_LDADD = $(BENCH_LDADD) +bench_rulescomp_LDADD = $(BENCH_LDADD) +bench_compose_LDADD = $(BENCH_LDADD) + +## +# Custom targets +## + +# This sed script strips out lines that start with '#define _' which +# removes #define _OSF_Keysyms and such. The XK_Ydiaeresis case is to +# handle a duplicate definition in HPkeysyms.h which kicks in if it's +# not already defined. +X11_INCLUDEDIR = /usr/include/X11 +KEYSYMDEFS = \ + $(X11_INCLUDEDIR)/keysymdef.h \ + $(X11_INCLUDEDIR)/XF86keysym.h \ + $(X11_INCLUDEDIR)/Sunkeysym.h \ + $(X11_INCLUDEDIR)/DECkeysym.h \ + $(X11_INCLUDEDIR)/HPkeysym.h +update-keysyms: + echo -en '#ifndef _XKBCOMMON_KEYSYMS_H\n#define _XKBCOMMON_KEYSYMS_H\n\n' > $(top_srcdir)/xkbcommon/xkbcommon-keysyms.h + echo -en '/* This file is autogenerated from Makefile.am; please do not commit directly. */\n\n' >> $(top_srcdir)/xkbcommon/xkbcommon-keysyms.h + echo -en '#define XKB_KEY_NoSymbol 0x000000 /* Special KeySym */\n\n' >> $(top_srcdir)/xkbcommon/xkbcommon-keysyms.h + sed -e '/XK_Ydiaeresis\s*0x100000ee/d' \ + -e '/#define _/d' \ + -e 's/#define\s*\(\w*\)XK_/#define XKB_KEY_\1/' \ + -e '/\(#ifdef\|#ifndef\|#endif\)/d' $(KEYSYMDEFS) >> $(top_srcdir)/xkbcommon/xkbcommon-keysyms.h + echo -en '\n\n#endif\n' >> $(top_srcdir)/xkbcommon/xkbcommon-keysyms.h + LC_CTYPE=C python $(top_srcdir)/makekeys.py $(top_srcdir)/xkbcommon/xkbcommon-keysyms.h > $(top_srcdir)/src/ks_tables.h + +# Run this if you add/remove a new keyword to the xkbcomp scanner, +# or just want to regenerate the gperf file. +update-keywords: + $(AM_V_GEN)gperf < $(top_srcdir)/src/xkbcomp/keywords.gperf > $(top_srcdir)/src/xkbcomp/keywords.c + +## +# Android stuff +## + +Android_build.mk: Makefile $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libxkbcommon \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + \ + -:STATIC libxkbcommon \ + -:TAGS eng debug \ + -:SOURCES $(filter-out %.l %.y,$(libxkbcommon_la_SOURCES)) $(BUILT_SOURCES) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(AM_CPPFLAGS) $(AM_CFLAGS) \ + -:LDFLAGS $(AM_LDFLAGS) \ + \ + -:PASSTHROUGH 'libxkbcommon-clean: clean-libxkbcommon' \ + > $@ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/NEWS b/app/src/main/jni/libxkbcommon/xkbcommon/NEWS new file mode 100644 index 0000000..bec2bd9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/NEWS @@ -0,0 +1,218 @@ +libxkbcommon 0.5.0 - 2014-10-18 +================== + +- Added support for Compose/dead keys in a new module (included in + libxkbcommon). See the documentation or the + xkbcommon/xkbcommon-compose.h header file for more details. + +- Improved and reordered some sections of the documentation. + +- The doxygen HTML pages were made nicer to read. + +- Most tests now run also on non-linux platforms. + +- A warning is emitted by default about RMLVO values which are not used + during keymap compilation, which are most often a user misconfiguration. + For example, "terminate:ctrl_alt_backspace" instead of + "terminate:ctrl_alt_bksp". + +- Added symbol versioning for libxkbcommon and libxkbcommon-x11. + Note: binaries compiled against this and future versions will not be + able to link against the previous versions of the library. + +- Removed several compatablity symbols from the binary (the API isn't + affected). This affects binaries which + + 1. Were compiled against a pre-stable (<0.2.0) version of libxkbcommon, and + 2. Are linked against the this or later version of libxkbcommon. + + Such a scenario is likely to fail already. + +- If Xvfb is not available, the x11comp test is now correctly skipped + instead of hanging. + +- Benchmarks were moved to a separate bench/ directory. + +- Build fixes from OpenBSD. + +- Fixed a bug where key type entries such as "map[None] = Level2;" were + ignored. + +- New API: + XKB_COMPOSE_* + xkb_compose_* + +libxkbcommon 0.4.3 - 2014-08-19 +================== + +- Fixed a bug which caused xkb_x11_keymap_new_from_device() to misrepresent + modifiers for some keymaps. + + https://github.com/xkbcommon/libxkbcommon/issues/9 + +- Fixed a bug which caused xkb_x11_keymap_new_from_device() to ignore XKB + PrivateAction's. + +- Modifiers are now always fully resolved after xkb_state_update_mask(). + Previously the given state components were used as-is, without + considering virtual modifier mappings. + Note: this only affects non-standard uses of xkb_state_update_mask(). + +- Added a test for xkbcommon-x11, "x11comp". The test uses the system's + Xvfb server and xkbcomp. If they do not exist or fail, the test is + skipped. + +- Fixed memory leaks after parse errors in the XKB yacc parser. + The fix required changes which are currently incompatible with byacc. + +libxkbcommon 0.4.2 - 2014-05-15 +================== + +- Fixed a bug where explicitly passing "--enable-x11" to ./configure would + in fact disable it (regressed in 0.4.1). + +- Added @since version annotations to the API documentation for everything + introduced after the initial stable release (0.2.0). + +- Added a section to the documentation about keysym transformations, and + clarified which functions perform a given transformation. + +- XKB files which fail to compile during keymap construction can no longer + have any effect on the resulting keymap: changes are only applied when + the entire compilation succeeds. + Note: this was a minor correctness issue inherited from xkbcomp. + +- Fix an out-of-bounds array access in src/x11/util.c:adopt_atoms() + error-handling code. + Note: it seems impossible to trigger in the current code since the input + size cannot exceed the required size. + +libxkbcommon 0.4.1 - 2014-03-27 +================== + +- Converted README to markdown and added a Quick Guide to the + documentation, which breezes through the most common parts of + xkbcommon. + +- Added two new functions, xkb_state_key_get_utf{8,32}(). They + combine the operations of xkb_state_key_get_syms() and + xkb_keysym_to_utf{8,32}(), and provide a nicer interface for it + (espcially for multiple-keysyms-per-level). + +- The xkb_state_key_get_utf{8,32}() functions now apply Control + transformation: when the Control modifier is active, the string + is converted to an appropriate control character. + This matches the behavior of libX11's XLookupString(3), and + required by the XKB specification: + http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier + + https://bugs.freedesktop.org/show_bug.cgi?id=75892 + +- The consumed modifiers for a key are now calculated similarly + to libX11. The previous behavior caused a bug where Shift would + not cancel an active Caps Lock. + +- Make xkbcommon-x11 work with the keymap reported by the XQuartz + X server. + + https://bugs.freedesktop.org/show_bug.cgi?id=75798 + +- Reduce memory usage during keymap compilation some more. + +- New API: + xkb_state_key_get_consumed_mods() + xkb_state_key_get_utf8() + xkb_state_key_get_utf32() + +- Deprecated API: + XKB_MAP_COMPILE_PLACEHOLDER, XKB_MAP_NO_FLAGS + use XKB_KEYMAP_NO_FLAGS instead. + +- Bug fixes. + +libxkbcommon 0.4.0 - 2014-02-02 +================== + +- Add a new add-on library, xkbcommon-x11, to support creating keymaps + with the XKB X11 protocol, by querying the X server directly. + See the xkbcommon/xkbcommon-x11.h header file for more details. + This library requires libxcb-xkb >= 1.10, and is enabled by default. + It can be disabled with the --disable-x11 configure switch. + Distributions are encouraged to split the necessary files for this + library (libxkbcommon-x11.so, xkbcommon-x11.pc, xkbcommon/xkbcommon-x11.h) + to a separate package, such that the main package does not depend on + X11 libraries. + +- Fix the keysym <-> name lookup table to not require huge amounts of + relocations. + +- Fix a bug in the keysym <-> name lookup, whereby lookup might fail in + some rare cases. + +- Reduce memory usage during keymap compilation. + +- New API: + New keysyms from xproto 7.0.25 (German T3 layout keysyms). + XKB_MOD_NAME_NUM for the usual NumLock modifier. + xkb_x11_* types and functions, XKB_X11_* constants. + + +libxkbcommon 0.3.2 - 2013-11-22 +================== + +- Log messages from the library now look like "xkbcommon: ERROR" by + default, instead of xkbcomp-like "Error: ". + +- Apply capitalization transformation on keysyms in + xkb_keysym_get_one_sym(), to match the behavior specified in the XKB + specification: + http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier + +- Support byacc for generating the parser, in addition to Bison. + +- New API: + XKB_KEY_XF86AudioMicMute keysym from xproto 7.0.24. + XKB_KEYSYM_NO_FLAGS + XKB_CONTEXT_NO_FLAGS + XKB_MAP_COMPILE_NO_FLAGS + +- Bug fixes. + + +libxkbcommon 0.3.1 - 2013-06-03 +================== + +- Replace the flex scanner with a hand-written one. flex is no longer + a build requirement. + +- New API: + xkb_keymap_min_keycode() + xkb_keymap_max_keycode() + xkb_keymap_key_for_each() + + +libxkbcommon 0.3.0 - 2013-04-01 +================== + +- Allow passing NULL to *_unref() functions; do nothing instead of + crashing. + +- The functions xkb_keymap_num_levels_for_key() and + xkb_keymap_get_syms_by_level() now allow out-of-range values for the + 'layout' parameter. The functions now wrap the value around the number + of layouts instead of failing. + +- The function xkb_keysym_get_name() now types unicode keysyms in + uppercase and 0-padding, to match the format used by XKeysymToString(). + +- Building Linux-specific tests is no longer attempted on non-Linux + environments. + +- The function xkb_keymap_new_from_names() now accepts a NULL value for + the 'names' parameter, instead of failing. This is equivalent to passing + a 'struct xkb_rule_names' with all fields set to NULL. + +- New API: + xkb_keymap_new_from_buffer() + +- Bug fixes. diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/PACKAGING b/app/src/main/jni/libxkbcommon/xkbcommon/PACKAGING new file mode 100644 index 0000000..738ccc4 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/PACKAGING @@ -0,0 +1,50 @@ +libxkbcommon consists of two shared libraries, libxkbcommon (the main +library) and libxkbcommon-x11 (an addon library for XCB clients). + +The files for libxkbcommon-x11 are: + libxkbcommon-x11.a libxkbcommon.so* xkbcommon/xkbcommon-x11.h + xkbcommon-x11.map xkbcommon-x11.pc + +libxkbcommon-x11 can be disabled with --disable-x11 (see +`./configure --help` for other options/variables). + +Dependencies for libxkbcommon: +- C compiler, autoconf, automake, pkg-config, libc, etc. + +- (build optional) xorg-util-macros. + Output included in tarball. + +- (build optional) bison (preferred) or byacc>=20141006. + Output included in tarball. + byacc must be configured with --enable-btyacc. + +- (build optional, runtime) xkeyboard-config. + During build, for automatically detecting the value of + --with-xkb-config-root instead of guessing (/usr/share/X11/xkb). + During runtime, not strictly needed, but most users of the library + would need it. + +- (runtime) libX11. + Contains the dataset for Compose support (/usr/share/X11/locale). + Please don't depend on it explicitly. + +- (build optional) doxygen. + For generating the HTML documentation. + +- (build optional) gperf. + Output included in git and tarball. To regenerate, use + `make update-keywords`. + +Dependencies for libxkbcommon-x11: +- libxkbcommon. + +- libxcb>=1.10 with libxcb-xkb. + +Dependencies for libxkbcommon-x11 tests: +- xkbcomp, Xvfb. + If they are not available, the relevant tests are skipped. + +Unless libxcb is always available as part of the system, it is preferred +that libxkbcommon and libxkbcommon-x11 be split into separate packages, +such that the main library does not depend on libxcb. This avoids a +transitive dependency of Wayland clients on X libraries. diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/README.md b/app/src/main/jni/libxkbcommon/xkbcommon/README.md new file mode 100644 index 0000000..867b532 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/README.md @@ -0,0 +1,59 @@ +# libxkbcommon + +libxkbcommon is a keyboard keymap compiler and support library which +processes a reduced subset of keymaps as defined by the XKB (X Keyboard +Extension) specification. It also contains a module for handling Compose +and dead keys. + +## Quick Guide + +See [Quick Guide](doc/quick-guide.md). + +## API + +While libxkbcommon's API is somewhat derived from the classic XKB API as found +in X11/extensions/XKB.h and friends, it has been substantially reworked to +expose fewer internal details to clients. + +See the [API Documentation](http://xkbcommon.org/doc/current/modules.html). + +## Dataset + +libxkbcommon does not distribute a keymap dataset itself, other than for +testing purposes. The most common dataset is xkeyboard-config, which is used +by all current distributions for their X11 XKB data. More information on +xkeyboard-config is available here: + http://www.freedesktop.org/wiki/Software/XKeyboardConfig + +The dataset for Compose is distributed in libX11, as part of the X locale +data. + +## Relation to X11 + +See [Compatibility](doc/compat.md) notes. + +## Development + +An extremely rudimentary homepage can be found at + http://xkbcommon.org + +xkbcommon is maintained in git at + https://github.com/xkbcommon/libxkbcommon + +Patches are always welcome, and may be sent to either + or +or through github. + +Bugs are also welcome, and may be reported either at + Bugzilla https://bugs.freedesktop.org/describecomponents.cgi?product=libxkbcommon +or + Github https://github.com/xkbcommon/libxkbcommon/issues + +The maintainers are +- Daniel Stone +- Ran Benita + +## Credits + +Many thanks are due to Dan Nicholson for his heroic work in getting xkbcommon +off the ground initially. diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/autogen.sh b/app/src/main/jni/libxkbcommon/xkbcommon/autogen.sh new file mode 100755 index 0000000..c7467f1 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/autogen.sh @@ -0,0 +1,14 @@ +#!/bin/sh -e + +srcdir=`dirname "$0"` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd "$srcdir" + +autoreconf --verbose --install --force --warnings=all +cd "$ORIGDIR" + +if test -z "$NOCONFIGURE"; then + exec "$srcdir/configure" "$@" +fi diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/bench/.gitignore b/app/src/main/jni/libxkbcommon/xkbcommon/bench/.gitignore new file mode 100644 index 0000000..cd32dfc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/bench/.gitignore @@ -0,0 +1,4 @@ +key-proc +rules +rulescomp +compose diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/bench/compose.c b/app/src/main/jni/libxkbcommon/xkbcommon/bench/compose.c new file mode 100644 index 0000000..e2ded57 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/bench/compose.c @@ -0,0 +1,76 @@ +/* + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "xkbcommon/xkbcommon-compose.h" + +#include "../test/test.h" + +#define BENCHMARK_ITERATIONS 1000 + +int +main(void) +{ + struct xkb_context *ctx; + struct timespec start, stop, elapsed; + char *path; + FILE *file; + struct xkb_compose_table *table; + + ctx = test_get_context(CONTEXT_NO_FLAG); + assert(ctx); + + path = test_get_path("compose/en_US.UTF-8/Compose"); + file = fopen(path, "r"); + + xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); + xkb_context_set_log_verbosity(ctx, 0); + + clock_gettime(CLOCK_MONOTONIC, &start); + for (int i = 0; i < BENCHMARK_ITERATIONS; i++) { + rewind(file); + table = xkb_compose_table_new_from_file(ctx, file, "", + XKB_COMPOSE_FORMAT_TEXT_V1, + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + xkb_compose_table_unref(table); + } + clock_gettime(CLOCK_MONOTONIC, &stop); + + fclose(file); + free(path); + + elapsed.tv_sec = stop.tv_sec - start.tv_sec; + elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec; + if (elapsed.tv_nsec < 0) { + elapsed.tv_nsec += 1000000000; + elapsed.tv_sec--; + } + + fprintf(stderr, "compiled %d compose tables in %ld.%09lds\n", + BENCHMARK_ITERATIONS, elapsed.tv_sec, elapsed.tv_nsec); + + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/bench/key-proc.c b/app/src/main/jni/libxkbcommon/xkbcommon/bench/key-proc.c new file mode 100644 index 0000000..255f033 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/bench/key-proc.c @@ -0,0 +1,95 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include + +#include "../test/test.h" + +#define BENCHMARK_ITERATIONS 20000000 + +static void +bench(struct xkb_state *state) +{ + int8_t keys[256] = { 0 }; + xkb_keycode_t keycode; + xkb_keysym_t keysym; + int i; + + for (i = 0; i < BENCHMARK_ITERATIONS; i++) { + keycode = (rand() % (255 - 9)) + 9; + if (keys[keycode]) { + xkb_state_update_key(state, keycode, XKB_KEY_UP); + keys[keycode] = 0; + keysym = xkb_state_key_get_one_sym(state, keycode); + (void) keysym; + } else { + xkb_state_update_key(state, keycode, XKB_KEY_DOWN); + keys[keycode] = 1; + } + } +} + +int +main(void) +{ + struct xkb_context *ctx; + struct xkb_keymap *keymap; + struct xkb_state *state; + struct timespec start, stop, elapsed; + + ctx = test_get_context(0); + assert(ctx); + + keymap = test_compile_rules(ctx, "evdev", "pc104", "us,ru,il,de", + ",,,neo", "grp:menu_toggle"); + assert(keymap); + + state = xkb_state_new(keymap); + assert(state); + + xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); + xkb_context_set_log_verbosity(ctx, 0); + + srand(time(NULL)); + + clock_gettime(CLOCK_MONOTONIC, &start); + bench(state); + clock_gettime(CLOCK_MONOTONIC, &stop); + + elapsed.tv_sec = stop.tv_sec - start.tv_sec; + elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec; + if (elapsed.tv_nsec < 0) { + elapsed.tv_nsec += 1000000000; + elapsed.tv_sec--; + } + + fprintf(stderr, "ran %d iterations in %ld.%09lds\n", + BENCHMARK_ITERATIONS, elapsed.tv_sec, elapsed.tv_nsec); + + xkb_state_unref(state); + xkb_keymap_unref(keymap); + xkb_context_unref(ctx); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/bench/rules.c b/app/src/main/jni/libxkbcommon/xkbcommon/bench/rules.c new file mode 100644 index 0000000..d92ed07 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/bench/rules.c @@ -0,0 +1,71 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "../test/test.h" +#include "xkbcomp-priv.h" +#include "rules.h" + +#define BENCHMARK_ITERATIONS 20000 + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx; + struct timespec start, stop, elapsed; + int i; + struct xkb_rule_names rmlvo = { + "evdev", "pc105", "us,il", ",", "ctrl:nocaps,grp:menu_toggle", + }; + struct xkb_component_names kccgst; + + ctx = test_get_context(0); + assert(ctx); + + xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); + xkb_context_set_log_verbosity(ctx, 0); + + clock_gettime(CLOCK_MONOTONIC, &start); + for (i = 0; i < BENCHMARK_ITERATIONS; i++) { + assert(xkb_components_from_rules(ctx, &rmlvo, &kccgst)); + free(kccgst.keycodes); + free(kccgst.types); + free(kccgst.compat); + free(kccgst.symbols); + } + clock_gettime(CLOCK_MONOTONIC, &stop); + + elapsed.tv_sec = stop.tv_sec - start.tv_sec; + elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec; + if (elapsed.tv_nsec < 0) { + elapsed.tv_nsec += 1000000000; + elapsed.tv_sec--; + } + + fprintf(stderr, "processed %d rule files in %ld.%09lds\n", + BENCHMARK_ITERATIONS, elapsed.tv_sec, elapsed.tv_nsec); + + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/bench/rulescomp.c b/app/src/main/jni/libxkbcommon/xkbcommon/bench/rulescomp.c new file mode 100644 index 0000000..16f2bf5 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/bench/rulescomp.c @@ -0,0 +1,64 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "../test/test.h" + +#define BENCHMARK_ITERATIONS 2500 + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx; + struct xkb_keymap *keymap; + struct timespec start, stop, elapsed; + int i; + + ctx = test_get_context(0); + assert(ctx); + + xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); + xkb_context_set_log_verbosity(ctx, 0); + + clock_gettime(CLOCK_MONOTONIC, &start); + for (i = 0; i < BENCHMARK_ITERATIONS; i++) { + keymap = test_compile_rules(ctx, "evdev", "evdev", "us", "", ""); + assert(keymap); + xkb_keymap_unref(keymap); + } + clock_gettime(CLOCK_MONOTONIC, &stop); + + elapsed.tv_sec = stop.tv_sec - start.tv_sec; + elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec; + if (elapsed.tv_nsec < 0) { + elapsed.tv_nsec += 1000000000; + elapsed.tv_sec--; + } + + fprintf(stderr, "compiled %d keymaps in %ld.%09lds\n", + BENCHMARK_ITERATIONS, elapsed.tv_sec, elapsed.tv_nsec); + + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/compile b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/compile new file mode 100755 index 0000000..531136b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/compile @@ -0,0 +1,347 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2012-10-14.11; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/config.guess b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/config.guess new file mode 100755 index 0000000..b79252d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/config.guess @@ -0,0 +1,1558 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-06-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2013 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/config.sub b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/config.sub new file mode 100755 index 0000000..9633db7 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/config.sub @@ -0,0 +1,1791 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-08-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2013 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 \ + | or1k | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or1k-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/depcomp b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/depcomp new file mode 100755 index 0000000..4ebd5b3 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2013-05-30.07; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/install-sh b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/install-sh new file mode 100755 index 0000000..377bb86 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-11-20.07; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/ltmain.sh b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/ltmain.sh new file mode 100644 index 0000000..a356aca --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/ltmain.sh @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1" +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/missing b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/missing new file mode 100755 index 0000000..db98974 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.0 b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.0 new file mode 100644 index 0000000..0722728 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.0 @@ -0,0 +1,21655 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.69 for libxkbcommon 0.5.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p + +@%:@ as_fn_executable_p FILE +@%:@ ----------------------- +@%:@ Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} @%:@ as_fn_executable_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libxkbcommon' +PACKAGE_TARNAME='libxkbcommon' +PACKAGE_VERSION='0.5.0' +PACKAGE_STRING='libxkbcommon 0.5.0' +PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon' +PACKAGE_URL='http://xkbcommon.org' + +ac_unique_file="Makefile.am" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +ENABLE_X11_FALSE +ENABLE_X11_TRUE +XCB_XKB_LIBS +XCB_XKB_CFLAGS +XLOCALEDIR +XKBCONFIGROOT +RT_LIBS +HAVE_NO_UNDEFINED_FALSE +HAVE_NO_UNDEFINED_TRUE +BUILD_LINUX_TESTS_FALSE +BUILD_LINUX_TESTS_TRUE +YACC_INST +YFLAGS +YACC +HAVE_DOXYGEN_FALSE +HAVE_DOXYGEN_TRUE +DOXYGEN +ENABLE_DOCS_FALSE +ENABLE_DOCS_TRUE +XORG_MALLOC_DEBUG_ENV +MAN_SUBSTS +XORG_MAN_PAGE +ADMIN_MAN_DIR +DRIVER_MAN_DIR +MISC_MAN_DIR +FILE_MAN_DIR +LIB_MAN_DIR +APP_MAN_DIR +ADMIN_MAN_SUFFIX +DRIVER_MAN_SUFFIX +MISC_MAN_SUFFIX +FILE_MAN_SUFFIX +LIB_MAN_SUFFIX +APP_MAN_SUFFIX +INSTALL_CMD +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CHANGELOG_CMD +STRICT_CFLAGS +CWARNFLAGS +BASE_CFLAGS +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_selective_werror +enable_strict_compilation +enable_docs +with_doxygen +with_xkb_config_root +with_x_locale_root +with_default_rules +with_default_model +with_default_layout +with_default_variant +with_default_options +enable_x11 +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +XORG_MALLOC_DEBUG_ENV +DOXYGEN +YACC +YFLAGS +XCB_XKB_CFLAGS +XCB_XKB_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libxkbcommon 0.5.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/libxkbcommon@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libxkbcommon 0.5.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-selective-werror + Turn off selective compiler errors. (default: + enabled) + --enable-strict-compilation + Enable all warnings from compiler and make them + errors (default: disabled) + --enable-docs Enable building the documentation (default: yes) + --disable-x11 Disable support for creating keymaps with the X11 + protocol (default: enabled) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + --with-doxygen Use doxygen to regenerate documentation (default: + auto) + --with-xkb-config-root= + Set default XKB config root (default: + xkeyboard-config install path) + --with-x-locale-root= + Set X locale root (default: @S|@datadir/X11/locale) + --with-default-rules= + Default XKB ruleset (default: evdev) + --with-default-model= + Default XKB model (default: pc105) + --with-default-layout= + Default XKB layout (default: us) + --with-default-variant= + Default XKB variant (default: (none)) + --with-default-options= + Default XKB options (default: (none)) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + XORG_MALLOC_DEBUG_ENV + Environment variables to enable memory checking in tests + DOXYGEN Path to doxygen command + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. + YFLAGS The list of arguments that will be passed by default to @S|@YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. + XCB_XKB_CFLAGS + C compiler flags for XCB_XKB, overriding pkg-config + XCB_XKB_LIBS + linker flags for XCB_XKB, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +libxkbcommon home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libxkbcommon configure 0.5.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------------------------------------------ ## +## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon ## +## ------------------------------------------------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +@%:@ --------------------------------------------- +@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +@%:@ accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +@%:@ifndef $as_decl_name +@%:@ifdef __cplusplus + (void) $as_decl_use; +@%:@else + (void) $as_decl_name; +@%:@endif +@%:@endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_decl +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libxkbcommon $as_me 0.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_config_headers="$ac_config_headers src/config.h" + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Initialize Automake +am__api_version='1.14' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # 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_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libxkbcommon' + VERSION='0.5.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# 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: + +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: . + +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 + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + @%:@ Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +# Get _GNU_SOURCE and friends +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "@%:@define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h + + + +# Initialize libtool +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + 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 $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +# Add xorg-macros stuff + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + +fi + + + + + + +ac_fn_c_check_decl "$LINENO" "__clang__" "ac_cv_have_decl___clang__" "$ac_includes_default" +if test "x$ac_cv_have_decl___clang__" = xyes; then : + CLANGCC="yes" +else + CLANGCC="no" +fi + +ac_fn_c_check_decl "$LINENO" "__INTEL_COMPILER" "ac_cv_have_decl___INTEL_COMPILER" "$ac_includes_default" +if test "x$ac_cv_have_decl___INTEL_COMPILER" = xyes; then : + INTELCC="yes" +else + INTELCC="no" +fi + +ac_fn_c_check_decl "$LINENO" "__SUNPRO_C" "ac_cv_have_decl___SUNPRO_C" "$ac_includes_default" +if test "x$ac_cv_have_decl___SUNPRO_C" = xyes; then : + SUNCC="yes" +else + SUNCC="no" +fi + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + + + + +@%:@ Check whether --enable-selective-werror was given. +if test "${enable_selective_werror+set}" = set; then : + enableval=$enable_selective_werror; SELECTIVE_WERROR=$enableval +else + SELECTIVE_WERROR=yes +fi + + + + + +# -v is too short to test reliably with XORG_TESTSET_CFLAG +if test "x$SUNCC" = "xyes"; then + BASE_CFLAGS="-v" +else + BASE_CFLAGS="" +fi + +# This chunk of warnings were those that existed in the legacy CWARNFLAGS + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wall" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wall" >&5 +$as_echo_n "checking if $CC supports-Wall... " >&6; } + cacheid=xorg_cv_cc_flag__Wall + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wall" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wpointer-arith" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-arith" >&5 +$as_echo_n "checking if $CC supports-Wpointer-arith... " >&6; } + cacheid=xorg_cv_cc_flag__Wpointer_arith + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wpointer-arith" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-declarations" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-declarations" >&5 +$as_echo_n "checking if $CC supports-Wmissing-declarations... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_declarations + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-declarations" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wformat=2" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat=2" >&5 +$as_echo_n "checking if $CC supports-Wformat=2... " >&6; } + cacheid=xorg_cv_cc_flag__Wformat_2 + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wformat=2" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wformat" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat" >&5 +$as_echo_n "checking if $CC supports-Wformat... " >&6; } + cacheid=xorg_cv_cc_flag__Wformat + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wformat" + found="yes" + fi + fi + + + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wstrict-prototypes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wstrict-prototypes" >&5 +$as_echo_n "checking if $CC supports-Wstrict-prototypes... " >&6; } + cacheid=xorg_cv_cc_flag__Wstrict_prototypes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wstrict-prototypes" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-prototypes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-prototypes" >&5 +$as_echo_n "checking if $CC supports-Wmissing-prototypes... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_prototypes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-prototypes" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wnested-externs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnested-externs" >&5 +$as_echo_n "checking if $CC supports-Wnested-externs... " >&6; } + cacheid=xorg_cv_cc_flag__Wnested_externs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wnested-externs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wbad-function-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wbad-function-cast" >&5 +$as_echo_n "checking if $CC supports-Wbad-function-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wbad_function_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wbad-function-cast" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wold-style-definition" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wold-style-definition" >&5 +$as_echo_n "checking if $CC supports-Wold-style-definition... " >&6; } + cacheid=xorg_cv_cc_flag__Wold_style_definition + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wold-style-definition" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdeclaration-after-statement" >&5 +$as_echo_n "checking if $CC supports-Wdeclaration-after-statement... " >&6; } + cacheid=xorg_cv_cc_flag__Wdeclaration_after_statement + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wdeclaration-after-statement" + found="yes" + fi + fi + + + + + +# This chunk adds additional warnings that could catch undesired effects. + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wunused" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wunused" >&5 +$as_echo_n "checking if $CC supports-Wunused... " >&6; } + cacheid=xorg_cv_cc_flag__Wunused + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wunused" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wuninitialized" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wuninitialized" >&5 +$as_echo_n "checking if $CC supports-Wuninitialized... " >&6; } + cacheid=xorg_cv_cc_flag__Wuninitialized + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wuninitialized" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wshadow" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wshadow" >&5 +$as_echo_n "checking if $CC supports-Wshadow... " >&6; } + cacheid=xorg_cv_cc_flag__Wshadow + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wshadow" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wcast-qual" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wcast-qual" >&5 +$as_echo_n "checking if $CC supports-Wcast-qual... " >&6; } + cacheid=xorg_cv_cc_flag__Wcast_qual + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wcast-qual" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-noreturn" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-noreturn" >&5 +$as_echo_n "checking if $CC supports-Wmissing-noreturn... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_noreturn + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-format-attribute" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-format-attribute" >&5 +$as_echo_n "checking if $CC supports-Wmissing-format-attribute... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_format_attribute + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wredundant-decls" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wredundant-decls" >&5 +$as_echo_n "checking if $CC supports-Wredundant-decls... " >&6; } + cacheid=xorg_cv_cc_flag__Wredundant_decls + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wredundant-decls" + found="yes" + fi + fi + + + +# These are currently disabled because they are noisy. They will be enabled +# in the future once the codebase is sufficiently modernized to silence +# them. For now, I don't want them to drown out the other warnings. +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) + +# Turn some warnings into errors, so we don't accidently get successful builds +# when there are problems that should be fixed. + +if test "x$SELECTIVE_WERROR" = "xyes" ; then + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=implicit" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=implicit" >&5 +$as_echo_n "checking if $CC supports-Werror=implicit... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_implicit + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=implicit" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_NO_EXPLICIT_TYPE_GIVEN__errwarn_E_NO_IMPLICIT_DECL_ALLOWED + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=nonnull" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=nonnull" >&5 +$as_echo_n "checking if $CC supports-Werror=nonnull... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_nonnull + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=nonnull" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=init-self" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=init-self" >&5 +$as_echo_n "checking if $CC supports-Werror=init-self... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_init_self + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=init-self" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=main" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=main" >&5 +$as_echo_n "checking if $CC supports-Werror=main... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_main + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=main" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=missing-braces" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=missing-braces" >&5 +$as_echo_n "checking if $CC supports-Werror=missing-braces... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_missing_braces + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=missing-braces" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=sequence-point" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=sequence-point" >&5 +$as_echo_n "checking if $CC supports-Werror=sequence-point... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_sequence_point + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=sequence-point" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=return-type" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=return-type" >&5 +$as_echo_n "checking if $CC supports-Werror=return-type... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_return_type + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=return-type" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_FUNC_HAS_NO_RETURN_STMT + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=trigraphs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=trigraphs" >&5 +$as_echo_n "checking if $CC supports-Werror=trigraphs... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_trigraphs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=trigraphs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=array-bounds" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=array-bounds" >&5 +$as_echo_n "checking if $CC supports-Werror=array-bounds... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_array_bounds + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=array-bounds" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=write-strings" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=write-strings" >&5 +$as_echo_n "checking if $CC supports-Werror=write-strings... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_write_strings + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=write-strings" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=address" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=address" >&5 +$as_echo_n "checking if $CC supports-Werror=address... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_address + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=address" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=int-to-pointer-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=int-to-pointer-cast" >&5 +$as_echo_n "checking if $CC supports-Werror=int-to-pointer-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_int_to_pointer_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=int-to-pointer-cast" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_BAD_PTR_INT_COMBINATION + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=pointer-to-int-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=pointer-to-int-cast" >&5 +$as_echo_n "checking if $CC supports-Werror=pointer-to-int-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_pointer_to_int_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=pointer-to-int-cast" + found="yes" + fi + fi + + # Also -errwarn=E_BAD_PTR_INT_COMBINATION +else +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT" >&5 +$as_echo "$as_me: WARNING: You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT" >&2;} + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wimplicit" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wimplicit" >&5 +$as_echo_n "checking if $CC supports-Wimplicit... " >&6; } + cacheid=xorg_cv_cc_flag__Wimplicit + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wimplicit" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wnonnull" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnonnull" >&5 +$as_echo_n "checking if $CC supports-Wnonnull... " >&6; } + cacheid=xorg_cv_cc_flag__Wnonnull + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wnonnull" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Winit-self" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Winit-self" >&5 +$as_echo_n "checking if $CC supports-Winit-self... " >&6; } + cacheid=xorg_cv_cc_flag__Winit_self + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Winit-self" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmain" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmain" >&5 +$as_echo_n "checking if $CC supports-Wmain... " >&6; } + cacheid=xorg_cv_cc_flag__Wmain + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmain" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-braces" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-braces" >&5 +$as_echo_n "checking if $CC supports-Wmissing-braces... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_braces + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-braces" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wsequence-point" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wsequence-point" >&5 +$as_echo_n "checking if $CC supports-Wsequence-point... " >&6; } + cacheid=xorg_cv_cc_flag__Wsequence_point + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wsequence-point" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wreturn-type" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wreturn-type" >&5 +$as_echo_n "checking if $CC supports-Wreturn-type... " >&6; } + cacheid=xorg_cv_cc_flag__Wreturn_type + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wreturn-type" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wtrigraphs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wtrigraphs" >&5 +$as_echo_n "checking if $CC supports-Wtrigraphs... " >&6; } + cacheid=xorg_cv_cc_flag__Wtrigraphs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wtrigraphs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Warray-bounds" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Warray-bounds" >&5 +$as_echo_n "checking if $CC supports-Warray-bounds... " >&6; } + cacheid=xorg_cv_cc_flag__Warray_bounds + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Warray-bounds" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wwrite-strings" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wwrite-strings" >&5 +$as_echo_n "checking if $CC supports-Wwrite-strings... " >&6; } + cacheid=xorg_cv_cc_flag__Wwrite_strings + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wwrite-strings" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Waddress" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Waddress" >&5 +$as_echo_n "checking if $CC supports-Waddress... " >&6; } + cacheid=xorg_cv_cc_flag__Waddress + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Waddress" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wint-to-pointer-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wint-to-pointer-cast" >&5 +$as_echo_n "checking if $CC supports-Wint-to-pointer-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wint_to_pointer_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wint-to-pointer-cast" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wpointer-to-int-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-to-int-cast" >&5 +$as_echo_n "checking if $CC supports-Wpointer-to-int-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wpointer_to_int_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wpointer-to-int-cast" + found="yes" + fi + fi + + +fi + + + + + + + + CWARNFLAGS="$BASE_CFLAGS" + if test "x$GCC" = xyes ; then + CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" + fi + + + + + + + + +@%:@ Check whether --enable-strict-compilation was given. +if test "${enable_strict_compilation+set}" = set; then : + enableval=$enable_strict_compilation; STRICT_COMPILE=$enableval +else + STRICT_COMPILE=no +fi + + + + + + +STRICT_CFLAGS="" + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -pedantic" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-pedantic" >&5 +$as_echo_n "checking if $CC supports-pedantic... " >&6; } + cacheid=xorg_cv_cc_flag__pedantic + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -pedantic" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror" >&5 +$as_echo_n "checking if $CC supports-Werror... " >&6; } + cacheid=xorg_cv_cc_flag__Werror + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn" >&5 +$as_echo_n "checking if $CC supports-errwarn... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -errwarn" + found="yes" + fi + fi + + + +# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not +# activate it with -Werror, so we add it here explicitly. + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=attributes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=attributes" >&5 +$as_echo_n "checking if $CC supports-Werror=attributes... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_attributes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes" + found="yes" + fi + fi + + + +if test "x$STRICT_COMPILE" = "xyes"; then + BASE_CFLAGS="$BASE_CFLAGS $STRICT_CFLAGS" + CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +fi + + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1` +_ACEOF + + PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` + if test "x$PVM" = "x"; then + PVM="0" + fi + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_MINOR $PVM +_ACEOF + + PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` + if test "x$PVP" = "x"; then + PVP="0" + fi + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_PATCHLEVEL $PVP +_ACEOF + + + +CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ +|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ +echo 'git directory not found: installing possibly empty changelog.' >&2)" + + + + +macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` +INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ +mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ +echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" + + + + + + +if test x$APP_MAN_SUFFIX = x ; then + APP_MAN_SUFFIX=1 +fi +if test x$APP_MAN_DIR = x ; then + APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' +fi + +if test x$LIB_MAN_SUFFIX = x ; then + LIB_MAN_SUFFIX=3 +fi +if test x$LIB_MAN_DIR = x ; then + LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' +fi + +if test x$FILE_MAN_SUFFIX = x ; then + case $host_os in + solaris*) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; + esac +fi +if test x$FILE_MAN_DIR = x ; then + FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' +fi + +if test x$MISC_MAN_SUFFIX = x ; then + case $host_os in + solaris*) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; + esac +fi +if test x$MISC_MAN_DIR = x ; then + MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' +fi + +if test x$DRIVER_MAN_SUFFIX = x ; then + case $host_os in + solaris*) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; + esac +fi +if test x$DRIVER_MAN_DIR = x ; then + DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' +fi + +if test x$ADMIN_MAN_SUFFIX = x ; then + case $host_os in + solaris*) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; + esac +fi +if test x$ADMIN_MAN_DIR = x ; then + ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' +fi + + + + + + + + + + + + + + + +XORG_MAN_PAGE="X Version 11" + +MAN_SUBSTS="\ + -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xservername__|Xorg|g' \ + -e 's|__xconfigfile__|xorg.conf|g' \ + -e 's|__projectroot__|\$(prefix)|g' \ + -e 's|__apploaddir__|\$(appdefaultdir)|g' \ + -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ + -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ + -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ + -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ + -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ + -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" + + + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + + + + + +# Check for different types of support on different platforms +case $host_os in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umem_alloc in -lumem" >&5 +$as_echo_n "checking for umem_alloc in -lumem... " >&6; } +if ${ac_cv_lib_umem_umem_alloc+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lumem $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char umem_alloc (); +int +main () +{ +return umem_alloc (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_umem_umem_alloc=yes +else + ac_cv_lib_umem_umem_alloc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_umem_umem_alloc" >&5 +$as_echo "$ac_cv_lib_umem_umem_alloc" >&6; } +if test "x$ac_cv_lib_umem_umem_alloc" = xyes; then : + malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default' +fi + + ;; + *-gnu*) # GNU libc - Value is used as a single byte bit pattern, + # both directly and inverted, so should not be 0 or 255. + malloc_debug_env='MALLOC_PERTURB_=15' + ;; + darwin*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' + ;; + *bsd*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1' + ;; +esac + +# User supplied flags override default flags +if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then + malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" +fi + +XORG_MALLOC_DEBUG_ENV=$malloc_debug_env + + + + +@%:@ Check whether --enable-docs was given. +if test "${enable_docs+set}" = set; then : + enableval=$enable_docs; build_docs=$enableval +else + build_docs=yes +fi + + + if test x$build_docs = xyes; then + ENABLE_DOCS_TRUE= + ENABLE_DOCS_FALSE='#' +else + ENABLE_DOCS_TRUE='#' + ENABLE_DOCS_FALSE= +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5 +$as_echo_n "checking whether to build documentation... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_docs" >&5 +$as_echo "$build_docs" >&6; } + + + + + +@%:@ Check whether --with-doxygen was given. +if test "${with_doxygen+set}" = set; then : + withval=$with_doxygen; use_doxygen=$withval +else + use_doxygen=auto +fi + + + +if test "x$use_doxygen" = x"auto"; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 +$as_echo "$DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$DOXYGEN" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - documentation targets will be skipped" >&5 +$as_echo "$as_me: WARNING: doxygen not found - documentation targets will be skipped" >&2;} + have_doxygen=no + else + have_doxygen=yes + fi +elif test "x$use_doxygen" = x"yes" ; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 +$as_echo "$DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$DOXYGEN" = "x"; then + as_fn_error $? "--with-doxygen=yes specified but doxygen not found in PATH" "$LINENO" 5 + fi + have_doxygen=yes +elif test "x$use_doxygen" = x"no" ; then + if test "x$DOXYGEN" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring DOXYGEN environment variable since --with-doxygen=no was specified" >&5 +$as_echo "$as_me: WARNING: ignoring DOXYGEN environment variable since --with-doxygen=no was specified" >&2;} + fi + have_doxygen=no +else + as_fn_error $? "--with-doxygen expects 'yes' or 'no'" "$LINENO" 5 +fi + + if test "$have_doxygen" = yes; then + HAVE_DOXYGEN_TRUE= + HAVE_DOXYGEN_FALSE='#' +else + HAVE_DOXYGEN_TRUE='#' + HAVE_DOXYGEN_FALSE= +fi + + + +# Needed in older Automakes for subdir-objects + + +# Check for compiler features +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +# Check for programs + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +# Note: we use some yacc extensions, which work with either GNU bison +# (preferred) or byacc. Other yacc's may or may not work. +for ac_prog in 'bison -y' byacc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_YACC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_YACC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 +$as_echo "$YACC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +# Extract the first word of "$YACC", so it can be a program name with args. +set dummy $YACC; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_YACC_INST+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $YACC_INST in + [\\/]* | ?:[\\/]*) + ac_cv_path_YACC_INST="$YACC_INST" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_YACC_INST="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +YACC_INST=$ac_cv_path_YACC_INST +if test -n "$YACC_INST"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC_INST" >&5 +$as_echo "$YACC_INST" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test ! -f "src/xkbcomp/parser.c" -a "x$YACC_INST" = x; then : + + as_fn_error $? "yacc not found - unable to compile src/xkbcomp/parser.y" "$LINENO" 5 + +fi + +# Checks for library functions. +for ac_func in strcasecmp strncasecmp +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_strcasecmp" = xno -o \ + "x$ac_cv_func_strncasecmp" = xno; then : + + as_fn_error $? "C library does not support strcasecmp/strncasecmp" "$LINENO" 5 + +fi + +for ac_func in eaccess euidaccess mmap +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in secure_getenv __secure_getenv +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_secure_getenv" = xno -a \ + "x$ac_cv_func___secure_getenv" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C library does not support secure_getenv, using getenv instead" >&5 +$as_echo "$as_me: WARNING: C library does not support secure_getenv, using getenv instead" >&2;} + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 +$as_echo_n "checking for __builtin_expect... " >&6; } +if ${ax_cv_have___builtin_expect+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + __builtin_expect(0, 0) + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_have___builtin_expect=yes +else + ax_cv_have___builtin_expect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have___builtin_expect" >&5 +$as_echo "$ax_cv_have___builtin_expect" >&6; } + + if test yes = $ax_cv_have___builtin_expect; then : + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE___BUILTIN_EXPECT 1 +_ACEOF + +fi + + + + +# Some tests use Linux-specific headers +ac_fn_c_check_header_mongrel "$LINENO" "linux/input.h" "ac_cv_header_linux_input_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_input_h" = xyes; then : + +fi + + + if test "x$ac_cv_header_linux_input_h" = xyes; then + BUILD_LINUX_TESTS_TRUE= + BUILD_LINUX_TESTS_FALSE='#' +else + BUILD_LINUX_TESTS_TRUE='#' + BUILD_LINUX_TESTS_FALSE= +fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -fvisibility=hidden" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-fvisibility=hidden" >&5 +$as_echo_n "checking if $CC supports-fvisibility=hidden... " >&6; } + cacheid=xorg_cv_cc_flag__fvisibility_hidden + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -fvisibility=hidden" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wextra -Wno-unused-parameter -Wno-missing-field-initializers" >&5 +$as_echo_n "checking if $CC supports-Wextra -Wno-unused-parameter -Wno-missing-field-initializers... " >&6; } + cacheid=xorg_cv_cc_flag__Wextra__Wno_unused_parameter__Wno_missing_field_initializers + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wdocumentation" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdocumentation" >&5 +$as_echo_n "checking if $CC supports-Wdocumentation... " >&6; } + cacheid=xorg_cv_cc_flag__Wdocumentation + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wdocumentation" + found="yes" + fi + fi + + + +# OpenBSD does not have DT_NEEDED entries for libc by design +# so when these flags are passed to ld via libtool the checks will fail +case "$host_os" in +openbsd*) + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--no-undefined" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--no-undefined... " >&6; } +if ${xorg_cv_linker_flags__Wl___no_undefined+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_save_FLAGS=$LDFLAGS + LDFLAGS="-Wl,--no-undefined" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + xorg_cv_linker_flags__Wl___no_undefined=yes +else + xorg_cv_linker_flags__Wl___no_undefined=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_save_FLAGS +fi + +eval xorg_check_linker_flags=$xorg_cv_linker_flags__Wl___no_undefined +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_check_linker_flags" >&5 +$as_echo "$xorg_check_linker_flags" >&6; } +if test "x$xorg_check_linker_flags" = xyes; then + have_no_undefined=yes +else + : +fi + ;; +esac + + if test "x$have_no_undefined" = xyes; then + HAVE_NO_UNDEFINED_TRUE= + HAVE_NO_UNDEFINED_FALSE='#' +else + HAVE_NO_UNDEFINED_TRUE='#' + HAVE_NO_UNDEFINED_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt -lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_gettime=yes +else + ac_cv_lib_rt_clock_gettime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : + RT_LIBS="-lrt" + +else + RT_LIBS="" + +fi + + +# Define a configuration option for the XKB config root +xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config` +if test "x$xkb_base" = x; then : + + xkb_base="$datadir/X11/xkb" + +fi + +@%:@ Check whether --with-xkb_config_root was given. +if test "${with_xkb_config_root+set}" = set; then : + withval=$with_xkb_config_root; XKBCONFIGROOT="$withval" +else + XKBCONFIGROOT="$xkb_base" +fi + + + +# Define a configuration option for the X locale directory for compose + +@%:@ Check whether --with-x_locale_root was given. +if test "${with_x_locale_root+set}" = set; then : + withval=$with_x_locale_root; XLOCALEDIR="$withval" +else + XLOCALEDIR="$datadir/X11/locale" +fi + + + + +@%:@ Check whether --with-default_rules was given. +if test "${with_default_rules+set}" = set; then : + withval=$with_default_rules; DEFAULT_XKB_RULES="$withval" +else + DEFAULT_XKB_RULES="evdev" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_RULES "$DEFAULT_XKB_RULES" +_ACEOF + + + +@%:@ Check whether --with-default_model was given. +if test "${with_default_model+set}" = set; then : + withval=$with_default_model; DEFAULT_XKB_MODEL="$withval" +else + DEFAULT_XKB_MODEL="pc105" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_MODEL "$DEFAULT_XKB_MODEL" +_ACEOF + + + +@%:@ Check whether --with-default_layout was given. +if test "${with_default_layout+set}" = set; then : + withval=$with_default_layout; DEFAULT_XKB_LAYOUT="$withval" +else + DEFAULT_XKB_LAYOUT="us" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_LAYOUT "$DEFAULT_XKB_LAYOUT" +_ACEOF + + + +@%:@ Check whether --with-default_variant was given. +if test "${with_default_variant+set}" = set; then : + withval=$with_default_variant; DEFAULT_XKB_VARIANT="$withval" +else + DEFAULT_XKB_VARIANT= +fi + +if test "x$DEFAULT_XKB_VARIANT" != x; then : + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_VARIANT "$DEFAULT_XKB_VARIANT" +_ACEOF + + +fi + + +@%:@ Check whether --with-default_options was given. +if test "${with_default_options+set}" = set; then : + withval=$with_default_options; DEFAULT_XKB_OPTIONS="$withval" +else + DEFAULT_XKB_OPTIONS= +fi + +if test "x$DEFAULT_XKB_OPTIONS" != x; then : + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_OPTIONS "$DEFAULT_XKB_OPTIONS" +_ACEOF + + +fi + +@%:@ Check whether --enable-x11 was given. +if test "${enable_x11+set}" = set; then : + enableval=$enable_x11; +else + enable_x11=yes +fi + +if test "x$enable_x11" = xyes; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XKB" >&5 +$as_echo_n "checking for XCB_XKB... " >&6; } + +if test -n "$XCB_XKB_CFLAGS"; then + pkg_cv_XCB_XKB_CFLAGS="$XCB_XKB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-xkb >= 1.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xcb xcb-xkb >= 1.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XCB_XKB_CFLAGS=`$PKG_CONFIG --cflags "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$XCB_XKB_LIBS"; then + pkg_cv_XCB_XKB_LIBS="$XCB_XKB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-xkb >= 1.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xcb xcb-xkb >= 1.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XCB_XKB_LIBS=`$PKG_CONFIG --libs "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XCB_XKB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xcb xcb-xkb >= 1.10" 2>&1` + else + XCB_XKB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xcb xcb-xkb >= 1.10" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$XCB_XKB_PKG_ERRORS" >&5 + + as_fn_error $? "xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11." "$LINENO" 5 +else + XCB_XKB_CFLAGS=$pkg_cv_XCB_XKB_CFLAGS + XCB_XKB_LIBS=$pkg_cv_XCB_XKB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +else + enable_x11=no +fi + if test "x$enable_x11" = xyes; then + ENABLE_X11_TRUE= + ENABLE_X11_FALSE='#' +else + ENABLE_X11_TRUE='#' + ENABLE_X11_FALSE= +fi + + +ac_config_files="$ac_config_files Makefile xkbcommon-uninstalled.pc xkbcommon.pc xkbcommon-x11.pc xkbcommon-x11-uninstalled.pc doc/Doxyfile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DOXYGEN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LINUX_TESTS_TRUE}" && test -z "${BUILD_LINUX_TESTS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LINUX_TESTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_NO_UNDEFINED_TRUE}" && test -z "${HAVE_NO_UNDEFINED_FALSE}"; then + as_fn_error $? "conditional \"HAVE_NO_UNDEFINED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_X11_TRUE}" && test -z "${ENABLE_X11_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_X11\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +@%:@ as_fn_executable_p FILE +@%:@ ----------------------- +@%:@ Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} @%:@ as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libxkbcommon $as_me 0.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +libxkbcommon home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libxkbcommon config.status 0.5.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "xkbcommon-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-uninstalled.pc" ;; + "xkbcommon.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon.pc" ;; + "xkbcommon-x11.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-x11.pc" ;; + "xkbcommon-x11-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-x11-uninstalled.pc" ;; + "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +" >&5 +$as_echo " + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +" >&6; } diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.1 b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.1 new file mode 100644 index 0000000..0722728 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.1 @@ -0,0 +1,21655 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.69 for libxkbcommon 0.5.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p + +@%:@ as_fn_executable_p FILE +@%:@ ----------------------- +@%:@ Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} @%:@ as_fn_executable_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libxkbcommon' +PACKAGE_TARNAME='libxkbcommon' +PACKAGE_VERSION='0.5.0' +PACKAGE_STRING='libxkbcommon 0.5.0' +PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon' +PACKAGE_URL='http://xkbcommon.org' + +ac_unique_file="Makefile.am" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +ENABLE_X11_FALSE +ENABLE_X11_TRUE +XCB_XKB_LIBS +XCB_XKB_CFLAGS +XLOCALEDIR +XKBCONFIGROOT +RT_LIBS +HAVE_NO_UNDEFINED_FALSE +HAVE_NO_UNDEFINED_TRUE +BUILD_LINUX_TESTS_FALSE +BUILD_LINUX_TESTS_TRUE +YACC_INST +YFLAGS +YACC +HAVE_DOXYGEN_FALSE +HAVE_DOXYGEN_TRUE +DOXYGEN +ENABLE_DOCS_FALSE +ENABLE_DOCS_TRUE +XORG_MALLOC_DEBUG_ENV +MAN_SUBSTS +XORG_MAN_PAGE +ADMIN_MAN_DIR +DRIVER_MAN_DIR +MISC_MAN_DIR +FILE_MAN_DIR +LIB_MAN_DIR +APP_MAN_DIR +ADMIN_MAN_SUFFIX +DRIVER_MAN_SUFFIX +MISC_MAN_SUFFIX +FILE_MAN_SUFFIX +LIB_MAN_SUFFIX +APP_MAN_SUFFIX +INSTALL_CMD +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CHANGELOG_CMD +STRICT_CFLAGS +CWARNFLAGS +BASE_CFLAGS +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_selective_werror +enable_strict_compilation +enable_docs +with_doxygen +with_xkb_config_root +with_x_locale_root +with_default_rules +with_default_model +with_default_layout +with_default_variant +with_default_options +enable_x11 +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +XORG_MALLOC_DEBUG_ENV +DOXYGEN +YACC +YFLAGS +XCB_XKB_CFLAGS +XCB_XKB_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libxkbcommon 0.5.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/libxkbcommon@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libxkbcommon 0.5.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-selective-werror + Turn off selective compiler errors. (default: + enabled) + --enable-strict-compilation + Enable all warnings from compiler and make them + errors (default: disabled) + --enable-docs Enable building the documentation (default: yes) + --disable-x11 Disable support for creating keymaps with the X11 + protocol (default: enabled) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + --with-doxygen Use doxygen to regenerate documentation (default: + auto) + --with-xkb-config-root= + Set default XKB config root (default: + xkeyboard-config install path) + --with-x-locale-root= + Set X locale root (default: @S|@datadir/X11/locale) + --with-default-rules= + Default XKB ruleset (default: evdev) + --with-default-model= + Default XKB model (default: pc105) + --with-default-layout= + Default XKB layout (default: us) + --with-default-variant= + Default XKB variant (default: (none)) + --with-default-options= + Default XKB options (default: (none)) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + XORG_MALLOC_DEBUG_ENV + Environment variables to enable memory checking in tests + DOXYGEN Path to doxygen command + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. + YFLAGS The list of arguments that will be passed by default to @S|@YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. + XCB_XKB_CFLAGS + C compiler flags for XCB_XKB, overriding pkg-config + XCB_XKB_LIBS + linker flags for XCB_XKB, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +libxkbcommon home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libxkbcommon configure 0.5.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------------------------------------------ ## +## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon ## +## ------------------------------------------------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +@%:@ --------------------------------------------- +@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +@%:@ accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +@%:@ifndef $as_decl_name +@%:@ifdef __cplusplus + (void) $as_decl_use; +@%:@else + (void) $as_decl_name; +@%:@endif +@%:@endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_decl +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libxkbcommon $as_me 0.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_config_headers="$ac_config_headers src/config.h" + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Initialize Automake +am__api_version='1.14' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # 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_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libxkbcommon' + VERSION='0.5.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# 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: + +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: . + +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 + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + @%:@ Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +# Get _GNU_SOURCE and friends +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "@%:@define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h + + + +# Initialize libtool +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + 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 $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +# Add xorg-macros stuff + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + +fi + + + + + + +ac_fn_c_check_decl "$LINENO" "__clang__" "ac_cv_have_decl___clang__" "$ac_includes_default" +if test "x$ac_cv_have_decl___clang__" = xyes; then : + CLANGCC="yes" +else + CLANGCC="no" +fi + +ac_fn_c_check_decl "$LINENO" "__INTEL_COMPILER" "ac_cv_have_decl___INTEL_COMPILER" "$ac_includes_default" +if test "x$ac_cv_have_decl___INTEL_COMPILER" = xyes; then : + INTELCC="yes" +else + INTELCC="no" +fi + +ac_fn_c_check_decl "$LINENO" "__SUNPRO_C" "ac_cv_have_decl___SUNPRO_C" "$ac_includes_default" +if test "x$ac_cv_have_decl___SUNPRO_C" = xyes; then : + SUNCC="yes" +else + SUNCC="no" +fi + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + + + + +@%:@ Check whether --enable-selective-werror was given. +if test "${enable_selective_werror+set}" = set; then : + enableval=$enable_selective_werror; SELECTIVE_WERROR=$enableval +else + SELECTIVE_WERROR=yes +fi + + + + + +# -v is too short to test reliably with XORG_TESTSET_CFLAG +if test "x$SUNCC" = "xyes"; then + BASE_CFLAGS="-v" +else + BASE_CFLAGS="" +fi + +# This chunk of warnings were those that existed in the legacy CWARNFLAGS + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wall" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wall" >&5 +$as_echo_n "checking if $CC supports-Wall... " >&6; } + cacheid=xorg_cv_cc_flag__Wall + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wall" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wpointer-arith" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-arith" >&5 +$as_echo_n "checking if $CC supports-Wpointer-arith... " >&6; } + cacheid=xorg_cv_cc_flag__Wpointer_arith + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wpointer-arith" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-declarations" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-declarations" >&5 +$as_echo_n "checking if $CC supports-Wmissing-declarations... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_declarations + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-declarations" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wformat=2" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat=2" >&5 +$as_echo_n "checking if $CC supports-Wformat=2... " >&6; } + cacheid=xorg_cv_cc_flag__Wformat_2 + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wformat=2" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wformat" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat" >&5 +$as_echo_n "checking if $CC supports-Wformat... " >&6; } + cacheid=xorg_cv_cc_flag__Wformat + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wformat" + found="yes" + fi + fi + + + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wstrict-prototypes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wstrict-prototypes" >&5 +$as_echo_n "checking if $CC supports-Wstrict-prototypes... " >&6; } + cacheid=xorg_cv_cc_flag__Wstrict_prototypes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wstrict-prototypes" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-prototypes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-prototypes" >&5 +$as_echo_n "checking if $CC supports-Wmissing-prototypes... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_prototypes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-prototypes" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wnested-externs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnested-externs" >&5 +$as_echo_n "checking if $CC supports-Wnested-externs... " >&6; } + cacheid=xorg_cv_cc_flag__Wnested_externs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wnested-externs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wbad-function-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wbad-function-cast" >&5 +$as_echo_n "checking if $CC supports-Wbad-function-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wbad_function_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wbad-function-cast" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wold-style-definition" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wold-style-definition" >&5 +$as_echo_n "checking if $CC supports-Wold-style-definition... " >&6; } + cacheid=xorg_cv_cc_flag__Wold_style_definition + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wold-style-definition" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdeclaration-after-statement" >&5 +$as_echo_n "checking if $CC supports-Wdeclaration-after-statement... " >&6; } + cacheid=xorg_cv_cc_flag__Wdeclaration_after_statement + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wdeclaration-after-statement" + found="yes" + fi + fi + + + + + +# This chunk adds additional warnings that could catch undesired effects. + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wunused" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wunused" >&5 +$as_echo_n "checking if $CC supports-Wunused... " >&6; } + cacheid=xorg_cv_cc_flag__Wunused + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wunused" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wuninitialized" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wuninitialized" >&5 +$as_echo_n "checking if $CC supports-Wuninitialized... " >&6; } + cacheid=xorg_cv_cc_flag__Wuninitialized + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wuninitialized" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wshadow" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wshadow" >&5 +$as_echo_n "checking if $CC supports-Wshadow... " >&6; } + cacheid=xorg_cv_cc_flag__Wshadow + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wshadow" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wcast-qual" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wcast-qual" >&5 +$as_echo_n "checking if $CC supports-Wcast-qual... " >&6; } + cacheid=xorg_cv_cc_flag__Wcast_qual + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wcast-qual" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-noreturn" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-noreturn" >&5 +$as_echo_n "checking if $CC supports-Wmissing-noreturn... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_noreturn + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-format-attribute" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-format-attribute" >&5 +$as_echo_n "checking if $CC supports-Wmissing-format-attribute... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_format_attribute + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wredundant-decls" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wredundant-decls" >&5 +$as_echo_n "checking if $CC supports-Wredundant-decls... " >&6; } + cacheid=xorg_cv_cc_flag__Wredundant_decls + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wredundant-decls" + found="yes" + fi + fi + + + +# These are currently disabled because they are noisy. They will be enabled +# in the future once the codebase is sufficiently modernized to silence +# them. For now, I don't want them to drown out the other warnings. +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) + +# Turn some warnings into errors, so we don't accidently get successful builds +# when there are problems that should be fixed. + +if test "x$SELECTIVE_WERROR" = "xyes" ; then + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=implicit" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=implicit" >&5 +$as_echo_n "checking if $CC supports-Werror=implicit... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_implicit + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=implicit" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_NO_EXPLICIT_TYPE_GIVEN__errwarn_E_NO_IMPLICIT_DECL_ALLOWED + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=nonnull" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=nonnull" >&5 +$as_echo_n "checking if $CC supports-Werror=nonnull... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_nonnull + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=nonnull" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=init-self" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=init-self" >&5 +$as_echo_n "checking if $CC supports-Werror=init-self... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_init_self + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=init-self" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=main" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=main" >&5 +$as_echo_n "checking if $CC supports-Werror=main... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_main + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=main" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=missing-braces" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=missing-braces" >&5 +$as_echo_n "checking if $CC supports-Werror=missing-braces... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_missing_braces + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=missing-braces" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=sequence-point" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=sequence-point" >&5 +$as_echo_n "checking if $CC supports-Werror=sequence-point... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_sequence_point + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=sequence-point" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=return-type" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=return-type" >&5 +$as_echo_n "checking if $CC supports-Werror=return-type... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_return_type + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=return-type" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_FUNC_HAS_NO_RETURN_STMT + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=trigraphs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=trigraphs" >&5 +$as_echo_n "checking if $CC supports-Werror=trigraphs... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_trigraphs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=trigraphs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=array-bounds" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=array-bounds" >&5 +$as_echo_n "checking if $CC supports-Werror=array-bounds... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_array_bounds + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=array-bounds" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=write-strings" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=write-strings" >&5 +$as_echo_n "checking if $CC supports-Werror=write-strings... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_write_strings + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=write-strings" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=address" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=address" >&5 +$as_echo_n "checking if $CC supports-Werror=address... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_address + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=address" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=int-to-pointer-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=int-to-pointer-cast" >&5 +$as_echo_n "checking if $CC supports-Werror=int-to-pointer-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_int_to_pointer_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=int-to-pointer-cast" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_BAD_PTR_INT_COMBINATION + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=pointer-to-int-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=pointer-to-int-cast" >&5 +$as_echo_n "checking if $CC supports-Werror=pointer-to-int-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_pointer_to_int_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=pointer-to-int-cast" + found="yes" + fi + fi + + # Also -errwarn=E_BAD_PTR_INT_COMBINATION +else +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT" >&5 +$as_echo "$as_me: WARNING: You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT" >&2;} + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wimplicit" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wimplicit" >&5 +$as_echo_n "checking if $CC supports-Wimplicit... " >&6; } + cacheid=xorg_cv_cc_flag__Wimplicit + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wimplicit" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wnonnull" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnonnull" >&5 +$as_echo_n "checking if $CC supports-Wnonnull... " >&6; } + cacheid=xorg_cv_cc_flag__Wnonnull + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wnonnull" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Winit-self" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Winit-self" >&5 +$as_echo_n "checking if $CC supports-Winit-self... " >&6; } + cacheid=xorg_cv_cc_flag__Winit_self + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Winit-self" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmain" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmain" >&5 +$as_echo_n "checking if $CC supports-Wmain... " >&6; } + cacheid=xorg_cv_cc_flag__Wmain + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmain" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-braces" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-braces" >&5 +$as_echo_n "checking if $CC supports-Wmissing-braces... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_braces + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-braces" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wsequence-point" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wsequence-point" >&5 +$as_echo_n "checking if $CC supports-Wsequence-point... " >&6; } + cacheid=xorg_cv_cc_flag__Wsequence_point + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wsequence-point" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wreturn-type" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wreturn-type" >&5 +$as_echo_n "checking if $CC supports-Wreturn-type... " >&6; } + cacheid=xorg_cv_cc_flag__Wreturn_type + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wreturn-type" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wtrigraphs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wtrigraphs" >&5 +$as_echo_n "checking if $CC supports-Wtrigraphs... " >&6; } + cacheid=xorg_cv_cc_flag__Wtrigraphs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wtrigraphs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Warray-bounds" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Warray-bounds" >&5 +$as_echo_n "checking if $CC supports-Warray-bounds... " >&6; } + cacheid=xorg_cv_cc_flag__Warray_bounds + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Warray-bounds" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wwrite-strings" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wwrite-strings" >&5 +$as_echo_n "checking if $CC supports-Wwrite-strings... " >&6; } + cacheid=xorg_cv_cc_flag__Wwrite_strings + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wwrite-strings" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Waddress" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Waddress" >&5 +$as_echo_n "checking if $CC supports-Waddress... " >&6; } + cacheid=xorg_cv_cc_flag__Waddress + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Waddress" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wint-to-pointer-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wint-to-pointer-cast" >&5 +$as_echo_n "checking if $CC supports-Wint-to-pointer-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wint_to_pointer_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wint-to-pointer-cast" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wpointer-to-int-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-to-int-cast" >&5 +$as_echo_n "checking if $CC supports-Wpointer-to-int-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wpointer_to_int_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wpointer-to-int-cast" + found="yes" + fi + fi + + +fi + + + + + + + + CWARNFLAGS="$BASE_CFLAGS" + if test "x$GCC" = xyes ; then + CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" + fi + + + + + + + + +@%:@ Check whether --enable-strict-compilation was given. +if test "${enable_strict_compilation+set}" = set; then : + enableval=$enable_strict_compilation; STRICT_COMPILE=$enableval +else + STRICT_COMPILE=no +fi + + + + + + +STRICT_CFLAGS="" + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -pedantic" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-pedantic" >&5 +$as_echo_n "checking if $CC supports-pedantic... " >&6; } + cacheid=xorg_cv_cc_flag__pedantic + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -pedantic" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror" >&5 +$as_echo_n "checking if $CC supports-Werror... " >&6; } + cacheid=xorg_cv_cc_flag__Werror + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn" >&5 +$as_echo_n "checking if $CC supports-errwarn... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -errwarn" + found="yes" + fi + fi + + + +# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not +# activate it with -Werror, so we add it here explicitly. + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=attributes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=attributes" >&5 +$as_echo_n "checking if $CC supports-Werror=attributes... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_attributes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes" + found="yes" + fi + fi + + + +if test "x$STRICT_COMPILE" = "xyes"; then + BASE_CFLAGS="$BASE_CFLAGS $STRICT_CFLAGS" + CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +fi + + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1` +_ACEOF + + PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` + if test "x$PVM" = "x"; then + PVM="0" + fi + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_MINOR $PVM +_ACEOF + + PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` + if test "x$PVP" = "x"; then + PVP="0" + fi + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_PATCHLEVEL $PVP +_ACEOF + + + +CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ +|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ +echo 'git directory not found: installing possibly empty changelog.' >&2)" + + + + +macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` +INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ +mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ +echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" + + + + + + +if test x$APP_MAN_SUFFIX = x ; then + APP_MAN_SUFFIX=1 +fi +if test x$APP_MAN_DIR = x ; then + APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' +fi + +if test x$LIB_MAN_SUFFIX = x ; then + LIB_MAN_SUFFIX=3 +fi +if test x$LIB_MAN_DIR = x ; then + LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' +fi + +if test x$FILE_MAN_SUFFIX = x ; then + case $host_os in + solaris*) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; + esac +fi +if test x$FILE_MAN_DIR = x ; then + FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' +fi + +if test x$MISC_MAN_SUFFIX = x ; then + case $host_os in + solaris*) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; + esac +fi +if test x$MISC_MAN_DIR = x ; then + MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' +fi + +if test x$DRIVER_MAN_SUFFIX = x ; then + case $host_os in + solaris*) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; + esac +fi +if test x$DRIVER_MAN_DIR = x ; then + DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' +fi + +if test x$ADMIN_MAN_SUFFIX = x ; then + case $host_os in + solaris*) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; + esac +fi +if test x$ADMIN_MAN_DIR = x ; then + ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' +fi + + + + + + + + + + + + + + + +XORG_MAN_PAGE="X Version 11" + +MAN_SUBSTS="\ + -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xservername__|Xorg|g' \ + -e 's|__xconfigfile__|xorg.conf|g' \ + -e 's|__projectroot__|\$(prefix)|g' \ + -e 's|__apploaddir__|\$(appdefaultdir)|g' \ + -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ + -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ + -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ + -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ + -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ + -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" + + + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + + + + + +# Check for different types of support on different platforms +case $host_os in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umem_alloc in -lumem" >&5 +$as_echo_n "checking for umem_alloc in -lumem... " >&6; } +if ${ac_cv_lib_umem_umem_alloc+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lumem $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char umem_alloc (); +int +main () +{ +return umem_alloc (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_umem_umem_alloc=yes +else + ac_cv_lib_umem_umem_alloc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_umem_umem_alloc" >&5 +$as_echo "$ac_cv_lib_umem_umem_alloc" >&6; } +if test "x$ac_cv_lib_umem_umem_alloc" = xyes; then : + malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default' +fi + + ;; + *-gnu*) # GNU libc - Value is used as a single byte bit pattern, + # both directly and inverted, so should not be 0 or 255. + malloc_debug_env='MALLOC_PERTURB_=15' + ;; + darwin*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' + ;; + *bsd*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1' + ;; +esac + +# User supplied flags override default flags +if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then + malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" +fi + +XORG_MALLOC_DEBUG_ENV=$malloc_debug_env + + + + +@%:@ Check whether --enable-docs was given. +if test "${enable_docs+set}" = set; then : + enableval=$enable_docs; build_docs=$enableval +else + build_docs=yes +fi + + + if test x$build_docs = xyes; then + ENABLE_DOCS_TRUE= + ENABLE_DOCS_FALSE='#' +else + ENABLE_DOCS_TRUE='#' + ENABLE_DOCS_FALSE= +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5 +$as_echo_n "checking whether to build documentation... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_docs" >&5 +$as_echo "$build_docs" >&6; } + + + + + +@%:@ Check whether --with-doxygen was given. +if test "${with_doxygen+set}" = set; then : + withval=$with_doxygen; use_doxygen=$withval +else + use_doxygen=auto +fi + + + +if test "x$use_doxygen" = x"auto"; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 +$as_echo "$DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$DOXYGEN" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - documentation targets will be skipped" >&5 +$as_echo "$as_me: WARNING: doxygen not found - documentation targets will be skipped" >&2;} + have_doxygen=no + else + have_doxygen=yes + fi +elif test "x$use_doxygen" = x"yes" ; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 +$as_echo "$DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$DOXYGEN" = "x"; then + as_fn_error $? "--with-doxygen=yes specified but doxygen not found in PATH" "$LINENO" 5 + fi + have_doxygen=yes +elif test "x$use_doxygen" = x"no" ; then + if test "x$DOXYGEN" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring DOXYGEN environment variable since --with-doxygen=no was specified" >&5 +$as_echo "$as_me: WARNING: ignoring DOXYGEN environment variable since --with-doxygen=no was specified" >&2;} + fi + have_doxygen=no +else + as_fn_error $? "--with-doxygen expects 'yes' or 'no'" "$LINENO" 5 +fi + + if test "$have_doxygen" = yes; then + HAVE_DOXYGEN_TRUE= + HAVE_DOXYGEN_FALSE='#' +else + HAVE_DOXYGEN_TRUE='#' + HAVE_DOXYGEN_FALSE= +fi + + + +# Needed in older Automakes for subdir-objects + + +# Check for compiler features +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +# Check for programs + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +# Note: we use some yacc extensions, which work with either GNU bison +# (preferred) or byacc. Other yacc's may or may not work. +for ac_prog in 'bison -y' byacc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_YACC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_YACC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 +$as_echo "$YACC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +# Extract the first word of "$YACC", so it can be a program name with args. +set dummy $YACC; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_YACC_INST+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $YACC_INST in + [\\/]* | ?:[\\/]*) + ac_cv_path_YACC_INST="$YACC_INST" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_YACC_INST="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +YACC_INST=$ac_cv_path_YACC_INST +if test -n "$YACC_INST"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC_INST" >&5 +$as_echo "$YACC_INST" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test ! -f "src/xkbcomp/parser.c" -a "x$YACC_INST" = x; then : + + as_fn_error $? "yacc not found - unable to compile src/xkbcomp/parser.y" "$LINENO" 5 + +fi + +# Checks for library functions. +for ac_func in strcasecmp strncasecmp +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_strcasecmp" = xno -o \ + "x$ac_cv_func_strncasecmp" = xno; then : + + as_fn_error $? "C library does not support strcasecmp/strncasecmp" "$LINENO" 5 + +fi + +for ac_func in eaccess euidaccess mmap +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in secure_getenv __secure_getenv +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_secure_getenv" = xno -a \ + "x$ac_cv_func___secure_getenv" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C library does not support secure_getenv, using getenv instead" >&5 +$as_echo "$as_me: WARNING: C library does not support secure_getenv, using getenv instead" >&2;} + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 +$as_echo_n "checking for __builtin_expect... " >&6; } +if ${ax_cv_have___builtin_expect+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + __builtin_expect(0, 0) + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_have___builtin_expect=yes +else + ax_cv_have___builtin_expect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have___builtin_expect" >&5 +$as_echo "$ax_cv_have___builtin_expect" >&6; } + + if test yes = $ax_cv_have___builtin_expect; then : + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE___BUILTIN_EXPECT 1 +_ACEOF + +fi + + + + +# Some tests use Linux-specific headers +ac_fn_c_check_header_mongrel "$LINENO" "linux/input.h" "ac_cv_header_linux_input_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_input_h" = xyes; then : + +fi + + + if test "x$ac_cv_header_linux_input_h" = xyes; then + BUILD_LINUX_TESTS_TRUE= + BUILD_LINUX_TESTS_FALSE='#' +else + BUILD_LINUX_TESTS_TRUE='#' + BUILD_LINUX_TESTS_FALSE= +fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -fvisibility=hidden" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-fvisibility=hidden" >&5 +$as_echo_n "checking if $CC supports-fvisibility=hidden... " >&6; } + cacheid=xorg_cv_cc_flag__fvisibility_hidden + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -fvisibility=hidden" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wextra -Wno-unused-parameter -Wno-missing-field-initializers" >&5 +$as_echo_n "checking if $CC supports-Wextra -Wno-unused-parameter -Wno-missing-field-initializers... " >&6; } + cacheid=xorg_cv_cc_flag__Wextra__Wno_unused_parameter__Wno_missing_field_initializers + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wdocumentation" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdocumentation" >&5 +$as_echo_n "checking if $CC supports-Wdocumentation... " >&6; } + cacheid=xorg_cv_cc_flag__Wdocumentation + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wdocumentation" + found="yes" + fi + fi + + + +# OpenBSD does not have DT_NEEDED entries for libc by design +# so when these flags are passed to ld via libtool the checks will fail +case "$host_os" in +openbsd*) + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--no-undefined" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--no-undefined... " >&6; } +if ${xorg_cv_linker_flags__Wl___no_undefined+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_save_FLAGS=$LDFLAGS + LDFLAGS="-Wl,--no-undefined" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + xorg_cv_linker_flags__Wl___no_undefined=yes +else + xorg_cv_linker_flags__Wl___no_undefined=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_save_FLAGS +fi + +eval xorg_check_linker_flags=$xorg_cv_linker_flags__Wl___no_undefined +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_check_linker_flags" >&5 +$as_echo "$xorg_check_linker_flags" >&6; } +if test "x$xorg_check_linker_flags" = xyes; then + have_no_undefined=yes +else + : +fi + ;; +esac + + if test "x$have_no_undefined" = xyes; then + HAVE_NO_UNDEFINED_TRUE= + HAVE_NO_UNDEFINED_FALSE='#' +else + HAVE_NO_UNDEFINED_TRUE='#' + HAVE_NO_UNDEFINED_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt -lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_gettime=yes +else + ac_cv_lib_rt_clock_gettime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : + RT_LIBS="-lrt" + +else + RT_LIBS="" + +fi + + +# Define a configuration option for the XKB config root +xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config` +if test "x$xkb_base" = x; then : + + xkb_base="$datadir/X11/xkb" + +fi + +@%:@ Check whether --with-xkb_config_root was given. +if test "${with_xkb_config_root+set}" = set; then : + withval=$with_xkb_config_root; XKBCONFIGROOT="$withval" +else + XKBCONFIGROOT="$xkb_base" +fi + + + +# Define a configuration option for the X locale directory for compose + +@%:@ Check whether --with-x_locale_root was given. +if test "${with_x_locale_root+set}" = set; then : + withval=$with_x_locale_root; XLOCALEDIR="$withval" +else + XLOCALEDIR="$datadir/X11/locale" +fi + + + + +@%:@ Check whether --with-default_rules was given. +if test "${with_default_rules+set}" = set; then : + withval=$with_default_rules; DEFAULT_XKB_RULES="$withval" +else + DEFAULT_XKB_RULES="evdev" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_RULES "$DEFAULT_XKB_RULES" +_ACEOF + + + +@%:@ Check whether --with-default_model was given. +if test "${with_default_model+set}" = set; then : + withval=$with_default_model; DEFAULT_XKB_MODEL="$withval" +else + DEFAULT_XKB_MODEL="pc105" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_MODEL "$DEFAULT_XKB_MODEL" +_ACEOF + + + +@%:@ Check whether --with-default_layout was given. +if test "${with_default_layout+set}" = set; then : + withval=$with_default_layout; DEFAULT_XKB_LAYOUT="$withval" +else + DEFAULT_XKB_LAYOUT="us" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_LAYOUT "$DEFAULT_XKB_LAYOUT" +_ACEOF + + + +@%:@ Check whether --with-default_variant was given. +if test "${with_default_variant+set}" = set; then : + withval=$with_default_variant; DEFAULT_XKB_VARIANT="$withval" +else + DEFAULT_XKB_VARIANT= +fi + +if test "x$DEFAULT_XKB_VARIANT" != x; then : + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_VARIANT "$DEFAULT_XKB_VARIANT" +_ACEOF + + +fi + + +@%:@ Check whether --with-default_options was given. +if test "${with_default_options+set}" = set; then : + withval=$with_default_options; DEFAULT_XKB_OPTIONS="$withval" +else + DEFAULT_XKB_OPTIONS= +fi + +if test "x$DEFAULT_XKB_OPTIONS" != x; then : + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_OPTIONS "$DEFAULT_XKB_OPTIONS" +_ACEOF + + +fi + +@%:@ Check whether --enable-x11 was given. +if test "${enable_x11+set}" = set; then : + enableval=$enable_x11; +else + enable_x11=yes +fi + +if test "x$enable_x11" = xyes; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XKB" >&5 +$as_echo_n "checking for XCB_XKB... " >&6; } + +if test -n "$XCB_XKB_CFLAGS"; then + pkg_cv_XCB_XKB_CFLAGS="$XCB_XKB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-xkb >= 1.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xcb xcb-xkb >= 1.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XCB_XKB_CFLAGS=`$PKG_CONFIG --cflags "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$XCB_XKB_LIBS"; then + pkg_cv_XCB_XKB_LIBS="$XCB_XKB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-xkb >= 1.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xcb xcb-xkb >= 1.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XCB_XKB_LIBS=`$PKG_CONFIG --libs "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XCB_XKB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xcb xcb-xkb >= 1.10" 2>&1` + else + XCB_XKB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xcb xcb-xkb >= 1.10" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$XCB_XKB_PKG_ERRORS" >&5 + + as_fn_error $? "xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11." "$LINENO" 5 +else + XCB_XKB_CFLAGS=$pkg_cv_XCB_XKB_CFLAGS + XCB_XKB_LIBS=$pkg_cv_XCB_XKB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +else + enable_x11=no +fi + if test "x$enable_x11" = xyes; then + ENABLE_X11_TRUE= + ENABLE_X11_FALSE='#' +else + ENABLE_X11_TRUE='#' + ENABLE_X11_FALSE= +fi + + +ac_config_files="$ac_config_files Makefile xkbcommon-uninstalled.pc xkbcommon.pc xkbcommon-x11.pc xkbcommon-x11-uninstalled.pc doc/Doxyfile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DOXYGEN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LINUX_TESTS_TRUE}" && test -z "${BUILD_LINUX_TESTS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LINUX_TESTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_NO_UNDEFINED_TRUE}" && test -z "${HAVE_NO_UNDEFINED_FALSE}"; then + as_fn_error $? "conditional \"HAVE_NO_UNDEFINED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_X11_TRUE}" && test -z "${ENABLE_X11_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_X11\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +@%:@ as_fn_executable_p FILE +@%:@ ----------------------- +@%:@ Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} @%:@ as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libxkbcommon $as_me 0.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +libxkbcommon home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libxkbcommon config.status 0.5.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "xkbcommon-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-uninstalled.pc" ;; + "xkbcommon.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon.pc" ;; + "xkbcommon-x11.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-x11.pc" ;; + "xkbcommon-x11-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-x11-uninstalled.pc" ;; + "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +" >&5 +$as_echo " + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +" >&6; } diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.2 b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.2 new file mode 100644 index 0000000..0722728 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/output.2 @@ -0,0 +1,21655 @@ +@%:@! /bin/sh +@%:@ Guess values for system-dependent variables and create Makefiles. +@%:@ Generated by GNU Autoconf 2.69 for libxkbcommon 0.5.0. +@%:@ +@%:@ Report bugs to . +@%:@ +@%:@ +@%:@ Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +@%:@ +@%:@ +@%:@ This configure script is free software; the Free Software Foundation +@%:@ gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in @%:@( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in @%:@ (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p + +@%:@ as_fn_executable_p FILE +@%:@ ----------------------- +@%:@ Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} @%:@ as_fn_executable_p +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIB@&t@OBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='libxkbcommon' +PACKAGE_TARNAME='libxkbcommon' +PACKAGE_VERSION='0.5.0' +PACKAGE_STRING='libxkbcommon 0.5.0' +PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon' +PACKAGE_URL='http://xkbcommon.org' + +ac_unique_file="Makefile.am" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIB@&t@OBJS +ENABLE_X11_FALSE +ENABLE_X11_TRUE +XCB_XKB_LIBS +XCB_XKB_CFLAGS +XLOCALEDIR +XKBCONFIGROOT +RT_LIBS +HAVE_NO_UNDEFINED_FALSE +HAVE_NO_UNDEFINED_TRUE +BUILD_LINUX_TESTS_FALSE +BUILD_LINUX_TESTS_TRUE +YACC_INST +YFLAGS +YACC +HAVE_DOXYGEN_FALSE +HAVE_DOXYGEN_TRUE +DOXYGEN +ENABLE_DOCS_FALSE +ENABLE_DOCS_TRUE +XORG_MALLOC_DEBUG_ENV +MAN_SUBSTS +XORG_MAN_PAGE +ADMIN_MAN_DIR +DRIVER_MAN_DIR +MISC_MAN_DIR +FILE_MAN_DIR +LIB_MAN_DIR +APP_MAN_DIR +ADMIN_MAN_SUFFIX +DRIVER_MAN_SUFFIX +MISC_MAN_SUFFIX +FILE_MAN_SUFFIX +LIB_MAN_SUFFIX +APP_MAN_SUFFIX +INSTALL_CMD +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +CHANGELOG_CMD +STRICT_CFLAGS +CWARNFLAGS +BASE_CFLAGS +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +AR +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +EGREP +GREP +CPP +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_silent_rules +enable_maintainer_mode +enable_dependency_tracking +enable_shared +enable_static +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_selective_werror +enable_strict_compilation +enable_docs +with_doxygen +with_xkb_config_root +with_x_locale_root +with_default_rules +with_default_model +with_default_layout +with_default_variant +with_default_options +enable_x11 +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +XORG_MALLOC_DEBUG_ENV +DOXYGEN +YACC +YFLAGS +XCB_XKB_CFLAGS +XCB_XKB_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures libxkbcommon 0.5.0 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + @<:@@S|@ac_default_prefix@:>@ + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + @<:@PREFIX@:>@ + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root @<:@DATAROOTDIR/doc/libxkbcommon@:>@ + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of libxkbcommon 0.5.0:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --disable-maintainer-mode + disable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-shared@<:@=PKGS@:>@ build shared libraries @<:@default=yes@:>@ + --enable-static@<:@=PKGS@:>@ build static libraries @<:@default=yes@:>@ + --enable-fast-install@<:@=PKGS@:>@ + optimize for fast installation @<:@default=yes@:>@ + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-selective-werror + Turn off selective compiler errors. (default: + enabled) + --enable-strict-compilation + Enable all warnings from compiler and make them + errors (default: disabled) + --enable-docs Enable building the documentation (default: yes) + --disable-x11 Disable support for creating keymaps with the X11 + protocol (default: enabled) + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic@<:@=PKGS@:>@ try to use only PIC/non-PIC objects @<:@default=use + both@:>@ + --with-gnu-ld assume the C compiler uses GNU ld @<:@default=no@:>@ + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + --with-doxygen Use doxygen to regenerate documentation (default: + auto) + --with-xkb-config-root= + Set default XKB config root (default: + xkeyboard-config install path) + --with-x-locale-root= + Set X locale root (default: @S|@datadir/X11/locale) + --with-default-rules= + Default XKB ruleset (default: evdev) + --with-default-model= + Default XKB model (default: pc105) + --with-default-layout= + Default XKB layout (default: us) + --with-default-variant= + Default XKB variant (default: (none)) + --with-default-options= + Default XKB options (default: (none)) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + XORG_MALLOC_DEBUG_ENV + Environment variables to enable memory checking in tests + DOXYGEN Path to doxygen command + YACC The `Yet Another Compiler Compiler' implementation to use. + Defaults to the first program found out of: `bison -y', `byacc', + `yacc'. + YFLAGS The list of arguments that will be passed by default to @S|@YACC. + This script will default YFLAGS to the empty string to avoid a + default value of `-d' given by some make applications. + XCB_XKB_CFLAGS + C compiler flags for XCB_XKB, overriding pkg-config + XCB_XKB_LIBS + linker flags for XCB_XKB, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +libxkbcommon home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +libxkbcommon configure 0.5.0 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +@%:@ ac_fn_c_try_compile LINENO +@%:@ -------------------------- +@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_compile + +@%:@ ac_fn_c_try_cpp LINENO +@%:@ ---------------------- +@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_cpp + +@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using +@%:@ the include files in INCLUDES and setting the cache variable VAR +@%:@ accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------------------------------------------ ## +## Report this to https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon ## +## ------------------------------------------------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_mongrel + +@%:@ ac_fn_c_try_run LINENO +@%:@ ---------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes +@%:@ that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_run + +@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +@%:@ ------------------------------------------------------- +@%:@ Tests whether HEADER exists and can be compiled using the include files in +@%:@ INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +@%:@include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_header_compile + +@%:@ ac_fn_c_try_link LINENO +@%:@ ----------------------- +@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} @%:@ ac_fn_c_try_link + +@%:@ ac_fn_c_check_func LINENO FUNC VAR +@%:@ ---------------------------------- +@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_func + +@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +@%:@ --------------------------------------------- +@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +@%:@ accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +@%:@ifndef $as_decl_name +@%:@ifdef __cplusplus + (void) $as_decl_use; +@%:@else + (void) $as_decl_name; +@%:@endif +@%:@endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} @%:@ ac_fn_c_check_decl +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libxkbcommon $as_me 0.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in @%:@(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_config_headers="$ac_config_headers src/config.h" + + +ac_aux_dir= +for ac_dir in build-aux "$srcdir"/build-aux; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# Initialize Automake +am__api_version='1.14' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in @%:@(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # 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_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='libxkbcommon' + VERSION='0.5.0' + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +@%:@define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + + +# POSIX will say in a future version that running "rm -f" with no argument +# 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: + +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: . + +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 + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + @%:@ Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +# Get _GNU_SOURCE and friends +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +@%:@ Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $@%:@ != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@ifdef __STDC__ +@%:@ include +@%:@else +@%:@ include +@%:@endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +@%:@include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "@%:@define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h + + + +# Initialize libtool +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +@%:@ Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +@%:@ Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +@%:@ Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options + + + + enable_dlopen=no + + + enable_win32_dll=no + + + @%:@ Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + @%:@ Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +@%:@ Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + 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 $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + @%:@ Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic@&t@ -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic@&t@ -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +# Add xorg-macros stuff + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + +fi + + + + + + +ac_fn_c_check_decl "$LINENO" "__clang__" "ac_cv_have_decl___clang__" "$ac_includes_default" +if test "x$ac_cv_have_decl___clang__" = xyes; then : + CLANGCC="yes" +else + CLANGCC="no" +fi + +ac_fn_c_check_decl "$LINENO" "__INTEL_COMPILER" "ac_cv_have_decl___INTEL_COMPILER" "$ac_includes_default" +if test "x$ac_cv_have_decl___INTEL_COMPILER" = xyes; then : + INTELCC="yes" +else + INTELCC="no" +fi + +ac_fn_c_check_decl "$LINENO" "__SUNPRO_C" "ac_cv_have_decl___SUNPRO_C" "$ac_includes_default" +if test "x$ac_cv_have_decl___SUNPRO_C" = xyes; then : + SUNCC="yes" +else + SUNCC="no" +fi + + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + + + + + +@%:@ Check whether --enable-selective-werror was given. +if test "${enable_selective_werror+set}" = set; then : + enableval=$enable_selective_werror; SELECTIVE_WERROR=$enableval +else + SELECTIVE_WERROR=yes +fi + + + + + +# -v is too short to test reliably with XORG_TESTSET_CFLAG +if test "x$SUNCC" = "xyes"; then + BASE_CFLAGS="-v" +else + BASE_CFLAGS="" +fi + +# This chunk of warnings were those that existed in the legacy CWARNFLAGS + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wall" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wall" >&5 +$as_echo_n "checking if $CC supports-Wall... " >&6; } + cacheid=xorg_cv_cc_flag__Wall + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wall" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wpointer-arith" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-arith" >&5 +$as_echo_n "checking if $CC supports-Wpointer-arith... " >&6; } + cacheid=xorg_cv_cc_flag__Wpointer_arith + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wpointer-arith" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-declarations" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-declarations" >&5 +$as_echo_n "checking if $CC supports-Wmissing-declarations... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_declarations + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-declarations" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wformat=2" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat=2" >&5 +$as_echo_n "checking if $CC supports-Wformat=2... " >&6; } + cacheid=xorg_cv_cc_flag__Wformat_2 + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wformat=2" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wformat" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wformat" >&5 +$as_echo_n "checking if $CC supports-Wformat... " >&6; } + cacheid=xorg_cv_cc_flag__Wformat + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wformat" + found="yes" + fi + fi + + + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wstrict-prototypes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wstrict-prototypes" >&5 +$as_echo_n "checking if $CC supports-Wstrict-prototypes... " >&6; } + cacheid=xorg_cv_cc_flag__Wstrict_prototypes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wstrict-prototypes" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-prototypes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-prototypes" >&5 +$as_echo_n "checking if $CC supports-Wmissing-prototypes... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_prototypes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-prototypes" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wnested-externs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnested-externs" >&5 +$as_echo_n "checking if $CC supports-Wnested-externs... " >&6; } + cacheid=xorg_cv_cc_flag__Wnested_externs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wnested-externs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wbad-function-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wbad-function-cast" >&5 +$as_echo_n "checking if $CC supports-Wbad-function-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wbad_function_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wbad-function-cast" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wold-style-definition" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wold-style-definition" >&5 +$as_echo_n "checking if $CC supports-Wold-style-definition... " >&6; } + cacheid=xorg_cv_cc_flag__Wold_style_definition + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wold-style-definition" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdeclaration-after-statement" >&5 +$as_echo_n "checking if $CC supports-Wdeclaration-after-statement... " >&6; } + cacheid=xorg_cv_cc_flag__Wdeclaration_after_statement + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wdeclaration-after-statement" + found="yes" + fi + fi + + + + + +# This chunk adds additional warnings that could catch undesired effects. + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wunused" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wunused" >&5 +$as_echo_n "checking if $CC supports-Wunused... " >&6; } + cacheid=xorg_cv_cc_flag__Wunused + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wunused" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wuninitialized" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wuninitialized" >&5 +$as_echo_n "checking if $CC supports-Wuninitialized... " >&6; } + cacheid=xorg_cv_cc_flag__Wuninitialized + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wuninitialized" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wshadow" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wshadow" >&5 +$as_echo_n "checking if $CC supports-Wshadow... " >&6; } + cacheid=xorg_cv_cc_flag__Wshadow + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wshadow" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wcast-qual" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wcast-qual" >&5 +$as_echo_n "checking if $CC supports-Wcast-qual... " >&6; } + cacheid=xorg_cv_cc_flag__Wcast_qual + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wcast-qual" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-noreturn" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-noreturn" >&5 +$as_echo_n "checking if $CC supports-Wmissing-noreturn... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_noreturn + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-noreturn" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-format-attribute" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-format-attribute" >&5 +$as_echo_n "checking if $CC supports-Wmissing-format-attribute... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_format_attribute + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-format-attribute" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wredundant-decls" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wredundant-decls" >&5 +$as_echo_n "checking if $CC supports-Wredundant-decls... " >&6; } + cacheid=xorg_cv_cc_flag__Wredundant_decls + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wredundant-decls" + found="yes" + fi + fi + + + +# These are currently disabled because they are noisy. They will be enabled +# in the future once the codebase is sufficiently modernized to silence +# them. For now, I don't want them to drown out the other warnings. +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) + +# Turn some warnings into errors, so we don't accidently get successful builds +# when there are problems that should be fixed. + +if test "x$SELECTIVE_WERROR" = "xyes" ; then + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=implicit" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=implicit" >&5 +$as_echo_n "checking if $CC supports-Werror=implicit... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_implicit + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=implicit" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_NO_EXPLICIT_TYPE_GIVEN__errwarn_E_NO_IMPLICIT_DECL_ALLOWED + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=nonnull" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=nonnull" >&5 +$as_echo_n "checking if $CC supports-Werror=nonnull... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_nonnull + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=nonnull" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=init-self" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=init-self" >&5 +$as_echo_n "checking if $CC supports-Werror=init-self... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_init_self + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=init-self" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=main" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=main" >&5 +$as_echo_n "checking if $CC supports-Werror=main... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_main + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=main" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=missing-braces" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=missing-braces" >&5 +$as_echo_n "checking if $CC supports-Werror=missing-braces... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_missing_braces + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=missing-braces" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=sequence-point" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=sequence-point" >&5 +$as_echo_n "checking if $CC supports-Werror=sequence-point... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_sequence_point + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=sequence-point" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=return-type" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=return-type" >&5 +$as_echo_n "checking if $CC supports-Werror=return-type... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_return_type + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=return-type" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_FUNC_HAS_NO_RETURN_STMT... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_FUNC_HAS_NO_RETURN_STMT + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_FUNC_HAS_NO_RETURN_STMT" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=trigraphs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=trigraphs" >&5 +$as_echo_n "checking if $CC supports-Werror=trigraphs... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_trigraphs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=trigraphs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=array-bounds" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=array-bounds" >&5 +$as_echo_n "checking if $CC supports-Werror=array-bounds... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_array_bounds + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=array-bounds" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=write-strings" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=write-strings" >&5 +$as_echo_n "checking if $CC supports-Werror=write-strings... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_write_strings + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=write-strings" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=address" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=address" >&5 +$as_echo_n "checking if $CC supports-Werror=address... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_address + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=address" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=int-to-pointer-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=int-to-pointer-cast" >&5 +$as_echo_n "checking if $CC supports-Werror=int-to-pointer-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_int_to_pointer_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=int-to-pointer-cast" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION" >&5 +$as_echo_n "checking if $CC supports-errwarn=E_BAD_PTR_INT_COMBINATION... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn_E_BAD_PTR_INT_COMBINATION + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -errwarn=E_BAD_PTR_INT_COMBINATION" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=pointer-to-int-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=pointer-to-int-cast" >&5 +$as_echo_n "checking if $CC supports-Werror=pointer-to-int-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_pointer_to_int_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Werror=pointer-to-int-cast" + found="yes" + fi + fi + + # Also -errwarn=E_BAD_PTR_INT_COMBINATION +else +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT" >&5 +$as_echo "$as_me: WARNING: You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT" >&2;} + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wimplicit" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wimplicit" >&5 +$as_echo_n "checking if $CC supports-Wimplicit... " >&6; } + cacheid=xorg_cv_cc_flag__Wimplicit + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wimplicit" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wnonnull" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wnonnull" >&5 +$as_echo_n "checking if $CC supports-Wnonnull... " >&6; } + cacheid=xorg_cv_cc_flag__Wnonnull + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wnonnull" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Winit-self" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Winit-self" >&5 +$as_echo_n "checking if $CC supports-Winit-self... " >&6; } + cacheid=xorg_cv_cc_flag__Winit_self + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Winit-self" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmain" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmain" >&5 +$as_echo_n "checking if $CC supports-Wmain... " >&6; } + cacheid=xorg_cv_cc_flag__Wmain + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmain" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wmissing-braces" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wmissing-braces" >&5 +$as_echo_n "checking if $CC supports-Wmissing-braces... " >&6; } + cacheid=xorg_cv_cc_flag__Wmissing_braces + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wmissing-braces" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wsequence-point" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wsequence-point" >&5 +$as_echo_n "checking if $CC supports-Wsequence-point... " >&6; } + cacheid=xorg_cv_cc_flag__Wsequence_point + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wsequence-point" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wreturn-type" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wreturn-type" >&5 +$as_echo_n "checking if $CC supports-Wreturn-type... " >&6; } + cacheid=xorg_cv_cc_flag__Wreturn_type + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wreturn-type" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wtrigraphs" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wtrigraphs" >&5 +$as_echo_n "checking if $CC supports-Wtrigraphs... " >&6; } + cacheid=xorg_cv_cc_flag__Wtrigraphs + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wtrigraphs" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Warray-bounds" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Warray-bounds" >&5 +$as_echo_n "checking if $CC supports-Warray-bounds... " >&6; } + cacheid=xorg_cv_cc_flag__Warray_bounds + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Warray-bounds" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wwrite-strings" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wwrite-strings" >&5 +$as_echo_n "checking if $CC supports-Wwrite-strings... " >&6; } + cacheid=xorg_cv_cc_flag__Wwrite_strings + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wwrite-strings" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Waddress" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Waddress" >&5 +$as_echo_n "checking if $CC supports-Waddress... " >&6; } + cacheid=xorg_cv_cc_flag__Waddress + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Waddress" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wint-to-pointer-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wint-to-pointer-cast" >&5 +$as_echo_n "checking if $CC supports-Wint-to-pointer-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wint_to_pointer_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wint-to-pointer-cast" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wpointer-to-int-cast" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wpointer-to-int-cast" >&5 +$as_echo_n "checking if $CC supports-Wpointer-to-int-cast... " >&6; } + cacheid=xorg_cv_cc_flag__Wpointer_to_int_cast + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wpointer-to-int-cast" + found="yes" + fi + fi + + +fi + + + + + + + + CWARNFLAGS="$BASE_CFLAGS" + if test "x$GCC" = xyes ; then + CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" + fi + + + + + + + + +@%:@ Check whether --enable-strict-compilation was given. +if test "${enable_strict_compilation+set}" = set; then : + enableval=$enable_strict_compilation; STRICT_COMPILE=$enableval +else + STRICT_COMPILE=no +fi + + + + + + +STRICT_CFLAGS="" + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -pedantic" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-pedantic" >&5 +$as_echo_n "checking if $CC supports-pedantic... " >&6; } + cacheid=xorg_cv_cc_flag__pedantic + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -pedantic" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror" >&5 +$as_echo_n "checking if $CC supports-Werror... " >&6; } + cacheid=xorg_cv_cc_flag__Werror + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror" + found="yes" + fi + fi + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -errwarn" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-errwarn" >&5 +$as_echo_n "checking if $CC supports-errwarn... " >&6; } + cacheid=xorg_cv_cc_flag__errwarn + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -errwarn" + found="yes" + fi + fi + + + +# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not +# activate it with -Werror, so we add it here explicitly. + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Werror=attributes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Werror=attributes" >&5 +$as_echo_n "checking if $CC supports-Werror=attributes... " >&6; } + cacheid=xorg_cv_cc_flag__Werror_attributes + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + STRICT_CFLAGS="$STRICT_CFLAGS -Werror=attributes" + found="yes" + fi + fi + + + +if test "x$STRICT_COMPILE" = "xyes"; then + BASE_CFLAGS="$BASE_CFLAGS $STRICT_CFLAGS" + CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" +fi + + + + + + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1` +_ACEOF + + PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` + if test "x$PVM" = "x"; then + PVM="0" + fi + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_MINOR $PVM +_ACEOF + + PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` + if test "x$PVP" = "x"; then + PVP="0" + fi + +cat >>confdefs.h <<_ACEOF +@%:@define PACKAGE_VERSION_PATCHLEVEL $PVP +_ACEOF + + + +CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ +|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ +echo 'git directory not found: installing possibly empty changelog.' >&2)" + + + + +macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` +INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ +mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ +echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" + + + + + + +if test x$APP_MAN_SUFFIX = x ; then + APP_MAN_SUFFIX=1 +fi +if test x$APP_MAN_DIR = x ; then + APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' +fi + +if test x$LIB_MAN_SUFFIX = x ; then + LIB_MAN_SUFFIX=3 +fi +if test x$LIB_MAN_DIR = x ; then + LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' +fi + +if test x$FILE_MAN_SUFFIX = x ; then + case $host_os in + solaris*) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; + esac +fi +if test x$FILE_MAN_DIR = x ; then + FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' +fi + +if test x$MISC_MAN_SUFFIX = x ; then + case $host_os in + solaris*) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; + esac +fi +if test x$MISC_MAN_DIR = x ; then + MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' +fi + +if test x$DRIVER_MAN_SUFFIX = x ; then + case $host_os in + solaris*) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; + esac +fi +if test x$DRIVER_MAN_DIR = x ; then + DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' +fi + +if test x$ADMIN_MAN_SUFFIX = x ; then + case $host_os in + solaris*) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; + esac +fi +if test x$ADMIN_MAN_DIR = x ; then + ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' +fi + + + + + + + + + + + + + + + +XORG_MAN_PAGE="X Version 11" + +MAN_SUBSTS="\ + -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xservername__|Xorg|g' \ + -e 's|__xconfigfile__|xorg.conf|g' \ + -e 's|__projectroot__|\$(prefix)|g' \ + -e 's|__apploaddir__|\$(appdefaultdir)|g' \ + -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ + -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ + -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ + -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ + -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ + -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" + + + +@%:@ Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + + + + + +# Check for different types of support on different platforms +case $host_os in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for umem_alloc in -lumem" >&5 +$as_echo_n "checking for umem_alloc in -lumem... " >&6; } +if ${ac_cv_lib_umem_umem_alloc+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lumem $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char umem_alloc (); +int +main () +{ +return umem_alloc (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_umem_umem_alloc=yes +else + ac_cv_lib_umem_umem_alloc=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_umem_umem_alloc" >&5 +$as_echo "$ac_cv_lib_umem_umem_alloc" >&6; } +if test "x$ac_cv_lib_umem_umem_alloc" = xyes; then : + malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default' +fi + + ;; + *-gnu*) # GNU libc - Value is used as a single byte bit pattern, + # both directly and inverted, so should not be 0 or 255. + malloc_debug_env='MALLOC_PERTURB_=15' + ;; + darwin*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' + ;; + *bsd*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1' + ;; +esac + +# User supplied flags override default flags +if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then + malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" +fi + +XORG_MALLOC_DEBUG_ENV=$malloc_debug_env + + + + +@%:@ Check whether --enable-docs was given. +if test "${enable_docs+set}" = set; then : + enableval=$enable_docs; build_docs=$enableval +else + build_docs=yes +fi + + + if test x$build_docs = xyes; then + ENABLE_DOCS_TRUE= + ENABLE_DOCS_FALSE='#' +else + ENABLE_DOCS_TRUE='#' + ENABLE_DOCS_FALSE= +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build documentation" >&5 +$as_echo_n "checking whether to build documentation... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $build_docs" >&5 +$as_echo "$build_docs" >&6; } + + + + + +@%:@ Check whether --with-doxygen was given. +if test "${with_doxygen+set}" = set; then : + withval=$with_doxygen; use_doxygen=$withval +else + use_doxygen=auto +fi + + + +if test "x$use_doxygen" = x"auto"; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 +$as_echo "$DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$DOXYGEN" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: doxygen not found - documentation targets will be skipped" >&5 +$as_echo "$as_me: WARNING: doxygen not found - documentation targets will be skipped" >&2;} + have_doxygen=no + else + have_doxygen=yes + fi +elif test "x$use_doxygen" = x"yes" ; then + # Extract the first word of "doxygen", so it can be a program name with args. +set dummy doxygen; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_DOXYGEN+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $DOXYGEN in + [\\/]* | ?:[\\/]*) + ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +DOXYGEN=$ac_cv_path_DOXYGEN +if test -n "$DOXYGEN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5 +$as_echo "$DOXYGEN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$DOXYGEN" = "x"; then + as_fn_error $? "--with-doxygen=yes specified but doxygen not found in PATH" "$LINENO" 5 + fi + have_doxygen=yes +elif test "x$use_doxygen" = x"no" ; then + if test "x$DOXYGEN" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: ignoring DOXYGEN environment variable since --with-doxygen=no was specified" >&5 +$as_echo "$as_me: WARNING: ignoring DOXYGEN environment variable since --with-doxygen=no was specified" >&2;} + fi + have_doxygen=no +else + as_fn_error $? "--with-doxygen expects 'yes' or 'no'" "$LINENO" 5 +fi + + if test "$have_doxygen" = yes; then + HAVE_DOXYGEN_TRUE= + HAVE_DOXYGEN_FALSE='#' +else + HAVE_DOXYGEN_TRUE='#' + HAVE_DOXYGEN_FALSE= +fi + + + +# Needed in older Automakes for subdir-objects + + +# Check for compiler features +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + + +# Check for programs + + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi + +# Note: we use some yacc extensions, which work with either GNU bison +# (preferred) or byacc. Other yacc's may or may not work. +for ac_prog in 'bison -y' byacc +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_YACC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$YACC"; then + ac_cv_prog_YACC="$YACC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_YACC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +YACC=$ac_cv_prog_YACC +if test -n "$YACC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5 +$as_echo "$YACC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$YACC" && break +done +test -n "$YACC" || YACC="yacc" + +# Extract the first word of "$YACC", so it can be a program name with args. +set dummy $YACC; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_YACC_INST+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $YACC_INST in + [\\/]* | ?:[\\/]*) + ac_cv_path_YACC_INST="$YACC_INST" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_YACC_INST="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +YACC_INST=$ac_cv_path_YACC_INST +if test -n "$YACC_INST"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC_INST" >&5 +$as_echo "$YACC_INST" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test ! -f "src/xkbcomp/parser.c" -a "x$YACC_INST" = x; then : + + as_fn_error $? "yacc not found - unable to compile src/xkbcomp/parser.y" "$LINENO" 5 + +fi + +# Checks for library functions. +for ac_func in strcasecmp strncasecmp +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_strcasecmp" = xno -o \ + "x$ac_cv_func_strncasecmp" = xno; then : + + as_fn_error $? "C library does not support strcasecmp/strncasecmp" "$LINENO" 5 + +fi + +for ac_func in eaccess euidaccess mmap +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in secure_getenv __secure_getenv +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_secure_getenv" = xno -a \ + "x$ac_cv_func___secure_getenv" = xno; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C library does not support secure_getenv, using getenv instead" >&5 +$as_echo "$as_me: WARNING: C library does not support secure_getenv, using getenv instead" >&2;} + +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5 +$as_echo_n "checking for __builtin_expect... " >&6; } +if ${ax_cv_have___builtin_expect+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + __builtin_expect(0, 0) + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_have___builtin_expect=yes +else + ax_cv_have___builtin_expect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have___builtin_expect" >&5 +$as_echo "$ax_cv_have___builtin_expect" >&6; } + + if test yes = $ax_cv_have___builtin_expect; then : + +cat >>confdefs.h <<_ACEOF +@%:@define HAVE___BUILTIN_EXPECT 1 +_ACEOF + +fi + + + + +# Some tests use Linux-specific headers +ac_fn_c_check_header_mongrel "$LINENO" "linux/input.h" "ac_cv_header_linux_input_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_input_h" = xyes; then : + +fi + + + if test "x$ac_cv_header_linux_input_h" = xyes; then + BUILD_LINUX_TESTS_TRUE= + BUILD_LINUX_TESTS_FALSE='#' +else + BUILD_LINUX_TESTS_TRUE='#' + BUILD_LINUX_TESTS_FALSE= +fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -fvisibility=hidden" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-fvisibility=hidden" >&5 +$as_echo_n "checking if $CC supports-fvisibility=hidden... " >&6; } + cacheid=xorg_cv_cc_flag__fvisibility_hidden + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -fvisibility=hidden" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wextra -Wno-unused-parameter -Wno-missing-field-initializers" >&5 +$as_echo_n "checking if $CC supports-Wextra -Wno-unused-parameter -Wno-missing-field-initializers... " >&6; } + cacheid=xorg_cv_cc_flag__Wextra__Wno_unused_parameter__Wno_missing_field_initializers + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wextra -Wno-unused-parameter -Wno-missing-field-initializers" + found="yes" + fi + fi + + + + + + + + + + + + + + + +xorg_testset_save_CFLAGS="$CFLAGS" + +if test "x$xorg_testset_cc_unknown_warning_option" = "x" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unknown-warning-option" >&5 +$as_echo_n "checking if $CC supports -Werror=unknown-warning-option... " >&6; } +if ${xorg_cv_cc_flag_unknown_warning_option+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unknown_warning_option=yes +else + xorg_cv_cc_flag_unknown_warning_option=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unknown_warning_option" >&5 +$as_echo "$xorg_cv_cc_flag_unknown_warning_option" >&6; } + xorg_testset_cc_unknown_warning_option=$xorg_cv_cc_flag_unknown_warning_option + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +if test "x$xorg_testset_cc_unused_command_line_argument" = "x" ; then + if test "x$xorg_testset_cc_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports -Werror=unused-command-line-argument" >&5 +$as_echo_n "checking if $CC supports -Werror=unused-command-line-argument... " >&6; } +if ${xorg_cv_cc_flag_unused_command_line_argument+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + xorg_cv_cc_flag_unused_command_line_argument=yes +else + xorg_cv_cc_flag_unused_command_line_argument=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_cv_cc_flag_unused_command_line_argument" >&5 +$as_echo "$xorg_cv_cc_flag_unused_command_line_argument" >&6; } + xorg_testset_cc_unused_command_line_argument=$xorg_cv_cc_flag_unused_command_line_argument + CFLAGS="$xorg_testset_save_CFLAGS" +fi + +found="no" + + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + CFLAGS="$CFLAGS -Werror=unused-command-line-argument" + fi + + CFLAGS="$CFLAGS -Wdocumentation" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports-Wdocumentation" >&5 +$as_echo_n "checking if $CC supports-Wdocumentation... " >&6; } + cacheid=xorg_cv_cc_flag__Wdocumentation + if eval \${$cacheid+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int i; +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval $cacheid=yes +else + eval $cacheid=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + + + CFLAGS="$xorg_testset_save_CFLAGS" + + eval supported=\$$cacheid + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supported" >&5 +$as_echo "$supported" >&6; } + if test "$supported" = "yes" ; then + BASE_CFLAGS="$BASE_CFLAGS -Wdocumentation" + found="yes" + fi + fi + + + +# OpenBSD does not have DT_NEEDED entries for libc by design +# so when these flags are passed to ld via libtool the checks will fail +case "$host_os" in +openbsd*) + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,--no-undefined" >&5 +$as_echo_n "checking whether the linker accepts -Wl,--no-undefined... " >&6; } +if ${xorg_cv_linker_flags__Wl___no_undefined+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_save_FLAGS=$LDFLAGS + LDFLAGS="-Wl,--no-undefined" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + xorg_cv_linker_flags__Wl___no_undefined=yes +else + xorg_cv_linker_flags__Wl___no_undefined=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_save_FLAGS +fi + +eval xorg_check_linker_flags=$xorg_cv_linker_flags__Wl___no_undefined +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xorg_check_linker_flags" >&5 +$as_echo "$xorg_check_linker_flags" >&6; } +if test "x$xorg_check_linker_flags" = xyes; then + have_no_undefined=yes +else + : +fi + ;; +esac + + if test "x$have_no_undefined" = xyes; then + HAVE_NO_UNDEFINED_TRUE= + HAVE_NO_UNDEFINED_FALSE='#' +else + HAVE_NO_UNDEFINED_TRUE='#' + HAVE_NO_UNDEFINED_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt -lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_gettime=yes +else + ac_cv_lib_rt_clock_gettime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : + RT_LIBS="-lrt" + +else + RT_LIBS="" + +fi + + +# Define a configuration option for the XKB config root +xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config` +if test "x$xkb_base" = x; then : + + xkb_base="$datadir/X11/xkb" + +fi + +@%:@ Check whether --with-xkb_config_root was given. +if test "${with_xkb_config_root+set}" = set; then : + withval=$with_xkb_config_root; XKBCONFIGROOT="$withval" +else + XKBCONFIGROOT="$xkb_base" +fi + + + +# Define a configuration option for the X locale directory for compose + +@%:@ Check whether --with-x_locale_root was given. +if test "${with_x_locale_root+set}" = set; then : + withval=$with_x_locale_root; XLOCALEDIR="$withval" +else + XLOCALEDIR="$datadir/X11/locale" +fi + + + + +@%:@ Check whether --with-default_rules was given. +if test "${with_default_rules+set}" = set; then : + withval=$with_default_rules; DEFAULT_XKB_RULES="$withval" +else + DEFAULT_XKB_RULES="evdev" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_RULES "$DEFAULT_XKB_RULES" +_ACEOF + + + +@%:@ Check whether --with-default_model was given. +if test "${with_default_model+set}" = set; then : + withval=$with_default_model; DEFAULT_XKB_MODEL="$withval" +else + DEFAULT_XKB_MODEL="pc105" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_MODEL "$DEFAULT_XKB_MODEL" +_ACEOF + + + +@%:@ Check whether --with-default_layout was given. +if test "${with_default_layout+set}" = set; then : + withval=$with_default_layout; DEFAULT_XKB_LAYOUT="$withval" +else + DEFAULT_XKB_LAYOUT="us" +fi + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_LAYOUT "$DEFAULT_XKB_LAYOUT" +_ACEOF + + + +@%:@ Check whether --with-default_variant was given. +if test "${with_default_variant+set}" = set; then : + withval=$with_default_variant; DEFAULT_XKB_VARIANT="$withval" +else + DEFAULT_XKB_VARIANT= +fi + +if test "x$DEFAULT_XKB_VARIANT" != x; then : + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_VARIANT "$DEFAULT_XKB_VARIANT" +_ACEOF + + +fi + + +@%:@ Check whether --with-default_options was given. +if test "${with_default_options+set}" = set; then : + withval=$with_default_options; DEFAULT_XKB_OPTIONS="$withval" +else + DEFAULT_XKB_OPTIONS= +fi + +if test "x$DEFAULT_XKB_OPTIONS" != x; then : + + +cat >>confdefs.h <<_ACEOF +@%:@define DEFAULT_XKB_OPTIONS "$DEFAULT_XKB_OPTIONS" +_ACEOF + + +fi + +@%:@ Check whether --enable-x11 was given. +if test "${enable_x11+set}" = set; then : + enableval=$enable_x11; +else + enable_x11=yes +fi + +if test "x$enable_x11" = xyes; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for XCB_XKB" >&5 +$as_echo_n "checking for XCB_XKB... " >&6; } + +if test -n "$XCB_XKB_CFLAGS"; then + pkg_cv_XCB_XKB_CFLAGS="$XCB_XKB_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-xkb >= 1.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xcb xcb-xkb >= 1.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XCB_XKB_CFLAGS=`$PKG_CONFIG --cflags "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$XCB_XKB_LIBS"; then + pkg_cv_XCB_XKB_LIBS="$XCB_XKB_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xcb xcb-xkb >= 1.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "xcb xcb-xkb >= 1.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_XCB_XKB_LIBS=`$PKG_CONFIG --libs "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + XCB_XKB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "xcb xcb-xkb >= 1.10" 2>&1` + else + XCB_XKB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "xcb xcb-xkb >= 1.10" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$XCB_XKB_PKG_ERRORS" >&5 + + as_fn_error $? "xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11." "$LINENO" 5 +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + as_fn_error $? "xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11." "$LINENO" 5 +else + XCB_XKB_CFLAGS=$pkg_cv_XCB_XKB_CFLAGS + XCB_XKB_LIBS=$pkg_cv_XCB_XKB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +fi + +else + enable_x11=no +fi + if test "x$enable_x11" = xyes; then + ENABLE_X11_TRUE= + ENABLE_X11_FALSE='#' +else + ENABLE_X11_TRUE='#' + ENABLE_X11_FALSE= +fi + + +ac_config_files="$ac_config_files Makefile xkbcommon-uninstalled.pc xkbcommon.pc xkbcommon-x11.pc xkbcommon-x11-uninstalled.pc doc/Doxyfile" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIB@&t@OBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIB@&t@OBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_DOCS_TRUE}" && test -z "${ENABLE_DOCS_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_DOCS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_DOXYGEN_TRUE}" && test -z "${HAVE_DOXYGEN_FALSE}"; then + as_fn_error $? "conditional \"HAVE_DOXYGEN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_LINUX_TESTS_TRUE}" && test -z "${BUILD_LINUX_TESTS_FALSE}"; then + as_fn_error $? "conditional \"BUILD_LINUX_TESTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_NO_UNDEFINED_TRUE}" && test -z "${HAVE_NO_UNDEFINED_FALSE}"; then + as_fn_error $? "conditional \"HAVE_NO_UNDEFINED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_X11_TRUE}" && test -z "${ENABLE_X11_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_X11\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in @%:@( + *posix*) : + set -o posix ;; @%:@( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in @%:@( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in @%:@(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD] +@%:@ ---------------------------------------- +@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are +@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the +@%:@ script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} @%:@ as_fn_error + + +@%:@ as_fn_set_status STATUS +@%:@ ----------------------- +@%:@ Set @S|@? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} @%:@ as_fn_set_status + +@%:@ as_fn_exit STATUS +@%:@ ----------------- +@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} @%:@ as_fn_exit + +@%:@ as_fn_unset VAR +@%:@ --------------- +@%:@ Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +@%:@ as_fn_append VAR VALUE +@%:@ ---------------------- +@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take +@%:@ advantage of any shell optimizations that allow amortized linear growth over +@%:@ repeated appends, instead of the typical quadratic growth present in naive +@%:@ implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +@%:@ as_fn_arith ARG... +@%:@ ------------------ +@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the +@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments +@%:@ must be portable across @S|@(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in @%:@((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +@%:@ as_fn_mkdir_p +@%:@ ------------- +@%:@ Create "@S|@as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} @%:@ as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +@%:@ as_fn_executable_p FILE +@%:@ ----------------------- +@%:@ Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} @%:@ as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by libxkbcommon $as_me 0.5.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to . +libxkbcommon home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +libxkbcommon config.status 0.5.0 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../@%:@@%:@ /;s/...$/ @%:@@%:@/;p;x;p;x' <<_ASBOX +@%:@@%:@ Running $as_me. @%:@@%:@ +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "src/config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "xkbcommon-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-uninstalled.pc" ;; + "xkbcommon.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon.pc" ;; + "xkbcommon-x11.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-x11.pc" ;; + "xkbcommon-x11-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES xkbcommon-x11-uninstalled.pc" ;; + "doc/Doxyfile") CONFIG_FILES="$CONFIG_FILES doc/Doxyfile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +" >&5 +$as_echo " + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +" >&6; } diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/requests b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/requests new file mode 100644 index 0000000..9aa7e0d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/requests @@ -0,0 +1,606 @@ +# This file was generated by Autom4te Thu Apr 10 10:06:43 UTC 2014. +# It contains the lists of macros which have been traced. +# It can be safely removed. + +@request = ( + bless( [ + '0', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + '-', + '/usr/share/aclocal-1.14/internal/ac-config-macro-dirs.m4', + '/usr/share/aclocal/argz.m4', + '/usr/share/aclocal/libtool.m4', + '/usr/share/aclocal/ltdl.m4', + '/usr/share/aclocal/ltoptions.m4', + '/usr/share/aclocal/ltsugar.m4', + '/usr/share/aclocal/ltversion.m4', + '/usr/share/aclocal/lt~obsolete.m4', + '/usr/share/aclocal/pkg.m4', + '/usr/share/aclocal/xorg-macros.m4', + '/usr/share/aclocal-1.14/amversion.m4', + '/usr/share/aclocal-1.14/auxdir.m4', + '/usr/share/aclocal-1.14/cond.m4', + '/usr/share/aclocal-1.14/depend.m4', + '/usr/share/aclocal-1.14/depout.m4', + '/usr/share/aclocal-1.14/init.m4', + '/usr/share/aclocal-1.14/install-sh.m4', + '/usr/share/aclocal-1.14/lead-dot.m4', + '/usr/share/aclocal-1.14/maintainer.m4', + '/usr/share/aclocal-1.14/make.m4', + '/usr/share/aclocal-1.14/missing.m4', + '/usr/share/aclocal-1.14/options.m4', + '/usr/share/aclocal-1.14/prog-cc-c-o.m4', + '/usr/share/aclocal-1.14/runlog.m4', + '/usr/share/aclocal-1.14/sanity.m4', + '/usr/share/aclocal-1.14/silent.m4', + '/usr/share/aclocal-1.14/strip.m4', + '/usr/share/aclocal-1.14/substnot.m4', + '/usr/share/aclocal-1.14/tar.m4', + 'm4/ax_gcc_builtin.m4', + 'configure.ac' + ], + { + 'PKG_CHECK_MODULES' => 1, + 'AC_LTDL_DLLIB' => 1, + '_AM_PROG_TAR' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'XORG_DEFAULT_OPTIONS' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AM_PROG_LIBTOOL' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'AM_PROG_NM' => 1, + 'XORG_INSTALL' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AC_PROG_NM' => 1, + 'XORG_TESTSET_CFLAG' => 1, + 'AC_WITH_LTDL' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AM_ENABLE_STATIC' => 1, + 'AX_GCC_BUILTIN' => 1, + 'XORG_ENABLE_DEVEL_DOCS' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_LANG_F77' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + '_LT_LINKER_OPTION' => 1, + 'gl_FUNC_ARGZ' => 1, + 'AM_PROG_CC_C_O' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'LT_LANG' => 1, + 'LT_AC_PROG_RC' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'gl_PREREQ_ARGZ' => 1, + 'XORG_MANPAGE_SECTIONS' => 1, + 'XORG_WITH_PS2PDF' => 1, + 'AM_DEP_TRACK' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'AC_LIBTOOL_FC' => 1, + 'LTDL_CONVENIENCE' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_CHECK_LIBM' => 1, + 'XORG_CWARNFLAGS' => 1, + 'XORG_LINT_LIBRARY' => 1, + '_m4_warn' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AM_DISABLE_SHARED' => 1, + '_AM_MANGLE_OPTION' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AC_PATH_MAGIC' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + '_LT_AC_TAGVAR' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'XORG_PROG_RAWCPP' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AM_ENABLE_SHARED' => 1, + 'XORG_COMPILER_FLAGS' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'XORG_CHECK_LINKER_FLAGS' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_PROG_LD_GNU' => 1, + 'include' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'AM_PROG_LD' => 1, + 'LT_AC_PROG_SED' => 1, + 'AC_LIB_LTDL' => 1, + 'AM_RUN_LOG' => 1, + 'LT_INIT' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AC_DEFUN_ONCE' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'LT_PROG_GCJ' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'AC_LIBTOOL_RC' => 1, + '_LT_CC_BASENAME' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_LT_AC_SHELL_INIT' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + '_AM_SET_OPTION' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'LT_PATH_NM' => 1, + 'XORG_CHECK_MALLOC_ZERO' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_DEFUN' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_LT_AC_LOCK' => 1, + 'XORG_ENABLE_DOCS' => 1, + 'XORG_ENABLE_SPECS' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'm4_pattern_forbid' => 1, + '_LTDL_SETUP' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_DISABLE_STATIC' => 1, + 'LT_PROG_RC' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'XORG_WITH_XMLTO' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'LTSUGAR_VERSION' => 1, + '_LT_PROG_F77' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'LTVERSION_VERSION' => 1, + 'XORG_LD_WRAP' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'XORG_MEMORY_CHECK_FLAGS' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + '_AM_PROG_CC_C_O' => 1, + '_LT_PROG_LTMAIN' => 1, + 'XORG_CHECK_SGML_DOCTOOLS' => 1, + '_AM_IF_OPTION' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + '_LT_PROG_CXX' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'XORG_WITH_DOXYGEN' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'm4_pattern_allow' => 1, + 'LTDL_INSTALLABLE' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AU_DEFUN' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AM_SILENT_RULES' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AC_PROG_LD' => 1, + 'XORG_ENABLE_INTEGRATION_TESTS' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'XORG_WITH_GROFF' => 1, + '_LT_COMPILER_OPTION' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'XORG_RELEASE_VERSION' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'XORG_CHECK_LINUXDOC' => 1, + 'XORG_STRICT_OPTION' => 1, + 'XORG_WITH_FOP' => 1, + 'XORG_WITH_LINT' => 1, + 'XORG_WITH_PERL' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AM_SANITY_CHECK' => 1, + 'AM_SET_LEADING_DOT' => 1, + '_LT_LIBOBJ' => 1, + 'XORG_COMPILER_BRAND' => 1, + 'LT_PROG_GO' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'LT_LIB_DLLOAD' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'XORG_WITH_ASCIIDOC' => 1, + 'AM_MISSING_PROG' => 1, + '_LT_AC_LANG_GCJ' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'XORG_WITH_GLIB' => 1, + 'AM_CONDITIONAL' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_ENABLE_STATIC' => 1, + 'XORG_CHECK_DOCBOOK' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'LT_OUTPUT' => 1, + 'XORG_CHANGELOG' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AM_SET_DEPDIR' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'm4_include' => 1, + 'LT_PATH_LD' => 1, + '_LT_PROG_FC' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'XORG_WITH_XSLTPROC' => 1, + 'LTDL_INIT' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + '_AM_SET_OPTIONS' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'LTOPTIONS_VERSION' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'XORG_ENABLE_UNIT_TESTS' => 1 + } + ], 'Autom4te::Request' ), + bless( [ + '1', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + 'aclocal.m4', + 'configure.ac' + ], + { + 'LT_SUPPORTED_TAG' => 1, + 'AC_SUBST_TRACE' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_NLS' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AM_PROG_F77_C_O' => 1, + 'AC_LIBSOURCE' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AM_PROG_CXX_C_O' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'AM_PROG_MOC' => 1, + 'AH_OUTPUT' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'AC_FC_FREEFORM' => 1, + 'AC_INIT' => 1, + 'LT_INIT' => 1, + 'AC_SUBST' => 1, + 'AM_CONDITIONAL' => 1, + 'AM_POT_TOOLS' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'include' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'm4_include' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AM_GNU_GETTEXT' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'AC_FC_SRCEXT' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'm4_sinclude' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'm4_pattern_allow' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AC_CONFIG_FILES' => 1, + 'sinclude' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AC_CANONICAL_HOST' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AC_CONFIG_LINKS' => 1, + '_m4_warn' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'AM_PROG_AR' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AM_PATH_GUILE' => 1, + '_AM_COND_ELSE' => 1, + 'AM_PROG_FC_C_O' => 1, + '_AM_COND_IF' => 1, + 'm4_pattern_forbid' => 1 + } + ], 'Autom4te::Request' ), + bless( [ + '2', + 1, + [ + '/usr/share/autoconf' + ], + [ + '/usr/share/autoconf/autoconf/autoconf.m4f', + '-', + '/usr/share/aclocal-1.14/internal/ac-config-macro-dirs.m4', + '/usr/share/aclocal/argz.m4', + '/usr/share/aclocal/ltdl.m4', + '/usr/share/aclocal/pkg.m4', + '/usr/share/aclocal/xorg-macros.m4', + '/usr/share/aclocal-1.14/amversion.m4', + '/usr/share/aclocal-1.14/auxdir.m4', + '/usr/share/aclocal-1.14/cond.m4', + '/usr/share/aclocal-1.14/depend.m4', + '/usr/share/aclocal-1.14/depout.m4', + '/usr/share/aclocal-1.14/init.m4', + '/usr/share/aclocal-1.14/install-sh.m4', + '/usr/share/aclocal-1.14/lead-dot.m4', + '/usr/share/aclocal-1.14/maintainer.m4', + '/usr/share/aclocal-1.14/make.m4', + '/usr/share/aclocal-1.14/missing.m4', + '/usr/share/aclocal-1.14/options.m4', + '/usr/share/aclocal-1.14/prog-cc-c-o.m4', + '/usr/share/aclocal-1.14/runlog.m4', + '/usr/share/aclocal-1.14/sanity.m4', + '/usr/share/aclocal-1.14/silent.m4', + '/usr/share/aclocal-1.14/strip.m4', + '/usr/share/aclocal-1.14/substnot.m4', + '/usr/share/aclocal-1.14/tar.m4', + 'm4/ax_gcc_builtin.m4', + 'm4/libtool.m4', + 'm4/ltoptions.m4', + 'm4/ltsugar.m4', + 'm4/ltversion.m4', + 'm4/lt~obsolete.m4', + 'configure.ac' + ], + { + 'XORG_CHECK_SGML_DOCTOOLS' => 1, + '_AM_IF_OPTION' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + '_LT_PROG_CXX' => 1, + 'XORG_WITH_DOXYGEN' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'LTVERSION_VERSION' => 1, + 'XORG_LD_WRAP' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'LT_AC_PROG_EGREP' => 1, + '_AM_PROG_CC_C_O' => 1, + '_LT_PROG_LTMAIN' => 1, + 'XORG_MEMORY_CHECK_FLAGS' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'XORG_ENABLE_INTEGRATION_TESTS' => 1, + 'AC_PROG_LD' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'XORG_WITH_GROFF' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'XORG_CHECK_LINUXDOC' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + '_LT_COMPILER_OPTION' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'XORG_RELEASE_VERSION' => 1, + 'XORG_WITH_LINT' => 1, + 'XORG_STRICT_OPTION' => 1, + 'XORG_WITH_FOP' => 1, + 'AM_SANITY_CHECK' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'XORG_WITH_PERL' => 1, + 'LTDL_INSTALLABLE' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + 'm4_pattern_allow' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AU_DEFUN' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AC_DISABLE_SHARED' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'XORG_WITH_GLIB' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_ENABLE_STATIC' => 1, + 'LT_OUTPUT' => 1, + 'XORG_CHANGELOG' => 1, + 'XORG_CHECK_DOCBOOK' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'XORG_COMPILER_BRAND' => 1, + '_LT_LIBOBJ' => 1, + 'LT_LIB_DLLOAD' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'LT_PROG_GO' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'XORG_WITH_ASCIIDOC' => 1, + 'AM_MISSING_PROG' => 1, + '_LT_AC_LANG_GCJ' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'XORG_WITH_XSLTPROC' => 1, + 'LTDL_INIT' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + '_AM_SET_OPTIONS' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'LTOPTIONS_VERSION' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'XORG_ENABLE_UNIT_TESTS' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AM_SET_DEPDIR' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'm4_include' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'LT_PATH_LD' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LT_PROG_FC' => 1, + 'AC_LIBTOOL_GCJ' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AM_ENABLE_STATIC' => 1, + 'XORG_ENABLE_DEVEL_DOCS' => 1, + 'AX_GCC_BUILTIN' => 1, + '_LT_LINKER_OPTION' => 1, + 'AC_PROG_EGREP' => 1, + '_LT_AC_LANG_F77' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'gl_FUNC_ARGZ' => 1, + 'LT_LANG' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AC_LTDL_DLLIB' => 1, + '_AM_PROG_TAR' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'PKG_CHECK_MODULES' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'XORG_DEFAULT_OPTIONS' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AC_PROG_NM' => 1, + 'XORG_TESTSET_CFLAG' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AM_PROG_NM' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'XORG_INSTALL' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AC_WITH_LTDL' => 1, + 'AC_CHECK_LIBM' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'XORG_CWARNFLAGS' => 1, + 'XORG_LINT_LIBRARY' => 1, + '_m4_warn' => 1, + '_AM_MANGLE_OPTION' => 1, + 'AM_DISABLE_SHARED' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_PATH_MAGIC' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'gl_PREREQ_ARGZ' => 1, + 'XORG_MANPAGE_SECTIONS' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'LT_AC_PROG_RC' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AM_DEP_TRACK' => 1, + 'XORG_WITH_PS2PDF' => 1, + 'LTDL_CONVENIENCE' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'AC_LIBTOOL_FC' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'AM_PROG_LD' => 1, + 'AC_PROG_LD_GNU' => 1, + 'include' => 1, + 'LT_AC_PROG_SED' => 1, + 'AC_LIB_LTDL' => 1, + 'AM_RUN_LOG' => 1, + 'LT_INIT' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'LT_PROG_GCJ' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'AC_DEFUN_ONCE' => 1, + 'AC_LIBTOOL_RC' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_CXX' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + '_LT_AC_SYS_COMPILER' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'XORG_PROG_RAWCPP' => 1, + 'AM_ENABLE_SHARED' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AM_MISSING_HAS_RUN' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'XORG_COMPILER_FLAGS' => 1, + 'XORG_CHECK_LINKER_FLAGS' => 1, + 'XORG_ENABLE_SPECS' => 1, + 'm4_pattern_forbid' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + '_LT_AC_LOCK' => 1, + 'XORG_ENABLE_DOCS' => 1, + 'LT_PROG_RC' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AM_SUBST_NOTMAKE' => 1, + '_LTDL_SETUP' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + '_LT_PROG_F77' => 1, + 'XORG_WITH_XMLTO' => 1, + 'LTSUGAR_VERSION' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_LT_CC_BASENAME' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'LT_PATH_NM' => 1, + '_LT_AC_SHELL_INIT' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + '_AM_SET_OPTION' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'AC_DEFUN' => 1, + 'XORG_CHECK_MALLOC_ZERO' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'LT_CONFIG_LTDL_DIR' => 1 + } + ], 'Autom4te::Request' ) + ); + diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/test-driver b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/test-driver new file mode 100755 index 0000000..d306056 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/test-driver @@ -0,0 +1,139 @@ +#! /bin/sh +# test-driver - basic testsuite driver script. + +scriptversion=2013-07-13.22; # UTC + +# Copyright (C) 2011-2013 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +# Make unconditional expansion of undefined variables an error. This +# helps a lot in preventing typo-related bugs. +set -u + +usage_error () +{ + echo "$0: $*" >&2 + print_usage >&2 + exit 2 +} + +print_usage () +{ + cat <$log_file 2>&1 +estatus=$? +if test $enable_hard_errors = no && test $estatus -eq 99; then + estatus=1 +fi + +case $estatus:$expect_failure in + 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;; + 0:*) col=$grn res=PASS recheck=no gcopy=no;; + 77:*) col=$blu res=SKIP recheck=no gcopy=yes;; + 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;; + *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;; + *:*) col=$red res=FAIL recheck=yes gcopy=yes;; +esac + +# Report outcome to console. +echo "${col}${res}${std}: $test_name" + +# Register the test result, and other relevant metadata. +echo ":test-result: $res" > $trs_file +echo ":global-test-result: $res" >> $trs_file +echo ":recheck: $recheck" >> $trs_file +echo ":copy-in-global-log: $gcopy" >> $trs_file + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.0 b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.0 new file mode 100644 index 0000000..2967777 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.0 @@ -0,0 +1,4140 @@ +m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ + +AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_TYPES([error_t], + [], + [AC_DEFINE([error_t], [int], + [Define to a type to use for `error_t' if it is not otherwise available.]) + AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h + does not typedef error_t.])], + [#if defined(HAVE_ARGZ_H) +# include +#endif]) + +ARGZ_H= +AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ + argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) + +dnl if have system argz functions, allow forced use of +dnl libltdl-supplied implementation (and default to do so +dnl on "known bad" systems). Could use a runtime check, but +dnl (a) detecting malloc issues is notoriously unreliable +dnl (b) only known system that declares argz functions, +dnl provides them, yet they are broken, is cygwin +dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) +dnl So, it's more straightforward simply to special case +dnl this for known bad systems. +AS_IF([test -z "$ARGZ_H"], + [AC_CACHE_CHECK( + [if argz actually works], + [lt_cv_sys_argz_works], + [[case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test "$cross_compiling" != no; then + lt_cv_sys_argz_works="guessing no" + else + lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' + save_IFS=$IFS + IFS=-. + set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` + IFS=$save_IFS + lt_os_major=${2-0} + lt_os_minor=${3-0} + lt_os_micro=${4-0} + if test "$lt_os_major" -gt 1 \ + || { test "$lt_os_major" -eq 1 \ + && { test "$lt_os_minor" -gt 5 \ + || { test "$lt_os_minor" -eq 5 \ + && test "$lt_os_micro" -gt 24; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac]]) + AS_IF([test "$lt_cv_sys_argz_works" = yes], + [AC_DEFINE([HAVE_WORKING_ARGZ], 1, + [This value is set to 1 to indicate that the system argz facility works])], + [ARGZ_H=argz.h + AC_LIBOBJ([argz])])]) + +AC_SUBST([ARGZ_H]) +]) +m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:]) +m4trace:/usr/share/aclocal/libtool.m4:69: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +]) +m4trace:/usr/share/aclocal/libtool.m4:107: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:107: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:108: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:108: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:609: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +]) +m4trace:/usr/share/aclocal/libtool.m4:790: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) +m4trace:/usr/share/aclocal/libtool.m4:801: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:893: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +m4trace:/usr/share/aclocal/libtool.m4:893: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. +You should run autoupdate.])dnl +LT_LANG(C++)]) +m4trace:/usr/share/aclocal/libtool.m4:894: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +m4trace:/usr/share/aclocal/libtool.m4:894: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran 77)]) +m4trace:/usr/share/aclocal/libtool.m4:895: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +m4trace:/usr/share/aclocal/libtool.m4:895: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran)]) +m4trace:/usr/share/aclocal/libtool.m4:896: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +m4trace:/usr/share/aclocal/libtool.m4:896: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Java)]) +m4trace:/usr/share/aclocal/libtool.m4:897: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +m4trace:/usr/share/aclocal/libtool.m4:897: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Windows Resource)]) +m4trace:/usr/share/aclocal/libtool.m4:1225: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) +m4trace:/usr/share/aclocal/libtool.m4:1515: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +]) +m4trace:/usr/share/aclocal/libtool.m4:1557: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1557: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1566: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +]) +m4trace:/usr/share/aclocal/libtool.m4:1601: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1601: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1608: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +]) +m4trace:/usr/share/aclocal/libtool.m4:1747: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1747: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1858: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +]) +m4trace:/usr/share/aclocal/libtool.m4:1975: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:1975: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:2945: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:3007: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3007: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3030: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +]) +m4trace:/usr/share/aclocal/libtool.m4:3500: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3500: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3501: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3501: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3571: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +]) +m4trace:/usr/share/aclocal/libtool.m4:3590: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:3590: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7637: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) +m4trace:/usr/share/aclocal/libtool.m4:7646: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7646: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7653: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) +]) +m4trace:/usr/share/aclocal/libtool.m4:7660: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) +]) +m4trace:/usr/share/aclocal/libtool.m4:7665: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7665: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7785: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:/usr/share/aclocal/libtool.m4:7785: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) +_$0($*) +]) +m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ + m4_pattern_allow([^_LT_LIBOBJS$]) + _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" +]) +m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +dnl We need to keep our own list of libobjs separate from our parent project, +dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while +dnl we look for our own LIBOBJs. +m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) +m4_pushdef([AC_LIBSOURCES]) + +dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: +m4_if(_LTDL_MODE, [], + [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) + m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], + [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) + +AC_ARG_WITH([included_ltdl], + [AS_HELP_STRING([--with-included-ltdl], + [use the GNU ltdl sources included here])]) + +if test "x$with_included_ltdl" != xyes; then + # We are not being forced to use the included libltdl sources, so + # decide whether there is a useful installed version we can use. + AC_CHECK_HEADER([ltdl.h], + [AC_CHECK_DECL([lt_dlinterface_register], + [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], + [with_included_ltdl=no], + [with_included_ltdl=yes])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT + #include ])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT] + ) +fi + +dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE +dnl was called yet, then for old times' sake, we assume libltdl is in an +dnl eponymous directory: +AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) + +AC_ARG_WITH([ltdl_include], + [AS_HELP_STRING([--with-ltdl-include=DIR], + [use the ltdl headers installed in DIR])]) + +if test -n "$with_ltdl_include"; then + if test -f "$with_ltdl_include/ltdl.h"; then : + else + AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) + fi +else + with_ltdl_include=no +fi + +AC_ARG_WITH([ltdl_lib], + [AS_HELP_STRING([--with-ltdl-lib=DIR], + [use the libltdl.la installed in DIR])]) + +if test -n "$with_ltdl_lib"; then + if test -f "$with_ltdl_lib/libltdl.la"; then : + else + AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) + fi +else + with_ltdl_lib=no +fi + +case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in + ,yes,no,no,) + m4_case(m4_default(_LTDL_TYPE, [convenience]), + [convenience], [_LTDL_CONVENIENCE], + [installable], [_LTDL_INSTALLABLE], + [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) + ;; + ,no,no,no,) + # If the included ltdl is not to be used, then use the + # preinstalled libltdl we found. + AC_DEFINE([HAVE_LTDL], [1], + [Define this if a modern libltdl is already installed]) + LIBLTDL=-lltdl + LTDLDEPS= + LTDLINCL= + ;; + ,no*,no,*) + AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) + ;; + *) with_included_ltdl=no + LIBLTDL="-L$with_ltdl_lib -lltdl" + LTDLDEPS= + LTDLINCL="-I$with_ltdl_include" + ;; +esac +INCLTDL="$LTDLINCL" + +# Report our decision... +AC_MSG_CHECKING([where to find libltdl headers]) +AC_MSG_RESULT([$LTDLINCL]) +AC_MSG_CHECKING([where to find libltdl library]) +AC_MSG_RESULT([$LIBLTDL]) + +_LTDL_SETUP + +dnl restore autoconf definition. +m4_popdef([AC_LIBOBJ]) +m4_popdef([AC_LIBSOURCES]) + +AC_CONFIG_COMMANDS_PRE([ + _ltdl_libobjs= + _ltdl_ltlibobjs= + if test -n "$_LT_LIBOBJS"; then + # Remove the extension. + _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do + _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" + _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" + done + fi + AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) + AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) +]) + +# Only expand once: +m4_define([LTDL_INIT]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_SYS_MODULE_EXT])dnl +AC_REQUIRE([LT_SYS_MODULE_PATH])dnl +AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl +AC_REQUIRE([LT_LIB_DLLOAD])dnl +AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl +AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl +AC_REQUIRE([gl_FUNC_ARGZ])dnl + +m4_require([_LT_CHECK_OBJDIR])dnl +m4_require([_LT_HEADER_DLFCN])dnl +m4_require([_LT_CHECK_DLPREOPEN])dnl +m4_require([_LT_DECL_SED])dnl + +dnl Don't require this, or it will be expanded earlier than the code +dnl that sets the variables it relies on: +_LT_ENABLE_INSTALL + +dnl _LTDL_MODE specific code must be called at least once: +_LTDL_MODE_DISPATCH + +# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS +# the user used. This is so that ltdl.h can pick up the parent projects +# config.h file, The first file in AC_CONFIG_HEADERS must contain the +# definitions required by ltdl.c. +# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). +AC_CONFIG_COMMANDS_PRE([dnl +m4_pattern_allow([^LT_CONFIG_H$])dnl +m4_ifset([AH_HEADER], + [LT_CONFIG_H=AH_HEADER], + [m4_ifset([AC_LIST_HEADERS], + [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], + [])])]) +AC_SUBST([LT_CONFIG_H]) + +AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], + [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) +AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) + +m4_pattern_allow([LT_LIBEXT])dnl +AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) + +name= +eval "lt_libprefix=\"$libname_spec\"" +m4_pattern_allow([LT_LIBPREFIX])dnl +AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) + +name=ltdl +eval "LTDLOPEN=\"$libname_spec\"" +AC_SUBST([LTDLOPEN]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_CACHE_CHECK([whether deplibs are loaded by dlopen], + [lt_cv_sys_dlopen_deplibs], + [# PORTME does your system automatically load deplibs for dlopen? + # or its logical equivalent (e.g. shl_load for HP-UX < 11) + # For now, we just catch OSes we know something about -- in the + # future, we'll try test this programmatically. + lt_cv_sys_dlopen_deplibs=unknown + case $host_os in + aix3*|aix4.1.*|aix4.2.*) + # Unknown whether this is true for these versions of AIX, but + # we want this `case' here to explicitly catch those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + aix[[4-9]]*) + lt_cv_sys_dlopen_deplibs=yes + ;; + amigaos*) + case $host_cpu in + powerpc) + lt_cv_sys_dlopen_deplibs=no + ;; + esac + ;; + darwin*) + # Assuming the user has installed a libdl from somewhere, this is true + # If you are looking for one http://www.opendarwin.org/projects/dlcompat + lt_cv_sys_dlopen_deplibs=yes + ;; + freebsd* | dragonfly*) + lt_cv_sys_dlopen_deplibs=yes + ;; + gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) + # GNU and its variants, using gnu ld.so (Glibc) + lt_cv_sys_dlopen_deplibs=yes + ;; + hpux10*|hpux11*) + lt_cv_sys_dlopen_deplibs=yes + ;; + interix*) + lt_cv_sys_dlopen_deplibs=yes + ;; + irix[[12345]]*|irix6.[[01]]*) + # Catch all versions of IRIX before 6.2, and indicate that we don't + # know how it worked for any of those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + irix*) + # The case above catches anything before 6.2, and it's known that + # at 6.2 and later dlopen does load deplibs. + lt_cv_sys_dlopen_deplibs=yes + ;; + netbsd* | netbsdelf*-gnu) + lt_cv_sys_dlopen_deplibs=yes + ;; + openbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + osf[[1234]]*) + # dlopen did load deplibs (at least at 4.x), but until the 5.x series, + # it did *not* use an RPATH in a shared library to find objects the + # library depends on, so we explicitly say `no'. + lt_cv_sys_dlopen_deplibs=no + ;; + osf5.0|osf5.0a|osf5.1) + # dlopen *does* load deplibs and with the right loader patch applied + # it even uses RPATH in a shared library to search for shared objects + # that the library depends on, but there's no easy way to know if that + # patch is installed. Since this is the case, all we can really + # say is unknown -- it depends on the patch being installed. If + # it is, this changes to `yes'. Without it, it would be `no'. + lt_cv_sys_dlopen_deplibs=unknown + ;; + osf*) + # the two cases above should catch all versions of osf <= 5.1. Read + # the comments above for what we know about them. + # At > 5.1, deplibs are loaded *and* any RPATH in a shared library + # is used to find them so we can finally say `yes'. + lt_cv_sys_dlopen_deplibs=yes + ;; + qnx*) + lt_cv_sys_dlopen_deplibs=yes + ;; + solaris*) + lt_cv_sys_dlopen_deplibs=yes + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + libltdl_cv_sys_dlopen_deplibs=yes + ;; + esac + ]) +if test "$lt_cv_sys_dlopen_deplibs" != yes; then + AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], + [Define if the OS needs help to load dependent libraries for dlopen().]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:549: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which extension is used for runtime loadable modules], + [libltdl_cv_shlibext], +[ +module=yes +eval libltdl_cv_shlibext=$shrext_cmds +module=no +eval libltdl_cv_shrext=$shrext_cmds + ]) +if test -n "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_MODULE_EXT])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], + [Define to the extension used for runtime loadable modules, say, ".so".]) +fi +if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_SHARED_EXT])dnl + AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], + [Define to the shared library suffix, say, ".dylib".]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:579: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which variable specifies run-time module search path], + [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) +if test -n "$lt_cv_module_path_var"; then + m4_pattern_allow([LT_MODULE_PATH_VAR])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], + [Define to the name of the environment variable that determines the run-time module search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:598: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([for the default library search path], + [lt_cv_sys_dlsearch_path], + [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) +if test -n "$lt_cv_sys_dlsearch_path"; then + sys_dlsearch_path= + for dir in $lt_cv_sys_dlsearch_path; do + if test -z "$sys_dlsearch_path"; then + sys_dlsearch_path="$dir" + else + sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" + fi + done + m4_pattern_allow([LT_DLSEARCH_PATH])dnl + AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], + [Define to the system default library search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:645: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) +LT_DLLOADERS= +AC_SUBST([LT_DLLOADERS]) + +AC_LANG_PUSH([C]) + +LIBADD_DLOPEN= +AC_SEARCH_LIBS([dlopen], [dl], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + if test "$ac_cv_search_dlopen" != "none required" ; then + LIBADD_DLOPEN="-ldl" + fi + libltdl_cv_lib_dl_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H +# include +#endif + ]], [[dlopen(0, 0);]])], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_CHECK_LIB([svld], [dlopen], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) +if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes +then + lt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + AC_CHECK_FUNCS([dlerror]) + LIBS="$lt_save_LIBS" +fi +AC_SUBST([LIBADD_DLOPEN]) + +LIBADD_SHL_LOAD= +AC_CHECK_FUNC([shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], + [AC_CHECK_LIB([dld], [shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" + LIBADD_SHL_LOAD="-ldld"])]) +AC_SUBST([LIBADD_SHL_LOAD]) + +case $host_os in +darwin[[1567]].*) +# We only want this for pre-Mac OS X 10.4. + AC_CHECK_FUNC([_dyld_func_lookup], + [AC_DEFINE([HAVE_DYLD], [1], + [Define if you have the _dyld_func_lookup function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) + ;; +beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +cygwin* | mingw* | os2* | pw32*) + AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; +esac + +AC_CHECK_LIB([dld], [dld_link], + [AC_DEFINE([HAVE_DLD], [1], + [Define if you have the GNU dld library.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) +AC_SUBST([LIBADD_DLD_LINK]) + +m4_pattern_allow([^LT_DLPREOPEN$]) +LT_DLPREOPEN= +if test -n "$LT_DLLOADERS" +then + for lt_loader in $LT_DLLOADERS; do + LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " + done + AC_DEFINE([HAVE_LIBDLLOADER], [1], + [Define if libdlloader will be built on this platform]) +fi +AC_SUBST([LT_DLPREOPEN]) + +dnl This isn't used anymore, but set it for backwards compatibility +LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" +AC_SUBST([LIBADD_DL]) + +AC_LANG_POP +]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:746: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +AC_CACHE_CHECK([for _ prefix in compiled symbols], + [lt_cv_sys_symbol_underscore], + [lt_cv_sys_symbol_underscore=no + cat > conftest.$ac_ext <<_LT_EOF +void nm_test_func(){} +int main(){nm_test_func;return 0;} +_LT_EOF + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + ac_nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then + # See whether the symbols have a leading underscore. + if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then + lt_cv_sys_symbol_underscore=yes + else + if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then + : + else + echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD + fi + fi + else + echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.c >&AS_MESSAGE_LOG_FD + fi + rm -rf conftest* + ]) + sys_symbol_underscore=$lt_cv_sys_symbol_underscore + AC_SUBST([sys_symbol_underscore]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:790: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +if test x"$lt_cv_sys_symbol_underscore" = xyes; then + if test x"$libltdl_cv_func_dlopen" = xyes || + test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then + AC_CACHE_CHECK([whether we have to add an underscore for dlsym], + [libltdl_cv_need_uscore], + [libltdl_cv_need_uscore=unknown + save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + _LT_TRY_DLOPEN_SELF( + [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], + [], [libltdl_cv_need_uscore=cross]) + LIBS="$save_LIBS" + ]) + fi +fi + +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE([NEED_USCORE], [1], + [Define if dlsym() requires a leading underscore in symbol names.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +m4trace:/usr/share/aclocal/ltoptions.m4:111: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:111: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:146: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:146: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. +You should run autoupdate.])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:195: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:199: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:203: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:203: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:204: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:204: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_SHARED($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:249: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:253: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:257: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:257: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:258: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:258: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_STATIC($@)]) +m4trace:/usr/share/aclocal/ltoptions.m4:303: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:303: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:310: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:310: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:358: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltoptions.m4:358: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:/usr/share/aclocal/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) +m4trace:/usr/share/aclocal/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:81: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:82: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:83: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:84: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:85: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:86: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:87: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:88: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:89: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:90: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:91: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:93: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:96: -1- AC_DEFUN([_LT_PROG_F77]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_FC]) +m4trace:/usr/share/aclocal/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_CXX]) +m4trace:/usr/share/aclocal/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +]) +m4trace:/usr/share/aclocal/pkg.m4:60: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) +m4trace:/usr/share/aclocal/pkg.m4:86: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +]) +m4trace:/usr/share/aclocal/pkg.m4:106: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:58: -1- AC_DEFUN([XORG_PROG_RAWCPP], [ +AC_REQUIRE([AC_PROG_CPP]) +AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], + [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) + +# Check for flag to avoid builtin definitions - assumes unix is predefined, +# which is not the best choice for supporting other OS'es, but covers most +# of the ones we need for now. +AC_MSG_CHECKING([if $RAWCPP requires -undef]) +AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])]) +if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then + AC_MSG_RESULT([no]) +else + if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then + RAWCPPFLAGS=-undef + AC_MSG_RESULT([yes]) + # under Cygwin unix is still defined even with -undef + elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then + RAWCPPFLAGS="-undef -ansi" + AC_MSG_RESULT([yes, with -ansi]) + else + AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.]) + fi +fi +rm -f conftest.$ac_ext + +AC_MSG_CHECKING([if $RAWCPP requires -traditional]) +AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])]) +if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then + AC_MSG_RESULT([no]) +else + if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then + RAWCPPFLAGS="${RAWCPPFLAGS} -traditional" + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.]) + fi +fi +rm -f conftest.$ac_ext +AC_SUBST(RAWCPPFLAGS) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:111: -1- AC_DEFUN([XORG_MANPAGE_SECTIONS], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_SED]) + +if test x$APP_MAN_SUFFIX = x ; then + APP_MAN_SUFFIX=1 +fi +if test x$APP_MAN_DIR = x ; then + APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' +fi + +if test x$LIB_MAN_SUFFIX = x ; then + LIB_MAN_SUFFIX=3 +fi +if test x$LIB_MAN_DIR = x ; then + LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' +fi + +if test x$FILE_MAN_SUFFIX = x ; then + case $host_os in + solaris*) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; + esac +fi +if test x$FILE_MAN_DIR = x ; then + FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' +fi + +if test x$MISC_MAN_SUFFIX = x ; then + case $host_os in + solaris*) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; + esac +fi +if test x$MISC_MAN_DIR = x ; then + MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' +fi + +if test x$DRIVER_MAN_SUFFIX = x ; then + case $host_os in + solaris*) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; + esac +fi +if test x$DRIVER_MAN_DIR = x ; then + DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' +fi + +if test x$ADMIN_MAN_SUFFIX = x ; then + case $host_os in + solaris*) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; + esac +fi +if test x$ADMIN_MAN_DIR = x ; then + ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' +fi + + +AC_SUBST([APP_MAN_SUFFIX]) +AC_SUBST([LIB_MAN_SUFFIX]) +AC_SUBST([FILE_MAN_SUFFIX]) +AC_SUBST([MISC_MAN_SUFFIX]) +AC_SUBST([DRIVER_MAN_SUFFIX]) +AC_SUBST([ADMIN_MAN_SUFFIX]) +AC_SUBST([APP_MAN_DIR]) +AC_SUBST([LIB_MAN_DIR]) +AC_SUBST([FILE_MAN_DIR]) +AC_SUBST([MISC_MAN_DIR]) +AC_SUBST([DRIVER_MAN_DIR]) +AC_SUBST([ADMIN_MAN_DIR]) + +XORG_MAN_PAGE="X Version 11" +AC_SUBST([XORG_MAN_PAGE]) +MAN_SUBSTS="\ + -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xservername__|Xorg|g' \ + -e 's|__xconfigfile__|xorg.conf|g' \ + -e 's|__projectroot__|\$(prefix)|g' \ + -e 's|__apploaddir__|\$(appdefaultdir)|g' \ + -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ + -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ + -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ + -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ + -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ + -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" +AC_SUBST([MAN_SUBSTS]) + +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:208: -1- AC_DEFUN([XORG_CHECK_SGML_DOCTOOLS], [ +AC_MSG_CHECKING([for X.Org SGML entities m4_ifval([$1],[>= $1])]) +XORG_SGML_PATH= +PKG_CHECK_EXISTS([xorg-sgml-doctools m4_ifval([$1],[>= $1])], + [XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`], + [m4_ifval([$1],[:], + [if test x"$cross_compiling" != x"yes" ; then + AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent], + [XORG_SGML_PATH=$prefix/share/sgml]) + fi]) + ]) + +# Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing +# the path and the name of the doc stylesheet +if test "x$XORG_SGML_PATH" != "x" ; then + AC_MSG_RESULT([$XORG_SGML_PATH]) + STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11 + XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl +else + AC_MSG_RESULT([no]) +fi + +AC_SUBST(XORG_SGML_PATH) +AC_SUBST(STYLESHEET_SRCDIR) +AC_SUBST(XSL_STYLESHEET) +AM_CONDITIONAL([HAVE_STYLESHEETS], [test "x$XSL_STYLESHEET" != "x"]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:244: -1- AC_DEFUN([XORG_CHECK_LINUXDOC], [ +AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) +AC_REQUIRE([XORG_WITH_PS2PDF]) + +AC_PATH_PROG(LINUXDOC, linuxdoc) + +AC_MSG_CHECKING([whether to build documentation]) + +if test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then + BUILDDOC=yes +else + BUILDDOC=no +fi + +AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes]) + +AC_MSG_RESULT([$BUILDDOC]) + +AC_MSG_CHECKING([whether to build pdf documentation]) + +if test x$have_ps2pdf != xno && test x$BUILD_PDFDOC != xno; then + BUILDPDFDOC=yes +else + BUILDPDFDOC=no +fi + +AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) + +AC_MSG_RESULT([$BUILDPDFDOC]) + +MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt -f" +MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps" +MAKE_PDF="$PS2PDF" +MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0" + +AC_SUBST(MAKE_TEXT) +AC_SUBST(MAKE_PS) +AC_SUBST(MAKE_PDF) +AC_SUBST(MAKE_HTML) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:293: -1- AC_DEFUN([XORG_CHECK_DOCBOOK], [ +AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) + +BUILDTXTDOC=no +BUILDPDFDOC=no +BUILDPSDOC=no +BUILDHTMLDOC=no + +AC_PATH_PROG(DOCBOOKPS, docbook2ps) +AC_PATH_PROG(DOCBOOKPDF, docbook2pdf) +AC_PATH_PROG(DOCBOOKHTML, docbook2html) +AC_PATH_PROG(DOCBOOKTXT, docbook2txt) + +AC_MSG_CHECKING([whether to build text documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x && + test x$BUILD_TXTDOC != xno; then + BUILDTXTDOC=yes +fi +AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes]) +AC_MSG_RESULT([$BUILDTXTDOC]) + +AC_MSG_CHECKING([whether to build PDF documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x && + test x$BUILD_PDFDOC != xno; then + BUILDPDFDOC=yes +fi +AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) +AC_MSG_RESULT([$BUILDPDFDOC]) + +AC_MSG_CHECKING([whether to build PostScript documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x && + test x$BUILD_PSDOC != xno; then + BUILDPSDOC=yes +fi +AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes]) +AC_MSG_RESULT([$BUILDPSDOC]) + +AC_MSG_CHECKING([whether to build HTML documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x && + test x$BUILD_HTMLDOC != xno; then + BUILDHTMLDOC=yes +fi +AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes]) +AC_MSG_RESULT([$BUILDHTMLDOC]) + +MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT" +MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS" +MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF" +MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML" + +AC_SUBST(MAKE_TEXT) +AC_SUBST(MAKE_PS) +AC_SUBST(MAKE_PDF) +AC_SUBST(MAKE_HTML) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:374: -1- AC_DEFUN([XORG_WITH_XMLTO], [ +AC_ARG_VAR([XMLTO], [Path to xmlto command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(xmlto, + AS_HELP_STRING([--with-xmlto], + [Use xmlto to regenerate documentation (default: ]_defopt[)]), + [use_xmlto=$withval], [use_xmlto=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_xmlto" = x"auto"; then + AC_PATH_PROG([XMLTO], [xmlto]) + if test "x$XMLTO" = "x"; then + AC_MSG_WARN([xmlto not found - documentation targets will be skipped]) + have_xmlto=no + else + have_xmlto=yes + fi +elif test "x$use_xmlto" = x"yes" ; then + AC_PATH_PROG([XMLTO], [xmlto]) + if test "x$XMLTO" = "x"; then + AC_MSG_ERROR([--with-xmlto=yes specified but xmlto not found in PATH]) + fi + have_xmlto=yes +elif test "x$use_xmlto" = x"no" ; then + if test "x$XMLTO" != "x"; then + AC_MSG_WARN([ignoring XMLTO environment variable since --with-xmlto=no was specified]) + fi + have_xmlto=no +else + AC_MSG_ERROR([--with-xmlto expects 'yes' or 'no']) +fi + +# Test for a minimum version of xmlto, if provided. +m4_ifval([$1], +[if test "$have_xmlto" = yes; then + # scrape the xmlto version + AC_MSG_CHECKING([the xmlto version]) + xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3` + AC_MSG_RESULT([$xmlto_version]) + AS_VERSION_COMPARE([$xmlto_version], [$1], + [if test "x$use_xmlto" = xauto; then + AC_MSG_WARN([xmlto version $xmlto_version found, but $1 needed]) + have_xmlto=no + else + AC_MSG_ERROR([xmlto version $xmlto_version found, but $1 needed]) + fi]) +fi]) + +# Test for the ability of xmlto to generate a text target +have_xmlto_text=no +cat > conftest.xml << "EOF" +EOF +AS_IF([test "$have_xmlto" = yes], + [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], + [have_xmlto_text=yes], + [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) +rm -f conftest.xml +AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) +AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:458: -1- AC_DEFUN([XORG_WITH_XSLTPROC], [ +AC_ARG_VAR([XSLTPROC], [Path to xsltproc command]) +# Preserves the interface, should it be implemented later +m4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(xsltproc, + AS_HELP_STRING([--with-xsltproc], + [Use xsltproc for the transformation of XML documents (default: ]_defopt[)]), + [use_xsltproc=$withval], [use_xsltproc=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_xsltproc" = x"auto"; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test "x$XSLTPROC" = "x"; then + AC_MSG_WARN([xsltproc not found - cannot transform XML documents]) + have_xsltproc=no + else + have_xsltproc=yes + fi +elif test "x$use_xsltproc" = x"yes" ; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test "x$XSLTPROC" = "x"; then + AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH]) + fi + have_xsltproc=yes +elif test "x$use_xsltproc" = x"no" ; then + if test "x$XSLTPROC" != "x"; then + AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified]) + fi + have_xsltproc=no +else + AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no']) +fi + +AM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:515: -1- AC_DEFUN([XORG_WITH_PERL], [ +AC_ARG_VAR([PERL], [Path to perl command]) +# Preserves the interface, should it be implemented later +m4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(perl, + AS_HELP_STRING([--with-perl], + [Use perl for extracting information from files (default: ]_defopt[)]), + [use_perl=$withval], [use_perl=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_perl" = x"auto"; then + AC_PATH_PROG([PERL], [perl]) + if test "x$PERL" = "x"; then + AC_MSG_WARN([perl not found - cannot extract information and report]) + have_perl=no + else + have_perl=yes + fi +elif test "x$use_perl" = x"yes" ; then + AC_PATH_PROG([PERL], [perl]) + if test "x$PERL" = "x"; then + AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH]) + fi + have_perl=yes +elif test "x$use_perl" = x"no" ; then + if test "x$PERL" != "x"; then + AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified]) + fi + have_perl=no +else + AC_MSG_ERROR([--with-perl expects 'yes' or 'no']) +fi + +AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:573: -1- AC_DEFUN([XORG_WITH_ASCIIDOC], [ +AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(asciidoc, + AS_HELP_STRING([--with-asciidoc], + [Use asciidoc to regenerate documentation (default: ]_defopt[)]), + [use_asciidoc=$withval], [use_asciidoc=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_asciidoc" = x"auto"; then + AC_PATH_PROG([ASCIIDOC], [asciidoc]) + if test "x$ASCIIDOC" = "x"; then + AC_MSG_WARN([asciidoc not found - documentation targets will be skipped]) + have_asciidoc=no + else + have_asciidoc=yes + fi +elif test "x$use_asciidoc" = x"yes" ; then + AC_PATH_PROG([ASCIIDOC], [asciidoc]) + if test "x$ASCIIDOC" = "x"; then + AC_MSG_ERROR([--with-asciidoc=yes specified but asciidoc not found in PATH]) + fi + have_asciidoc=yes +elif test "x$use_asciidoc" = x"no" ; then + if test "x$ASCIIDOC" != "x"; then + AC_MSG_WARN([ignoring ASCIIDOC environment variable since --with-asciidoc=no was specified]) + fi + have_asciidoc=no +else + AC_MSG_ERROR([--with-asciidoc expects 'yes' or 'no']) +fi +m4_ifval([$1], +[if test "$have_asciidoc" = yes; then + # scrape the asciidoc version + AC_MSG_CHECKING([the asciidoc version]) + asciidoc_version=`$ASCIIDOC --version 2>/dev/null | cut -d' ' -f2` + AC_MSG_RESULT([$asciidoc_version]) + AS_VERSION_COMPARE([$asciidoc_version], [$1], + [if test "x$use_asciidoc" = xauto; then + AC_MSG_WARN([asciidoc version $asciidoc_version found, but $1 needed]) + have_asciidoc=no + else + AC_MSG_ERROR([asciidoc version $asciidoc_version found, but $1 needed]) + fi]) +fi]) +AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:642: -1- AC_DEFUN([XORG_WITH_DOXYGEN], [ +AC_ARG_VAR([DOXYGEN], [Path to doxygen command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(doxygen, + AS_HELP_STRING([--with-doxygen], + [Use doxygen to regenerate documentation (default: ]_defopt[)]), + [use_doxygen=$withval], [use_doxygen=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_doxygen" = x"auto"; then + AC_PATH_PROG([DOXYGEN], [doxygen]) + if test "x$DOXYGEN" = "x"; then + AC_MSG_WARN([doxygen not found - documentation targets will be skipped]) + have_doxygen=no + else + have_doxygen=yes + fi +elif test "x$use_doxygen" = x"yes" ; then + AC_PATH_PROG([DOXYGEN], [doxygen]) + if test "x$DOXYGEN" = "x"; then + AC_MSG_ERROR([--with-doxygen=yes specified but doxygen not found in PATH]) + fi + have_doxygen=yes +elif test "x$use_doxygen" = x"no" ; then + if test "x$DOXYGEN" != "x"; then + AC_MSG_WARN([ignoring DOXYGEN environment variable since --with-doxygen=no was specified]) + fi + have_doxygen=no +else + AC_MSG_ERROR([--with-doxygen expects 'yes' or 'no']) +fi +m4_ifval([$1], +[if test "$have_doxygen" = yes; then + # scrape the doxygen version + AC_MSG_CHECKING([the doxygen version]) + doxygen_version=`$DOXYGEN --version 2>/dev/null` + AC_MSG_RESULT([$doxygen_version]) + AS_VERSION_COMPARE([$doxygen_version], [$1], + [if test "x$use_doxygen" = xauto; then + AC_MSG_WARN([doxygen version $doxygen_version found, but $1 needed]) + have_doxygen=no + else + AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed]) + fi]) +fi]) +AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:727: -1- AC_DEFUN([XORG_WITH_GROFF], [ +AC_ARG_VAR([GROFF], [Path to groff command]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_WITH(groff, + AS_HELP_STRING([--with-groff], + [Use groff to regenerate documentation (default: ]_defopt[)]), + [use_groff=$withval], [use_groff=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_groff" = x"auto"; then + AC_PATH_PROG([GROFF], [groff]) + if test "x$GROFF" = "x"; then + AC_MSG_WARN([groff not found - documentation targets will be skipped]) + have_groff=no + else + have_groff=yes + fi +elif test "x$use_groff" = x"yes" ; then + AC_PATH_PROG([GROFF], [groff]) + if test "x$GROFF" = "x"; then + AC_MSG_ERROR([--with-groff=yes specified but groff not found in PATH]) + fi + have_groff=yes +elif test "x$use_groff" = x"no" ; then + if test "x$GROFF" != "x"; then + AC_MSG_WARN([ignoring GROFF environment variable since --with-groff=no was specified]) + fi + have_groff=no +else + AC_MSG_ERROR([--with-groff expects 'yes' or 'no']) +fi + +# We have groff, test for the presence of the macro packages +if test "x$have_groff" = x"yes"; then + AC_MSG_CHECKING([for ${GROFF} -ms macros]) + if ${GROFF} -ms -I. /dev/null >/dev/null 2>&1 ; then + groff_ms_works=yes + else + groff_ms_works=no + fi + AC_MSG_RESULT([$groff_ms_works]) + AC_MSG_CHECKING([for ${GROFF} -mm macros]) + if ${GROFF} -mm -I. /dev/null >/dev/null 2>&1 ; then + groff_mm_works=yes + else + groff_mm_works=no + fi + AC_MSG_RESULT([$groff_mm_works]) +fi + +# We have groff, test for HTML dependencies, one command per package +if test "x$have_groff" = x"yes"; then + AC_PATH_PROGS(GS_PATH, [gs gswin32c]) + AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng]) + AC_PATH_PROG(PSSELECT_PATH, [psselect]) + if test "x$GS_PATH" != "x" -a "x$PNMTOPNG_PATH" != "x" -a "x$PSSELECT_PATH" != "x"; then + have_groff_html=yes + else + have_groff_html=no + AC_MSG_WARN([grohtml dependencies not found - HTML Documentation skipped. Refer to grohtml man pages]) + fi +fi + +# Set Automake conditionals for Makefiles +AM_CONDITIONAL([HAVE_GROFF], [test "$have_groff" = yes]) +AM_CONDITIONAL([HAVE_GROFF_MS], [test "$groff_ms_works" = yes]) +AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes]) +AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:819: -1- AC_DEFUN([XORG_WITH_FOP], [ +AC_ARG_VAR([FOP], [Path to fop command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(fop, + AS_HELP_STRING([--with-fop], + [Use fop to regenerate documentation (default: ]_defopt[)]), + [use_fop=$withval], [use_fop=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_fop" = x"auto"; then + AC_PATH_PROG([FOP], [fop]) + if test "x$FOP" = "x"; then + AC_MSG_WARN([fop not found - documentation targets will be skipped]) + have_fop=no + else + have_fop=yes + fi +elif test "x$use_fop" = x"yes" ; then + AC_PATH_PROG([FOP], [fop]) + if test "x$FOP" = "x"; then + AC_MSG_ERROR([--with-fop=yes specified but fop not found in PATH]) + fi + have_fop=yes +elif test "x$use_fop" = x"no" ; then + if test "x$FOP" != "x"; then + AC_MSG_WARN([ignoring FOP environment variable since --with-fop=no was specified]) + fi + have_fop=no +else + AC_MSG_ERROR([--with-fop expects 'yes' or 'no']) +fi + +# Test for a minimum version of fop, if provided. +m4_ifval([$1], +[if test "$have_fop" = yes; then + # scrape the fop version + AC_MSG_CHECKING([for fop minimum version]) + fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3` + AC_MSG_RESULT([$fop_version]) + AS_VERSION_COMPARE([$fop_version], [$1], + [if test "x$use_fop" = xauto; then + AC_MSG_WARN([fop version $fop_version found, but $1 needed]) + have_fop=no + else + AC_MSG_ERROR([fop version $fop_version found, but $1 needed]) + fi]) +fi]) +AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:890: -1- AC_DEFUN([XORG_WITH_PS2PDF], [ +AC_ARG_VAR([PS2PDF], [Path to ps2pdf command]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_WITH(ps2pdf, + AS_HELP_STRING([--with-ps2pdf], + [Use ps2pdf to regenerate documentation (default: ]_defopt[)]), + [use_ps2pdf=$withval], [use_ps2pdf=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_ps2pdf" = x"auto"; then + AC_PATH_PROG([PS2PDF], [ps2pdf]) + if test "x$PS2PDF" = "x"; then + AC_MSG_WARN([ps2pdf not found - documentation targets will be skipped]) + have_ps2pdf=no + else + have_ps2pdf=yes + fi +elif test "x$use_ps2pdf" = x"yes" ; then + AC_PATH_PROG([PS2PDF], [ps2pdf]) + if test "x$PS2PDF" = "x"; then + AC_MSG_ERROR([--with-ps2pdf=yes specified but ps2pdf not found in PATH]) + fi + have_ps2pdf=yes +elif test "x$use_ps2pdf" = x"no" ; then + if test "x$PS2PDF" != "x"; then + AC_MSG_WARN([ignoring PS2PDF environment variable since --with-ps2pdf=no was specified]) + fi + have_ps2pdf=no +else + AC_MSG_ERROR([--with-ps2pdf expects 'yes' or 'no']) +fi +AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:947: -1- AC_DEFUN([XORG_ENABLE_DOCS], [ +m4_define([docs_default], m4_default([$1], [yes])) +AC_ARG_ENABLE(docs, + AS_HELP_STRING([--enable-docs], + [Enable building the documentation (default: ]docs_default[)]), + [build_docs=$enableval], [build_docs=]docs_default) +m4_undefine([docs_default]) +AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) +AC_MSG_CHECKING([whether to build documentation]) +AC_MSG_RESULT([$build_docs]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:980: -1- AC_DEFUN([XORG_ENABLE_DEVEL_DOCS], [ +m4_define([devel_default], m4_default([$1], [yes])) +AC_ARG_ENABLE(devel-docs, + AS_HELP_STRING([--enable-devel-docs], + [Enable building the developer documentation (default: ]devel_default[)]), + [build_devel_docs=$enableval], [build_devel_docs=]devel_default) +m4_undefine([devel_default]) +AM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes]) +AC_MSG_CHECKING([whether to build developer documentation]) +AC_MSG_RESULT([$build_devel_docs]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1013: -1- AC_DEFUN([XORG_ENABLE_SPECS], [ +m4_define([spec_default], m4_default([$1], [yes])) +AC_ARG_ENABLE(specs, + AS_HELP_STRING([--enable-specs], + [Enable building the specs (default: ]spec_default[)]), + [build_specs=$enableval], [build_specs=]spec_default) +m4_undefine([spec_default]) +AM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes]) +AC_MSG_CHECKING([whether to build functional specifications]) +AC_MSG_RESULT([$build_specs]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1045: -1- AC_DEFUN([XORG_ENABLE_UNIT_TESTS], [ +AC_BEFORE([$0], [XORG_WITH_GLIB]) +AC_BEFORE([$0], [XORG_LD_WRAP]) +AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests], + [Enable building unit test cases (default: ]_defopt[)]), + [enable_unit_tests=$enableval], [enable_unit_tests=]_defopt) +m4_undefine([_defopt]) +AM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno]) +AC_MSG_CHECKING([whether to build unit test cases]) +AC_MSG_RESULT([$enable_unit_tests]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1078: -1- AC_DEFUN([XORG_ENABLE_INTEGRATION_TESTS], [ +AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_ENABLE(integration-tests, AS_HELP_STRING([--enable-integration-tests], + [Enable building integration test cases (default: ]_defopt[)]), + [enable_integration_tests=$enableval], + [enable_integration_tests=]_defopt) +m4_undefine([_defopt]) +AM_CONDITIONAL([ENABLE_INTEGRATION_TESTS], + [test "x$enable_integration_tests" != xno]) +AC_MSG_CHECKING([whether to build unit test cases]) +AC_MSG_RESULT([$enable_integration_tests]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1112: -1- AC_DEFUN([XORG_WITH_GLIB], [ +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(glib, AS_HELP_STRING([--with-glib], + [Use GLib library for unit testing (default: ]_defopt[)]), + [with_glib=$withval], [with_glib=]_defopt) +m4_undefine([_defopt]) + +have_glib=no +# Do not probe GLib if user explicitly disabled unit testing +if test "x$enable_unit_tests" != x"no"; then + # Do not probe GLib if user explicitly disabled it + if test "x$with_glib" != x"no"; then + m4_ifval( + [$1], + [PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])], + [PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])] + ) + fi +fi + +# Not having GLib when unit testing has been explicitly requested is an error +if test "x$enable_unit_tests" = x"yes"; then + if test "x$have_glib" = x"no"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) + fi +fi + +# Having unit testing disabled when GLib has been explicitly requested is an error +if test "x$enable_unit_tests" = x"no"; then + if test "x$with_glib" = x"yes"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) + fi +fi + +# Not having GLib when it has been explicitly requested is an error +if test "x$with_glib" = x"yes"; then + if test "x$have_glib" = x"no"; then + AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found]) + fi +fi + +AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1171: -1- AC_DEFUN([XORG_LD_WRAP], [ +XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no], + [AC_LANG_PROGRAM([#include + void __wrap_exit(int status) { return; }], + [exit(0);])]) +# Not having ld wrap when unit testing has been explicitly requested is an error +if test "x$enable_unit_tests" = x"yes" -a "x$1" != "xoptional"; then + if test "x$have_ld_wrap" = x"no"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available]) + fi +fi +AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes]) +# +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1235: -1- AC_DEFUN([XORG_CHECK_LINKER_FLAGS], [AC_MSG_CHECKING([whether the linker accepts $1]) +dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: +AS_LITERAL_IF([$1], + [AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [ + ax_save_FLAGS=$LDFLAGS + LDFLAGS="$1" + AC_LINK_IFELSE([m4_default([$4],[AC_LANG_PROGRAM()])], + AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, + AS_TR_SH(xorg_cv_linker_flags_[$1])=no) + LDFLAGS=$ax_save_FLAGS])], + [ax_save_FLAGS=$LDFLAGS + LDFLAGS="$1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, + eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no) + LDFLAGS=$ax_save_FLAGS]) +eval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1]) +AC_MSG_RESULT($xorg_check_linker_flags) +if test "x$xorg_check_linker_flags" = xyes; then + m4_default([$2], :) +else + m4_default([$3], :) +fi +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1275: -1- AC_DEFUN([XORG_MEMORY_CHECK_FLAGS], [ + +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_ARG_VAR([XORG_MALLOC_DEBUG_ENV], + [Environment variables to enable memory checking in tests]) + +# Check for different types of support on different platforms +case $host_os in + solaris*) + AC_CHECK_LIB([umem], [umem_alloc], + [malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default']) + ;; + *-gnu*) # GNU libc - Value is used as a single byte bit pattern, + # both directly and inverted, so should not be 0 or 255. + malloc_debug_env='MALLOC_PERTURB_=15' + ;; + darwin*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' + ;; + *bsd*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1' + ;; +esac + +# User supplied flags override default flags +if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then + malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" +fi + +AC_SUBST([XORG_MALLOC_DEBUG_ENV],[$malloc_debug_env]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1314: -1- AC_DEFUN([XORG_CHECK_MALLOC_ZERO], [ +AC_ARG_ENABLE(malloc0returnsnull, + AS_HELP_STRING([--enable-malloc0returnsnull], + [malloc(0) returns NULL (default: auto)]), + [MALLOC_ZERO_RETURNS_NULL=$enableval], + [MALLOC_ZERO_RETURNS_NULL=auto]) + +AC_MSG_CHECKING([whether malloc(0) returns NULL]) +if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then + AC_RUN_IFELSE([AC_LANG_PROGRAM([ +#include +],[ + char *m0, *r0, *c0, *p; + m0 = malloc(0); + p = malloc(10); + r0 = realloc(p,0); + c0 = calloc(0,10); + exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1); +])], + [MALLOC_ZERO_RETURNS_NULL=yes], + [MALLOC_ZERO_RETURNS_NULL=no], + [MALLOC_ZERO_RETURNS_NULL=yes]) +fi +AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL]) + +if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then + MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL" + XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS + XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC" +else + MALLOC_ZERO_CFLAGS="" + XMALLOC_ZERO_CFLAGS="" + XTMALLOC_ZERO_CFLAGS="" +fi + +AC_SUBST([MALLOC_ZERO_CFLAGS]) +AC_SUBST([XMALLOC_ZERO_CFLAGS]) +AC_SUBST([XTMALLOC_ZERO_CFLAGS]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1375: -1- AC_DEFUN([XORG_WITH_LINT], [ + +AC_ARG_VAR([LINT], [Path to a lint-style command]) +AC_ARG_VAR([LINT_FLAGS], [Flags for the lint-style command]) +AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], + [Use a lint-style source code checker (default: disabled)])], + [use_lint=$withval], [use_lint=no]) + +# Obtain platform specific info like program name and options +# The lint program on FreeBSD and NetBSD is different from the one on Solaris +case $host_os in + *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*) + lint_name=splint + lint_options="-badflag" + ;; + *freebsd* | *netbsd*) + lint_name=lint + lint_options="-u -b" + ;; + *solaris*) + lint_name=lint + lint_options="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2" + ;; +esac + +# Test for the presence of the program (either guessed by the code or spelled out by the user) +if test "x$use_lint" = x"yes" ; then + AC_PATH_PROG([LINT], [$lint_name]) + if test "x$LINT" = "x"; then + AC_MSG_ERROR([--with-lint=yes specified but lint-style tool not found in PATH]) + fi +elif test "x$use_lint" = x"no" ; then + if test "x$LINT" != "x"; then + AC_MSG_WARN([ignoring LINT environment variable since --with-lint=no was specified]) + fi +else + AC_MSG_ERROR([--with-lint expects 'yes' or 'no'. Use LINT variable to specify path.]) +fi + +# User supplied flags override default flags +if test "x$LINT_FLAGS" != "x"; then + lint_options=$LINT_FLAGS +fi + +AC_SUBST([LINT_FLAGS],[$lint_options]) +AM_CONDITIONAL(LINT, [test "x$LINT" != x]) + +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1438: -1- AC_DEFUN([XORG_LINT_LIBRARY], [ +AC_REQUIRE([XORG_WITH_LINT]) +AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], + [Create lint library (default: disabled)])], + [make_lint_lib=$enableval], [make_lint_lib=no]) + +if test "x$make_lint_lib" = x"yes" ; then + LINTLIB=llib-l$1.ln + if test "x$LINT" = "x"; then + AC_MSG_ERROR([Cannot make lint library without --with-lint]) + fi +elif test "x$make_lint_lib" != x"no" ; then + AC_MSG_ERROR([--enable-lint-library expects 'yes' or 'no'.]) +fi + +AC_SUBST(LINTLIB) +AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) + +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1469: -1- AC_DEFUN([XORG_COMPILER_BRAND], [ +AC_LANG_CASE( + [C], [ + AC_REQUIRE([AC_PROG_CC_C99]) + ], + [C++], [ + AC_REQUIRE([AC_PROG_CXX]) + ] +) +AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"]) +AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) +AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1496: -1- AC_DEFUN([XORG_TESTSET_CFLAG], [ +m4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) +m4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) + +AC_LANG_COMPILER_REQUIRE + +AC_LANG_CASE( + [C], [ + AC_REQUIRE([AC_PROG_CC_C99]) + define([PREFIX], [C]) + define([CACHE_PREFIX], [cc]) + define([COMPILER], [$CC]) + ], + [C++], [ + define([PREFIX], [CXX]) + define([CACHE_PREFIX], [cxx]) + define([COMPILER], [$CXX]) + ] +) + +[xorg_testset_save_]PREFIX[FLAGS]="$PREFIX[FLAGS]" + +if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "x" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" + AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unknown-warning-option], + [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], + [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=yes], + [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=no])) + [xorg_testset_]CACHE_PREFIX[_unknown_warning_option]=$[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option] + PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" +fi + +if test "x$[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]" = "x" ; then + if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "xyes" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" + fi + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" + AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unused-command-line-argument], + [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], + [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=yes], + [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=no])) + [xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]=$[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument] + PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" +fi + +found="no" +m4_foreach([flag], m4_cdr($@), [ + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" + fi + + PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag[" + +dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname + AC_MSG_CHECKING([if ]COMPILER[ supports]flag[]) + cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[]) + AC_CACHE_VAL($cacheid, + [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])], + [eval $cacheid=yes], + [eval $cacheid=no])]) + + PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" + + eval supported=\$$cacheid + AC_MSG_RESULT([$supported]) + if test "$supported" = "yes" ; then + $1="$$1 ]flag[" + found="yes" + fi + fi +]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1588: -1- AC_DEFUN([XORG_COMPILER_FLAGS], [ +AC_REQUIRE([XORG_COMPILER_BRAND]) + +AC_ARG_ENABLE(selective-werror, + AS_HELP_STRING([--disable-selective-werror], + [Turn off selective compiler errors. (default: enabled)]), + [SELECTIVE_WERROR=$enableval], + [SELECTIVE_WERROR=yes]) + +AC_LANG_CASE( + [C], [ + define([PREFIX], [C]) + ], + [C++], [ + define([PREFIX], [CXX]) + ] +) +# -v is too short to test reliably with XORG_TESTSET_CFLAG +if test "x$SUNCC" = "xyes"; then + [BASE_]PREFIX[FLAGS]="-v" +else + [BASE_]PREFIX[FLAGS]="" +fi + +# This chunk of warnings were those that existed in the legacy CWARNFLAGS +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat]) + +AC_LANG_CASE( + [C], [ + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement]) + ] +) + +# This chunk adds additional warnings that could catch undesired effects. +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls]) + +# These are currently disabled because they are noisy. They will be enabled +# in the future once the codebase is sufficiently modernized to silence +# them. For now, I don't want them to drown out the other warnings. +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) + +# Turn some warnings into errors, so we don't accidently get successful builds +# when there are problems that should be fixed. + +if test "x$SELECTIVE_WERROR" = "xyes" ; then +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) # Also -errwarn=E_BAD_PTR_INT_COMBINATION +else +AC_MSG_WARN([You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast]) +fi + +AC_SUBST([BASE_]PREFIX[FLAGS]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1694: -1- AC_DEFUN([XORG_CWARNFLAGS], [ +AC_REQUIRE([XORG_COMPILER_FLAGS]) +AC_REQUIRE([XORG_COMPILER_BRAND]) +AC_LANG_CASE( + [C], [ + CWARNFLAGS="$BASE_CFLAGS" + if test "x$GCC" = xyes ; then + CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" + fi + AC_SUBST(CWARNFLAGS) + ] +) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1719: -1- AC_DEFUN([XORG_STRICT_OPTION], [ +AC_REQUIRE([XORG_CWARNFLAGS]) +AC_REQUIRE([XORG_COMPILER_FLAGS]) + +AC_ARG_ENABLE(strict-compilation, + AS_HELP_STRING([--enable-strict-compilation], + [Enable all warnings from compiler and make them errors (default: disabled)]), + [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) + +AC_LANG_CASE( + [C], [ + define([PREFIX], [C]) + ], + [C++], [ + define([PREFIX], [CXX]) + ] +) + +[STRICT_]PREFIX[FLAGS]="" +XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic]) +XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn]) + +# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not +# activate it with -Werror, so we add it here explicitly. +XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes]) + +if test "x$STRICT_COMPILE" = "xyes"; then + [BASE_]PREFIX[FLAGS]="$[BASE_]PREFIX[FLAGS] $[STRICT_]PREFIX[FLAGS]" + AC_LANG_CASE([C], [CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"]) +fi +AC_SUBST([STRICT_]PREFIX[FLAGS]) +AC_SUBST([BASE_]PREFIX[FLAGS]) +AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1760: -1- AC_DEFUN([XORG_DEFAULT_OPTIONS], [ +AC_REQUIRE([AC_PROG_INSTALL]) +XORG_COMPILER_FLAGS +XORG_CWARNFLAGS +XORG_STRICT_OPTION +XORG_RELEASE_VERSION +XORG_CHANGELOG +XORG_INSTALL +XORG_MANPAGE_SECTIONS +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], + [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1780: -1- AC_DEFUN([XORG_INSTALL], [ +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` +INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ +mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ +echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +AC_SUBST([INSTALL_CMD]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1818: -1- AC_DEFUN([XORG_RELEASE_VERSION], [ + AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR], + [`echo $PACKAGE_VERSION | cut -d . -f 1`], + [Major version of this package]) + PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` + if test "x$PVM" = "x"; then + PVM="0" + fi + AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR], + [$PVM], + [Minor version of this package]) + PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` + if test "x$PVP" = "x"; then + PVP="0" + fi + AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], + [$PVP], + [Patch version of this package]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1846: -1- AC_DEFUN([XORG_CHANGELOG], [ +CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ +|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ +echo 'git directory not found: installing possibly empty changelog.' >&2)" +AC_SUBST([CHANGELOG_CMD]) +]) +m4trace:/usr/share/aclocal-1.14/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' +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. +m4_if([$1], [1.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) +m4trace:/usr/share/aclocal-1.14/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +m4trace:/usr/share/aclocal-1.14/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) +m4trace:/usr/share/aclocal-1.14/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) +m4trace:/usr/share/aclocal-1.14/depend.m4:26: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) +m4trace:/usr/share/aclocal-1.14/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) +m4trace:/usr/share/aclocal-1.14/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) +m4trace:/usr/share/aclocal-1.14/depout.m4:12: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +]) +m4trace:/usr/share/aclocal-1.14/depout.m4:71: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) +m4trace:/usr/share/aclocal-1.14/init.m4:29: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +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 macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# 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: + +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: . + +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]) +m4trace:/usr/share/aclocal-1.14/init.m4:182: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +m4trace:/usr/share/aclocal-1.14/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) +m4trace:/usr/share/aclocal-1.14/lead-dot.m4:10: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) +m4trace:/usr/share/aclocal-1.14/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl + +]) +m4trace:/usr/share/aclocal-1.14/make.m4:12: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) +m4trace:/usr/share/aclocal-1.14/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) +m4trace:/usr/share/aclocal-1.14/missing.m4:20: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) +m4trace:/usr/share/aclocal-1.14/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +m4trace:/usr/share/aclocal-1.14/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) +m4trace:/usr/share/aclocal-1.14/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +m4trace:/usr/share/aclocal-1.14/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +m4trace:/usr/share/aclocal-1.14/prog-cc-c-o.m4:12: -1- AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) +m4trace:/usr/share/aclocal-1.14/prog-cc-c-o.m4:47: -1- AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) +m4trace:/usr/share/aclocal-1.14/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) +m4trace:/usr/share/aclocal-1.14/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # 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 + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) +m4trace:/usr/share/aclocal-1.14/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [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 A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +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 +]) +m4trace:/usr/share/aclocal-1.14/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) +m4trace:/usr/share/aclocal-1.14/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) +m4trace:/usr/share/aclocal-1.14/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4trace:/usr/share/aclocal-1.14/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) +m4trace:m4/ax_gcc_builtin.m4:95: -1- AC_DEFUN([AX_GCC_BUILTIN], [ + AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1]) + + AC_CACHE_CHECK([for $1], [ac_var], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [ + m4_case([$1], + [__builtin_assume_aligned], [$1("", 0)], + [__builtin_bswap32], [$1(0)], + [__builtin_bswap64], [$1(0)], + [__builtin_choose_expr], [$1(0, 0, 0)], + [__builtin___clear_cache], [$1("", "")], + [__builtin_clrsb], [$1(0)], + [__builtin_clrsbl], [$1(0)], + [__builtin_clrsbll], [$1(0)], + [__builtin_clz], [$1(0)], + [__builtin_clzl], [$1(0)], + [__builtin_clzll], [$1(0)], + [__builtin_complex], [$1(0.0, 0.0)], + [__builtin_constant_p], [$1(0)], + [__builtin_ctz], [$1(0)], + [__builtin_ctzl], [$1(0)], + [__builtin_ctzll], [$1(0)], + [__builtin_expect], [$1(0, 0)], + [__builtin_ffs], [$1(0)], + [__builtin_ffsl], [$1(0)], + [__builtin_ffsll], [$1(0)], + [__builtin_fpclassify], [$1(0, 1, 2, 3, 4, 0.0)], + [__builtin_huge_val], [$1()], + [__builtin_huge_valf], [$1()], + [__builtin_huge_vall], [$1()], + [__builtin_inf], [$1()], + [__builtin_infd128], [$1()], + [__builtin_infd32], [$1()], + [__builtin_infd64], [$1()], + [__builtin_inff], [$1()], + [__builtin_infl], [$1()], + [__builtin_isinf_sign], [$1(0.0)], + [__builtin_nan], [$1("")], + [__builtin_nand128], [$1("")], + [__builtin_nand32], [$1("")], + [__builtin_nand64], [$1("")], + [__builtin_nanf], [$1("")], + [__builtin_nanl], [$1("")], + [__builtin_nans], [$1("")], + [__builtin_nansf], [$1("")], + [__builtin_nansl], [$1("")], + [__builtin_object_size], [$1("", 0)], + [__builtin_parity], [$1(0)], + [__builtin_parityl], [$1(0)], + [__builtin_parityll], [$1(0)], + [__builtin_popcount], [$1(0)], + [__builtin_popcountl], [$1(0)], + [__builtin_popcountll], [$1(0)], + [__builtin_powi], [$1(0, 0)], + [__builtin_powif], [$1(0, 0)], + [__builtin_powil], [$1(0, 0)], + [__builtin_prefetch], [$1("")], + [__builtin_trap], [$1()], + [__builtin_types_compatible_p], [$1(int, int)], + [__builtin_unreachable], [$1()], + [m4_warn([syntax], [Unsupported built-in $1, the test may fail]) + $1()] + ) + ])], + [AS_VAR_SET([ac_var], [yes])], + [AS_VAR_SET([ac_var], [no])]) + ]) + + AS_IF([test yes = AS_VAR_GET([ac_var])], + [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1, + [Define to 1 if the system has the `$1' built-in function])], []) + + AS_VAR_POPDEF([ac_var]) +]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:25: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:30: -1- AC_CONFIG_MACRO_DIR([m4]) +m4trace:configure.ac:34: -1- AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip subdir-objects color-tests parallel-tests check-news]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:34: -1- AM_SET_CURRENT_AUTOMAKE_VERSION +m4trace:configure.ac:34: -1- AM_AUTOMAKE_VERSION([1.14.1]) +m4trace:configure.ac:34: -1- _AM_AUTOCONF_VERSION([2.69]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:34: -1- _AM_SET_OPTIONS([foreign dist-xz no-dist-gzip subdir-objects color-tests parallel-tests check-news]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([foreign]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([foreign]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([dist-xz]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([dist-xz]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([no-dist-gzip]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([no-dist-gzip]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([subdir-objects]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([subdir-objects]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([color-tests]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([color-tests]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([parallel-tests]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([parallel-tests]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([check-news]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([check-news]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([no-define]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:34: -1- AM_SANITY_CHECK +m4trace:configure.ac:34: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +m4trace:configure.ac:34: -1- AM_MISSING_HAS_RUN +m4trace:configure.ac:34: -1- AM_AUX_DIR_EXPAND +m4trace:configure.ac:34: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:34: -1- AM_PROG_INSTALL_SH +m4trace:configure.ac:34: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:34: -1- AM_PROG_INSTALL_STRIP +m4trace:configure.ac:34: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:34: -1- AM_SET_LEADING_DOT +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([tar-pax]) +m4trace:configure.ac:34: -1- _AM_PROG_TAR([v7]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__tar$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__untar$]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([no-dependencies]) +m4trace:configure.ac:34: -1- AM_SILENT_RULES +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:34: -1- AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:34: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:35: -1- AM_MAINTAINER_MODE([enable]) +m4trace:configure.ac:35: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) +m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINT$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.ac:38: -1- _AM_PROG_CC_C_O +m4trace:configure.ac:38: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) +m4trace:configure.ac:38: -1- _AM_DEPENDENCIES([CC]) +m4trace:configure.ac:38: -1- AM_SET_DEPDIR +m4trace:configure.ac:38: -1- m4_pattern_allow([^DEPDIR$]) +m4trace:configure.ac:38: -1- AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:38: -1- AM_MAKE_INCLUDE +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__include$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__quote$]) +m4trace:configure.ac:38: -1- AM_DEP_TRACK +m4trace:configure.ac:38: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_TRUE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_FALSE$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__nodep$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__nodep]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:38: -1- AC_PROG_EGREP +m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_MINIX$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^__EXTENSIONS__$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_ALL_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_GNU_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) +m4trace:configure.ac:41: -1- LT_INIT +m4trace:configure.ac:41: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) +m4trace:configure.ac:41: -1- LTOPTIONS_VERSION +m4trace:configure.ac:41: -1- LTSUGAR_VERSION +m4trace:configure.ac:41: -1- LTVERSION_VERSION +m4trace:configure.ac:41: -1- LTOBSOLETE_VERSION +m4trace:configure.ac:41: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:41: -1- m4_pattern_allow([^LIBTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:41: -1- _LT_PREPARE_SED_QUOTE_VARS +m4trace:configure.ac:41: -1- _LT_PROG_ECHO_BACKSLASH +m4trace:configure.ac:41: -1- LT_PATH_LD +m4trace:configure.ac:41: -1- m4_pattern_allow([^SED$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^FGREP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:41: -1- LT_PATH_NM +m4trace:configure.ac:41: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^NM$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.ac:41: -1- LT_CMD_MAX_LEN +m4trace:configure.ac:41: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^AR$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^ac_ct_AR$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.ac:41: -1- _LT_WITH_SYSROOT +m4trace:configure.ac:41: -1- m4_pattern_allow([LT_OBJDIR]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LT_OBJDIR$]) +m4trace:configure.ac:41: -1- _LT_CC_BASENAME([$compiler]) +m4trace:configure.ac:41: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH]) +m4trace:configure.ac:41: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH]) +m4trace:configure.ac:41: -1- LT_SUPPORTED_TAG([CC]) +m4trace:configure.ac:41: -1- _LT_COMPILER_BOILERPLATE +m4trace:configure.ac:41: -1- _LT_LINKER_BOILERPLATE +m4trace:configure.ac:41: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"]) +m4trace:configure.ac:41: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;; + esac], [_LT_TAGVAR(lt_prog_compiler_pic, )= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no]) +m4trace:configure.ac:41: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^MANIFEST_TOOL$]) +m4trace:configure.ac:41: -1- _LT_REQUIRED_DARWIN_CHECKS +m4trace:configure.ac:41: -1- m4_pattern_allow([^DSYMUTIL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^NMEDIT$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LIPO$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OTOOL64$]) +m4trace:configure.ac:41: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags']) +m4trace:configure.ac:41: -1- LT_SYS_DLOPEN_SELF +m4trace:configure.ac:41: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) +m4trace:configure.ac:47: -1- XORG_DEFAULT_OPTIONS +m4trace:configure.ac:47: -1- XORG_COMPILER_FLAGS +m4trace:configure.ac:47: -1- XORG_COMPILER_BRAND +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^BASE_CFLAGS$]) +m4trace:configure.ac:47: -1- XORG_CWARNFLAGS +m4trace:configure.ac:47: -1- m4_pattern_allow([^CWARNFLAGS$]) +m4trace:configure.ac:47: -1- XORG_STRICT_OPTION +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^STRICT_CFLAGS$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^BASE_CFLAGS$]) +m4trace:configure.ac:47: -2- m4_pattern_allow([^CWARNFLAGS$]) +m4trace:configure.ac:47: -1- XORG_RELEASE_VERSION +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_MAJOR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_MINOR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_PATCHLEVEL$]) +m4trace:configure.ac:47: -1- XORG_CHANGELOG +m4trace:configure.ac:47: -1- m4_pattern_allow([^CHANGELOG_CMD$]) +m4trace:configure.ac:47: -1- XORG_INSTALL +m4trace:configure.ac:47: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:47: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^INSTALL_CMD$]) +m4trace:configure.ac:47: -1- XORG_MANPAGE_SECTIONS +m4trace:configure.ac:47: -1- m4_pattern_allow([^APP_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^LIB_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^FILE_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MISC_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^DRIVER_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^ADMIN_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^APP_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^LIB_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^FILE_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MISC_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^DRIVER_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^ADMIN_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^XORG_MAN_PAGE$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MAN_SUBSTS$]) +m4trace:configure.ac:47: -1- AM_SILENT_RULES([yes]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:47: -1- AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:47: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:48: -1- XORG_MEMORY_CHECK_FLAGS +m4trace:configure.ac:48: -1- m4_pattern_allow([^XORG_MALLOC_DEBUG_ENV$]) +m4trace:configure.ac:48: -1- m4_pattern_allow([^XORG_MALLOC_DEBUG_ENV$]) +m4trace:configure.ac:49: -1- XORG_ENABLE_DOCS +m4trace:configure.ac:49: -1- AM_CONDITIONAL([ENABLE_DOCS], [test x$build_docs = xyes]) +m4trace:configure.ac:49: -1- m4_pattern_allow([^ENABLE_DOCS_TRUE$]) +m4trace:configure.ac:49: -1- m4_pattern_allow([^ENABLE_DOCS_FALSE$]) +m4trace:configure.ac:49: -1- _AM_SUBST_NOTMAKE([ENABLE_DOCS_TRUE]) +m4trace:configure.ac:49: -1- _AM_SUBST_NOTMAKE([ENABLE_DOCS_FALSE]) +m4trace:configure.ac:50: -1- XORG_WITH_DOXYGEN +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_DOXYGEN_TRUE$]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_DOXYGEN_FALSE$]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_DOXYGEN_TRUE]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_DOXYGEN_FALSE]) +m4trace:configure.ac:53: -1- AM_PROG_CC_C_O +m4trace:configure.ac:60: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:60: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YFLAGS$]) +m4trace:configure.ac:65: -1- m4_pattern_allow([^YACC_INST$]) +m4trace:configure.ac:85: -1- AX_GCC_BUILTIN([__builtin_expect]) +m4trace:configure.ac:85: -1- m4_pattern_allow([^HAVE___BUILTIN_EXPECT$]) +m4trace:configure.ac:89: -1- AM_CONDITIONAL([BUILD_LINUX_TESTS], [test "x$ac_cv_header_linux_input_h" = xyes]) +m4trace:configure.ac:89: -1- m4_pattern_allow([^BUILD_LINUX_TESTS_TRUE$]) +m4trace:configure.ac:89: -1- m4_pattern_allow([^BUILD_LINUX_TESTS_FALSE$]) +m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([BUILD_LINUX_TESTS_TRUE]) +m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([BUILD_LINUX_TESTS_FALSE]) +m4trace:configure.ac:91: -1- XORG_TESTSET_CFLAG([BASE_CFLAGS], [-fvisibility=hidden]) +m4trace:configure.ac:92: -1- XORG_TESTSET_CFLAG([BASE_CFLAGS], [-Wextra -Wno-unused-parameter -Wno-missing-field-initializers]) +m4trace:configure.ac:93: -1- XORG_TESTSET_CFLAG([BASE_CFLAGS], [-Wdocumentation]) +m4trace:configure.ac:101: -1- XORG_CHECK_LINKER_FLAGS([-Wl,--no-undefined], [have_no_undefined=yes]) +m4trace:configure.ac:104: -1- AM_CONDITIONAL([HAVE_NO_UNDEFINED], [test "x$have_no_undefined" = xyes]) +m4trace:configure.ac:104: -1- m4_pattern_allow([^HAVE_NO_UNDEFINED_TRUE$]) +m4trace:configure.ac:104: -1- m4_pattern_allow([^HAVE_NO_UNDEFINED_FALSE$]) +m4trace:configure.ac:104: -1- _AM_SUBST_NOTMAKE([HAVE_NO_UNDEFINED_TRUE]) +m4trace:configure.ac:104: -1- _AM_SUBST_NOTMAKE([HAVE_NO_UNDEFINED_FALSE]) +m4trace:configure.ac:106: -1- m4_pattern_allow([^RT_LIBS$]) +m4trace:configure.ac:106: -1- m4_pattern_allow([^RT_LIBS$]) +m4trace:configure.ac:121: -1- m4_pattern_allow([^XKBCONFIGROOT$]) +m4trace:configure.ac:129: -1- m4_pattern_allow([^XLOCALEDIR$]) +m4trace:configure.ac:136: -1- m4_pattern_allow([^DEFAULT_XKB_RULES$]) +m4trace:configure.ac:144: -1- m4_pattern_allow([^DEFAULT_XKB_MODEL$]) +m4trace:configure.ac:152: -1- m4_pattern_allow([^DEFAULT_XKB_LAYOUT$]) +m4trace:configure.ac:160: -1- m4_pattern_allow([^DEFAULT_XKB_VARIANT$]) +m4trace:configure.ac:170: -1- m4_pattern_allow([^DEFAULT_XKB_OPTIONS$]) +m4trace:configure.ac:179: -1- PKG_CHECK_MODULES([XCB_XKB], [xcb xcb-xkb >= 1.10], [], [AC_MSG_ERROR([xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11.])]) +m4trace:configure.ac:179: -1- m4_pattern_allow([^XCB_XKB_CFLAGS$]) +m4trace:configure.ac:179: -1- m4_pattern_allow([^XCB_XKB_LIBS$]) +m4trace:configure.ac:179: -1- PKG_CHECK_EXISTS([xcb xcb-xkb >= 1.10], [pkg_cv_[]XCB_XKB_CFLAGS=`$PKG_CONFIG --[]cflags "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:179: -1- PKG_CHECK_EXISTS([xcb xcb-xkb >= 1.10], [pkg_cv_[]XCB_XKB_LIBS=`$PKG_CONFIG --[]libs "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:179: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:184: -1- AM_CONDITIONAL([ENABLE_X11], [test "x$enable_x11" = xyes]) +m4trace:configure.ac:184: -1- m4_pattern_allow([^ENABLE_X11_TRUE$]) +m4trace:configure.ac:184: -1- m4_pattern_allow([^ENABLE_X11_FALSE$]) +m4trace:configure.ac:184: -1- _AM_SUBST_NOTMAKE([ENABLE_X11_TRUE]) +m4trace:configure.ac:184: -1- _AM_SUBST_NOTMAKE([ENABLE_X11_FALSE]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:194: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:194: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:194: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:194: -1- _LT_PROG_LTMAIN diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.1 b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.1 new file mode 100644 index 0000000..e8207a0 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.1 @@ -0,0 +1,832 @@ +m4trace:aclocal.m4:3199: -1- m4_include([m4/ax_gcc_builtin.m4]) +m4trace:aclocal.m4:3200: -1- m4_include([m4/libtool.m4]) +m4trace:aclocal.m4:3201: -1- m4_include([m4/ltoptions.m4]) +m4trace:aclocal.m4:3202: -1- m4_include([m4/ltsugar.m4]) +m4trace:aclocal.m4:3203: -1- m4_include([m4/ltversion.m4]) +m4trace:aclocal.m4:3204: -1- m4_include([m4/lt~obsolete.m4]) +m4trace:configure.ac:25: -1- AC_INIT([libxkbcommon], [0.5.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon], [libxkbcommon], [http://xkbcommon.org]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:25: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:25: -1- AC_SUBST([SHELL]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([SHELL]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:25: -1- AC_SUBST([PATH_SEPARATOR]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PATH_SEPARATOR]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE_NAME]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE_TARNAME]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE_VERSION]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE_STRING]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:25: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([PACKAGE_URL]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:25: -1- AC_SUBST([exec_prefix], [NONE]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([exec_prefix]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:25: -1- AC_SUBST([prefix], [NONE]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([prefix]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:25: -1- AC_SUBST([program_transform_name], [s,x,x,]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([program_transform_name]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:25: -1- AC_SUBST([bindir], ['${exec_prefix}/bin']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([bindir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:25: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([sbindir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:25: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([libexecdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([datarootdir], ['${prefix}/share']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([datarootdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([datadir], ['${datarootdir}']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([datadir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:25: -1- AC_SUBST([sysconfdir], ['${prefix}/etc']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([sysconfdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([sharedstatedir], ['${prefix}/com']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([sharedstatedir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:25: -1- AC_SUBST([localstatedir], ['${prefix}/var']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([localstatedir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:25: -1- AC_SUBST([includedir], ['${prefix}/include']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([includedir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:25: -1- AC_SUBST([oldincludedir], ['/usr/include']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([oldincludedir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:25: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], + ['${datarootdir}/doc/${PACKAGE_TARNAME}'], + ['${datarootdir}/doc/${PACKAGE}'])]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([docdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([infodir], ['${datarootdir}/info']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([infodir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:25: -1- AC_SUBST([htmldir], ['${docdir}']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([htmldir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:25: -1- AC_SUBST([dvidir], ['${docdir}']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([dvidir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:25: -1- AC_SUBST([pdfdir], ['${docdir}']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([pdfdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([psdir], ['${docdir}']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([psdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([libdir], ['${exec_prefix}/lib']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([libdir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:25: -1- AC_SUBST([localedir], ['${datarootdir}/locale']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([localedir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:25: -1- AC_SUBST([mandir], ['${datarootdir}/man']) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([mandir]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */ +@%:@undef PACKAGE_NAME]) +m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */ +@%:@undef PACKAGE_TARNAME]) +m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */ +@%:@undef PACKAGE_VERSION]) +m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */ +@%:@undef PACKAGE_STRING]) +m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */ +@%:@undef PACKAGE_BUGREPORT]) +m4trace:configure.ac:25: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:25: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */ +@%:@undef PACKAGE_URL]) +m4trace:configure.ac:25: -1- AC_SUBST([DEFS]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([DEFS]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:25: -1- AC_SUBST([ECHO_C]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([ECHO_C]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:25: -1- AC_SUBST([ECHO_N]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([ECHO_N]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:25: -1- AC_SUBST([ECHO_T]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([ECHO_T]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:25: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:25: -1- AC_SUBST([build_alias]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([build_alias]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:25: -1- AC_SUBST([host_alias]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([host_alias]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:25: -1- AC_SUBST([target_alias]) +m4trace:configure.ac:25: -1- AC_SUBST_TRACE([target_alias]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:29: -1- AC_CONFIG_HEADERS([src/config.h]) +m4trace:configure.ac:31: -1- AC_CONFIG_AUX_DIR([build-aux]) +m4trace:configure.ac:34: -1- AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip subdir-objects color-tests parallel-tests check-news]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:34: -1- AM_AUTOMAKE_VERSION([1.14.1]) +m4trace:configure.ac:34: -1- AC_REQUIRE_AUX_FILE([install-sh]) +m4trace:configure.ac:34: -1- AC_SUBST([INSTALL_PROGRAM]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([INSTALL_PROGRAM]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:34: -1- AC_SUBST([INSTALL_SCRIPT]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([INSTALL_SCRIPT]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:34: -1- AC_SUBST([INSTALL_DATA]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([INSTALL_DATA]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:34: -1- AC_SUBST([am__isrc], [' -I$(srcdir)']) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([am__isrc]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:34: -1- AC_SUBST([CYGPATH_W]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([CYGPATH_W]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:34: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME']) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([PACKAGE]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:34: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION']) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([VERSION]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:34: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:34: -1- AH_OUTPUT([PACKAGE], [/* Name of package */ +@%:@undef PACKAGE]) +m4trace:configure.ac:34: -1- AC_DEFINE_TRACE_LITERAL([VERSION]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:34: -1- AH_OUTPUT([VERSION], [/* Version number of package */ +@%:@undef VERSION]) +m4trace:configure.ac:34: -1- AC_REQUIRE_AUX_FILE([missing]) +m4trace:configure.ac:34: -1- AC_SUBST([ACLOCAL]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([ACLOCAL]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:34: -1- AC_SUBST([AUTOCONF]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AUTOCONF]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:34: -1- AC_SUBST([AUTOMAKE]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AUTOMAKE]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:34: -1- AC_SUBST([AUTOHEADER]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AUTOHEADER]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:34: -1- AC_SUBST([MAKEINFO]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([MAKEINFO]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:34: -1- AC_SUBST([install_sh]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([install_sh]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:34: -1- AC_SUBST([STRIP]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([STRIP]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:34: -1- AC_SUBST([INSTALL_STRIP_PROGRAM]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:34: -1- AC_REQUIRE_AUX_FILE([install-sh]) +m4trace:configure.ac:34: -1- AC_SUBST([MKDIR_P]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:34: -1- AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([mkdir_p]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:34: -1- AC_SUBST([AWK]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AWK]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:34: -1- AC_SUBST([SET_MAKE]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([SET_MAKE]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:34: -1- AC_SUBST([am__leading_dot]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([am__leading_dot]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:34: -1- AC_SUBST([AMTAR], ['$${TAR-tar}']) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AMTAR]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:34: -1- AC_SUBST([am__tar]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([am__tar]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__tar$]) +m4trace:configure.ac:34: -1- AC_SUBST([am__untar]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([am__untar]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__untar$]) +m4trace:configure.ac:34: -1- AM_SILENT_RULES +m4trace:configure.ac:34: -1- AC_SUBST([AM_V]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AM_V]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:34: -1- AC_SUBST([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- AC_SUBST([AM_DEFAULT_VERBOSITY]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:34: -1- AC_SUBST([AM_BACKSLASH]) +m4trace:configure.ac:34: -1- AC_SUBST_TRACE([AM_BACKSLASH]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:35: -1- AM_MAINTAINER_MODE([enable]) +m4trace:configure.ac:35: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) +m4trace:configure.ac:35: -1- AC_SUBST([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:35: -1- AC_SUBST_TRACE([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) +m4trace:configure.ac:35: -1- AC_SUBST([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:35: -1- AC_SUBST_TRACE([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) +m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:35: -1- AC_SUBST([MAINT]) +m4trace:configure.ac:35: -1- AC_SUBST_TRACE([MAINT]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINT$]) +m4trace:configure.ac:38: -1- AC_SUBST([CC]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- AC_SUBST([CFLAGS]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CFLAGS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:38: -1- AC_SUBST([LDFLAGS]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LDFLAGS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:38: -1- AC_SUBST([LIBS]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([LIBS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:38: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:38: -1- AC_SUBST([CC]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- AC_SUBST([CC]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- AC_SUBST([CC]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- AC_SUBST([CC]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CC]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- AC_SUBST([ac_ct_CC]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([ac_ct_CC]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:38: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([EXEEXT]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.ac:38: -1- AC_SUBST([OBJEXT], [$ac_cv_objext]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([OBJEXT]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.ac:38: -1- AC_REQUIRE_AUX_FILE([compile]) +m4trace:configure.ac:38: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([DEPDIR]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^DEPDIR$]) +m4trace:configure.ac:38: -1- AC_SUBST([am__include]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__include]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__include$]) +m4trace:configure.ac:38: -1- AC_SUBST([am__quote]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__quote]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__quote$]) +m4trace:configure.ac:38: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +m4trace:configure.ac:38: -1- AC_SUBST([AMDEP_TRUE]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AMDEP_TRUE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_TRUE$]) +m4trace:configure.ac:38: -1- AC_SUBST([AMDEP_FALSE]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AMDEP_FALSE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_FALSE$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) +m4trace:configure.ac:38: -1- AC_SUBST([AMDEPBACKSLASH]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([AMDEPBACKSLASH]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) +m4trace:configure.ac:38: -1- AC_SUBST([am__nodep]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__nodep]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__nodep$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__nodep]) +m4trace:configure.ac:38: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CCDEPMODE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:38: -1- AC_SUBST([am__fastdepCC_TRUE]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:38: -1- AC_SUBST([am__fastdepCC_FALSE]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:38: -1- AC_SUBST([CPP]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:38: -1- AC_SUBST([CPPFLAGS]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPPFLAGS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:38: -1- AC_SUBST([CPP]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([CPP]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:38: -1- AC_SUBST([GREP]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:38: -1- AC_SUBST([EGREP]) +m4trace:configure.ac:38: -1- AC_SUBST_TRACE([EGREP]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.ac:38: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */ +@%:@undef STDC_HEADERS]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_TYPES_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_SYS_STAT_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDLIB_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRING_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_MEMORY_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STRINGS_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_INTTYPES_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_STDINT_H]) +m4trace:configure.ac:38: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_UNISTD_H]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_SOURCE$]) +m4trace:configure.ac:38: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for `stat\' and other things to work. */ +@%:@undef _POSIX_SOURCE]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) +m4trace:configure.ac:38: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +@%:@undef _POSIX_1_SOURCE]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_MINIX]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_MINIX$]) +m4trace:configure.ac:38: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */ +@%:@undef _MINIX]) +m4trace:configure.ac:38: -1- AH_OUTPUT([USE_SYSTEM_EXTENSIONS], [/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif +]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^__EXTENSIONS__$]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_ALL_SOURCE$]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_GNU_SOURCE$]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) +m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) +m4trace:configure.ac:41: -1- LT_INIT +m4trace:configure.ac:41: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) +m4trace:configure.ac:41: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) +m4trace:configure.ac:41: -1- AC_SUBST([LIBTOOL]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([LIBTOOL]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LIBTOOL$]) +m4trace:configure.ac:41: -1- AC_CANONICAL_HOST +m4trace:configure.ac:41: -1- AC_CANONICAL_BUILD +m4trace:configure.ac:41: -1- AC_REQUIRE_AUX_FILE([config.sub]) +m4trace:configure.ac:41: -1- AC_REQUIRE_AUX_FILE([config.guess]) +m4trace:configure.ac:41: -1- AC_SUBST([build], [$ac_cv_build]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([build]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:41: -1- AC_SUBST([build_cpu], [$[1]]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([build_cpu]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:41: -1- AC_SUBST([build_vendor], [$[2]]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([build_vendor]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:41: -1- AC_SUBST([build_os]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([build_os]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:41: -1- AC_SUBST([host], [$ac_cv_host]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([host]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:41: -1- AC_SUBST([host_cpu], [$[1]]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([host_cpu]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:41: -1- AC_SUBST([host_vendor], [$[2]]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([host_vendor]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:41: -1- AC_SUBST([host_os]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([host_os]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:41: -1- AC_SUBST([SED]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([SED]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^SED$]) +m4trace:configure.ac:41: -1- AC_SUBST([FGREP]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([FGREP]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^FGREP$]) +m4trace:configure.ac:41: -1- AC_SUBST([GREP]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([GREP]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:41: -1- AC_SUBST([LD]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([LD]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:41: -1- AC_SUBST([DUMPBIN]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DUMPBIN]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:41: -1- AC_SUBST([ac_ct_DUMPBIN]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([ac_ct_DUMPBIN]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) +m4trace:configure.ac:41: -1- AC_SUBST([DUMPBIN]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DUMPBIN]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:41: -1- AC_SUBST([NM]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([NM]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^NM$]) +m4trace:configure.ac:41: -1- AC_SUBST([LN_S], [$as_ln_s]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([LN_S]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.ac:41: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:41: -1- AC_SUBST([OBJDUMP]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([OBJDUMP]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:41: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:41: -1- AC_SUBST([DLLTOOL]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DLLTOOL]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:41: -1- AC_SUBST([AR]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([AR]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^AR$]) +m4trace:configure.ac:41: -1- AC_SUBST([ac_ct_AR]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([ac_ct_AR]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^ac_ct_AR$]) +m4trace:configure.ac:41: -1- AC_SUBST([STRIP]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([STRIP]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:41: -1- AC_SUBST([RANLIB]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([RANLIB]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([LT_OBJDIR]) +m4trace:configure.ac:41: -1- AC_DEFINE_TRACE_LITERAL([LT_OBJDIR]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LT_OBJDIR$]) +m4trace:configure.ac:41: -1- AH_OUTPUT([LT_OBJDIR], [/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +@%:@undef LT_OBJDIR]) +m4trace:configure.ac:41: -1- LT_SUPPORTED_TAG([CC]) +m4trace:configure.ac:41: -1- AC_SUBST([MANIFEST_TOOL]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([MANIFEST_TOOL]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^MANIFEST_TOOL$]) +m4trace:configure.ac:41: -1- AC_SUBST([DSYMUTIL]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([DSYMUTIL]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DSYMUTIL$]) +m4trace:configure.ac:41: -1- AC_SUBST([NMEDIT]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([NMEDIT]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^NMEDIT$]) +m4trace:configure.ac:41: -1- AC_SUBST([LIPO]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([LIPO]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LIPO$]) +m4trace:configure.ac:41: -1- AC_SUBST([OTOOL]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([OTOOL]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OTOOL$]) +m4trace:configure.ac:41: -1- AC_SUBST([OTOOL64]) +m4trace:configure.ac:41: -1- AC_SUBST_TRACE([OTOOL64]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OTOOL64$]) +m4trace:configure.ac:41: -1- AH_OUTPUT([HAVE_DLFCN_H], [/* Define to 1 if you have the header file. */ +@%:@undef HAVE_DLFCN_H]) +m4trace:configure.ac:41: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLFCN_H]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) +m4trace:configure.ac:47: -1- AC_SUBST([BASE_CFLAGS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([BASE_CFLAGS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^BASE_CFLAGS$]) +m4trace:configure.ac:47: -1- AC_SUBST([CWARNFLAGS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([CWARNFLAGS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^CWARNFLAGS$]) +m4trace:configure.ac:47: -1- AC_SUBST([STRICT_CFLAGS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([STRICT_CFLAGS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^STRICT_CFLAGS$]) +m4trace:configure.ac:47: -1- AC_SUBST([BASE_CFLAGS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([BASE_CFLAGS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^BASE_CFLAGS$]) +m4trace:configure.ac:47: -2- AC_SUBST([CWARNFLAGS]) +m4trace:configure.ac:47: -2- AC_SUBST_TRACE([CWARNFLAGS]) +m4trace:configure.ac:47: -2- m4_pattern_allow([^CWARNFLAGS$]) +m4trace:configure.ac:47: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION_MAJOR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_MAJOR$]) +m4trace:configure.ac:47: -1- AH_OUTPUT([PACKAGE_VERSION_MAJOR], [/* Major version of this package */ +@%:@undef PACKAGE_VERSION_MAJOR]) +m4trace:configure.ac:47: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION_MINOR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_MINOR$]) +m4trace:configure.ac:47: -1- AH_OUTPUT([PACKAGE_VERSION_MINOR], [/* Minor version of this package */ +@%:@undef PACKAGE_VERSION_MINOR]) +m4trace:configure.ac:47: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION_PATCHLEVEL]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_PATCHLEVEL$]) +m4trace:configure.ac:47: -1- AH_OUTPUT([PACKAGE_VERSION_PATCHLEVEL], [/* Patch version of this package */ +@%:@undef PACKAGE_VERSION_PATCHLEVEL]) +m4trace:configure.ac:47: -1- AC_SUBST([CHANGELOG_CMD]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([CHANGELOG_CMD]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^CHANGELOG_CMD$]) +m4trace:configure.ac:47: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:47: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:47: -1- AC_SUBST([PKG_CONFIG_PATH]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:47: -1- AC_SUBST([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:47: -1- AC_SUBST([INSTALL_CMD]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([INSTALL_CMD]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^INSTALL_CMD$]) +m4trace:configure.ac:47: -1- AC_SUBST([APP_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([APP_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^APP_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- AC_SUBST([LIB_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([LIB_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^LIB_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- AC_SUBST([FILE_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([FILE_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^FILE_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- AC_SUBST([MISC_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([MISC_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MISC_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- AC_SUBST([DRIVER_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([DRIVER_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^DRIVER_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- AC_SUBST([ADMIN_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([ADMIN_MAN_SUFFIX]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^ADMIN_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- AC_SUBST([APP_MAN_DIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([APP_MAN_DIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^APP_MAN_DIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([LIB_MAN_DIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([LIB_MAN_DIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^LIB_MAN_DIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([FILE_MAN_DIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([FILE_MAN_DIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^FILE_MAN_DIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([MISC_MAN_DIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([MISC_MAN_DIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MISC_MAN_DIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([DRIVER_MAN_DIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([DRIVER_MAN_DIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^DRIVER_MAN_DIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([ADMIN_MAN_DIR]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([ADMIN_MAN_DIR]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^ADMIN_MAN_DIR$]) +m4trace:configure.ac:47: -1- AC_SUBST([XORG_MAN_PAGE]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([XORG_MAN_PAGE]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^XORG_MAN_PAGE$]) +m4trace:configure.ac:47: -1- AC_SUBST([MAN_SUBSTS]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([MAN_SUBSTS]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MAN_SUBSTS$]) +m4trace:configure.ac:47: -1- AM_SILENT_RULES([yes]) +m4trace:configure.ac:47: -1- AC_SUBST([AM_V]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([AM_V]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:47: -1- AC_SUBST([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- AC_SUBST([AM_DEFAULT_VERBOSITY]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:47: -1- AC_SUBST([AM_BACKSLASH]) +m4trace:configure.ac:47: -1- AC_SUBST_TRACE([AM_BACKSLASH]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:48: -1- AC_SUBST([XORG_MALLOC_DEBUG_ENV]) +m4trace:configure.ac:48: -1- AC_SUBST_TRACE([XORG_MALLOC_DEBUG_ENV]) +m4trace:configure.ac:48: -1- m4_pattern_allow([^XORG_MALLOC_DEBUG_ENV$]) +m4trace:configure.ac:48: -1- AC_SUBST([XORG_MALLOC_DEBUG_ENV], [$malloc_debug_env]) +m4trace:configure.ac:48: -1- AC_SUBST_TRACE([XORG_MALLOC_DEBUG_ENV]) +m4trace:configure.ac:48: -1- m4_pattern_allow([^XORG_MALLOC_DEBUG_ENV$]) +m4trace:configure.ac:49: -1- AM_CONDITIONAL([ENABLE_DOCS], [test x$build_docs = xyes]) +m4trace:configure.ac:49: -1- AC_SUBST([ENABLE_DOCS_TRUE]) +m4trace:configure.ac:49: -1- AC_SUBST_TRACE([ENABLE_DOCS_TRUE]) +m4trace:configure.ac:49: -1- m4_pattern_allow([^ENABLE_DOCS_TRUE$]) +m4trace:configure.ac:49: -1- AC_SUBST([ENABLE_DOCS_FALSE]) +m4trace:configure.ac:49: -1- AC_SUBST_TRACE([ENABLE_DOCS_FALSE]) +m4trace:configure.ac:49: -1- m4_pattern_allow([^ENABLE_DOCS_FALSE$]) +m4trace:configure.ac:49: -1- _AM_SUBST_NOTMAKE([ENABLE_DOCS_TRUE]) +m4trace:configure.ac:49: -1- _AM_SUBST_NOTMAKE([ENABLE_DOCS_FALSE]) +m4trace:configure.ac:50: -1- AC_SUBST([DOXYGEN]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([DOXYGEN]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- AC_SUBST([DOXYGEN]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([DOXYGEN]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- AC_SUBST([DOXYGEN]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([DOXYGEN]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) +m4trace:configure.ac:50: -1- AC_SUBST([HAVE_DOXYGEN_TRUE]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([HAVE_DOXYGEN_TRUE]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_DOXYGEN_TRUE$]) +m4trace:configure.ac:50: -1- AC_SUBST([HAVE_DOXYGEN_FALSE]) +m4trace:configure.ac:50: -1- AC_SUBST_TRACE([HAVE_DOXYGEN_FALSE]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_DOXYGEN_FALSE$]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_DOXYGEN_TRUE]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_DOXYGEN_FALSE]) +m4trace:configure.ac:53: -1- AM_PROG_CC_C_O +m4trace:configure.ac:56: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler + calls it, or to nothing if \'inline\' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif]) +m4trace:configure.ac:60: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:60: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:60: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:60: -1- AC_SUBST([PKG_CONFIG_PATH]) +m4trace:configure.ac:60: -1- AC_SUBST_TRACE([PKG_CONFIG_PATH]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:60: -1- AC_SUBST([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:60: -1- AC_SUBST_TRACE([PKG_CONFIG_LIBDIR]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:60: -1- AC_SUBST([PKG_CONFIG]) +m4trace:configure.ac:60: -1- AC_SUBST_TRACE([PKG_CONFIG]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:64: -1- AC_SUBST([YACC]) +m4trace:configure.ac:64: -1- AC_SUBST_TRACE([YACC]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.ac:64: -1- AC_SUBST([YACC]) +m4trace:configure.ac:64: -1- AC_SUBST_TRACE([YACC]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.ac:64: -1- AC_SUBST([YFLAGS]) +m4trace:configure.ac:64: -1- AC_SUBST_TRACE([YFLAGS]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YFLAGS$]) +m4trace:configure.ac:65: -1- AC_SUBST([YACC_INST]) +m4trace:configure.ac:65: -1- AC_SUBST_TRACE([YACC_INST]) +m4trace:configure.ac:65: -1- m4_pattern_allow([^YACC_INST$]) +m4trace:configure.ac:71: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */ +@%:@undef HAVE_STRCASECMP]) +m4trace:configure.ac:71: -1- AH_OUTPUT([HAVE_STRNCASECMP], [/* Define to 1 if you have the `strncasecmp\' function. */ +@%:@undef HAVE_STRNCASECMP]) +m4trace:configure.ac:77: -1- AH_OUTPUT([HAVE_EACCESS], [/* Define to 1 if you have the `eaccess\' function. */ +@%:@undef HAVE_EACCESS]) +m4trace:configure.ac:77: -1- AH_OUTPUT([HAVE_EUIDACCESS], [/* Define to 1 if you have the `euidaccess\' function. */ +@%:@undef HAVE_EUIDACCESS]) +m4trace:configure.ac:77: -1- AH_OUTPUT([HAVE_MMAP], [/* Define to 1 if you have the `mmap\' function. */ +@%:@undef HAVE_MMAP]) +m4trace:configure.ac:79: -1- AH_OUTPUT([HAVE_SECURE_GETENV], [/* Define to 1 if you have the `secure_getenv\' function. */ +@%:@undef HAVE_SECURE_GETENV]) +m4trace:configure.ac:79: -1- AH_OUTPUT([HAVE___SECURE_GETENV], [/* Define to 1 if you have the `__secure_getenv\' function. */ +@%:@undef HAVE___SECURE_GETENV]) +m4trace:configure.ac:85: -1- AC_DEFINE_TRACE_LITERAL([HAVE___BUILTIN_EXPECT]) +m4trace:configure.ac:85: -1- m4_pattern_allow([^HAVE___BUILTIN_EXPECT$]) +m4trace:configure.ac:85: -1- AH_OUTPUT([HAVE___BUILTIN_EXPECT], [/* Define to 1 if the system has the `__builtin_expect\' built-in function */ +@%:@undef HAVE___BUILTIN_EXPECT]) +m4trace:configure.ac:89: -1- AM_CONDITIONAL([BUILD_LINUX_TESTS], [test "x$ac_cv_header_linux_input_h" = xyes]) +m4trace:configure.ac:89: -1- AC_SUBST([BUILD_LINUX_TESTS_TRUE]) +m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BUILD_LINUX_TESTS_TRUE]) +m4trace:configure.ac:89: -1- m4_pattern_allow([^BUILD_LINUX_TESTS_TRUE$]) +m4trace:configure.ac:89: -1- AC_SUBST([BUILD_LINUX_TESTS_FALSE]) +m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BUILD_LINUX_TESTS_FALSE]) +m4trace:configure.ac:89: -1- m4_pattern_allow([^BUILD_LINUX_TESTS_FALSE$]) +m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([BUILD_LINUX_TESTS_TRUE]) +m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([BUILD_LINUX_TESTS_FALSE]) +m4trace:configure.ac:104: -1- AM_CONDITIONAL([HAVE_NO_UNDEFINED], [test "x$have_no_undefined" = xyes]) +m4trace:configure.ac:104: -1- AC_SUBST([HAVE_NO_UNDEFINED_TRUE]) +m4trace:configure.ac:104: -1- AC_SUBST_TRACE([HAVE_NO_UNDEFINED_TRUE]) +m4trace:configure.ac:104: -1- m4_pattern_allow([^HAVE_NO_UNDEFINED_TRUE$]) +m4trace:configure.ac:104: -1- AC_SUBST([HAVE_NO_UNDEFINED_FALSE]) +m4trace:configure.ac:104: -1- AC_SUBST_TRACE([HAVE_NO_UNDEFINED_FALSE]) +m4trace:configure.ac:104: -1- m4_pattern_allow([^HAVE_NO_UNDEFINED_FALSE$]) +m4trace:configure.ac:104: -1- _AM_SUBST_NOTMAKE([HAVE_NO_UNDEFINED_TRUE]) +m4trace:configure.ac:104: -1- _AM_SUBST_NOTMAKE([HAVE_NO_UNDEFINED_FALSE]) +m4trace:configure.ac:106: -1- AC_SUBST([RT_LIBS], ["-lrt"]) +m4trace:configure.ac:106: -1- AC_SUBST_TRACE([RT_LIBS]) +m4trace:configure.ac:106: -1- m4_pattern_allow([^RT_LIBS$]) +m4trace:configure.ac:106: -1- AC_SUBST([RT_LIBS], [""]) +m4trace:configure.ac:106: -1- AC_SUBST_TRACE([RT_LIBS]) +m4trace:configure.ac:106: -1- m4_pattern_allow([^RT_LIBS$]) +m4trace:configure.ac:121: -1- AC_SUBST([XKBCONFIGROOT]) +m4trace:configure.ac:121: -1- AC_SUBST_TRACE([XKBCONFIGROOT]) +m4trace:configure.ac:121: -1- m4_pattern_allow([^XKBCONFIGROOT$]) +m4trace:configure.ac:129: -1- AC_SUBST([XLOCALEDIR]) +m4trace:configure.ac:129: -1- AC_SUBST_TRACE([XLOCALEDIR]) +m4trace:configure.ac:129: -1- m4_pattern_allow([^XLOCALEDIR$]) +m4trace:configure.ac:136: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_XKB_RULES]) +m4trace:configure.ac:136: -1- m4_pattern_allow([^DEFAULT_XKB_RULES$]) +m4trace:configure.ac:136: -1- AH_OUTPUT([DEFAULT_XKB_RULES], [/* Default XKB ruleset */ +@%:@undef DEFAULT_XKB_RULES]) +m4trace:configure.ac:144: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_XKB_MODEL]) +m4trace:configure.ac:144: -1- m4_pattern_allow([^DEFAULT_XKB_MODEL$]) +m4trace:configure.ac:144: -1- AH_OUTPUT([DEFAULT_XKB_MODEL], [/* Default XKB model */ +@%:@undef DEFAULT_XKB_MODEL]) +m4trace:configure.ac:152: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_XKB_LAYOUT]) +m4trace:configure.ac:152: -1- m4_pattern_allow([^DEFAULT_XKB_LAYOUT$]) +m4trace:configure.ac:152: -1- AH_OUTPUT([DEFAULT_XKB_LAYOUT], [/* Default XKB layout */ +@%:@undef DEFAULT_XKB_LAYOUT]) +m4trace:configure.ac:160: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_XKB_VARIANT]) +m4trace:configure.ac:160: -1- m4_pattern_allow([^DEFAULT_XKB_VARIANT$]) +m4trace:configure.ac:160: -1- AH_OUTPUT([DEFAULT_XKB_VARIANT], [/* Default XKB variant */ +@%:@undef DEFAULT_XKB_VARIANT]) +m4trace:configure.ac:170: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_XKB_OPTIONS]) +m4trace:configure.ac:170: -1- m4_pattern_allow([^DEFAULT_XKB_OPTIONS$]) +m4trace:configure.ac:170: -1- AH_OUTPUT([DEFAULT_XKB_OPTIONS], [/* Default XKB options */ +@%:@undef DEFAULT_XKB_OPTIONS]) +m4trace:configure.ac:179: -1- AC_SUBST([XCB_XKB_CFLAGS]) +m4trace:configure.ac:179: -1- AC_SUBST_TRACE([XCB_XKB_CFLAGS]) +m4trace:configure.ac:179: -1- m4_pattern_allow([^XCB_XKB_CFLAGS$]) +m4trace:configure.ac:179: -1- AC_SUBST([XCB_XKB_LIBS]) +m4trace:configure.ac:179: -1- AC_SUBST_TRACE([XCB_XKB_LIBS]) +m4trace:configure.ac:179: -1- m4_pattern_allow([^XCB_XKB_LIBS$]) +m4trace:configure.ac:184: -1- AM_CONDITIONAL([ENABLE_X11], [test "x$enable_x11" = xyes]) +m4trace:configure.ac:184: -1- AC_SUBST([ENABLE_X11_TRUE]) +m4trace:configure.ac:184: -1- AC_SUBST_TRACE([ENABLE_X11_TRUE]) +m4trace:configure.ac:184: -1- m4_pattern_allow([^ENABLE_X11_TRUE$]) +m4trace:configure.ac:184: -1- AC_SUBST([ENABLE_X11_FALSE]) +m4trace:configure.ac:184: -1- AC_SUBST_TRACE([ENABLE_X11_FALSE]) +m4trace:configure.ac:184: -1- m4_pattern_allow([^ENABLE_X11_FALSE$]) +m4trace:configure.ac:184: -1- _AM_SUBST_NOTMAKE([ENABLE_X11_TRUE]) +m4trace:configure.ac:184: -1- _AM_SUBST_NOTMAKE([ENABLE_X11_FALSE]) +m4trace:configure.ac:186: -1- AC_CONFIG_FILES([ + Makefile + xkbcommon-uninstalled.pc + xkbcommon.pc + xkbcommon-x11.pc + xkbcommon-x11-uninstalled.pc + doc/Doxyfile +]) +m4trace:configure.ac:194: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:194: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:194: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:194: -1- AC_SUBST([am__EXEEXT_TRUE]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:194: -1- AC_SUBST([am__EXEEXT_FALSE]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([top_build_prefix]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([abs_top_builddir]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.ac:194: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:194: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.2 b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.2 new file mode 100644 index 0000000..f43fb81 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/traces.2 @@ -0,0 +1,4140 @@ +m4trace:/usr/share/aclocal/argz.m4:12: -1- AC_DEFUN([gl_FUNC_ARGZ], [gl_PREREQ_ARGZ + +AC_CHECK_HEADERS([argz.h], [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_TYPES([error_t], + [], + [AC_DEFINE([error_t], [int], + [Define to a type to use for `error_t' if it is not otherwise available.]) + AC_DEFINE([__error_t_defined], [1], [Define so that glibc/gnulib argp.h + does not typedef error_t.])], + [#if defined(HAVE_ARGZ_H) +# include +#endif]) + +ARGZ_H= +AC_CHECK_FUNCS([argz_add argz_append argz_count argz_create_sep argz_insert \ + argz_next argz_stringify], [], [ARGZ_H=argz.h; AC_LIBOBJ([argz])]) + +dnl if have system argz functions, allow forced use of +dnl libltdl-supplied implementation (and default to do so +dnl on "known bad" systems). Could use a runtime check, but +dnl (a) detecting malloc issues is notoriously unreliable +dnl (b) only known system that declares argz functions, +dnl provides them, yet they are broken, is cygwin +dnl releases prior to 16-Mar-2007 (1.5.24 and earlier) +dnl So, it's more straightforward simply to special case +dnl this for known bad systems. +AS_IF([test -z "$ARGZ_H"], + [AC_CACHE_CHECK( + [if argz actually works], + [lt_cv_sys_argz_works], + [[case $host_os in #( + *cygwin*) + lt_cv_sys_argz_works=no + if test "$cross_compiling" != no; then + lt_cv_sys_argz_works="guessing no" + else + lt_sed_extract_leading_digits='s/^\([0-9\.]*\).*/\1/' + save_IFS=$IFS + IFS=-. + set x `uname -r | sed -e "$lt_sed_extract_leading_digits"` + IFS=$save_IFS + lt_os_major=${2-0} + lt_os_minor=${3-0} + lt_os_micro=${4-0} + if test "$lt_os_major" -gt 1 \ + || { test "$lt_os_major" -eq 1 \ + && { test "$lt_os_minor" -gt 5 \ + || { test "$lt_os_minor" -eq 5 \ + && test "$lt_os_micro" -gt 24; }; }; }; then + lt_cv_sys_argz_works=yes + fi + fi + ;; #( + *) lt_cv_sys_argz_works=yes ;; + esac]]) + AS_IF([test "$lt_cv_sys_argz_works" = yes], + [AC_DEFINE([HAVE_WORKING_ARGZ], 1, + [This value is set to 1 to indicate that the system argz facility works])], + [ARGZ_H=argz.h + AC_LIBOBJ([argz])])]) + +AC_SUBST([ARGZ_H]) +]) +m4trace:/usr/share/aclocal/argz.m4:79: -1- AC_DEFUN([gl_PREREQ_ARGZ], [:]) +m4trace:/usr/share/aclocal/ltdl.m4:16: -1- AC_DEFUN([LT_CONFIG_LTDL_DIR], [AC_BEFORE([$0], [LTDL_INIT]) +_$0($*) +]) +m4trace:/usr/share/aclocal/ltdl.m4:68: -1- AC_DEFUN([LTDL_CONVENIENCE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AU_DEFUN([AC_LIBLTDL_CONVENIENCE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:81: -1- AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_CONVENIENCE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_CONVENIENCE]) +m4trace:/usr/share/aclocal/ltdl.m4:124: -1- AC_DEFUN([LTDL_INSTALLABLE], [AC_BEFORE([$0], [LTDL_INIT])dnl +dnl Although the argument is deprecated and no longer documented, +dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one +dnl here make sure it is the same as any other declaration of libltdl's +dnl location! This also ensures lt_ltdl_dir is set when configure.ac is +dnl not yet using an explicit LT_CONFIG_LTDL_DIR. +m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl +_$0() +]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AU_DEFUN([AC_LIBLTDL_INSTALLABLE], [_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:137: -1- AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBLTDL_INSTALLABLE' is obsolete. +You should run autoupdate.])dnl +_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])]) +_LTDL_INSTALLABLE]) +m4trace:/usr/share/aclocal/ltdl.m4:213: -1- AC_DEFUN([_LT_LIBOBJ], [ + m4_pattern_allow([^_LT_LIBOBJS$]) + _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext" +]) +m4trace:/usr/share/aclocal/ltdl.m4:226: -1- AC_DEFUN([LTDL_INIT], [dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +dnl We need to keep our own list of libobjs separate from our parent project, +dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while +dnl we look for our own LIBOBJs. +m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ])) +m4_pushdef([AC_LIBSOURCES]) + +dnl If not otherwise defined, default to the 1.5.x compatible subproject mode: +m4_if(_LTDL_MODE, [], + [m4_define([_LTDL_MODE], m4_default([$2], [subproject])) + m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])], + [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])]) + +AC_ARG_WITH([included_ltdl], + [AS_HELP_STRING([--with-included-ltdl], + [use the GNU ltdl sources included here])]) + +if test "x$with_included_ltdl" != xyes; then + # We are not being forced to use the included libltdl sources, so + # decide whether there is a useful installed version we can use. + AC_CHECK_HEADER([ltdl.h], + [AC_CHECK_DECL([lt_dlinterface_register], + [AC_CHECK_LIB([ltdl], [lt_dladvise_preload], + [with_included_ltdl=no], + [with_included_ltdl=yes])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT + #include ])], + [with_included_ltdl=yes], + [AC_INCLUDES_DEFAULT] + ) +fi + +dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE +dnl was called yet, then for old times' sake, we assume libltdl is in an +dnl eponymous directory: +AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])]) + +AC_ARG_WITH([ltdl_include], + [AS_HELP_STRING([--with-ltdl-include=DIR], + [use the ltdl headers installed in DIR])]) + +if test -n "$with_ltdl_include"; then + if test -f "$with_ltdl_include/ltdl.h"; then : + else + AC_MSG_ERROR([invalid ltdl include directory: `$with_ltdl_include']) + fi +else + with_ltdl_include=no +fi + +AC_ARG_WITH([ltdl_lib], + [AS_HELP_STRING([--with-ltdl-lib=DIR], + [use the libltdl.la installed in DIR])]) + +if test -n "$with_ltdl_lib"; then + if test -f "$with_ltdl_lib/libltdl.la"; then : + else + AC_MSG_ERROR([invalid ltdl library directory: `$with_ltdl_lib']) + fi +else + with_ltdl_lib=no +fi + +case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in + ,yes,no,no,) + m4_case(m4_default(_LTDL_TYPE, [convenience]), + [convenience], [_LTDL_CONVENIENCE], + [installable], [_LTDL_INSTALLABLE], + [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)]) + ;; + ,no,no,no,) + # If the included ltdl is not to be used, then use the + # preinstalled libltdl we found. + AC_DEFINE([HAVE_LTDL], [1], + [Define this if a modern libltdl is already installed]) + LIBLTDL=-lltdl + LTDLDEPS= + LTDLINCL= + ;; + ,no*,no,*) + AC_MSG_ERROR([`--with-ltdl-include' and `--with-ltdl-lib' options must be used together]) + ;; + *) with_included_ltdl=no + LIBLTDL="-L$with_ltdl_lib -lltdl" + LTDLDEPS= + LTDLINCL="-I$with_ltdl_include" + ;; +esac +INCLTDL="$LTDLINCL" + +# Report our decision... +AC_MSG_CHECKING([where to find libltdl headers]) +AC_MSG_RESULT([$LTDLINCL]) +AC_MSG_CHECKING([where to find libltdl library]) +AC_MSG_RESULT([$LIBLTDL]) + +_LTDL_SETUP + +dnl restore autoconf definition. +m4_popdef([AC_LIBOBJ]) +m4_popdef([AC_LIBSOURCES]) + +AC_CONFIG_COMMANDS_PRE([ + _ltdl_libobjs= + _ltdl_ltlibobjs= + if test -n "$_LT_LIBOBJS"; then + # Remove the extension. + _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' + for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do + _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" + _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" + done + fi + AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) + AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) +]) + +# Only expand once: +m4_define([LTDL_INIT]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:352: -1- AC_DEFUN([AC_LIB_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIB_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:353: -1- AC_DEFUN([AC_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `AC_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:354: -1- AC_DEFUN([LT_WITH_LTDL], [AC_DIAGNOSE([obsolete], [The macro `LT_WITH_LTDL' is obsolete. +You should run autoupdate.])dnl +LTDL_INIT($@)]) +m4trace:/usr/share/aclocal/ltdl.m4:367: -1- AC_DEFUN([_LTDL_SETUP], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_SYS_MODULE_EXT])dnl +AC_REQUIRE([LT_SYS_MODULE_PATH])dnl +AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl +AC_REQUIRE([LT_LIB_DLLOAD])dnl +AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl +AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl +AC_REQUIRE([gl_FUNC_ARGZ])dnl + +m4_require([_LT_CHECK_OBJDIR])dnl +m4_require([_LT_HEADER_DLFCN])dnl +m4_require([_LT_CHECK_DLPREOPEN])dnl +m4_require([_LT_DECL_SED])dnl + +dnl Don't require this, or it will be expanded earlier than the code +dnl that sets the variables it relies on: +_LT_ENABLE_INSTALL + +dnl _LTDL_MODE specific code must be called at least once: +_LTDL_MODE_DISPATCH + +# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS +# the user used. This is so that ltdl.h can pick up the parent projects +# config.h file, The first file in AC_CONFIG_HEADERS must contain the +# definitions required by ltdl.c. +# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility). +AC_CONFIG_COMMANDS_PRE([dnl +m4_pattern_allow([^LT_CONFIG_H$])dnl +m4_ifset([AH_HEADER], + [LT_CONFIG_H=AH_HEADER], + [m4_ifset([AC_LIST_HEADERS], + [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's,^[[ ]]*,,;s,[[ :]].*$,,'`], + [])])]) +AC_SUBST([LT_CONFIG_H]) + +AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h], + [], [], [AC_INCLUDES_DEFAULT]) + +AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])]) +AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])]) + +m4_pattern_allow([LT_LIBEXT])dnl +AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension]) + +name= +eval "lt_libprefix=\"$libname_spec\"" +m4_pattern_allow([LT_LIBPREFIX])dnl +AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix]) + +name=ltdl +eval "LTDLOPEN=\"$libname_spec\"" +AC_SUBST([LTDLOPEN]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:443: -1- AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_CACHE_CHECK([whether deplibs are loaded by dlopen], + [lt_cv_sys_dlopen_deplibs], + [# PORTME does your system automatically load deplibs for dlopen? + # or its logical equivalent (e.g. shl_load for HP-UX < 11) + # For now, we just catch OSes we know something about -- in the + # future, we'll try test this programmatically. + lt_cv_sys_dlopen_deplibs=unknown + case $host_os in + aix3*|aix4.1.*|aix4.2.*) + # Unknown whether this is true for these versions of AIX, but + # we want this `case' here to explicitly catch those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + aix[[4-9]]*) + lt_cv_sys_dlopen_deplibs=yes + ;; + amigaos*) + case $host_cpu in + powerpc) + lt_cv_sys_dlopen_deplibs=no + ;; + esac + ;; + darwin*) + # Assuming the user has installed a libdl from somewhere, this is true + # If you are looking for one http://www.opendarwin.org/projects/dlcompat + lt_cv_sys_dlopen_deplibs=yes + ;; + freebsd* | dragonfly*) + lt_cv_sys_dlopen_deplibs=yes + ;; + gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) + # GNU and its variants, using gnu ld.so (Glibc) + lt_cv_sys_dlopen_deplibs=yes + ;; + hpux10*|hpux11*) + lt_cv_sys_dlopen_deplibs=yes + ;; + interix*) + lt_cv_sys_dlopen_deplibs=yes + ;; + irix[[12345]]*|irix6.[[01]]*) + # Catch all versions of IRIX before 6.2, and indicate that we don't + # know how it worked for any of those versions. + lt_cv_sys_dlopen_deplibs=unknown + ;; + irix*) + # The case above catches anything before 6.2, and it's known that + # at 6.2 and later dlopen does load deplibs. + lt_cv_sys_dlopen_deplibs=yes + ;; + netbsd* | netbsdelf*-gnu) + lt_cv_sys_dlopen_deplibs=yes + ;; + openbsd*) + lt_cv_sys_dlopen_deplibs=yes + ;; + osf[[1234]]*) + # dlopen did load deplibs (at least at 4.x), but until the 5.x series, + # it did *not* use an RPATH in a shared library to find objects the + # library depends on, so we explicitly say `no'. + lt_cv_sys_dlopen_deplibs=no + ;; + osf5.0|osf5.0a|osf5.1) + # dlopen *does* load deplibs and with the right loader patch applied + # it even uses RPATH in a shared library to search for shared objects + # that the library depends on, but there's no easy way to know if that + # patch is installed. Since this is the case, all we can really + # say is unknown -- it depends on the patch being installed. If + # it is, this changes to `yes'. Without it, it would be `no'. + lt_cv_sys_dlopen_deplibs=unknown + ;; + osf*) + # the two cases above should catch all versions of osf <= 5.1. Read + # the comments above for what we know about them. + # At > 5.1, deplibs are loaded *and* any RPATH in a shared library + # is used to find them so we can finally say `yes'. + lt_cv_sys_dlopen_deplibs=yes + ;; + qnx*) + lt_cv_sys_dlopen_deplibs=yes + ;; + solaris*) + lt_cv_sys_dlopen_deplibs=yes + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + libltdl_cv_sys_dlopen_deplibs=yes + ;; + esac + ]) +if test "$lt_cv_sys_dlopen_deplibs" != yes; then + AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1], + [Define if the OS needs help to load dependent libraries for dlopen().]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AU_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:542: -1- AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYS_DLOPEN_DEPLIBS' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:549: -1- AC_DEFUN([LT_SYS_MODULE_EXT], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which extension is used for runtime loadable modules], + [libltdl_cv_shlibext], +[ +module=yes +eval libltdl_cv_shlibext=$shrext_cmds +module=no +eval libltdl_cv_shrext=$shrext_cmds + ]) +if test -n "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_MODULE_EXT])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"], + [Define to the extension used for runtime loadable modules, say, ".so".]) +fi +if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then + m4_pattern_allow([LT_SHARED_EXT])dnl + AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"], + [Define to the shared library suffix, say, ".dylib".]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AU_DEFUN([AC_LTDL_SHLIBEXT], [m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:572: -1- AC_DEFUN([AC_LTDL_SHLIBEXT], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBEXT' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_EXT], [LT_SYS_MODULE_EXT($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:579: -1- AC_DEFUN([LT_SYS_MODULE_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([which variable specifies run-time module search path], + [lt_cv_module_path_var], [lt_cv_module_path_var="$shlibpath_var"]) +if test -n "$lt_cv_module_path_var"; then + m4_pattern_allow([LT_MODULE_PATH_VAR])dnl + AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"], + [Define to the name of the environment variable that determines the run-time module search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AU_DEFUN([AC_LTDL_SHLIBPATH], [m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:591: -1- AC_DEFUN([AC_LTDL_SHLIBPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SHLIBPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_MODULE_PATH], [LT_SYS_MODULE_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:598: -1- AC_DEFUN([LT_SYS_DLSEARCH_PATH], [m4_require([_LT_SYS_DYNAMIC_LINKER])dnl +AC_CACHE_CHECK([for the default library search path], + [lt_cv_sys_dlsearch_path], + [lt_cv_sys_dlsearch_path="$sys_lib_dlsearch_path_spec"]) +if test -n "$lt_cv_sys_dlsearch_path"; then + sys_dlsearch_path= + for dir in $lt_cv_sys_dlsearch_path; do + if test -z "$sys_dlsearch_path"; then + sys_dlsearch_path="$dir" + else + sys_dlsearch_path="$sys_dlsearch_path$PATH_SEPARATOR$dir" + fi + done + m4_pattern_allow([LT_DLSEARCH_PATH])dnl + AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"], + [Define to the system default library search path.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AU_DEFUN([AC_LTDL_SYSSEARCHPATH], [m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:619: -1- AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYSSEARCHPATH' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLSEARCH_PATH], [LT_SYS_DLSEARCH_PATH($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:645: -1- AC_DEFUN([LT_LIB_DLLOAD], [m4_pattern_allow([^LT_DLLOADERS$]) +LT_DLLOADERS= +AC_SUBST([LT_DLLOADERS]) + +AC_LANG_PUSH([C]) + +LIBADD_DLOPEN= +AC_SEARCH_LIBS([dlopen], [dl], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + if test "$ac_cv_search_dlopen" != "none required" ; then + LIBADD_DLOPEN="-ldl" + fi + libltdl_cv_lib_dl_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H +# include +#endif + ]], [[dlopen(0, 0);]])], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"], + [AC_CHECK_LIB([svld], [dlopen], + [AC_DEFINE([HAVE_LIBDL], [1], + [Define if you have the libdl library or equivalent.]) + LIBADD_DLOPEN="-lsvld" libltdl_cv_func_dlopen="yes" + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])]) +if test x"$libltdl_cv_func_dlopen" = xyes || test x"$libltdl_cv_lib_dl_dlopen" = xyes +then + lt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + AC_CHECK_FUNCS([dlerror]) + LIBS="$lt_save_LIBS" +fi +AC_SUBST([LIBADD_DLOPEN]) + +LIBADD_SHL_LOAD= +AC_CHECK_FUNC([shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"], + [AC_CHECK_LIB([dld], [shl_load], + [AC_DEFINE([HAVE_SHL_LOAD], [1], + [Define if you have the shl_load function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la" + LIBADD_SHL_LOAD="-ldld"])]) +AC_SUBST([LIBADD_SHL_LOAD]) + +case $host_os in +darwin[[1567]].*) +# We only want this for pre-Mac OS X 10.4. + AC_CHECK_FUNC([_dyld_func_lookup], + [AC_DEFINE([HAVE_DYLD], [1], + [Define if you have the _dyld_func_lookup function.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"]) + ;; +beos*) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la" + ;; +cygwin* | mingw* | os2* | pw32*) + AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include ]]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la" + ;; +esac + +AC_CHECK_LIB([dld], [dld_link], + [AC_DEFINE([HAVE_DLD], [1], + [Define if you have the GNU dld library.]) + LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"]) +AC_SUBST([LIBADD_DLD_LINK]) + +m4_pattern_allow([^LT_DLPREOPEN$]) +LT_DLPREOPEN= +if test -n "$LT_DLLOADERS" +then + for lt_loader in $LT_DLLOADERS; do + LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader " + done + AC_DEFINE([HAVE_LIBDLLOADER], [1], + [Define if libdlloader will be built on this platform]) +fi +AC_SUBST([LT_DLPREOPEN]) + +dnl This isn't used anymore, but set it for backwards compatibility +LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD" +AC_SUBST([LIBADD_DL]) + +AC_LANG_POP +]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AU_DEFUN([AC_LTDL_DLLIB], [m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:738: -1- AC_DEFUN([AC_LTDL_DLLIB], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLLIB' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_DLLOAD], [LT_LIB_DLLOAD($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:746: -1- AC_DEFUN([LT_SYS_SYMBOL_USCORE], [m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +AC_CACHE_CHECK([for _ prefix in compiled symbols], + [lt_cv_sys_symbol_underscore], + [lt_cv_sys_symbol_underscore=no + cat > conftest.$ac_ext <<_LT_EOF +void nm_test_func(){} +int main(){nm_test_func;return 0;} +_LT_EOF + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + ac_nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then + # See whether the symbols have a leading underscore. + if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then + lt_cv_sys_symbol_underscore=yes + else + if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then + : + else + echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD + fi + fi + else + echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.c >&AS_MESSAGE_LOG_FD + fi + rm -rf conftest* + ]) + sys_symbol_underscore=$lt_cv_sys_symbol_underscore + AC_SUBST([sys_symbol_underscore]) +]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AU_DEFUN([AC_LTDL_SYMBOL_USCORE], [m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:783: -1- AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_SYMBOL_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:790: -1- AC_DEFUN([LT_FUNC_DLSYM_USCORE], [AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl +if test x"$lt_cv_sys_symbol_underscore" = xyes; then + if test x"$libltdl_cv_func_dlopen" = xyes || + test x"$libltdl_cv_lib_dl_dlopen" = xyes ; then + AC_CACHE_CHECK([whether we have to add an underscore for dlsym], + [libltdl_cv_need_uscore], + [libltdl_cv_need_uscore=unknown + save_LIBS="$LIBS" + LIBS="$LIBS $LIBADD_DLOPEN" + _LT_TRY_DLOPEN_SELF( + [libltdl_cv_need_uscore=no], [libltdl_cv_need_uscore=yes], + [], [libltdl_cv_need_uscore=cross]) + LIBS="$save_LIBS" + ]) + fi +fi + +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE([NEED_USCORE], [1], + [Define if dlsym() requires a leading underscore in symbol names.]) +fi +]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AU_DEFUN([AC_LTDL_DLSYM_USCORE], [m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/ltdl.m4:815: -1- AC_DEFUN([AC_LTDL_DLSYM_USCORE], [AC_DIAGNOSE([obsolete], [The macro `AC_LTDL_DLSYM_USCORE' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_FUNC_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE($@)])]) +m4trace:/usr/share/aclocal/pkg.m4:27: -1- AC_DEFUN([PKG_PROG_PKG_CONFIG], [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) +AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) +AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi +fi[]dnl +]) +m4trace:/usr/share/aclocal/pkg.m4:60: -1- AC_DEFUN([PKG_CHECK_EXISTS], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_default([$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) +m4trace:/usr/share/aclocal/pkg.m4:86: -1- AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +]) +m4trace:/usr/share/aclocal/pkg.m4:106: -1- AC_DEFUN([PKG_CHECK_MODULES], [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + AC_MSG_RESULT([no]) + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + m4_default([$4], [AC_MSG_ERROR( +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT])[]dnl + ]) +elif test $pkg_failed = untried; then + AC_MSG_RESULT([no]) + m4_default([$4], [AC_MSG_FAILURE( +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])[]dnl + ]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + $3 +fi[]dnl +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:58: -1- AC_DEFUN([XORG_PROG_RAWCPP], [ +AC_REQUIRE([AC_PROG_CPP]) +AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], + [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) + +# Check for flag to avoid builtin definitions - assumes unix is predefined, +# which is not the best choice for supporting other OS'es, but covers most +# of the ones we need for now. +AC_MSG_CHECKING([if $RAWCPP requires -undef]) +AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])]) +if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then + AC_MSG_RESULT([no]) +else + if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then + RAWCPPFLAGS=-undef + AC_MSG_RESULT([yes]) + # under Cygwin unix is still defined even with -undef + elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then + RAWCPPFLAGS="-undef -ansi" + AC_MSG_RESULT([yes, with -ansi]) + else + AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.]) + fi +fi +rm -f conftest.$ac_ext + +AC_MSG_CHECKING([if $RAWCPP requires -traditional]) +AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])]) +if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then + AC_MSG_RESULT([no]) +else + if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then + RAWCPPFLAGS="${RAWCPPFLAGS} -traditional" + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.]) + fi +fi +rm -f conftest.$ac_ext +AC_SUBST(RAWCPPFLAGS) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:111: -1- AC_DEFUN([XORG_MANPAGE_SECTIONS], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_SED]) + +if test x$APP_MAN_SUFFIX = x ; then + APP_MAN_SUFFIX=1 +fi +if test x$APP_MAN_DIR = x ; then + APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' +fi + +if test x$LIB_MAN_SUFFIX = x ; then + LIB_MAN_SUFFIX=3 +fi +if test x$LIB_MAN_DIR = x ; then + LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' +fi + +if test x$FILE_MAN_SUFFIX = x ; then + case $host_os in + solaris*) FILE_MAN_SUFFIX=4 ;; + *) FILE_MAN_SUFFIX=5 ;; + esac +fi +if test x$FILE_MAN_DIR = x ; then + FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' +fi + +if test x$MISC_MAN_SUFFIX = x ; then + case $host_os in + solaris*) MISC_MAN_SUFFIX=5 ;; + *) MISC_MAN_SUFFIX=7 ;; + esac +fi +if test x$MISC_MAN_DIR = x ; then + MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' +fi + +if test x$DRIVER_MAN_SUFFIX = x ; then + case $host_os in + solaris*) DRIVER_MAN_SUFFIX=7 ;; + *) DRIVER_MAN_SUFFIX=4 ;; + esac +fi +if test x$DRIVER_MAN_DIR = x ; then + DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' +fi + +if test x$ADMIN_MAN_SUFFIX = x ; then + case $host_os in + solaris*) ADMIN_MAN_SUFFIX=1m ;; + *) ADMIN_MAN_SUFFIX=8 ;; + esac +fi +if test x$ADMIN_MAN_DIR = x ; then + ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' +fi + + +AC_SUBST([APP_MAN_SUFFIX]) +AC_SUBST([LIB_MAN_SUFFIX]) +AC_SUBST([FILE_MAN_SUFFIX]) +AC_SUBST([MISC_MAN_SUFFIX]) +AC_SUBST([DRIVER_MAN_SUFFIX]) +AC_SUBST([ADMIN_MAN_SUFFIX]) +AC_SUBST([APP_MAN_DIR]) +AC_SUBST([LIB_MAN_DIR]) +AC_SUBST([FILE_MAN_DIR]) +AC_SUBST([MISC_MAN_DIR]) +AC_SUBST([DRIVER_MAN_DIR]) +AC_SUBST([ADMIN_MAN_DIR]) + +XORG_MAN_PAGE="X Version 11" +AC_SUBST([XORG_MAN_PAGE]) +MAN_SUBSTS="\ + -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ + -e 's|__xservername__|Xorg|g' \ + -e 's|__xconfigfile__|xorg.conf|g' \ + -e 's|__projectroot__|\$(prefix)|g' \ + -e 's|__apploaddir__|\$(appdefaultdir)|g' \ + -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ + -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ + -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ + -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ + -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ + -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" +AC_SUBST([MAN_SUBSTS]) + +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:208: -1- AC_DEFUN([XORG_CHECK_SGML_DOCTOOLS], [ +AC_MSG_CHECKING([for X.Org SGML entities m4_ifval([$1],[>= $1])]) +XORG_SGML_PATH= +PKG_CHECK_EXISTS([xorg-sgml-doctools m4_ifval([$1],[>= $1])], + [XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`], + [m4_ifval([$1],[:], + [if test x"$cross_compiling" != x"yes" ; then + AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent], + [XORG_SGML_PATH=$prefix/share/sgml]) + fi]) + ]) + +# Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing +# the path and the name of the doc stylesheet +if test "x$XORG_SGML_PATH" != "x" ; then + AC_MSG_RESULT([$XORG_SGML_PATH]) + STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11 + XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl +else + AC_MSG_RESULT([no]) +fi + +AC_SUBST(XORG_SGML_PATH) +AC_SUBST(STYLESHEET_SRCDIR) +AC_SUBST(XSL_STYLESHEET) +AM_CONDITIONAL([HAVE_STYLESHEETS], [test "x$XSL_STYLESHEET" != "x"]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:244: -1- AC_DEFUN([XORG_CHECK_LINUXDOC], [ +AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) +AC_REQUIRE([XORG_WITH_PS2PDF]) + +AC_PATH_PROG(LINUXDOC, linuxdoc) + +AC_MSG_CHECKING([whether to build documentation]) + +if test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then + BUILDDOC=yes +else + BUILDDOC=no +fi + +AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes]) + +AC_MSG_RESULT([$BUILDDOC]) + +AC_MSG_CHECKING([whether to build pdf documentation]) + +if test x$have_ps2pdf != xno && test x$BUILD_PDFDOC != xno; then + BUILDPDFDOC=yes +else + BUILDPDFDOC=no +fi + +AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) + +AC_MSG_RESULT([$BUILDPDFDOC]) + +MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt -f" +MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps" +MAKE_PDF="$PS2PDF" +MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0" + +AC_SUBST(MAKE_TEXT) +AC_SUBST(MAKE_PS) +AC_SUBST(MAKE_PDF) +AC_SUBST(MAKE_HTML) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:293: -1- AC_DEFUN([XORG_CHECK_DOCBOOK], [ +AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) + +BUILDTXTDOC=no +BUILDPDFDOC=no +BUILDPSDOC=no +BUILDHTMLDOC=no + +AC_PATH_PROG(DOCBOOKPS, docbook2ps) +AC_PATH_PROG(DOCBOOKPDF, docbook2pdf) +AC_PATH_PROG(DOCBOOKHTML, docbook2html) +AC_PATH_PROG(DOCBOOKTXT, docbook2txt) + +AC_MSG_CHECKING([whether to build text documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x && + test x$BUILD_TXTDOC != xno; then + BUILDTXTDOC=yes +fi +AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes]) +AC_MSG_RESULT([$BUILDTXTDOC]) + +AC_MSG_CHECKING([whether to build PDF documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x && + test x$BUILD_PDFDOC != xno; then + BUILDPDFDOC=yes +fi +AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) +AC_MSG_RESULT([$BUILDPDFDOC]) + +AC_MSG_CHECKING([whether to build PostScript documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x && + test x$BUILD_PSDOC != xno; then + BUILDPSDOC=yes +fi +AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes]) +AC_MSG_RESULT([$BUILDPSDOC]) + +AC_MSG_CHECKING([whether to build HTML documentation]) +if test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x && + test x$BUILD_HTMLDOC != xno; then + BUILDHTMLDOC=yes +fi +AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes]) +AC_MSG_RESULT([$BUILDHTMLDOC]) + +MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT" +MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS" +MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF" +MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML" + +AC_SUBST(MAKE_TEXT) +AC_SUBST(MAKE_PS) +AC_SUBST(MAKE_PDF) +AC_SUBST(MAKE_HTML) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:374: -1- AC_DEFUN([XORG_WITH_XMLTO], [ +AC_ARG_VAR([XMLTO], [Path to xmlto command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(xmlto, + AS_HELP_STRING([--with-xmlto], + [Use xmlto to regenerate documentation (default: ]_defopt[)]), + [use_xmlto=$withval], [use_xmlto=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_xmlto" = x"auto"; then + AC_PATH_PROG([XMLTO], [xmlto]) + if test "x$XMLTO" = "x"; then + AC_MSG_WARN([xmlto not found - documentation targets will be skipped]) + have_xmlto=no + else + have_xmlto=yes + fi +elif test "x$use_xmlto" = x"yes" ; then + AC_PATH_PROG([XMLTO], [xmlto]) + if test "x$XMLTO" = "x"; then + AC_MSG_ERROR([--with-xmlto=yes specified but xmlto not found in PATH]) + fi + have_xmlto=yes +elif test "x$use_xmlto" = x"no" ; then + if test "x$XMLTO" != "x"; then + AC_MSG_WARN([ignoring XMLTO environment variable since --with-xmlto=no was specified]) + fi + have_xmlto=no +else + AC_MSG_ERROR([--with-xmlto expects 'yes' or 'no']) +fi + +# Test for a minimum version of xmlto, if provided. +m4_ifval([$1], +[if test "$have_xmlto" = yes; then + # scrape the xmlto version + AC_MSG_CHECKING([the xmlto version]) + xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3` + AC_MSG_RESULT([$xmlto_version]) + AS_VERSION_COMPARE([$xmlto_version], [$1], + [if test "x$use_xmlto" = xauto; then + AC_MSG_WARN([xmlto version $xmlto_version found, but $1 needed]) + have_xmlto=no + else + AC_MSG_ERROR([xmlto version $xmlto_version found, but $1 needed]) + fi]) +fi]) + +# Test for the ability of xmlto to generate a text target +have_xmlto_text=no +cat > conftest.xml << "EOF" +EOF +AS_IF([test "$have_xmlto" = yes], + [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], + [have_xmlto_text=yes], + [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) +rm -f conftest.xml +AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) +AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:458: -1- AC_DEFUN([XORG_WITH_XSLTPROC], [ +AC_ARG_VAR([XSLTPROC], [Path to xsltproc command]) +# Preserves the interface, should it be implemented later +m4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(xsltproc, + AS_HELP_STRING([--with-xsltproc], + [Use xsltproc for the transformation of XML documents (default: ]_defopt[)]), + [use_xsltproc=$withval], [use_xsltproc=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_xsltproc" = x"auto"; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test "x$XSLTPROC" = "x"; then + AC_MSG_WARN([xsltproc not found - cannot transform XML documents]) + have_xsltproc=no + else + have_xsltproc=yes + fi +elif test "x$use_xsltproc" = x"yes" ; then + AC_PATH_PROG([XSLTPROC], [xsltproc]) + if test "x$XSLTPROC" = "x"; then + AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH]) + fi + have_xsltproc=yes +elif test "x$use_xsltproc" = x"no" ; then + if test "x$XSLTPROC" != "x"; then + AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified]) + fi + have_xsltproc=no +else + AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no']) +fi + +AM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:515: -1- AC_DEFUN([XORG_WITH_PERL], [ +AC_ARG_VAR([PERL], [Path to perl command]) +# Preserves the interface, should it be implemented later +m4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(perl, + AS_HELP_STRING([--with-perl], + [Use perl for extracting information from files (default: ]_defopt[)]), + [use_perl=$withval], [use_perl=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_perl" = x"auto"; then + AC_PATH_PROG([PERL], [perl]) + if test "x$PERL" = "x"; then + AC_MSG_WARN([perl not found - cannot extract information and report]) + have_perl=no + else + have_perl=yes + fi +elif test "x$use_perl" = x"yes" ; then + AC_PATH_PROG([PERL], [perl]) + if test "x$PERL" = "x"; then + AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH]) + fi + have_perl=yes +elif test "x$use_perl" = x"no" ; then + if test "x$PERL" != "x"; then + AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified]) + fi + have_perl=no +else + AC_MSG_ERROR([--with-perl expects 'yes' or 'no']) +fi + +AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:573: -1- AC_DEFUN([XORG_WITH_ASCIIDOC], [ +AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(asciidoc, + AS_HELP_STRING([--with-asciidoc], + [Use asciidoc to regenerate documentation (default: ]_defopt[)]), + [use_asciidoc=$withval], [use_asciidoc=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_asciidoc" = x"auto"; then + AC_PATH_PROG([ASCIIDOC], [asciidoc]) + if test "x$ASCIIDOC" = "x"; then + AC_MSG_WARN([asciidoc not found - documentation targets will be skipped]) + have_asciidoc=no + else + have_asciidoc=yes + fi +elif test "x$use_asciidoc" = x"yes" ; then + AC_PATH_PROG([ASCIIDOC], [asciidoc]) + if test "x$ASCIIDOC" = "x"; then + AC_MSG_ERROR([--with-asciidoc=yes specified but asciidoc not found in PATH]) + fi + have_asciidoc=yes +elif test "x$use_asciidoc" = x"no" ; then + if test "x$ASCIIDOC" != "x"; then + AC_MSG_WARN([ignoring ASCIIDOC environment variable since --with-asciidoc=no was specified]) + fi + have_asciidoc=no +else + AC_MSG_ERROR([--with-asciidoc expects 'yes' or 'no']) +fi +m4_ifval([$1], +[if test "$have_asciidoc" = yes; then + # scrape the asciidoc version + AC_MSG_CHECKING([the asciidoc version]) + asciidoc_version=`$ASCIIDOC --version 2>/dev/null | cut -d' ' -f2` + AC_MSG_RESULT([$asciidoc_version]) + AS_VERSION_COMPARE([$asciidoc_version], [$1], + [if test "x$use_asciidoc" = xauto; then + AC_MSG_WARN([asciidoc version $asciidoc_version found, but $1 needed]) + have_asciidoc=no + else + AC_MSG_ERROR([asciidoc version $asciidoc_version found, but $1 needed]) + fi]) +fi]) +AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:642: -1- AC_DEFUN([XORG_WITH_DOXYGEN], [ +AC_ARG_VAR([DOXYGEN], [Path to doxygen command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(doxygen, + AS_HELP_STRING([--with-doxygen], + [Use doxygen to regenerate documentation (default: ]_defopt[)]), + [use_doxygen=$withval], [use_doxygen=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_doxygen" = x"auto"; then + AC_PATH_PROG([DOXYGEN], [doxygen]) + if test "x$DOXYGEN" = "x"; then + AC_MSG_WARN([doxygen not found - documentation targets will be skipped]) + have_doxygen=no + else + have_doxygen=yes + fi +elif test "x$use_doxygen" = x"yes" ; then + AC_PATH_PROG([DOXYGEN], [doxygen]) + if test "x$DOXYGEN" = "x"; then + AC_MSG_ERROR([--with-doxygen=yes specified but doxygen not found in PATH]) + fi + have_doxygen=yes +elif test "x$use_doxygen" = x"no" ; then + if test "x$DOXYGEN" != "x"; then + AC_MSG_WARN([ignoring DOXYGEN environment variable since --with-doxygen=no was specified]) + fi + have_doxygen=no +else + AC_MSG_ERROR([--with-doxygen expects 'yes' or 'no']) +fi +m4_ifval([$1], +[if test "$have_doxygen" = yes; then + # scrape the doxygen version + AC_MSG_CHECKING([the doxygen version]) + doxygen_version=`$DOXYGEN --version 2>/dev/null` + AC_MSG_RESULT([$doxygen_version]) + AS_VERSION_COMPARE([$doxygen_version], [$1], + [if test "x$use_doxygen" = xauto; then + AC_MSG_WARN([doxygen version $doxygen_version found, but $1 needed]) + have_doxygen=no + else + AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed]) + fi]) +fi]) +AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:727: -1- AC_DEFUN([XORG_WITH_GROFF], [ +AC_ARG_VAR([GROFF], [Path to groff command]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_WITH(groff, + AS_HELP_STRING([--with-groff], + [Use groff to regenerate documentation (default: ]_defopt[)]), + [use_groff=$withval], [use_groff=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_groff" = x"auto"; then + AC_PATH_PROG([GROFF], [groff]) + if test "x$GROFF" = "x"; then + AC_MSG_WARN([groff not found - documentation targets will be skipped]) + have_groff=no + else + have_groff=yes + fi +elif test "x$use_groff" = x"yes" ; then + AC_PATH_PROG([GROFF], [groff]) + if test "x$GROFF" = "x"; then + AC_MSG_ERROR([--with-groff=yes specified but groff not found in PATH]) + fi + have_groff=yes +elif test "x$use_groff" = x"no" ; then + if test "x$GROFF" != "x"; then + AC_MSG_WARN([ignoring GROFF environment variable since --with-groff=no was specified]) + fi + have_groff=no +else + AC_MSG_ERROR([--with-groff expects 'yes' or 'no']) +fi + +# We have groff, test for the presence of the macro packages +if test "x$have_groff" = x"yes"; then + AC_MSG_CHECKING([for ${GROFF} -ms macros]) + if ${GROFF} -ms -I. /dev/null >/dev/null 2>&1 ; then + groff_ms_works=yes + else + groff_ms_works=no + fi + AC_MSG_RESULT([$groff_ms_works]) + AC_MSG_CHECKING([for ${GROFF} -mm macros]) + if ${GROFF} -mm -I. /dev/null >/dev/null 2>&1 ; then + groff_mm_works=yes + else + groff_mm_works=no + fi + AC_MSG_RESULT([$groff_mm_works]) +fi + +# We have groff, test for HTML dependencies, one command per package +if test "x$have_groff" = x"yes"; then + AC_PATH_PROGS(GS_PATH, [gs gswin32c]) + AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng]) + AC_PATH_PROG(PSSELECT_PATH, [psselect]) + if test "x$GS_PATH" != "x" -a "x$PNMTOPNG_PATH" != "x" -a "x$PSSELECT_PATH" != "x"; then + have_groff_html=yes + else + have_groff_html=no + AC_MSG_WARN([grohtml dependencies not found - HTML Documentation skipped. Refer to grohtml man pages]) + fi +fi + +# Set Automake conditionals for Makefiles +AM_CONDITIONAL([HAVE_GROFF], [test "$have_groff" = yes]) +AM_CONDITIONAL([HAVE_GROFF_MS], [test "$groff_ms_works" = yes]) +AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes]) +AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:819: -1- AC_DEFUN([XORG_WITH_FOP], [ +AC_ARG_VAR([FOP], [Path to fop command]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(fop, + AS_HELP_STRING([--with-fop], + [Use fop to regenerate documentation (default: ]_defopt[)]), + [use_fop=$withval], [use_fop=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_fop" = x"auto"; then + AC_PATH_PROG([FOP], [fop]) + if test "x$FOP" = "x"; then + AC_MSG_WARN([fop not found - documentation targets will be skipped]) + have_fop=no + else + have_fop=yes + fi +elif test "x$use_fop" = x"yes" ; then + AC_PATH_PROG([FOP], [fop]) + if test "x$FOP" = "x"; then + AC_MSG_ERROR([--with-fop=yes specified but fop not found in PATH]) + fi + have_fop=yes +elif test "x$use_fop" = x"no" ; then + if test "x$FOP" != "x"; then + AC_MSG_WARN([ignoring FOP environment variable since --with-fop=no was specified]) + fi + have_fop=no +else + AC_MSG_ERROR([--with-fop expects 'yes' or 'no']) +fi + +# Test for a minimum version of fop, if provided. +m4_ifval([$1], +[if test "$have_fop" = yes; then + # scrape the fop version + AC_MSG_CHECKING([for fop minimum version]) + fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3` + AC_MSG_RESULT([$fop_version]) + AS_VERSION_COMPARE([$fop_version], [$1], + [if test "x$use_fop" = xauto; then + AC_MSG_WARN([fop version $fop_version found, but $1 needed]) + have_fop=no + else + AC_MSG_ERROR([fop version $fop_version found, but $1 needed]) + fi]) +fi]) +AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:890: -1- AC_DEFUN([XORG_WITH_PS2PDF], [ +AC_ARG_VAR([PS2PDF], [Path to ps2pdf command]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_WITH(ps2pdf, + AS_HELP_STRING([--with-ps2pdf], + [Use ps2pdf to regenerate documentation (default: ]_defopt[)]), + [use_ps2pdf=$withval], [use_ps2pdf=]_defopt) +m4_undefine([_defopt]) + +if test "x$use_ps2pdf" = x"auto"; then + AC_PATH_PROG([PS2PDF], [ps2pdf]) + if test "x$PS2PDF" = "x"; then + AC_MSG_WARN([ps2pdf not found - documentation targets will be skipped]) + have_ps2pdf=no + else + have_ps2pdf=yes + fi +elif test "x$use_ps2pdf" = x"yes" ; then + AC_PATH_PROG([PS2PDF], [ps2pdf]) + if test "x$PS2PDF" = "x"; then + AC_MSG_ERROR([--with-ps2pdf=yes specified but ps2pdf not found in PATH]) + fi + have_ps2pdf=yes +elif test "x$use_ps2pdf" = x"no" ; then + if test "x$PS2PDF" != "x"; then + AC_MSG_WARN([ignoring PS2PDF environment variable since --with-ps2pdf=no was specified]) + fi + have_ps2pdf=no +else + AC_MSG_ERROR([--with-ps2pdf expects 'yes' or 'no']) +fi +AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:947: -1- AC_DEFUN([XORG_ENABLE_DOCS], [ +m4_define([docs_default], m4_default([$1], [yes])) +AC_ARG_ENABLE(docs, + AS_HELP_STRING([--enable-docs], + [Enable building the documentation (default: ]docs_default[)]), + [build_docs=$enableval], [build_docs=]docs_default) +m4_undefine([docs_default]) +AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) +AC_MSG_CHECKING([whether to build documentation]) +AC_MSG_RESULT([$build_docs]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:980: -1- AC_DEFUN([XORG_ENABLE_DEVEL_DOCS], [ +m4_define([devel_default], m4_default([$1], [yes])) +AC_ARG_ENABLE(devel-docs, + AS_HELP_STRING([--enable-devel-docs], + [Enable building the developer documentation (default: ]devel_default[)]), + [build_devel_docs=$enableval], [build_devel_docs=]devel_default) +m4_undefine([devel_default]) +AM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes]) +AC_MSG_CHECKING([whether to build developer documentation]) +AC_MSG_RESULT([$build_devel_docs]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1013: -1- AC_DEFUN([XORG_ENABLE_SPECS], [ +m4_define([spec_default], m4_default([$1], [yes])) +AC_ARG_ENABLE(specs, + AS_HELP_STRING([--enable-specs], + [Enable building the specs (default: ]spec_default[)]), + [build_specs=$enableval], [build_specs=]spec_default) +m4_undefine([spec_default]) +AM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes]) +AC_MSG_CHECKING([whether to build functional specifications]) +AC_MSG_RESULT([$build_specs]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1045: -1- AC_DEFUN([XORG_ENABLE_UNIT_TESTS], [ +AC_BEFORE([$0], [XORG_WITH_GLIB]) +AC_BEFORE([$0], [XORG_LD_WRAP]) +AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests], + [Enable building unit test cases (default: ]_defopt[)]), + [enable_unit_tests=$enableval], [enable_unit_tests=]_defopt) +m4_undefine([_defopt]) +AM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno]) +AC_MSG_CHECKING([whether to build unit test cases]) +AC_MSG_RESULT([$enable_unit_tests]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1078: -1- AC_DEFUN([XORG_ENABLE_INTEGRATION_TESTS], [ +AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) +m4_define([_defopt], m4_default([$1], [auto])) +AC_ARG_ENABLE(integration-tests, AS_HELP_STRING([--enable-integration-tests], + [Enable building integration test cases (default: ]_defopt[)]), + [enable_integration_tests=$enableval], + [enable_integration_tests=]_defopt) +m4_undefine([_defopt]) +AM_CONDITIONAL([ENABLE_INTEGRATION_TESTS], + [test "x$enable_integration_tests" != xno]) +AC_MSG_CHECKING([whether to build unit test cases]) +AC_MSG_RESULT([$enable_integration_tests]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1112: -1- AC_DEFUN([XORG_WITH_GLIB], [ +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +m4_define([_defopt], m4_default([$2], [auto])) +AC_ARG_WITH(glib, AS_HELP_STRING([--with-glib], + [Use GLib library for unit testing (default: ]_defopt[)]), + [with_glib=$withval], [with_glib=]_defopt) +m4_undefine([_defopt]) + +have_glib=no +# Do not probe GLib if user explicitly disabled unit testing +if test "x$enable_unit_tests" != x"no"; then + # Do not probe GLib if user explicitly disabled it + if test "x$with_glib" != x"no"; then + m4_ifval( + [$1], + [PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])], + [PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])] + ) + fi +fi + +# Not having GLib when unit testing has been explicitly requested is an error +if test "x$enable_unit_tests" = x"yes"; then + if test "x$have_glib" = x"no"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) + fi +fi + +# Having unit testing disabled when GLib has been explicitly requested is an error +if test "x$enable_unit_tests" = x"no"; then + if test "x$with_glib" = x"yes"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) + fi +fi + +# Not having GLib when it has been explicitly requested is an error +if test "x$with_glib" = x"yes"; then + if test "x$have_glib" = x"no"; then + AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found]) + fi +fi + +AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1171: -1- AC_DEFUN([XORG_LD_WRAP], [ +XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no], + [AC_LANG_PROGRAM([#include + void __wrap_exit(int status) { return; }], + [exit(0);])]) +# Not having ld wrap when unit testing has been explicitly requested is an error +if test "x$enable_unit_tests" = x"yes" -a "x$1" != "xoptional"; then + if test "x$have_ld_wrap" = x"no"; then + AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available]) + fi +fi +AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes]) +# +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1235: -1- AC_DEFUN([XORG_CHECK_LINKER_FLAGS], [AC_MSG_CHECKING([whether the linker accepts $1]) +dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: +AS_LITERAL_IF([$1], + [AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [ + ax_save_FLAGS=$LDFLAGS + LDFLAGS="$1" + AC_LINK_IFELSE([m4_default([$4],[AC_LANG_PROGRAM()])], + AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, + AS_TR_SH(xorg_cv_linker_flags_[$1])=no) + LDFLAGS=$ax_save_FLAGS])], + [ax_save_FLAGS=$LDFLAGS + LDFLAGS="$1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, + eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no) + LDFLAGS=$ax_save_FLAGS]) +eval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1]) +AC_MSG_RESULT($xorg_check_linker_flags) +if test "x$xorg_check_linker_flags" = xyes; then + m4_default([$2], :) +else + m4_default([$3], :) +fi +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1275: -1- AC_DEFUN([XORG_MEMORY_CHECK_FLAGS], [ + +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_ARG_VAR([XORG_MALLOC_DEBUG_ENV], + [Environment variables to enable memory checking in tests]) + +# Check for different types of support on different platforms +case $host_os in + solaris*) + AC_CHECK_LIB([umem], [umem_alloc], + [malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default']) + ;; + *-gnu*) # GNU libc - Value is used as a single byte bit pattern, + # both directly and inverted, so should not be 0 or 255. + malloc_debug_env='MALLOC_PERTURB_=15' + ;; + darwin*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' + ;; + *bsd*) + malloc_debug_env='MallocPreScribble=1 MallocScribble=1' + ;; +esac + +# User supplied flags override default flags +if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then + malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" +fi + +AC_SUBST([XORG_MALLOC_DEBUG_ENV],[$malloc_debug_env]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1314: -1- AC_DEFUN([XORG_CHECK_MALLOC_ZERO], [ +AC_ARG_ENABLE(malloc0returnsnull, + AS_HELP_STRING([--enable-malloc0returnsnull], + [malloc(0) returns NULL (default: auto)]), + [MALLOC_ZERO_RETURNS_NULL=$enableval], + [MALLOC_ZERO_RETURNS_NULL=auto]) + +AC_MSG_CHECKING([whether malloc(0) returns NULL]) +if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then + AC_RUN_IFELSE([AC_LANG_PROGRAM([ +#include +],[ + char *m0, *r0, *c0, *p; + m0 = malloc(0); + p = malloc(10); + r0 = realloc(p,0); + c0 = calloc(0,10); + exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1); +])], + [MALLOC_ZERO_RETURNS_NULL=yes], + [MALLOC_ZERO_RETURNS_NULL=no], + [MALLOC_ZERO_RETURNS_NULL=yes]) +fi +AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL]) + +if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then + MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL" + XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS + XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC" +else + MALLOC_ZERO_CFLAGS="" + XMALLOC_ZERO_CFLAGS="" + XTMALLOC_ZERO_CFLAGS="" +fi + +AC_SUBST([MALLOC_ZERO_CFLAGS]) +AC_SUBST([XMALLOC_ZERO_CFLAGS]) +AC_SUBST([XTMALLOC_ZERO_CFLAGS]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1375: -1- AC_DEFUN([XORG_WITH_LINT], [ + +AC_ARG_VAR([LINT], [Path to a lint-style command]) +AC_ARG_VAR([LINT_FLAGS], [Flags for the lint-style command]) +AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], + [Use a lint-style source code checker (default: disabled)])], + [use_lint=$withval], [use_lint=no]) + +# Obtain platform specific info like program name and options +# The lint program on FreeBSD and NetBSD is different from the one on Solaris +case $host_os in + *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*) + lint_name=splint + lint_options="-badflag" + ;; + *freebsd* | *netbsd*) + lint_name=lint + lint_options="-u -b" + ;; + *solaris*) + lint_name=lint + lint_options="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2" + ;; +esac + +# Test for the presence of the program (either guessed by the code or spelled out by the user) +if test "x$use_lint" = x"yes" ; then + AC_PATH_PROG([LINT], [$lint_name]) + if test "x$LINT" = "x"; then + AC_MSG_ERROR([--with-lint=yes specified but lint-style tool not found in PATH]) + fi +elif test "x$use_lint" = x"no" ; then + if test "x$LINT" != "x"; then + AC_MSG_WARN([ignoring LINT environment variable since --with-lint=no was specified]) + fi +else + AC_MSG_ERROR([--with-lint expects 'yes' or 'no'. Use LINT variable to specify path.]) +fi + +# User supplied flags override default flags +if test "x$LINT_FLAGS" != "x"; then + lint_options=$LINT_FLAGS +fi + +AC_SUBST([LINT_FLAGS],[$lint_options]) +AM_CONDITIONAL(LINT, [test "x$LINT" != x]) + +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1438: -1- AC_DEFUN([XORG_LINT_LIBRARY], [ +AC_REQUIRE([XORG_WITH_LINT]) +AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], + [Create lint library (default: disabled)])], + [make_lint_lib=$enableval], [make_lint_lib=no]) + +if test "x$make_lint_lib" = x"yes" ; then + LINTLIB=llib-l$1.ln + if test "x$LINT" = "x"; then + AC_MSG_ERROR([Cannot make lint library without --with-lint]) + fi +elif test "x$make_lint_lib" != x"no" ; then + AC_MSG_ERROR([--enable-lint-library expects 'yes' or 'no'.]) +fi + +AC_SUBST(LINTLIB) +AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) + +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1469: -1- AC_DEFUN([XORG_COMPILER_BRAND], [ +AC_LANG_CASE( + [C], [ + AC_REQUIRE([AC_PROG_CC_C99]) + ], + [C++], [ + AC_REQUIRE([AC_PROG_CXX]) + ] +) +AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"]) +AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) +AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1496: -1- AC_DEFUN([XORG_TESTSET_CFLAG], [ +m4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) +m4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) + +AC_LANG_COMPILER_REQUIRE + +AC_LANG_CASE( + [C], [ + AC_REQUIRE([AC_PROG_CC_C99]) + define([PREFIX], [C]) + define([CACHE_PREFIX], [cc]) + define([COMPILER], [$CC]) + ], + [C++], [ + define([PREFIX], [CXX]) + define([CACHE_PREFIX], [cxx]) + define([COMPILER], [$CXX]) + ] +) + +[xorg_testset_save_]PREFIX[FLAGS]="$PREFIX[FLAGS]" + +if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "x" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" + AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unknown-warning-option], + [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], + [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=yes], + [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=no])) + [xorg_testset_]CACHE_PREFIX[_unknown_warning_option]=$[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option] + PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" +fi + +if test "x$[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]" = "x" ; then + if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "xyes" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" + fi + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" + AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unused-command-line-argument], + [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument], + AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], + [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=yes], + [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=no])) + [xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]=$[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument] + PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" +fi + +found="no" +m4_foreach([flag], m4_cdr($@), [ + if test $found = "no" ; then + if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" + fi + + if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then + PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" + fi + + PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag[" + +dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname + AC_MSG_CHECKING([if ]COMPILER[ supports]flag[]) + cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[]) + AC_CACHE_VAL($cacheid, + [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])], + [eval $cacheid=yes], + [eval $cacheid=no])]) + + PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" + + eval supported=\$$cacheid + AC_MSG_RESULT([$supported]) + if test "$supported" = "yes" ; then + $1="$$1 ]flag[" + found="yes" + fi + fi +]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1588: -1- AC_DEFUN([XORG_COMPILER_FLAGS], [ +AC_REQUIRE([XORG_COMPILER_BRAND]) + +AC_ARG_ENABLE(selective-werror, + AS_HELP_STRING([--disable-selective-werror], + [Turn off selective compiler errors. (default: enabled)]), + [SELECTIVE_WERROR=$enableval], + [SELECTIVE_WERROR=yes]) + +AC_LANG_CASE( + [C], [ + define([PREFIX], [C]) + ], + [C++], [ + define([PREFIX], [CXX]) + ] +) +# -v is too short to test reliably with XORG_TESTSET_CFLAG +if test "x$SUNCC" = "xyes"; then + [BASE_]PREFIX[FLAGS]="-v" +else + [BASE_]PREFIX[FLAGS]="" +fi + +# This chunk of warnings were those that existed in the legacy CWARNFLAGS +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat]) + +AC_LANG_CASE( + [C], [ + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition]) + XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement]) + ] +) + +# This chunk adds additional warnings that could catch undesired effects. +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls]) + +# These are currently disabled because they are noisy. They will be enabled +# in the future once the codebase is sufficiently modernized to silence +# them. For now, I don't want them to drown out the other warnings. +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) +# XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) + +# Turn some warnings into errors, so we don't accidently get successful builds +# when there are problems that should be fixed. + +if test "x$SELECTIVE_WERROR" = "xyes" ; then +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) # Also -errwarn=E_BAD_PTR_INT_COMBINATION +else +AC_MSG_WARN([You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast]) +XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast]) +fi + +AC_SUBST([BASE_]PREFIX[FLAGS]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1694: -1- AC_DEFUN([XORG_CWARNFLAGS], [ +AC_REQUIRE([XORG_COMPILER_FLAGS]) +AC_REQUIRE([XORG_COMPILER_BRAND]) +AC_LANG_CASE( + [C], [ + CWARNFLAGS="$BASE_CFLAGS" + if test "x$GCC" = xyes ; then + CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" + fi + AC_SUBST(CWARNFLAGS) + ] +) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1719: -1- AC_DEFUN([XORG_STRICT_OPTION], [ +AC_REQUIRE([XORG_CWARNFLAGS]) +AC_REQUIRE([XORG_COMPILER_FLAGS]) + +AC_ARG_ENABLE(strict-compilation, + AS_HELP_STRING([--enable-strict-compilation], + [Enable all warnings from compiler and make them errors (default: disabled)]), + [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) + +AC_LANG_CASE( + [C], [ + define([PREFIX], [C]) + ], + [C++], [ + define([PREFIX], [CXX]) + ] +) + +[STRICT_]PREFIX[FLAGS]="" +XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic]) +XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn]) + +# Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not +# activate it with -Werror, so we add it here explicitly. +XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes]) + +if test "x$STRICT_COMPILE" = "xyes"; then + [BASE_]PREFIX[FLAGS]="$[BASE_]PREFIX[FLAGS] $[STRICT_]PREFIX[FLAGS]" + AC_LANG_CASE([C], [CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"]) +fi +AC_SUBST([STRICT_]PREFIX[FLAGS]) +AC_SUBST([BASE_]PREFIX[FLAGS]) +AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1760: -1- AC_DEFUN([XORG_DEFAULT_OPTIONS], [ +AC_REQUIRE([AC_PROG_INSTALL]) +XORG_COMPILER_FLAGS +XORG_CWARNFLAGS +XORG_STRICT_OPTION +XORG_RELEASE_VERSION +XORG_CHANGELOG +XORG_INSTALL +XORG_MANPAGE_SECTIONS +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], + [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1780: -1- AC_DEFUN([XORG_INSTALL], [ +AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` +INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ +mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ +|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ +echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" +AC_SUBST([INSTALL_CMD]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1818: -1- AC_DEFUN([XORG_RELEASE_VERSION], [ + AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR], + [`echo $PACKAGE_VERSION | cut -d . -f 1`], + [Major version of this package]) + PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` + if test "x$PVM" = "x"; then + PVM="0" + fi + AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR], + [$PVM], + [Minor version of this package]) + PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` + if test "x$PVP" = "x"; then + PVP="0" + fi + AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], + [$PVP], + [Patch version of this package]) +]) +m4trace:/usr/share/aclocal/xorg-macros.m4:1846: -1- AC_DEFUN([XORG_CHANGELOG], [ +CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ +mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ +|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ +echo 'git directory not found: installing possibly empty changelog.' >&2)" +AC_SUBST([CHANGELOG_CMD]) +]) +m4trace:/usr/share/aclocal-1.14/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.14' +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. +m4_if([$1], [1.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) +m4trace:/usr/share/aclocal-1.14/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.14.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) +m4trace:/usr/share/aclocal-1.14/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) +m4trace:/usr/share/aclocal-1.14/cond.m4:12: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) +m4trace:/usr/share/aclocal-1.14/depend.m4:26: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) +m4trace:/usr/share/aclocal-1.14/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) +m4trace:/usr/share/aclocal-1.14/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) +m4trace:/usr/share/aclocal-1.14/depout.m4:12: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +]) +m4trace:/usr/share/aclocal-1.14/depout.m4:71: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) +m4trace:/usr/share/aclocal-1.14/init.m4:29: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +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 macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# 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: + +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: . + +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]) +m4trace:/usr/share/aclocal-1.14/init.m4:182: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) +m4trace:/usr/share/aclocal-1.14/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) +m4trace:/usr/share/aclocal-1.14/lead-dot.m4:10: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) +m4trace:/usr/share/aclocal-1.14/maintainer.m4:16: -1- AC_DEFUN([AM_MAINTAINER_MODE], [m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl + +]) +m4trace:/usr/share/aclocal-1.14/make.m4:12: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) +m4trace:/usr/share/aclocal-1.14/missing.m4:11: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) +m4trace:/usr/share/aclocal-1.14/missing.m4:20: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) +m4trace:/usr/share/aclocal-1.14/options.m4:11: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) +m4trace:/usr/share/aclocal-1.14/options.m4:17: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) +m4trace:/usr/share/aclocal-1.14/options.m4:23: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) +m4trace:/usr/share/aclocal-1.14/options.m4:29: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) +m4trace:/usr/share/aclocal-1.14/prog-cc-c-o.m4:12: -1- AC_DEFUN([_AM_PROG_CC_C_O], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) +m4trace:/usr/share/aclocal-1.14/prog-cc-c-o.m4:47: -1- AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) +m4trace:/usr/share/aclocal-1.14/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) +m4trace:/usr/share/aclocal-1.14/sanity.m4:11: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # 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 + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) +m4trace:/usr/share/aclocal-1.14/silent.m4:12: -1- AC_DEFUN([AM_SILENT_RULES], [AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [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 A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +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 +]) +m4trace:/usr/share/aclocal-1.14/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) +m4trace:/usr/share/aclocal-1.14/substnot.m4:12: -1- AC_DEFUN([_AM_SUBST_NOTMAKE]) +m4trace:/usr/share/aclocal-1.14/substnot.m4:17: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) +m4trace:/usr/share/aclocal-1.14/tar.m4:23: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) +m4trace:m4/ax_gcc_builtin.m4:95: -1- AC_DEFUN([AX_GCC_BUILTIN], [ + AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1]) + + AC_CACHE_CHECK([for $1], [ac_var], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [ + m4_case([$1], + [__builtin_assume_aligned], [$1("", 0)], + [__builtin_bswap32], [$1(0)], + [__builtin_bswap64], [$1(0)], + [__builtin_choose_expr], [$1(0, 0, 0)], + [__builtin___clear_cache], [$1("", "")], + [__builtin_clrsb], [$1(0)], + [__builtin_clrsbl], [$1(0)], + [__builtin_clrsbll], [$1(0)], + [__builtin_clz], [$1(0)], + [__builtin_clzl], [$1(0)], + [__builtin_clzll], [$1(0)], + [__builtin_complex], [$1(0.0, 0.0)], + [__builtin_constant_p], [$1(0)], + [__builtin_ctz], [$1(0)], + [__builtin_ctzl], [$1(0)], + [__builtin_ctzll], [$1(0)], + [__builtin_expect], [$1(0, 0)], + [__builtin_ffs], [$1(0)], + [__builtin_ffsl], [$1(0)], + [__builtin_ffsll], [$1(0)], + [__builtin_fpclassify], [$1(0, 1, 2, 3, 4, 0.0)], + [__builtin_huge_val], [$1()], + [__builtin_huge_valf], [$1()], + [__builtin_huge_vall], [$1()], + [__builtin_inf], [$1()], + [__builtin_infd128], [$1()], + [__builtin_infd32], [$1()], + [__builtin_infd64], [$1()], + [__builtin_inff], [$1()], + [__builtin_infl], [$1()], + [__builtin_isinf_sign], [$1(0.0)], + [__builtin_nan], [$1("")], + [__builtin_nand128], [$1("")], + [__builtin_nand32], [$1("")], + [__builtin_nand64], [$1("")], + [__builtin_nanf], [$1("")], + [__builtin_nanl], [$1("")], + [__builtin_nans], [$1("")], + [__builtin_nansf], [$1("")], + [__builtin_nansl], [$1("")], + [__builtin_object_size], [$1("", 0)], + [__builtin_parity], [$1(0)], + [__builtin_parityl], [$1(0)], + [__builtin_parityll], [$1(0)], + [__builtin_popcount], [$1(0)], + [__builtin_popcountl], [$1(0)], + [__builtin_popcountll], [$1(0)], + [__builtin_powi], [$1(0, 0)], + [__builtin_powif], [$1(0, 0)], + [__builtin_powil], [$1(0, 0)], + [__builtin_prefetch], [$1("")], + [__builtin_trap], [$1()], + [__builtin_types_compatible_p], [$1(int, int)], + [__builtin_unreachable], [$1()], + [m4_warn([syntax], [Unsupported built-in $1, the test may fail]) + $1()] + ) + ])], + [AS_VAR_SET([ac_var], [yes])], + [AS_VAR_SET([ac_var], [no])]) + ]) + + AS_IF([test yes = AS_VAR_GET([ac_var])], + [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1, + [Define to 1 if the system has the `$1' built-in function])], []) + + AS_VAR_POPDEF([ac_var]) +]) +m4trace:m4/libtool.m4:69: -1- AC_DEFUN([LT_INIT], [AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +]) +m4trace:m4/libtool.m4:107: -1- AU_DEFUN([AC_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:107: -1- AC_DEFUN([AC_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:108: -1- AU_DEFUN([AM_PROG_LIBTOOL], [m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:108: -1- AC_DEFUN([AM_PROG_LIBTOOL], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_LIBTOOL' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_INIT], [LT_INIT($@)])]) +m4trace:m4/libtool.m4:609: -1- AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +]) +m4trace:m4/libtool.m4:790: -1- AC_DEFUN([LT_SUPPORTED_TAG], []) +m4trace:m4/libtool.m4:801: -1- AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +]) +m4trace:m4/libtool.m4:893: -1- AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +m4trace:m4/libtool.m4:893: -1- AC_DEFUN([AC_LIBTOOL_CXX], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_CXX' is obsolete. +You should run autoupdate.])dnl +LT_LANG(C++)]) +m4trace:m4/libtool.m4:894: -1- AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +m4trace:m4/libtool.m4:894: -1- AC_DEFUN([AC_LIBTOOL_F77], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_F77' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran 77)]) +m4trace:m4/libtool.m4:895: -1- AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +m4trace:m4/libtool.m4:895: -1- AC_DEFUN([AC_LIBTOOL_FC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_FC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Fortran)]) +m4trace:m4/libtool.m4:896: -1- AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +m4trace:m4/libtool.m4:896: -1- AC_DEFUN([AC_LIBTOOL_GCJ], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_GCJ' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Java)]) +m4trace:m4/libtool.m4:897: -1- AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +m4trace:m4/libtool.m4:897: -1- AC_DEFUN([AC_LIBTOOL_RC], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_RC' is obsolete. +You should run autoupdate.])dnl +LT_LANG(Windows Resource)]) +m4trace:m4/libtool.m4:1225: -1- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) +m4trace:m4/libtool.m4:1515: -1- AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +]) +m4trace:m4/libtool.m4:1557: -1- AU_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:m4/libtool.m4:1557: -1- AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_COMPILER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_COMPILER_OPTION], [_LT_COMPILER_OPTION($@)])]) +m4trace:m4/libtool.m4:1566: -1- AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +]) +m4trace:m4/libtool.m4:1601: -1- AU_DEFUN([AC_LIBTOOL_LINKER_OPTION], [m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:m4/libtool.m4:1601: -1- AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_LINKER_OPTION' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_LINKER_OPTION], [_LT_LINKER_OPTION($@)])]) +m4trace:m4/libtool.m4:1608: -1- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +]) +m4trace:m4/libtool.m4:1747: -1- AU_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:m4/libtool.m4:1747: -1- AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_SYS_MAX_CMD_LEN' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_CMD_MAX_LEN], [LT_CMD_MAX_LEN($@)])]) +m4trace:m4/libtool.m4:1858: -1- AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +]) +m4trace:m4/libtool.m4:1975: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:m4/libtool.m4:1975: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN_SELF' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_SYS_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF($@)])]) +m4trace:m4/libtool.m4:2945: -1- AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +]) +m4trace:m4/libtool.m4:3007: -1- AU_DEFUN([AC_PATH_TOOL_PREFIX], [m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:m4/libtool.m4:3007: -1- AC_DEFUN([AC_PATH_TOOL_PREFIX], [AC_DIAGNOSE([obsolete], [The macro `AC_PATH_TOOL_PREFIX' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [_LT_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX($@)])]) +m4trace:m4/libtool.m4:3030: -1- AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +]) +m4trace:m4/libtool.m4:3500: -1- AU_DEFUN([AM_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3500: -1- AC_DEFUN([AM_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AM_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3501: -1- AU_DEFUN([AC_PROG_NM], [m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3501: -1- AC_DEFUN([AC_PROG_NM], [AC_DIAGNOSE([obsolete], [The macro `AC_PROG_NM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PATH_NM], [LT_PATH_NM($@)])]) +m4trace:m4/libtool.m4:3571: -1- AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +]) +m4trace:m4/libtool.m4:3590: -1- AU_DEFUN([AC_CHECK_LIBM], [m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:m4/libtool.m4:3590: -1- AC_DEFUN([AC_CHECK_LIBM], [AC_DIAGNOSE([obsolete], [The macro `AC_CHECK_LIBM' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_LIB_M], [LT_LIB_M($@)])]) +m4trace:m4/libtool.m4:7637: -1- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) +m4trace:m4/libtool.m4:7646: -1- AU_DEFUN([LT_AC_PROG_GCJ], [m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:m4/libtool.m4:7646: -1- AC_DEFUN([LT_AC_PROG_GCJ], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_GCJ' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_GCJ], [LT_PROG_GCJ($@)])]) +m4trace:m4/libtool.m4:7653: -1- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) +]) +m4trace:m4/libtool.m4:7660: -1- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) +]) +m4trace:m4/libtool.m4:7665: -1- AU_DEFUN([LT_AC_PROG_RC], [m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:m4/libtool.m4:7665: -1- AC_DEFUN([LT_AC_PROG_RC], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_RC' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [LT_PROG_RC], [LT_PROG_RC($@)])]) +m4trace:m4/libtool.m4:7785: -1- AU_DEFUN([LT_AC_PROG_SED], [m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:m4/libtool.m4:7785: -1- AC_DEFUN([LT_AC_PROG_SED], [AC_DIAGNOSE([obsolete], [The macro `LT_AC_PROG_SED' is obsolete. +You should run autoupdate.])dnl +m4_if($#, 0, [AC_PROG_SED], [AC_PROG_SED($@)])]) +m4trace:m4/ltoptions.m4:14: -1- AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) +m4trace:m4/ltoptions.m4:111: -1- AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:111: -1- AC_DEFUN([AC_LIBTOOL_DLOPEN], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_DLOPEN' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:146: -1- AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:146: -1- AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_WIN32_DLL' is obsolete. +You should run autoupdate.])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:195: -1- AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) +m4trace:m4/ltoptions.m4:199: -1- AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) +m4trace:m4/ltoptions.m4:203: -1- AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:203: -1- AC_DEFUN([AM_ENABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:204: -1- AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:204: -1- AC_DEFUN([AM_DISABLE_SHARED], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_SHARED' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_SHARED($@)]) +m4trace:m4/ltoptions.m4:249: -1- AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) +m4trace:m4/ltoptions.m4:253: -1- AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) +]) +m4trace:m4/ltoptions.m4:257: -1- AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:257: -1- AC_DEFUN([AM_ENABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_ENABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_ENABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:258: -1- AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:258: -1- AC_DEFUN([AM_DISABLE_STATIC], [AC_DIAGNOSE([obsolete], [The macro `AM_DISABLE_STATIC' is obsolete. +You should run autoupdate.])dnl +AC_DISABLE_STATIC($@)]) +m4trace:m4/ltoptions.m4:303: -1- AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:303: -1- AC_DEFUN([AC_ENABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_ENABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:310: -1- AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:310: -1- AC_DEFUN([AC_DISABLE_FAST_INSTALL], [AC_DIAGNOSE([obsolete], [The macro `AC_DISABLE_FAST_INSTALL' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:358: -1- AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltoptions.m4:358: -1- AC_DEFUN([AC_LIBTOOL_PICMODE], [AC_DIAGNOSE([obsolete], [The macro `AC_LIBTOOL_PICMODE' is obsolete. +You should run autoupdate.])dnl +_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) +m4trace:m4/ltsugar.m4:13: -1- AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) +m4trace:m4/ltversion.m4:18: -1- AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) +m4trace:m4/lt~obsolete.m4:36: -1- AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) +m4trace:m4/lt~obsolete.m4:40: -1- AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH]) +m4trace:m4/lt~obsolete.m4:41: -1- AC_DEFUN([_LT_AC_SHELL_INIT]) +m4trace:m4/lt~obsolete.m4:42: -1- AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX]) +m4trace:m4/lt~obsolete.m4:44: -1- AC_DEFUN([_LT_AC_TAGVAR]) +m4trace:m4/lt~obsolete.m4:45: -1- AC_DEFUN([AC_LTDL_ENABLE_INSTALL]) +m4trace:m4/lt~obsolete.m4:46: -1- AC_DEFUN([AC_LTDL_PREOPEN]) +m4trace:m4/lt~obsolete.m4:47: -1- AC_DEFUN([_LT_AC_SYS_COMPILER]) +m4trace:m4/lt~obsolete.m4:48: -1- AC_DEFUN([_LT_AC_LOCK]) +m4trace:m4/lt~obsolete.m4:49: -1- AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE]) +m4trace:m4/lt~obsolete.m4:50: -1- AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF]) +m4trace:m4/lt~obsolete.m4:51: -1- AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O]) +m4trace:m4/lt~obsolete.m4:52: -1- AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS]) +m4trace:m4/lt~obsolete.m4:53: -1- AC_DEFUN([AC_LIBTOOL_OBJDIR]) +m4trace:m4/lt~obsolete.m4:54: -1- AC_DEFUN([AC_LTDL_OBJDIR]) +m4trace:m4/lt~obsolete.m4:55: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH]) +m4trace:m4/lt~obsolete.m4:56: -1- AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP]) +m4trace:m4/lt~obsolete.m4:57: -1- AC_DEFUN([AC_PATH_MAGIC]) +m4trace:m4/lt~obsolete.m4:58: -1- AC_DEFUN([AC_PROG_LD_GNU]) +m4trace:m4/lt~obsolete.m4:59: -1- AC_DEFUN([AC_PROG_LD_RELOAD_FLAG]) +m4trace:m4/lt~obsolete.m4:60: -1- AC_DEFUN([AC_DEPLIBS_CHECK_METHOD]) +m4trace:m4/lt~obsolete.m4:61: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI]) +m4trace:m4/lt~obsolete.m4:62: -1- AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE]) +m4trace:m4/lt~obsolete.m4:63: -1- AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC]) +m4trace:m4/lt~obsolete.m4:64: -1- AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS]) +m4trace:m4/lt~obsolete.m4:65: -1- AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP]) +m4trace:m4/lt~obsolete.m4:66: -1- AC_DEFUN([LT_AC_PROG_EGREP]) +m4trace:m4/lt~obsolete.m4:71: -1- AC_DEFUN([_AC_PROG_LIBTOOL]) +m4trace:m4/lt~obsolete.m4:72: -1- AC_DEFUN([AC_LIBTOOL_SETUP]) +m4trace:m4/lt~obsolete.m4:73: -1- AC_DEFUN([_LT_AC_CHECK_DLFCN]) +m4trace:m4/lt~obsolete.m4:74: -1- AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER]) +m4trace:m4/lt~obsolete.m4:75: -1- AC_DEFUN([_LT_AC_TAGCONFIG]) +m4trace:m4/lt~obsolete.m4:77: -1- AC_DEFUN([_LT_AC_LANG_CXX]) +m4trace:m4/lt~obsolete.m4:78: -1- AC_DEFUN([_LT_AC_LANG_F77]) +m4trace:m4/lt~obsolete.m4:79: -1- AC_DEFUN([_LT_AC_LANG_GCJ]) +m4trace:m4/lt~obsolete.m4:80: -1- AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG]) +m4trace:m4/lt~obsolete.m4:81: -1- AC_DEFUN([_LT_AC_LANG_C_CONFIG]) +m4trace:m4/lt~obsolete.m4:82: -1- AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG]) +m4trace:m4/lt~obsolete.m4:83: -1- AC_DEFUN([_LT_AC_LANG_CXX_CONFIG]) +m4trace:m4/lt~obsolete.m4:84: -1- AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG]) +m4trace:m4/lt~obsolete.m4:85: -1- AC_DEFUN([_LT_AC_LANG_F77_CONFIG]) +m4trace:m4/lt~obsolete.m4:86: -1- AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG]) +m4trace:m4/lt~obsolete.m4:87: -1- AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG]) +m4trace:m4/lt~obsolete.m4:88: -1- AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG]) +m4trace:m4/lt~obsolete.m4:89: -1- AC_DEFUN([_LT_AC_LANG_RC_CONFIG]) +m4trace:m4/lt~obsolete.m4:90: -1- AC_DEFUN([AC_LIBTOOL_CONFIG]) +m4trace:m4/lt~obsolete.m4:91: -1- AC_DEFUN([_LT_AC_FILE_LTDLL_C]) +m4trace:m4/lt~obsolete.m4:93: -1- AC_DEFUN([_LT_AC_PROG_CXXCPP]) +m4trace:m4/lt~obsolete.m4:96: -1- AC_DEFUN([_LT_PROG_F77]) +m4trace:m4/lt~obsolete.m4:97: -1- AC_DEFUN([_LT_PROG_FC]) +m4trace:m4/lt~obsolete.m4:98: -1- AC_DEFUN([_LT_PROG_CXX]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?A[CHUM]_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([_AC_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) +m4trace:configure.ac:25: -1- m4_pattern_allow([^AS_FLAGS$]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?m4_]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^dnl$]) +m4trace:configure.ac:25: -1- m4_pattern_forbid([^_?AS_]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^SHELL$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PATH_SEPARATOR$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^exec_prefix$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^prefix$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^program_transform_name$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^bindir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sbindir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^libexecdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^datarootdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^datadir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sysconfdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^sharedstatedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^localstatedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^includedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^oldincludedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^docdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^infodir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^htmldir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^dvidir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^pdfdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^psdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^libdir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^localedir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^mandir$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_NAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_TARNAME$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_VERSION$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_STRING$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^PACKAGE_URL$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^DEFS$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_C$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_N$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^ECHO_T$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^build_alias$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^host_alias$]) +m4trace:configure.ac:25: -1- m4_pattern_allow([^target_alias$]) +m4trace:configure.ac:30: -1- AC_CONFIG_MACRO_DIR([m4]) +m4trace:configure.ac:34: -1- AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip subdir-objects color-tests parallel-tests check-news]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$]) +m4trace:configure.ac:34: -1- AM_SET_CURRENT_AUTOMAKE_VERSION +m4trace:configure.ac:34: -1- AM_AUTOMAKE_VERSION([1.14.1]) +m4trace:configure.ac:34: -1- _AM_AUTOCONF_VERSION([2.69]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_PROGRAM$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_SCRIPT$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_DATA$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__isrc$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([am__isrc]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^CYGPATH_W$]) +m4trace:configure.ac:34: -1- _AM_SET_OPTIONS([foreign dist-xz no-dist-gzip subdir-objects color-tests parallel-tests check-news]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([foreign]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([foreign]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([dist-xz]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([dist-xz]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([no-dist-gzip]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([no-dist-gzip]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([subdir-objects]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([subdir-objects]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([color-tests]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([color-tests]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([parallel-tests]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([parallel-tests]) +m4trace:configure.ac:34: -1- _AM_SET_OPTION([check-news]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([check-news]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([no-define]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^PACKAGE$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^VERSION$]) +m4trace:configure.ac:34: -1- AM_SANITY_CHECK +m4trace:configure.ac:34: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +m4trace:configure.ac:34: -1- AM_MISSING_HAS_RUN +m4trace:configure.ac:34: -1- AM_AUX_DIR_EXPAND +m4trace:configure.ac:34: -1- m4_pattern_allow([^ACLOCAL$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([AUTOCONF], [autoconf]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOCONF$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOMAKE$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AUTOHEADER$]) +m4trace:configure.ac:34: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^MAKEINFO$]) +m4trace:configure.ac:34: -1- AM_PROG_INSTALL_SH +m4trace:configure.ac:34: -1- m4_pattern_allow([^install_sh$]) +m4trace:configure.ac:34: -1- AM_PROG_INSTALL_STRIP +m4trace:configure.ac:34: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^MKDIR_P$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^mkdir_p$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AWK$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^SET_MAKE$]) +m4trace:configure.ac:34: -1- AM_SET_LEADING_DOT +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__leading_dot$]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([tar-ustar]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([tar-pax]) +m4trace:configure.ac:34: -1- _AM_PROG_TAR([v7]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AMTAR$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__tar$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^am__untar$]) +m4trace:configure.ac:34: -1- _AM_IF_OPTION([no-dependencies], [], [AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +m4trace:configure.ac:34: -2- _AM_MANGLE_OPTION([no-dependencies]) +m4trace:configure.ac:34: -1- AM_SILENT_RULES +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:34: -1- AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:34: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:34: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:34: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:35: -1- AM_MAINTAINER_MODE([enable]) +m4trace:configure.ac:35: -1- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINTAINER_MODE_TRUE$]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINTAINER_MODE_FALSE$]) +m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_TRUE]) +m4trace:configure.ac:35: -1- _AM_SUBST_NOTMAKE([MAINTAINER_MODE_FALSE]) +m4trace:configure.ac:35: -1- m4_pattern_allow([^MAINT$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^LDFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^LIBS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^ac_ct_CC$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^EXEEXT$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^OBJEXT$]) +m4trace:configure.ac:38: -1- _AM_PROG_CC_C_O +m4trace:configure.ac:38: -1- AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) +m4trace:configure.ac:38: -1- _AM_DEPENDENCIES([CC]) +m4trace:configure.ac:38: -1- AM_SET_DEPDIR +m4trace:configure.ac:38: -1- m4_pattern_allow([^DEPDIR$]) +m4trace:configure.ac:38: -1- AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:38: -1- AM_MAKE_INCLUDE +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__include$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__quote$]) +m4trace:configure.ac:38: -1- AM_DEP_TRACK +m4trace:configure.ac:38: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_TRUE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEP_FALSE$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^AMDEPBACKSLASH$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__nodep$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__nodep]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CCDEPMODE$]) +m4trace:configure.ac:38: -1- AM_CONDITIONAL([am__fastdepCC], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_TRUE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^am__fastdepCC_FALSE$]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE]) +m4trace:configure.ac:38: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPPFLAGS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^CPP$]) +m4trace:configure.ac:38: -1- AC_PROG_EGREP +m4trace:configure.ac:38: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^EGREP$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^STDC_HEADERS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_1_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_MINIX$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^__EXTENSIONS__$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_ALL_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_GNU_SOURCE$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$]) +m4trace:configure.ac:38: -1- m4_pattern_allow([^_TANDEM_SOURCE$]) +m4trace:configure.ac:41: -1- LT_INIT +m4trace:configure.ac:41: -1- m4_pattern_forbid([^_?LT_[A-Z_]+$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$]) +m4trace:configure.ac:41: -1- LTOPTIONS_VERSION +m4trace:configure.ac:41: -1- LTSUGAR_VERSION +m4trace:configure.ac:41: -1- LTVERSION_VERSION +m4trace:configure.ac:41: -1- LTOBSOLETE_VERSION +m4trace:configure.ac:41: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:41: -1- m4_pattern_allow([^LIBTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_cpu$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_vendor$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^build_os$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_cpu$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_vendor$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^host_os$]) +m4trace:configure.ac:41: -1- _LT_PREPARE_SED_QUOTE_VARS +m4trace:configure.ac:41: -1- _LT_PROG_ECHO_BACKSLASH +m4trace:configure.ac:41: -1- LT_PATH_LD +m4trace:configure.ac:41: -1- m4_pattern_allow([^SED$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^FGREP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^GREP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LD$]) +m4trace:configure.ac:41: -1- LT_PATH_NM +m4trace:configure.ac:41: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^ac_ct_DUMPBIN$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DUMPBIN$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^NM$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LN_S$]) +m4trace:configure.ac:41: -1- LT_CMD_MAX_LEN +m4trace:configure.ac:41: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OBJDUMP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^DLLTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^AR$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^ac_ct_AR$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^STRIP$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^RANLIB$]) +m4trace:configure.ac:41: -1- _LT_WITH_SYSROOT +m4trace:configure.ac:41: -1- m4_pattern_allow([LT_OBJDIR]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LT_OBJDIR$]) +m4trace:configure.ac:41: -1- _LT_CC_BASENAME([$compiler]) +m4trace:configure.ac:41: -1- _LT_PATH_TOOL_PREFIX([${ac_tool_prefix}file], [/usr/bin$PATH_SEPARATOR$PATH]) +m4trace:configure.ac:41: -1- _LT_PATH_TOOL_PREFIX([file], [/usr/bin$PATH_SEPARATOR$PATH]) +m4trace:configure.ac:41: -1- LT_SUPPORTED_TAG([CC]) +m4trace:configure.ac:41: -1- _LT_COMPILER_BOILERPLATE +m4trace:configure.ac:41: -1- _LT_LINKER_BOILERPLATE +m4trace:configure.ac:41: -1- _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], [lt_cv_prog_compiler_rtti_exceptions], [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, )="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, ) -fno-rtti -fno-exceptions"]) +m4trace:configure.ac:41: -1- _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, ) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, )], [$_LT_TAGVAR(lt_prog_compiler_pic, )@&t@m4_if([],[],[ -DPIC],[m4_if([],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, ) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, )=" $_LT_TAGVAR(lt_prog_compiler_pic, )" ;; + esac], [_LT_TAGVAR(lt_prog_compiler_pic, )= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, )=no]) +m4trace:configure.ac:41: -1- _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], [lt_cv_prog_compiler_static_works], [$lt_tmp_static_flag], [], [_LT_TAGVAR(lt_prog_compiler_static, )=]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^MANIFEST_TOOL$]) +m4trace:configure.ac:41: -1- _LT_REQUIRED_DARWIN_CHECKS +m4trace:configure.ac:41: -1- m4_pattern_allow([^DSYMUTIL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^NMEDIT$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^LIPO$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OTOOL$]) +m4trace:configure.ac:41: -1- m4_pattern_allow([^OTOOL64$]) +m4trace:configure.ac:41: -1- _LT_LINKER_OPTION([if $CC understands -b], [lt_cv_prog_compiler__b], [-b], [_LT_TAGVAR(archive_cmds, )='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, )='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags']) +m4trace:configure.ac:41: -1- LT_SYS_DLOPEN_SELF +m4trace:configure.ac:41: -1- m4_pattern_allow([^HAVE_DLFCN_H$]) +m4trace:configure.ac:47: -1- XORG_DEFAULT_OPTIONS +m4trace:configure.ac:47: -1- XORG_COMPILER_FLAGS +m4trace:configure.ac:47: -1- XORG_COMPILER_BRAND +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^BASE_CFLAGS$]) +m4trace:configure.ac:47: -1- XORG_CWARNFLAGS +m4trace:configure.ac:47: -1- m4_pattern_allow([^CWARNFLAGS$]) +m4trace:configure.ac:47: -1- XORG_STRICT_OPTION +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn]) +m4trace:configure.ac:47: -1- XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^STRICT_CFLAGS$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^BASE_CFLAGS$]) +m4trace:configure.ac:47: -2- m4_pattern_allow([^CWARNFLAGS$]) +m4trace:configure.ac:47: -1- XORG_RELEASE_VERSION +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_MAJOR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_MINOR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PACKAGE_VERSION_PATCHLEVEL$]) +m4trace:configure.ac:47: -1- XORG_CHANGELOG +m4trace:configure.ac:47: -1- m4_pattern_allow([^CHANGELOG_CMD$]) +m4trace:configure.ac:47: -1- XORG_INSTALL +m4trace:configure.ac:47: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:47: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^INSTALL_CMD$]) +m4trace:configure.ac:47: -1- XORG_MANPAGE_SECTIONS +m4trace:configure.ac:47: -1- m4_pattern_allow([^APP_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^LIB_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^FILE_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MISC_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^DRIVER_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^ADMIN_MAN_SUFFIX$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^APP_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^LIB_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^FILE_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MISC_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^DRIVER_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^ADMIN_MAN_DIR$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^XORG_MAN_PAGE$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^MAN_SUBSTS$]) +m4trace:configure.ac:47: -1- AM_SILENT_RULES([yes]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_V$]) +m4trace:configure.ac:47: -1- AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_V]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_DEFAULT_V$]) +m4trace:configure.ac:47: -1- AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_DEFAULT_V]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$]) +m4trace:configure.ac:47: -1- m4_pattern_allow([^AM_BACKSLASH$]) +m4trace:configure.ac:47: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH]) +m4trace:configure.ac:48: -1- XORG_MEMORY_CHECK_FLAGS +m4trace:configure.ac:48: -1- m4_pattern_allow([^XORG_MALLOC_DEBUG_ENV$]) +m4trace:configure.ac:48: -1- m4_pattern_allow([^XORG_MALLOC_DEBUG_ENV$]) +m4trace:configure.ac:49: -1- XORG_ENABLE_DOCS +m4trace:configure.ac:49: -1- AM_CONDITIONAL([ENABLE_DOCS], [test x$build_docs = xyes]) +m4trace:configure.ac:49: -1- m4_pattern_allow([^ENABLE_DOCS_TRUE$]) +m4trace:configure.ac:49: -1- m4_pattern_allow([^ENABLE_DOCS_FALSE$]) +m4trace:configure.ac:49: -1- _AM_SUBST_NOTMAKE([ENABLE_DOCS_TRUE]) +m4trace:configure.ac:49: -1- _AM_SUBST_NOTMAKE([ENABLE_DOCS_FALSE]) +m4trace:configure.ac:50: -1- XORG_WITH_DOXYGEN +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^DOXYGEN$]) +m4trace:configure.ac:50: -1- AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_DOXYGEN_TRUE$]) +m4trace:configure.ac:50: -1- m4_pattern_allow([^HAVE_DOXYGEN_FALSE$]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_DOXYGEN_TRUE]) +m4trace:configure.ac:50: -1- _AM_SUBST_NOTMAKE([HAVE_DOXYGEN_FALSE]) +m4trace:configure.ac:53: -1- AM_PROG_CC_C_O +m4trace:configure.ac:60: -1- PKG_PROG_PKG_CONFIG +m4trace:configure.ac:60: -1- m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_PATH$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG_LIBDIR$]) +m4trace:configure.ac:60: -1- m4_pattern_allow([^PKG_CONFIG$]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YACC$]) +m4trace:configure.ac:64: -1- m4_pattern_allow([^YFLAGS$]) +m4trace:configure.ac:65: -1- m4_pattern_allow([^YACC_INST$]) +m4trace:configure.ac:85: -1- AX_GCC_BUILTIN([__builtin_expect]) +m4trace:configure.ac:85: -1- m4_pattern_allow([^HAVE___BUILTIN_EXPECT$]) +m4trace:configure.ac:89: -1- AM_CONDITIONAL([BUILD_LINUX_TESTS], [test "x$ac_cv_header_linux_input_h" = xyes]) +m4trace:configure.ac:89: -1- m4_pattern_allow([^BUILD_LINUX_TESTS_TRUE$]) +m4trace:configure.ac:89: -1- m4_pattern_allow([^BUILD_LINUX_TESTS_FALSE$]) +m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([BUILD_LINUX_TESTS_TRUE]) +m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([BUILD_LINUX_TESTS_FALSE]) +m4trace:configure.ac:91: -1- XORG_TESTSET_CFLAG([BASE_CFLAGS], [-fvisibility=hidden]) +m4trace:configure.ac:92: -1- XORG_TESTSET_CFLAG([BASE_CFLAGS], [-Wextra -Wno-unused-parameter -Wno-missing-field-initializers]) +m4trace:configure.ac:93: -1- XORG_TESTSET_CFLAG([BASE_CFLAGS], [-Wdocumentation]) +m4trace:configure.ac:101: -1- XORG_CHECK_LINKER_FLAGS([-Wl,--no-undefined], [have_no_undefined=yes]) +m4trace:configure.ac:104: -1- AM_CONDITIONAL([HAVE_NO_UNDEFINED], [test "x$have_no_undefined" = xyes]) +m4trace:configure.ac:104: -1- m4_pattern_allow([^HAVE_NO_UNDEFINED_TRUE$]) +m4trace:configure.ac:104: -1- m4_pattern_allow([^HAVE_NO_UNDEFINED_FALSE$]) +m4trace:configure.ac:104: -1- _AM_SUBST_NOTMAKE([HAVE_NO_UNDEFINED_TRUE]) +m4trace:configure.ac:104: -1- _AM_SUBST_NOTMAKE([HAVE_NO_UNDEFINED_FALSE]) +m4trace:configure.ac:106: -1- m4_pattern_allow([^RT_LIBS$]) +m4trace:configure.ac:106: -1- m4_pattern_allow([^RT_LIBS$]) +m4trace:configure.ac:121: -1- m4_pattern_allow([^XKBCONFIGROOT$]) +m4trace:configure.ac:129: -1- m4_pattern_allow([^XLOCALEDIR$]) +m4trace:configure.ac:136: -1- m4_pattern_allow([^DEFAULT_XKB_RULES$]) +m4trace:configure.ac:144: -1- m4_pattern_allow([^DEFAULT_XKB_MODEL$]) +m4trace:configure.ac:152: -1- m4_pattern_allow([^DEFAULT_XKB_LAYOUT$]) +m4trace:configure.ac:160: -1- m4_pattern_allow([^DEFAULT_XKB_VARIANT$]) +m4trace:configure.ac:170: -1- m4_pattern_allow([^DEFAULT_XKB_OPTIONS$]) +m4trace:configure.ac:179: -1- PKG_CHECK_MODULES([XCB_XKB], [xcb xcb-xkb >= 1.10], [], [AC_MSG_ERROR([xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11.])]) +m4trace:configure.ac:179: -1- m4_pattern_allow([^XCB_XKB_CFLAGS$]) +m4trace:configure.ac:179: -1- m4_pattern_allow([^XCB_XKB_LIBS$]) +m4trace:configure.ac:179: -1- PKG_CHECK_EXISTS([xcb xcb-xkb >= 1.10], [pkg_cv_[]XCB_XKB_CFLAGS=`$PKG_CONFIG --[]cflags "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:179: -1- PKG_CHECK_EXISTS([xcb xcb-xkb >= 1.10], [pkg_cv_[]XCB_XKB_LIBS=`$PKG_CONFIG --[]libs "xcb xcb-xkb >= 1.10" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes ], [pkg_failed=yes]) +m4trace:configure.ac:179: -1- _PKG_SHORT_ERRORS_SUPPORTED +m4trace:configure.ac:184: -1- AM_CONDITIONAL([ENABLE_X11], [test "x$enable_x11" = xyes]) +m4trace:configure.ac:184: -1- m4_pattern_allow([^ENABLE_X11_TRUE$]) +m4trace:configure.ac:184: -1- m4_pattern_allow([^ENABLE_X11_FALSE$]) +m4trace:configure.ac:184: -1- _AM_SUBST_NOTMAKE([ENABLE_X11_TRUE]) +m4trace:configure.ac:184: -1- _AM_SUBST_NOTMAKE([ENABLE_X11_FALSE]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:194: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:194: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:194: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:194: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:194: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:194: -1- _LT_PROG_LTMAIN diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/ylwrap b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/ylwrap new file mode 100755 index 0000000..8f072a8 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/build-aux/ylwrap @@ -0,0 +1,247 @@ +#! /bin/sh +# ylwrap - wrapper for lex/yacc invocations. + +scriptversion=2013-01-12.17; # UTC + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +get_dirname () +{ + case $1 in + */*|*\\*) printf '%s\n' "$1" | sed -e 's|\([\\/]\)[^\\/]*$|\1|';; + # Otherwise, we want the empty string (not "."). + esac +} + +# guard FILE +# ---------- +# The CPP macro used to guard inclusion of FILE. +guard () +{ + printf '%s\n' "$1" \ + | sed \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ + -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g' \ + -e 's/__*/_/g' +} + +# quote_for_sed [STRING] +# ---------------------- +# Return STRING (or stdin) quoted to be used as a sed pattern. +quote_for_sed () +{ + case $# in + 0) cat;; + 1) printf '%s\n' "$1";; + esac \ + | sed -e 's|[][\\.*]|\\&|g' +} + +case "$1" in + '') + echo "$0: No files given. Try '$0 --help' for more information." 1>&2 + exit 1 + ;; + --basedir) + basedir=$2 + shift 2 + ;; + -h|--h*) + cat <<\EOF +Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]... + +Wrapper for lex/yacc invocations, renaming files as desired. + + INPUT is the input file + OUTPUT is one file PROG generates + DESIRED is the file we actually want instead of OUTPUT + PROGRAM is program to run + ARGS are passed to PROG + +Any number of OUTPUT,DESIRED pairs may be used. + +Report bugs to . +EOF + exit $? + ;; + -v|--v*) + echo "ylwrap $scriptversion" + exit $? + ;; +esac + + +# The input. +input=$1 +shift +# We'll later need for a correct munging of "#line" directives. +input_sub_rx=`get_dirname "$input" | quote_for_sed` +case $input in + [\\/]* | ?:[\\/]*) + # Absolute path; do nothing. + ;; + *) + # Relative path. Make it absolute. + input=`pwd`/$input + ;; +esac +input_rx=`get_dirname "$input" | quote_for_sed` + +# Since DOS filename conventions don't allow two dots, +# the DOS version of Bison writes out y_tab.c instead of y.tab.c +# and y_tab.h instead of y.tab.h. Test to see if this is the case. +y_tab_nodot=false +if test -f y_tab.c || test -f y_tab.h; then + y_tab_nodot=true +fi + +# The parser itself, the first file, is the destination of the .y.c +# rule in the Makefile. +parser=$1 + +# A sed program to s/FROM/TO/g for all the FROM/TO so that, for +# instance, we rename #include "y.tab.h" into #include "parse.h" +# during the conversion from y.tab.c to parse.c. +sed_fix_filenames= + +# Also rename header guards, as Bison 2.7 for instance uses its header +# guard in its implementation file. +sed_fix_header_guards= + +while test $# -ne 0; do + if test x"$1" = x"--"; then + shift + break + fi + from=$1 + # Handle y_tab.c and y_tab.h output by DOS + if $y_tab_nodot; then + case $from in + "y.tab.c") from=y_tab.c;; + "y.tab.h") from=y_tab.h;; + esac + fi + shift + to=$1 + shift + sed_fix_filenames="${sed_fix_filenames}s|"`quote_for_sed "$from"`"|$to|g;" + sed_fix_header_guards="${sed_fix_header_guards}s|"`guard "$from"`"|"`guard "$to"`"|g;" +done + +# The program to run. +prog=$1 +shift +# Make any relative path in $prog absolute. +case $prog in + [\\/]* | ?:[\\/]*) ;; + *[\\/]*) prog=`pwd`/$prog ;; +esac + +dirname=ylwrap$$ +do_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret' +trap "ret=129; $do_exit" 1 +trap "ret=130; $do_exit" 2 +trap "ret=141; $do_exit" 13 +trap "ret=143; $do_exit" 15 +mkdir $dirname || exit 1 + +cd $dirname + +case $# in + 0) "$prog" "$input" ;; + *) "$prog" "$@" "$input" ;; +esac +ret=$? + +if test $ret -eq 0; then + for from in * + do + to=`printf '%s\n' "$from" | sed "$sed_fix_filenames"` + if test -f "$from"; then + # If $2 is an absolute path name, then just use that, + # otherwise prepend '../'. + case $to in + [\\/]* | ?:[\\/]*) target=$to;; + *) target=../$to;; + esac + + # Do not overwrite unchanged header files to avoid useless + # recompilations. Always update the parser itself: it is the + # destination of the .y.c rule in the Makefile. Divert the + # output of all other files to a temporary file so we can + # compare them to existing versions. + if test $from != $parser; then + realtarget=$target + target=tmp-`printf '%s\n' "$target" | sed 's|.*[\\/]||g'` + fi + + # Munge "#line" or "#" directives. Don't let the resulting + # debug information point at an absolute srcdir. Use the real + # output file name, not yy.lex.c for instance. Adjust the + # include guards too. + sed -e "/^#/!b" \ + -e "s|$input_rx|$input_sub_rx|" \ + -e "$sed_fix_filenames" \ + -e "$sed_fix_header_guards" \ + "$from" >"$target" || ret=$? + + # Check whether files must be updated. + if test "$from" != "$parser"; then + if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then + echo "$to is unchanged" + rm -f "$target" + else + echo "updating $to" + mv -f "$target" "$realtarget" + fi + fi + else + # A missing file is only an error for the parser. This is a + # blatant hack to let us support using "yacc -d". If -d is not + # specified, don't fail when the header file is "missing". + if test "$from" = "$parser"; then + ret=1 + fi + fi + done +fi + +# Remove the directory. +cd .. +rm -rf $dirname + +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/configure.ac b/app/src/main/jni/libxkbcommon/xkbcommon/configure.ac new file mode 100644 index 0000000..cb176ee --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/configure.ac @@ -0,0 +1,214 @@ +dnl Copyright © 2008 Dan Nicholson +dnl +dnl Permission to use, copy, modify, distribute, and sell this software and its +dnl documentation for any purpose is hereby granted without fee, provided that +dnl the above copyright notice appear in all copies and that both that +dnl copyright notice and this permission notice appear in supporting +dnl documentation, and that the name of Keith Packard not be used in +dnl advertising or publicity pertaining to distribution of the software without +dnl specific, written prior permission. Keith Packard makes no +dnl representations about the suitability of this software for any purpose. It +dnl is provided "as is" without express or implied warranty. +dnl +dnl DAN NICHOLSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, +dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO +dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR +dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, +dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +dnl PERFORMANCE OF THIS SOFTWARE. +dnl +dnl Process this file with autoconf to create configure. + +# Initialize Autoconf +AC_PREREQ([2.62]) +AC_INIT([libxkbcommon], [0.5.0], + [https://bugs.freedesktop.org/enter_bug.cgi?product=libxkbcommon], + [libxkbcommon], [http://xkbcommon.org]) +AC_CONFIG_SRCDIR([Makefile.am]) +AC_CONFIG_HEADERS([src/config.h]) +AC_CONFIG_MACRO_DIR([m4]) +AC_CONFIG_AUX_DIR([build-aux]) + +# Initialize Automake +AM_INIT_AUTOMAKE([foreign dist-xz no-dist-gzip subdir-objects color-tests parallel-tests check-news]) +AM_MAINTAINER_MODE([enable]) + +# Get _GNU_SOURCE and friends +AC_USE_SYSTEM_EXTENSIONS + +# Initialize libtool +LT_INIT + +# Add xorg-macros stuff +m4_ifndef([XORG_MACROS_VERSION], + [m4_fatal([must install xorg-macros 1.16 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.16) +XORG_DEFAULT_OPTIONS +XORG_MEMORY_CHECK_FLAGS +XORG_ENABLE_DOCS +XORG_WITH_DOXYGEN + +# Needed in older Automakes for subdir-objects +AM_PROG_CC_C_O + +# Check for compiler features +AC_C_INLINE + +# Check for programs +AC_PROG_MKDIR_P +PKG_PROG_PKG_CONFIG + +# Note: we use some yacc extensions, which work with either GNU bison +# (preferred) or byacc. Other yacc's may or may not work. +AC_PROG_YACC +AC_PATH_PROG([YACC_INST], [$YACC]) +AS_IF([test ! -f "src/xkbcomp/parser.c" -a "x$YACC_INST" = x], [ + AC_MSG_ERROR([yacc not found - unable to compile src/xkbcomp/parser.y]) +]) + +# Checks for library functions. +AC_CHECK_FUNCS([strcasecmp strncasecmp]) +AS_IF([test "x$ac_cv_func_strcasecmp" = xno -o \ + "x$ac_cv_func_strncasecmp" = xno], [ + AC_MSG_ERROR([C library does not support strcasecmp/strncasecmp]) +]) + +AC_CHECK_FUNCS([eaccess euidaccess mmap]) + +AC_CHECK_FUNCS([secure_getenv __secure_getenv]) +AS_IF([test "x$ac_cv_func_secure_getenv" = xno -a \ + "x$ac_cv_func___secure_getenv" = xno], [ + AC_MSG_WARN([C library does not support secure_getenv, using getenv instead]) +]) + +AX_GCC_BUILTIN(__builtin_expect) + +# Some tests use Linux-specific headers +AC_CHECK_HEADER([linux/input.h]) +AM_CONDITIONAL(BUILD_LINUX_TESTS, [test "x$ac_cv_header_linux_input_h" = xyes]) + +XORG_TESTSET_CFLAG([BASE_CFLAGS], [-fvisibility=hidden]) +XORG_TESTSET_CFLAG([BASE_CFLAGS], [-Wextra -Wno-unused-parameter -Wno-missing-field-initializers]) +XORG_TESTSET_CFLAG([BASE_CFLAGS], [-Wdocumentation]) + +# OpenBSD does not have DT_NEEDED entries for libc by design +# so when these flags are passed to ld via libtool the checks will fail +case "$host_os" in +openbsd*) + ;; +*) + XORG_CHECK_LINKER_FLAGS([-Wl,--no-undefined], [have_no_undefined=yes]) ;; +esac + +AM_CONDITIONAL([HAVE_NO_UNDEFINED], [test "x$have_no_undefined" = xyes]) + +AC_CHECK_LIB(rt, clock_gettime, + [AC_SUBST(RT_LIBS, "-lrt")], + [AC_SUBST(RT_LIBS, "")], + [-lrt]) + +# Define a configuration option for the XKB config root +xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config` +AS_IF([test "x$xkb_base" = x], [ + xkb_base="$datadir/X11/xkb" +]) +AC_ARG_WITH([xkb_config_root], + [AS_HELP_STRING([--with-xkb-config-root=], + [Set default XKB config root (default: xkeyboard-config install path)])], + [XKBCONFIGROOT="$withval"], + [XKBCONFIGROOT="$xkb_base"]) +AC_SUBST([XKBCONFIGROOT]) + +# Define a configuration option for the X locale directory for compose +AC_ARG_WITH([x_locale_root], + [AS_HELP_STRING([--with-x-locale-root=], + [Set X locale root (default: $datadir/X11/locale)])], + [XLOCALEDIR="$withval"], + [XLOCALEDIR="$datadir/X11/locale"]) +AC_SUBST([XLOCALEDIR]) + +AC_ARG_WITH([default_rules], + [AS_HELP_STRING([--with-default-rules=], + [Default XKB ruleset (default: evdev)])], + [DEFAULT_XKB_RULES="$withval"], + [DEFAULT_XKB_RULES="evdev"]) +AC_DEFINE_UNQUOTED([DEFAULT_XKB_RULES], ["$DEFAULT_XKB_RULES"], + [Default XKB ruleset]) + +AC_ARG_WITH([default_model], + [AS_HELP_STRING([--with-default-model=], + [Default XKB model (default: pc105)])], + [DEFAULT_XKB_MODEL="$withval"], + [DEFAULT_XKB_MODEL="pc105"]) +AC_DEFINE_UNQUOTED([DEFAULT_XKB_MODEL], ["$DEFAULT_XKB_MODEL"], + [Default XKB model]) + +AC_ARG_WITH([default_layout], + [AS_HELP_STRING([--with-default-layout=], + [Default XKB layout (default: us)])], + [DEFAULT_XKB_LAYOUT="$withval"], + [DEFAULT_XKB_LAYOUT="us"]) +AC_DEFINE_UNQUOTED([DEFAULT_XKB_LAYOUT], ["$DEFAULT_XKB_LAYOUT"], + [Default XKB layout]) + +AC_ARG_WITH([default_variant], + [AS_HELP_STRING([--with-default-variant=], + [Default XKB variant (default: (none))])], + [DEFAULT_XKB_VARIANT="$withval"], + [DEFAULT_XKB_VARIANT=]) +AS_IF([test "x$DEFAULT_XKB_VARIANT" != x], [ + AC_DEFINE_UNQUOTED([DEFAULT_XKB_VARIANT], ["$DEFAULT_XKB_VARIANT"], + [Default XKB variant]) +]) + +AC_ARG_WITH([default_options], + [AS_HELP_STRING([--with-default-options=], + [Default XKB options (default: (none))])], + [DEFAULT_XKB_OPTIONS="$withval"], + [DEFAULT_XKB_OPTIONS=]) +AS_IF([test "x$DEFAULT_XKB_OPTIONS" != x], [ + AC_DEFINE_UNQUOTED([DEFAULT_XKB_OPTIONS], ["$DEFAULT_XKB_OPTIONS"], + [Default XKB options]) +]) + +AC_ARG_ENABLE([x11], + [AS_HELP_STRING([--disable-x11], + [Disable support for creating keymaps with the X11 protocol (default: enabled)])], + [], [enable_x11=yes]) +AS_IF([test "x$enable_x11" = xyes], [ + PKG_CHECK_MODULES([XCB_XKB], [xcb xcb-xkb >= 1.10], [], + [AC_MSG_ERROR([xkbcommon-x11 requires xcb-xkb >= 1.10 which was not found. \ +You can disable X11 support with --disable-x11.])]) +], [enable_x11=no]) +AM_CONDITIONAL([ENABLE_X11], [test "x$enable_x11" = xyes]) + +AC_CONFIG_FILES([ + Makefile + xkbcommon-uninstalled.pc + xkbcommon.pc + xkbcommon-x11.pc + xkbcommon-x11-uninstalled.pc + doc/Doxyfile +]) +AC_OUTPUT + +AC_MSG_RESULT([ + $PACKAGE_NAME $VERSION + + libxkbcommon: yes + libxkbcommon-x11: ${enable_x11} + documentation: ${build_docs} + + default XKB rules: ${DEFAULT_XKB_RULES} + default XKB model: ${DEFAULT_XKB_MODEL} + default XKB layout: ${DEFAULT_XKB_LAYOUT} + default XKB variant: ${DEFAULT_XKB_VARIANT} + default XKB options: ${DEFAULT_XKB_OPTIONS} + + prefix: ${prefix} + includedir: ${includedir} + lib dir: ${libdir} + XKB config root: ${XKBCONFIGROOT} + X11 locale root: ${XLOCALEDIR} +]) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/.gitignore b/app/src/main/jni/libxkbcommon/xkbcommon/doc/.gitignore new file mode 100644 index 0000000..3e70371 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/.gitignore @@ -0,0 +1,3 @@ +Doxyfile +html/ +stamp-doxygen diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/Doxyfile.in b/app/src/main/jni/libxkbcommon/xkbcommon/doc/Doxyfile.in new file mode 100644 index 0000000..5881ff9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/Doxyfile.in @@ -0,0 +1,1886 @@ +# Doxyfile 1.8.4 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed +# in front of the TAG it is preceding . +# All text after a hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" "). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# http://www.gnu.org/software/libiconv for the list of possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or sequence of words) that should +# identify the project. Note that if you do not use Doxywizard you need +# to put quotes around the project name if it contains spaces. + +PROJECT_NAME = @PACKAGE_NAME@ + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = @PACKAGE_VERSION@ + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer +# a quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = + +# With the PROJECT_LOGO tag one can specify an logo or icon that is +# included in the documentation. The maximum height of the logo should not +# exceed 55 pixels and the maximum width should not exceed 200 pixels. +# Doxygen will copy the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = doc + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English +# messages), Korean, Korean-en, Latvian, Lithuanian, Norwegian, Macedonian, +# Persian, Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, +# Slovak, Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = NO + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = YES + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. Note that you specify absolute paths here, but also +# relative paths, which will be relative from the directory where doxygen is +# started. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful if your file system +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding +# "class=itcl::class" will allow you to use the command class in the +# itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for +# Java. For instance, namespaces will be presented as packages, qualified +# scopes will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources only. Doxygen will then generate output that is more tailored for +# Fortran. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for +# VHDL. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, +# and language is one of the parsers supported by doxygen: IDL, Java, +# Javascript, CSharp, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, +# C++. For instance to make doxygen treat .inc files as Fortran files (default +# is PHP), and .f files as C (default is Fortran), use: inc=Fortran f=C. Note +# that for custom extensions you also need to set FILE_PATTERNS otherwise the +# files are not read by doxygen. + +EXTENSION_MAPPING = no_extension=md + +# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all +# comments according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you +# can mix doxygen, HTML, and XML commands with Markdown formatting. +# Disable only in case of backward compatibilities issues. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also makes the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. +# Doxygen will parse them like normal C++ but will assume all classes use public +# instead of private inheritance when no explicit protection keyword is present. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES (the +# default) will make doxygen replace the get and set methods by a property in +# the documentation. This will only work if the methods are indeed getting or +# setting a simple type. If this is not the case, or you want to show the +# methods anyway, you should set this option to NO. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and +# unions are shown inside the group in which they are included (e.g. using +# @ingroup) instead of on a separate page (for HTML and Man pages) or +# section (for LaTeX and RTF). + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and +# unions with only public data fields or simple typedef fields will be shown +# inline in the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO (the default), structs, classes, and unions are shown on a separate +# page (for HTML and Man pages) or section (for LaTeX and RTF). + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum +# is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically +# be useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can +# be an expensive process and often the same symbol appear multiple times in +# the code, doxygen keeps a cache of pre-resolved symbols. If the cache is too +# small doxygen will become slower. If the cache is too large, memory is wasted. +# The cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid +# range is 0..9, the default is 0, corresponding to a cache size of 2^16 = 65536 +# symbols. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base +# name of the file that contains the anonymous namespace. By default +# anonymous namespaces are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen +# will list include files with double quotes in the documentation +# rather than with sharp brackets. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen +# will sort the (brief and detailed) documentation of class members so that +# constructors and destructors are listed first. If set to NO (the default) +# the constructors will appear in the respective orders defined by +# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. +# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO +# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the +# hierarchy of group names into alphabetical order. If set to NO (the default) +# the group names will appear in their defined order. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to +# do proper type resolution of all parameters of a function it will reject a +# match between the prototype and the implementation of a member function even +# if there is only one candidate or it is obvious which candidate to choose +# by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen +# will still accept a match between prototype and implementation in such cases. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if section-label ... \endif +# and \cond section-label ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or macro consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and macros in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. +# This will remove the Files entry from the Quick Index and from the +# Folder Tree View (if specified). The default is YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the +# Namespaces page. +# This will remove the Namespaces entry from the Quick Index +# and from the Folder Tree View (if specified). The default is YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command , where is the value of +# the FILE_VERSION_FILTER tag, and is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. +# You can optionally specify a file name after the option, if omitted +# DoxygenLayout.xml will be used as the name of the layout file. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files +# containing the references data. This must be a list of .bib files. The +# .bib extension is automatically appended if omitted. Using this command +# requires the bibtex tool to be installed. See also +# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style +# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this +# feature you need bibtex and perl available in the search path. Do not use +# file names with spaces, bibtex cannot handle them. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = NO + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# The WARN_NO_PARAMDOC option can be enabled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = @abs_top_srcdir@/README.md \ + @abs_top_srcdir@/doc/quick-guide.md \ + @abs_top_srcdir@/doc/compat.md \ + @abs_top_srcdir@/xkbcommon/xkbcommon.h \ + @abs_top_srcdir@/xkbcommon/xkbcommon-names.h \ + @abs_top_srcdir@/xkbcommon/xkbcommon-x11.h \ + @abs_top_srcdir@/xkbcommon/xkbcommon-compose.h \ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is +# also the default input encoding. Doxygen uses libiconv (or the iconv built +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for +# the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh +# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py +# *.f90 *.f *.for *.vhd *.vhdl + +FILE_PATTERNS = *.c \ + *.h + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command , where +# is the value of the INPUT_FILTER tag, and is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. +# If FILTER_PATTERNS is specified, this tag will be ignored. +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. +# Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. +# The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty or if +# non of the patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) +# and it is also possible to disable source filtering for a specific pattern +# using *.ext= (so without naming a filter). This option only has effect when +# FILTER_SOURCE_FILES is enabled. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MD_FILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = README.md + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C, C++ and Fortran comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. +# Otherwise they will link to the documentation. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = NO + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = xkb_ \ + XKB_ + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. Note that when using a custom header you are responsible +# for the proper inclusion of any scripts and style sheets that doxygen +# needs, which is dependent on the configuration options used. +# It is advised to generate a default header using "doxygen -w html +# header.html footer.html stylesheet.css YourConfigFile" and then modify +# that header. Note that the header is subject to change so you typically +# have to redo this when upgrading to a newer version of doxygen or when +# changing the value of configuration settings such as GENERATE_TREEVIEW! + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If left blank doxygen will +# generate a default style sheet. Note that it is recommended to use +# HTML_EXTRA_STYLESHEET instead of this one, as it is more robust and this +# tag will in the future become obsolete. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional +# user-defined cascading style sheet that is included after the standard +# style sheets created by doxygen. Using this option one can overrule +# certain style aspects. This is preferred over using HTML_STYLESHEET +# since it does not replace the standard style sheet and is therefor more +# robust against future updates. Doxygen will copy the style sheet file to +# the output directory. + +HTML_EXTRA_STYLESHEET = @abs_top_srcdir@/doc/doxygen-extra.css + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that +# the files will be copied as-is; there are no commands or markers available. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. +# Doxygen will adjust the colors in the style sheet and background images +# according to this color. Hue is specified as an angle on a colorwheel, +# see http://en.wikipedia.org/wiki/Hue for more information. +# For instance the value 0 represents red, 60 is yellow, 120 is green, +# 180 is cyan, 240 is blue, 300 purple, and 360 is red again. +# The allowed range is 0 to 359. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of +# the colors in the HTML output. For a value of 0 the output will use +# grayscales only. A value of 255 will produce the most vivid colors. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to +# the luminance component of the colors in the HTML output. Values below +# 100 gradually make the output lighter, whereas values above 100 make +# the output darker. The value divided by 100 is the actual gamma applied, +# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, +# and 100 does not change the gamma. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting +# this to NO can help when comparing the output of multiple runs. + +HTML_TIMESTAMP = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of +# entries shown in the various tree structured indices initially; the user +# can expand and collapse entries dynamically later on. Doxygen will expand +# the tree to such a level that at most the specified number of entries are +# visible (unless a fully collapsed tree already exceeds this amount). +# So setting the number of entries 1 will produce a full collapsed tree by +# default. 0 is a special value representing an infinite number of entries +# and will result in a full expanded tree by default. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files +# will be generated that can be used as input for Apple's Xcode 3 +# integrated development environment, introduced with OSX 10.5 (Leopard). +# To create a documentation set, doxygen will generate a Makefile in the +# HTML output directory. Running make will produce the docset in that +# directory and running "make install" will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find +# it at startup. +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. + +GENERATE_DOCSET = NO + +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the +# feed. A documentation feed provides an umbrella under which multiple +# documentation sets from a single provider (such as a company or product suite) +# can be grouped. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that +# should uniquely identify the documentation set bundle. This should be a +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen +# will append .docset to the name. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely +# identify the documentation publisher. This should be a reverse domain-name +# style string, e.g. com.mycompany.MyDocSet.documentation. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING +# is used to encode HtmlHelp index (hhk), content (hhc) and project file +# content. + +CHM_INDEX_ENCODING = + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated +# that can be used as input for Qt's qhelpgenerator to generate a +# Qt Compressed Help (.qch) of the generated HTML documentation. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can +# be used to specify the file name of the resulting .qch file. +# The path specified is relative to the HTML output folder. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#namespace + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating +# Qt Help Project output. For more information please see +# http://doc.trolltech.com/qthelpproject.html#virtual-folders + +QHP_VIRTUAL_FOLDER = doc + +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to +# add. For more information please see +# http://doc.trolltech.com/qthelpproject.html#custom-filters + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see +# +# Qt Help Project / Custom Filters. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's +# filter section matches. +# +# Qt Help Project / Filter Attributes. + +QHP_SECT_FILTER_ATTRS = + +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can +# be used to specify the location of Qt's qhelpgenerator. +# If non-empty doxygen will try to run qhelpgenerator on the generated +# .qhp file. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files +# will be generated, which together with the HTML files, form an Eclipse help +# plugin. To install this plugin and make it available under the help contents +# menu in Eclipse, the contents of the directory containing the HTML and XML +# files needs to be copied into the plugins directory of eclipse. The name of +# the directory within the plugins directory should be the same as +# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before +# the help appears. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have +# this name. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) +# at top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. Since the tabs have the same information as the +# navigation tree you can set this option to NO if you already set +# GENERATE_TREEVIEW to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. +# If the tag value is set to YES, a side panel will be generated +# containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). +# Windows users are probably better off using the HTML help feature. +# Since the tree basically has the same information as the tab index you +# could consider to set DISABLE_INDEX to NO when enabling this option. + +GENERATE_TREEVIEW = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values +# (range [0,1..20]) that doxygen will group on one line in the generated HTML +# documentation. Note that a value of 0 will completely suppress the enum +# values from appearing in the overview section. + +ENUM_VALUES_PER_LINE = 1 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open +# links to external symbols imported via tag files in a separate window. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of Latex formulas included +# as images in the HTML documentation. The default is 10. Note that +# when you change the font size after a successful doxygen run you need +# to manually remove any form_*.png images from the HTML output directory +# to force them to be regenerated. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are +# not supported properly for IE 6.0, but are supported on all modern browsers. +# Note that when changing this option you need to delete any form_*.png files +# in the HTML output before the changes have effect. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax +# (see http://www.mathjax.org) which uses client side Javascript for the +# rendering instead of using prerendered bitmaps. Use this if you do not +# have LaTeX installed or if you want to formulas look prettier in the HTML +# output. When enabled you may also need to install MathJax separately and +# configure the path to it using the MATHJAX_RELPATH option. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. Supported types are HTML-CSS, NativeMML (i.e. MathML) and +# SVG. The default value is HTML-CSS, which is slower, but has the best +# compatibility. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the +# HTML output directory using the MATHJAX_RELPATH option. The destination +# directory should contain the MathJax.js script. For instance, if the mathjax +# directory is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to +# the MathJax Content Delivery Network so you can quickly see the result without +# installing MathJax. +# However, it is strongly recommended to install a local +# copy of MathJax from http://www.mathjax.org before deployment. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension +# names that should be enabled during MathJax rendering. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript +# pieces of code that will be used on startup of the MathJax code. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box +# for the HTML output. The underlying search engine uses javascript +# and DHTML and should work on any modern browser. Note that when using +# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets +# (GENERATE_DOCSET) there is already a search function so this one should +# typically be disabled. For large projects the javascript based search engine +# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. + +SEARCHENGINE = NO + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. +# There are two flavours of web server based search depending on the +# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for +# searching and an index file used by the script. When EXTERNAL_SEARCH is +# enabled the indexing and searching needs to be provided by external tools. +# See the manual for details. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain +# the search results. Doxygen ships with an example indexer (doxyindexer) and +# search engine (doxysearch.cgi) which are based on the open source search +# engine library Xapian. See the manual for configuration details. + +EXTERNAL_SEARCH = NO + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will returned the search results when EXTERNAL_SEARCH is enabled. +# Doxygen ships with an example search engine (doxysearch) which is based on +# the open source search engine library Xapian. See the manual for configuration +# details. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH AND EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id +# of to a relative location where the documentation can be found. +# The format is: EXTRA_SEARCH_MAPPINGS = id1=loc1 id2=loc2 ... + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. +# Note that when enabling USE_PDFLATEX this option is only used for +# generating bitmaps for formulas in the HTML output, but not in the +# Makefile that is written to the output directory. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, letter, legal and +# executive. If left blank a4 will be used. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for +# the generated latex document. The footer should contain everything after +# the last chapter. If it is left blank doxygen will generate a +# standard footer. Notice: only use this tag if you know what you are doing! + +LATEX_FOOTER = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images +# or other source files which should be copied to the LaTeX output directory. +# Note that the files will be copied as-is; there are no commands or markers +# available. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +# If LATEX_SOURCE_CODE is set to YES then doxygen will include +# source code with syntax highlighting in the LaTeX output. +# Note that which sources are shown also depends on other settings +# such as SOURCE_BROWSER. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See +# http://en.wikipedia.org/wiki/BibTeX for more info. + +LATEX_BIB_STYLE = plain + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load style sheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = .3 + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES Doxygen will generate DOCBOOK files +# that can be used to generate PDF. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the DOCBOOK pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. If left blank docbook will be used as the default path. + +DOCBOOK_OUTPUT = docbook + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. +# This is useful +# if you want to understand what is going on. +# On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# pointed to by INCLUDE_PATH will be searched when a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition that +# overrules the definition found in the source code. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all references to function-like macros +# that are alone on a line, have an all uppercase name, and do not end with a +# semicolon, because these will confuse the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. For each +# tag file the location of the external documentation should be added. The +# format of a tag file without this location is as follows: +# +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths +# or URLs. Note that each tag file must have a unique name (where the name does +# NOT include the path). If a tag file is not located in the directory in which +# doxygen is run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed +# in the related pages index. If set to NO, only the current project's +# pages will be listed. + +EXTERNAL_PAGES = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option also works with HAVE_DOT disabled, but it is recommended to +# install and use dot, since it yields more powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is +# allowed to run in parallel. When set to 0 (the default) doxygen will +# base this on the number of processors available in the system. You can set it +# explicitly to a value larger than 0 to get control over the balance +# between CPU load and processing speed. + +DOT_NUM_THREADS = 0 + +# By default doxygen will use the Helvetica font for all dot files that +# doxygen generates. When you want a differently looking font you can specify +# the font name using DOT_FONTNAME. You need to make sure dot is able to find +# the font, which can be done by putting it in a standard location or by setting +# the DOTFONTPATH environment variable or by setting DOT_FONTPATH to the +# directory containing the font. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. +# The default size is 10pt. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the Helvetica font. +# If you specify a different font using DOT_FONTNAME you can use DOT_FONTPATH to +# set the path where dot can find it. + +DOT_FONTPATH = + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside +# the class node. If there are many fields or methods and many nodes the +# graph may become too big to be useful. The UML_LIMIT_NUM_FIELDS +# threshold limits the number of items for each type to make the size more +# manageable. Set this to 0 for no limit. Note that the threshold may be +# exceeded by 50% before the limit is enforced. + +UML_LIMIT_NUM_FIELDS = 10 + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = NO + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH and HAVE_DOT options are set to YES then +# doxygen will generate a call dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable call graphs +# for selected functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then +# doxygen will generate a caller dependency graph for every global function +# or class method. Note that enabling this option will significantly increase +# the time of a run. So in most cases it will be better to enable caller +# graphs for selected functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will generate a graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are svg, png, jpg, or gif. +# If left blank png will be used. If you choose svg you need to set +# HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible in IE 9+ (other browsers do not have this requirement). + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# Note that this requires a modern browser other than Internet Explorer. +# Tested and working are Firefox, Chrome, Safari, and Opera. For IE 9+ you +# need to set HTML_FILE_EXTENSION to xhtml in order to make the SVG files +# visible. Older versions of IE do not have SVG support. + +INTERACTIVE_SVG = NO + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the +# \mscfile command). + +MSCFILE_DIRS = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the +# number of direct children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not +# seem to support this out of the box. Warning: Depending on the platform used, +# enabling this option may lead to badly anti-aliased labels on the edges of +# a graph (i.e. they become hard to read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = YES diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/compat.md b/app/src/main/jni/libxkbcommon/xkbcommon/doc/compat.md new file mode 100644 index 0000000..63a45e7 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/compat.md @@ -0,0 +1,55 @@ +# Compatibility + +Relative to the XKB 1.1 specification implemented in current X servers, +xkbcommon has removed support for some parts of the specification which +introduced unnecessary complications. Many of these removals were in fact +not implemented, or half-implemented at best, as well as being totally +unused in the standard dataset. + +Notable removals: +- geometry support + + there were very few geometry definitions available, and while + xkbcommon was responsible for parsing this insanely complex format, + it never actually did anything with it + + hopefully someone will develop a companion library which supports + keyboard geometries in a more useful format +- KcCGST (keycodes/compat/geometry/symbols/types) API + + use RMLVO instead; KcCGST is now an implementation detail + + including pre-defined keymap files +- XKM support + + may come in an optional X11 support/compatibility library +- around half of the interpret actions + + pointer device, message and redirect actions in particular +- non-virtual modifiers + + core and virtual modifiers have been collapsed into the same + namespace, with a 'significant' flag that largely parallels the + core/virtual split +- radio groups + + completely unused in current keymaps, never fully implemented +- overlays + + almost completely unused in current keymaps +- key behaviors + + used to implement radio groups and overlays, and to deal with things + like keys that physically lock; unused in current keymaps +- indicator behaviours such as LED-controls-key + + the only supported LED behaviour is key-controls-LED; again this + was never really used in current keymaps + +On the other hand, some features and extensions were added. + +Notable additions: +- 32-bit keycodes +- extended number of modifiers (planned) +- extended number of groups (planned) +- multiple keysyms per level + + this requires incompatible dataset changes, such that X11 would + not be able to parse these + +## Compose support + +Relative to the standard implementation in libX11 (described in the +Compose(5) man-page), some features are not supported: + +- the (! MODIFIER) syntax +- using modifier keysyms in Compose sequences +- several interactions with Braille keysyms diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/doxygen-extra.css b/app/src/main/jni/libxkbcommon/xkbcommon/doc/doxygen-extra.css new file mode 100644 index 0000000..632ebad --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/doxygen-extra.css @@ -0,0 +1,9 @@ +div#top, div.header, div.contents { + margin-left: auto; + margin-right: auto; + width: 960px; +} + +.footer { + display: none; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/keymap-format-text-v1.txt b/app/src/main/jni/libxkbcommon/xkbcommon/doc/keymap-format-text-v1.txt new file mode 100644 index 0000000..95849fc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/keymap-format-text-v1.txt @@ -0,0 +1,359 @@ +The xkb_keycodes section +======================== + +This is the simplest section type, and is the first one to be +compiled. The purpose of this is mostly to map between the +hardware/evdev scancodes and xkb keycodes. Each key is given a name +by which it can be referred to later, e.g. in the symbols section. + +Keycode statements +------------------ +Statements of the form: + + = 49; + = 10; + +The above would let 49 and 10 be valid keycodes in the keymap, and +assign them the names TLDE and AE01 respectively. The format is +always used to refer to a key by name. + +[The naming convention just denoted the position of the key +in the main alphanumric section of the keyboard, with the two letters +specifying the row and the two digits specifying the column, from +the bottom left.] + +In the common case this just maps to the evdev scancodes from +/usr/include/linux/input.h, e.g. the following definitions: + + #define KEY_GRAVE 41 + #define KEY_1 2 + +correspond to the ones above. Similar definitions appear in the +xf86-input-keyboard driver. Note that in all current keymaps there's a +constant offset of 8 (for historical reasons). + +If there's a conflict, like the same name given to different keycodes, +or same keycode given different names, it is resolved according to the +merge mode which applies to the definitions. + +Alias statements +---------------- +Statements of the form: + + alias = ; + +Allows to refer to a previously defined key (here ) by another +name (here ). Conflicts are handled similarly to keycode +statements. + +LED name statements +------------------- +Statements of the form: + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + +Assigns a name to the keyboard LED (a.k.a indicator) with the given +index. The LED may be referred by this name later in the compat section +and by the user. + + +The xkb_types section +===================== + +This section is the second to be processesed, after xkb_keycodes. +However, it is completely independent and could have been the first +to be processed (it does not refer to specific keys as specified in +the xkb_keycodes section). + +This section defines key types, which, given a key and a keyboard +state (i.e. modifier state and group), determine the shift level to +be used in translating the key to keysyms. These types are assigned +to each group in each key, in the xkb_symbols section. + +Key types are called this way because, in a way, they really describe +the "type" of the key (or more correctly, a specific group of the +key). For example, an ordinary keymap will provide a type called +"KEYPAD", which consists of two levels, with the second level being +chosen according to the state of the Num Lock (or Shift) modifiers. +Another example is a type called "ONE_LEVEL", which is usually +assigned to keys such as Escape; these have just one level and are +not affected by the modifier state. Yet more common examples are +"TWO_LEVEL" (with Shift choosing the second level), "ALPHABETIC" +(where Caps Lock may also choose the second level), etc. + +Type definitions +---------------- +Statements of the form: + + type "FOUR_LEVEL" { ... } + +The above would create a new type named "FOUR_LEVEL". +The body of the definition may include statements of the following +forms: + +- level_name statements (mandatory for each level in the type): + + level_name[Level1] = "Base"; + + Gives each level in this type a descriptive name. It isn't used + for anything. + Note: A level may be specified as Level[1-8] or just a number (can + be more than 8). + +- modifiers statement (mandatory, should be specified only once): + + modifiers = Shift+Lock+LevelThree; + + A mask of real and virtual modifiers. These are the only modifiers + being considered when matching the modifier state against the type. + The other modifiers, whether active or not, are masked out in the + calculation. + +- map entry statements (should have at least as many mappings as there + are levels in the type): + + map[Shift+LevelThree] = Level4; + + If the active modifiers, masked with the type's modifiers (as stated + above), match (i.e. equal) the modifiers inside the map[] statement, + then the level in the right hand side is chosen. For example, in the + above, if in the current keyboard state the Shift and LevelThree + modifiers are active, while the Lock modifier is not, then the + keysym(s) in the 4th level of the group will be returned to the + user. + +- preserve statements: + + map[Shift+Lock+LevelThree] = Level5; + preserve[Shift+Lock+LevelThree] = Lock; + + When a map entry matches the active modifiers and the level it + specified is chosen, then these modifiers are said to be "consumed"; + for example, in a simple US keymap where the "g" key is assigned an + ordinary ALPHABETIC key type, if the Lock (Caps Lock) modifier is + active and the key is pressed, then a "G" keysym is produced (as + opposed to lower-case "g"). This is because the type definition has + a map entry like the following: + + map[Lock] = Level2; + + And as such the Lock modifier is consumed. This information is + relevant for applications which further process the modifiers, + since by then the consumed modifiers have already "done their part" + and should be masked out. + + However, sometimes even if a modifier is actually used to choose + the shift level (as Lock above), it should *not* be reported as + consumed, for various reasons. In this case, a preserve[] statement + can be used to augment the map entry. The modifiers inside the square + brackets should match one of the map[] statements in the type. The + right hand side should consists of modifiers from the left hand + side; these modifiers are then "preserved" and not reported as + consumed. + + +The xkb_compat section +====================== + +This section is the third to be processed, after xkb_keycodes and +xkb_types. + +Interpret statements +-------------------- +Statements of the form: + + interpret Num_Lock+Any { ... } + interpret Shift_Lock+AnyOf(Shift+Lock) { ... } + +The xkb_symbols section (see below) allows the keymap author to perform, +among other things, the following things for each key: + +- Bind an action, like SetMods or LockGroup, to the key. Actions, like + symbols, are specified for each level of each group in the key + separately. + +- Add a virtual modifier to the key's virtual modifier mapping (vmodmap). + +- Specify whether the key should repeat or not. + +However, doing this for each key (or level) is tedious and inflexible. +Interpret's are a mechanism to apply these settings to a bunch of +keys/levels at once. + +Each interpret specifies a condition by which it attaches to certain +levels. The condition consists of two parts: + +- A keysym. If the level has a different (or more than one) keysym, the + match fails. Leaving out the keysym is equivalent to using the NoSymbol + keysym, which always matches successfully. + +- A modifier predicate. The predicate consists of a matching operation + and a mask of (real) modifiers. The modifiers are matched against the + key's modifier map (modmap). The matching operation can be one of the + following: + + * AnyOfOrNone - The modmap must either be empty or include at least + one of the specified modifiers. + * AnyOf - The modmap must include at least one of the specified + modifiers. + * NoneOf - The modmap must not include any of the specified modifiers. + * AllOf - The modmap must include all of the specified modifiers (but + may include others as well). + * Exactly - The modmap must be exactly the same as the specified + modifiers. + + Leaving out the predicate is equivalent to using AnyOfOrNone while + specifying all modifiers. Leaving out just the matching condition + is equivalent to using Exactly. + +An interpret may also include "useModMapMods = level1;" - see below. + +If a level fulfils the conditions of several interpret's, only the +most specific one is used: + +- A specific keysym will always match before a generic NoSymbol + condition. + +- If the keysyms are the same, the interpret with the more specific + matching operation is used. The above list is sorted from least to + most specific. + +- If both the keysyms and the matching operations are the same (but the + modifiers are different), the first interpret is used. + +As described above, once an interpret "attaches" to a level, it can bind +an action to that level, add one virtual modifier to the key's vmodmap, +or set the key's repeat setting. You should note the following: + +- The key repeat is a property of the entire key; it is not level-specific. + In order to avoid confusion, it is only inspected for the first level of + the first group; the interpret's repeat setting is ignored when applied + to other levels. + +- If one of the above fields was set directly for a key in xkb_symbols, + the explicit setting takes precedence over the interpret. + +The body of the statement may include statements of the following +forms (all of which are optional): + +- useModMapMods statement: + + useModMapMods = level1; + + When set to 'level1', the interpret will only match levels which are + the first level of the first group of the keys. This can be useful in + conjunction with e.g. a virtualModifier statement. + +- action statement: + + action = LockMods(modifiers=NumLock); + + Bind this action to the matching levels. + +- virtual modifier statement: + + virtualModifier = NumLock; + + Add this virtual modifier to the key's vmodmap. The given virtual + modifier must be declared at the top level of the file with a + virtual_modifiers statement, e.g.: + + virtual_modifiers NumLock; + +- repeat statement: + + repeat = True; + + Set whether the key should repeat or not. Must be a boolean value. + +LED map statements +------------------ +Statements of the form: + + indicator "Shift Lock" { ... } + +This statement specifies the behavior and binding of the LED (a.k.a +indicator) with the given name ("Shift Lock" above). The name should +have been declared previously in the xkb_keycodes section (see LED +name statement), and given an index there. If it wasn't, it is created +with the next free index. +The body of the statement describes the conditions of the keyboard +state which will cause the LED to be lit. It may include the following +statements: + +- modifiers statement: + + modifiers = ScrollLock; + + If the given modifiers are in the required state (see below), the + LED is lit. + +- whichModifierState statment: + + whichModState = Latched+Locked; + + Can be any combination of: + + * base, latched, locked, effective + * any (i.e. all of the above) + * none (i.e. none of the above) + * compat (legacy value, treated as effective) + + This will cause the respective portion of the modifer state (see + struct xkb_state) to be matched against the modifiers given in the + "modifiers" statement. + + Here's a simple example: + + indicator "Num Lock" { + modifiers = NumLock; + whichModState = Locked; + }; + + Whenever the NumLock modifier is locked, the Num Lock LED will light + up. + +- groups statment: + + groups = All - group1; + + If the given groups are in the required state (see below), the LED + is lit. + +- whichGroupState statment: + + whichGroupState = Effective; + + Can be any combination of: + + * base, latched, locked, effective + * any (i.e. all of the above) + * none (i.e. none of the above) + + This will cause the respective portion of the group state (see + struct xkb_state) to be matched against the groups given in the + "groups" statement. + + Note: the above conditions are disjunctive, i.e. if any of them are + satisfied the LED is lit. + + +The xkb_symbols section +======================= + +This section is the fourth to be processed, after xkb_keycodes, +xkb_types and xkb_compat. + +TODO + + +Virtual modifier statements +=========================== + +Statements of the form: + virtual_modifiers LControl; + +Can appear in the xkb_types, xkb_compat, xkb_symbols sections. +TODO diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/quick-guide.md b/app/src/main/jni/libxkbcommon/xkbcommon/doc/quick-guide.md new file mode 100644 index 0000000..3cf5b3b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/quick-guide.md @@ -0,0 +1,228 @@ +# Quick Guide + +## Introduction + +This document contains a quick walk-through of the often-used parts of +the library. We will employ a few use-cases to lead the examples: + +1. An evdev client. "evdev" is the Linux kernel's input subsystem; it + only reports to the client which keys are pressed and released. + +2. An X11 client, using the XCB library to communicate with the X + server and the xcb-xkb library for using the XKB protocol. + +3. A Wayland client, using the standard protocol. + +The snippets are not complete, and some support code is omitted. You +can find complete and more complex examples in the source directory: + +1. test/interactive-evdev.c contains an interactive evdev client. + +2. test/interactive-x11.c contains an interactive X11 client. + +Also, the library contains many more functions for examining and using +the library context, the keymap and the keyboard state. See the +hyper-linked reference documentation or go through the header files in +xkbcommon/ for more details. + +## Code + +Before we can do anything interesting, we need a library context. So +let's create one: + +~~~{.c} + #include + + struct xkb_context ctx; + + ctx = xkb_context_new(XKB_CONTEXT_NO_FLAGS); + if (!ctx) +~~~ + +The xkb_context contains the keymap include paths, the log level and +functions, and other general customizable administrativia. + +Next we need to create a keymap, xkb_keymap. This is an immutable object +which contains all of the information about the keys, layouts, etc. There +are different ways to do this. + +If we are an evdev client, we have nothing to go by, so we need to ask +the user for his/her keymap preferences (for example, an Icelandic +keyboard with a Dvorak layout). The configuration format is commonly +called RMLVO (Rules+Model+Layout+Variant+Options), the same format used +by the X server. With it, we can fill a struct called xkb_rule_names; +passing NULL chooses the system's default. + +~~~{.c} + struct xkb_keymap *keymap; + /* Example RMLVO for Icelandic Dvorak. */ + struct xkb_rule_names names = { + .rules = NULL, + .model = "pc105", + .layout = "is", + .variant = "dvorak", + .options = "terminate:ctrl_alt_bksp" + }; + + keymap = xkb_keymap_new_from_names(ctx, &names, + XKB_KEYMAP_COMPILE_NO_FLAGS); + if (!keymap) +~~~ + +If we are a Wayland client, the compositor gives us a string complete +with a keymap. In this case, we can create the keymap object like this: + +~~~{.c} + /* From the wl_keyboard::keymap event. */ + const char *keymap_string = <...>; + + keymap = xkb_keymap_new_from_string(ctx, keymap_string, + XKB_KEYMAP_FORMAT_TEXT_V1, + XKB_KEYMAP_COMPILE_NO_FLAGS); + if (!keymap) +~~~ + +If we are an X11 client, we are better off getting the keymap from the +X server directly. For this we need to choose the XInput device; here +we will use the core keyboard device: + +~~~{.c} + #include + + xcb_connection_t *conn = <...>; + int32_t device_id; + + device_id = xkb_x11_get_core_keyboard_device_id(conn); + if (device_id == -1) + + keymap = xkb_x11_keymap_new_from_device(ctx, conn, device_id, + XKB_KEYMAP_COMPILE_NO_FLAGS); + if (!keymap) +~~~ + +Now that we have the keymap, we are ready to handle the keyboard devices. +For each device, we create an xkb_state, which remembers things like which +keyboard modifiers and LEDs are active: + +~~~{.c} + struct xkb_state *state; + + state = xkb_state_new(keymap); + if (!state) +~~~ + +For X11/XCB clients, this is better: + +~~~{.c} + state = xkb_x11_state_new_from_device(keymap, conn, device_id); + if (!state) +~~~ + +When we have an xkb_state for a device, we can start handling key events +from it. Given a keycode for a key, we can get its keysym: + +~~~{.c} + event; + xkb_keycode_t keycode; + xkb_keysym_t keysym; + + keycode = event->keycode; + keysym = xkb_state_key_get_one_sym(state, keycode); +~~~ + +We can see which keysym we got, and get its name: + +~~~{.c} + char keysym_name[64]; + + if (keysym == XKB_KEY_Space) + + + xkb_keysym_get_name(keysym, keysym_name, sizeof(keysym_name)); +~~~ + +libxkbcommon also supports an extension to the classic XKB, whereby a +single event can result in multiple keysyms. Here's how to use it: + +~~~{.c} + const xkb_keysym_t *keysyms; + int num_keysyms; + + num_keysyms = xkb_state_key_get_syms(state, keycode, &keysyms); +~~~ + +We can also get a UTF-8 string representation for this key: + +~~~{.c} + char *buffer; + int size; + + // First find the needed size; return value is the same as snprintf(3). + size = xkb_state_key_get_utf8(state, keycode, NULL, 0) + 1; + if (size <= 1) + buffer = + + xkb_state_key_get_utf8(state, keycode, buffer, size); +~~~ + +Of course, we also need to keep the xkb_state up-to-date with the +keyboard device, if we want to get the correct keysyms in the future. + +If we are an evdev client, we must let the library know whether a key +is pressed or released at any given time: + +~~~{.c} + enum xkb_state_component changed; + + if () + changed = xkb_state_update_key(state, keycode, XKB_KEY_DOWN); + else if () + changed = xkb_state_update_key(state, keycode, XKB_KEY_UP); +~~~ + +The `changed` return value tells us exactly which parts of the state +have changed. + +If is is a key-repeat event, we can ask the keymap what to do with it: + +~~~{.c} + if ( && !xkb_keymap_key_repeats(keymap, keycode)) + +~~~ + +On the other hand, if we are an X or Wayland client, the server already +does the hard work for us. It notifies us when the device's state +changes, and we can simply use what it tells us (the necessary +information usually comes in a form of some "state changed" event): + +~~~{.c} + changed = xkb_state_update_mask(state, + event->depressed_mods, + event->latched_mods, + event->locked_mods, + event->depressed_layout, + event->latched_layout, + event->locked_layout); +~~~ + +Now that we have an always-up-to-date xkb_state, we can examine it. +For example, we can check whether the Control modifier is active, or +whether the Num Lock LED is active: + +~~~{.c} + if (xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CTRL, + XKB_STATE_MODS_EFFECTIVE) > 0) + + + if (xkb_state_led_name_is_active(state, XKB_LED_NAME_NUM) > 0) + +~~~ + +And that's it! When we're finished, we should free the objects we've +created: + +~~~{.c} + xkb_state_unref(state); + xkb_keymap_unref(keymap); + xkb_context_unref(ctx); +~~~ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/doc/rules-format.txt b/app/src/main/jni/libxkbcommon/xkbcommon/doc/rules-format.txt new file mode 100644 index 0000000..e8959fd --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/doc/rules-format.txt @@ -0,0 +1,86 @@ +The rules file +============== + +The purpose of the rules file is to map between configuration values +that are easy for a user to specify and understand, and the +configuration values xkbcomp uses and understands. + +xkbcomp uses the xkb_component_names struct, which maps directly to +include statements of the appropriate sections, called for short +KcCGST (see doc/keymap-format-text-v1.txt; 'G' stands for "geometry", +which is not supported). These are not really intuitive or straight- +forward for the uninitiated. + +Instead, the user passes in a xkb_rule_names struct, which consists +of the name of a rules file (in Linux this is usually "evdev"), a +keyboard model (e.g. "pc105"), a set of layouts (which will end up +in different groups, e.g. "us,fr"), variants (used to alter/augment +the respective layout, e.g. "intl,dvorak"), and a set of options +(used to tweak some general behavior of the keyboard, e.g. +"ctrl:nocaps,compose:menu" to make the Caps Lock key act like Ctrl +and the Menu key like Compose). We call these RMLVO. + +Format of the file +------------------ +The file consists of rule sets, each consisting of rules (one per +line), which match the MLVO values on the left hand side, and, if +the values match to the values the user passed in, results in the +values on the right hand side being added to the resulting KcCGST. +Since some values are related and repeated often, it is possible +to group them together and refer to them by a group name in the +rules. + +Along with matching values by simple string equality, and for +membership in a group defined previously, rules may also contain +"wildcard" values - "*" - which always match. These usually appear +near the end. + +Grammar +------- +(It might be helpful to look at a file like rules/evdev along with +this grammer. Comments, whitespace, etc. are not shown.) + +File ::= { "!" (Group | RuleSet) } + +Group ::= GroupName "=" { GroupElement } "\n" +GroupName ::= "$" +GroupElement ::= + +RuleSet ::= Mapping { Rule } + +Mapping ::= { Mlvo } "=" { Kccgst } "\n" +Mlvo ::= "model" | "option" | ("layout" | "variant") [ Index ] +Index ::= "[" 1..XKB_NUM_GROUPS "]" +Kccgst ::= "keycodes" | "symbols" | "types" | "compat" | "geometry" + +Rule ::= { MlvoValue } "=" { KccgstValue } "\n" +MlvoValue ::= "*" | GroupName | +KccgstValue ::= + +Notes: + +- The order of values in a Rule must be the same as the Mapping it + follows. The mapping line determines the meaning of the values in + the rules which follow in the RuleSet. + +- If a Rule is matched, %-expansion is performed on the KccgstValue, + as follows: + + %m, %l, %v: + The model, layout or variant, if only one was given (e.g. + %l for "us,il" is invalid). + + %l[1], %v[1]: + Layout or variant for the specified group Index, if more than + one was given (e.g. %l[1] for "us" is invalid). + + %+m, %+l, %+v, %+l[1], %+v[1] + As above, but prefixed with '+'. Similarly, '|', '-', '_' may be + used instead of '+'. + + %(m), %(l), %(l[1]), %(v), %(v[1]): + As above, but prefixed by '(' and suffixed by ')'. + + In case the expansion is invalid, as described above, it is + skipped (the rest of the string is still processed); this includes + the prefix and suffix (that's why you shouldn't use e.g. "(%v[1])"). diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/m4/ax_gcc_builtin.m4 b/app/src/main/jni/libxkbcommon/xkbcommon/m4/ax_gcc_builtin.m4 new file mode 100644 index 0000000..b28a91b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/m4/ax_gcc_builtin.m4 @@ -0,0 +1,168 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_gcc_builtin.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_GCC_BUILTIN(BUILTIN) +# +# DESCRIPTION +# +# This macro checks if the compiler supports one of GCC's built-in +# functions; many other compilers also provide those same built-ins. +# +# The BUILTIN parameter is the name of the built-in function. +# +# If BUILTIN is supported define HAVE_. Keep in mind that since +# builtins usually start with two underscores they will be copied over +# into the HAVE_ definition (e.g. HAVE___BUILTIN_EXPECT for +# __builtin_expect()). +# +# The macro caches its result in the ax_cv_have_ variable (e.g. +# ax_cv_have___builtin_expect). +# +# The macro currently supports the following built-in functions: +# +# __builtin_assume_aligned +# __builtin_bswap32 +# __builtin_bswap64 +# __builtin_choose_expr +# __builtin___clear_cache +# __builtin_clrsb +# __builtin_clrsbl +# __builtin_clrsbll +# __builtin_clz +# __builtin_clzl +# __builtin_clzll +# __builtin_complex +# __builtin_constant_p +# __builtin_ctz +# __builtin_ctzl +# __builtin_ctzll +# __builtin_expect +# __builtin_ffs +# __builtin_ffsl +# __builtin_ffsll +# __builtin_fpclassify +# __builtin_huge_val +# __builtin_huge_valf +# __builtin_huge_vall +# __builtin_inf +# __builtin_infd128 +# __builtin_infd32 +# __builtin_infd64 +# __builtin_inff +# __builtin_infl +# __builtin_isinf_sign +# __builtin_nan +# __builtin_nand128 +# __builtin_nand32 +# __builtin_nand64 +# __builtin_nanf +# __builtin_nanl +# __builtin_nans +# __builtin_nansf +# __builtin_nansl +# __builtin_object_size +# __builtin_parity +# __builtin_parityl +# __builtin_parityll +# __builtin_popcount +# __builtin_popcountl +# __builtin_popcountll +# __builtin_powi +# __builtin_powif +# __builtin_powil +# __builtin_prefetch +# __builtin_trap +# __builtin_types_compatible_p +# __builtin_unreachable +# +# Unsuppored built-ins will be tested with an empty parameter set and the +# result of the check might be wrong or meaningless so use with care. +# +# LICENSE +# +# Copyright (c) 2013 Gabriele Svelto +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AC_DEFUN([AX_GCC_BUILTIN], [ + AS_VAR_PUSHDEF([ac_var], [ax_cv_have_$1]) + + AC_CACHE_CHECK([for $1], [ac_var], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [ + m4_case([$1], + [__builtin_assume_aligned], [$1("", 0)], + [__builtin_bswap32], [$1(0)], + [__builtin_bswap64], [$1(0)], + [__builtin_choose_expr], [$1(0, 0, 0)], + [__builtin___clear_cache], [$1("", "")], + [__builtin_clrsb], [$1(0)], + [__builtin_clrsbl], [$1(0)], + [__builtin_clrsbll], [$1(0)], + [__builtin_clz], [$1(0)], + [__builtin_clzl], [$1(0)], + [__builtin_clzll], [$1(0)], + [__builtin_complex], [$1(0.0, 0.0)], + [__builtin_constant_p], [$1(0)], + [__builtin_ctz], [$1(0)], + [__builtin_ctzl], [$1(0)], + [__builtin_ctzll], [$1(0)], + [__builtin_expect], [$1(0, 0)], + [__builtin_ffs], [$1(0)], + [__builtin_ffsl], [$1(0)], + [__builtin_ffsll], [$1(0)], + [__builtin_fpclassify], [$1(0, 1, 2, 3, 4, 0.0)], + [__builtin_huge_val], [$1()], + [__builtin_huge_valf], [$1()], + [__builtin_huge_vall], [$1()], + [__builtin_inf], [$1()], + [__builtin_infd128], [$1()], + [__builtin_infd32], [$1()], + [__builtin_infd64], [$1()], + [__builtin_inff], [$1()], + [__builtin_infl], [$1()], + [__builtin_isinf_sign], [$1(0.0)], + [__builtin_nan], [$1("")], + [__builtin_nand128], [$1("")], + [__builtin_nand32], [$1("")], + [__builtin_nand64], [$1("")], + [__builtin_nanf], [$1("")], + [__builtin_nanl], [$1("")], + [__builtin_nans], [$1("")], + [__builtin_nansf], [$1("")], + [__builtin_nansl], [$1("")], + [__builtin_object_size], [$1("", 0)], + [__builtin_parity], [$1(0)], + [__builtin_parityl], [$1(0)], + [__builtin_parityll], [$1(0)], + [__builtin_popcount], [$1(0)], + [__builtin_popcountl], [$1(0)], + [__builtin_popcountll], [$1(0)], + [__builtin_powi], [$1(0, 0)], + [__builtin_powif], [$1(0, 0)], + [__builtin_powil], [$1(0, 0)], + [__builtin_prefetch], [$1("")], + [__builtin_trap], [$1()], + [__builtin_types_compatible_p], [$1(int, int)], + [__builtin_unreachable], [$1()], + [m4_warn([syntax], [Unsupported built-in $1, the test may fail]) + $1()] + ) + ])], + [AS_VAR_SET([ac_var], [yes])], + [AS_VAR_SET([ac_var], [no])]) + ]) + + AS_IF([test yes = AS_VAR_GET([ac_var])], + [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_$1), 1, + [Define to 1 if the system has the `$1' built-in function])], []) + + AS_VAR_POPDEF([ac_var]) +]) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/makekeys.py b/app/src/main/jni/libxkbcommon/xkbcommon/makekeys.py new file mode 100644 index 0000000..4732f8d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/makekeys.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python + +import re, sys, itertools + +pattern = re.compile(r'^#define\s+XKB_KEY_(?P\w+)\s+(?P0x[0-9a-fA-F]+)\s') +matches = [pattern.match(line) for line in open(sys.argv[1])] +entries = [(m.group("name"), int(m.group("value"), 16)) for m in matches if m] + +print(''' +/** + * This file comes from libxkbcommon and was generated by makekeys.py + * You can always fetch the latest version from: + * https://raw.github.com/xkbcommon/libxkbcommon/master/src/ks_tables.h + */ +''') + +entry_offsets = {} + +print(''' +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Woverlength-strings" +static const char *keysym_names = +'''.strip()) +offs = 0 +for (name, _) in sorted(entries, key=lambda e: e[0].lower()): + entry_offsets[name] = offs + print(' "{name}\\0"'.format(name=name)) + offs += len(name) + 1 +print(''' +; +#pragma GCC diagnostic pop +'''.strip()) + +print(''' +struct name_keysym { + xkb_keysym_t keysym; + uint32_t offset; +};\n''') + +def print_entries(x): + for (name, value) in x: + print(' {{ 0x{value:08x}, {offs} }}, /* {name} */'.format(offs=entry_offsets[name], value=value, name=name)) + +print('static const struct name_keysym name_to_keysym[] = {') +print_entries(sorted(entries, key=lambda e: e[0].lower())) +print('};\n') + +# *.sort() is stable so we always get the first keysym for duplicate +print('static const struct name_keysym keysym_to_name[] = {') +print_entries(next(g[1]) for g in itertools.groupby(sorted(entries, key=lambda e: e[1]), key=lambda e: e[1])) +print('};') diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c new file mode 100644 index 0000000..044f566 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.c @@ -0,0 +1,225 @@ +/*********************************************************** + * Copyright 1987, 1998 The Open Group + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the name of The Open Group shall not be + * used in advertising or otherwise to promote the sale, use or other dealings + * in this Software without prior written authorization from The Open Group. + * + * + * Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. + * + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * + ******************************************************************/ + +/************************************************************ + * Copyright 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#include "utils.h" +#include "atom.h" + +struct atom_node { + xkb_atom_t left, right; + xkb_atom_t atom; + unsigned int fingerprint; + char *string; +}; + +struct atom_table { + xkb_atom_t root; + darray(struct atom_node) table; +}; + +struct atom_table * +atom_table_new(void) +{ + struct atom_table *table; + + table = calloc(1, sizeof(*table)); + if (!table) + return NULL; + + darray_init(table->table); + /* The original throw-away root is here, at the illegal atom 0. */ + darray_resize0(table->table, 1); + + return table; +} + +void +atom_table_free(struct atom_table *table) +{ + struct atom_node *node; + + if (!table) + return; + + darray_foreach(node, table->table) + free(node->string); + darray_free(table->table); + free(table); +} + +const char * +atom_text(struct atom_table *table, xkb_atom_t atom) +{ + if (atom == XKB_ATOM_NONE || atom >= darray_size(table->table)) + return NULL; + + return darray_item(table->table, atom).string; +} + +static bool +find_atom_pointer(struct atom_table *table, const char *string, size_t len, + xkb_atom_t **atomp_out, unsigned int *fingerprint_out) +{ + xkb_atom_t *atomp = &table->root; + unsigned int fingerprint = 0; + bool found = false; + + for (size_t i = 0; i < (len + 1) / 2; i++) { + fingerprint = fingerprint * 27 + string[i]; + fingerprint = fingerprint * 27 + string[len - 1 - i]; + } + + while (*atomp != XKB_ATOM_NONE) { + struct atom_node *node = &darray_item(table->table, *atomp); + + if (fingerprint < node->fingerprint) { + atomp = &node->left; + } + else if (fingerprint > node->fingerprint) { + atomp = &node->right; + } + else { + /* Now start testing the strings. */ + const int cmp = strncmp(string, node->string, len); + if (cmp < 0 || (cmp == 0 && len < strlen(node->string))) { + atomp = &node->left; + } + else if (cmp > 0) { + atomp = &node->right; + } + else { + found = true; + break; + } + } + } + + if (fingerprint_out) + *fingerprint_out = fingerprint; + if (atomp_out) + *atomp_out = atomp; + return found; +} + +xkb_atom_t +atom_lookup(struct atom_table *table, const char *string, size_t len) +{ + xkb_atom_t *atomp; + + if (!string) + return XKB_ATOM_NONE; + + if (!find_atom_pointer(table, string, len, &atomp, NULL)) + return XKB_ATOM_NONE; + + return *atomp; +} + +/* + * If steal is true, we do not strdup @string; therefore it must be + * dynamically allocated, NUL-terminated, not be free'd by the caller + * and not be used afterwards. Use to avoid some redundant allocations. + */ +xkb_atom_t +atom_intern(struct atom_table *table, const char *string, size_t len, + bool steal) +{ + xkb_atom_t *atomp; + struct atom_node node; + unsigned int fingerprint; + + if (!string) + return XKB_ATOM_NONE; + + if (find_atom_pointer(table, string, len, &atomp, &fingerprint)) { + if (steal) + free(UNCONSTIFY(string)); + return *atomp; + } + + if (steal) { + node.string = UNCONSTIFY(string); + } + else { + node.string = strndup(string, len); + if (!node.string) + return XKB_ATOM_NONE; + } + + node.left = node.right = XKB_ATOM_NONE; + node.fingerprint = fingerprint; + node.atom = darray_size(table->table); + /* Do this before the append, as it may realloc and change the offsets. */ + *atomp = node.atom; + darray_append(table->table, node); + + return node.atom; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.h new file mode 100644 index 0000000..1bf8e49 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/atom.h @@ -0,0 +1,49 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef ATOM_H +#define ATOM_H + +typedef uint32_t xkb_atom_t; + +#define XKB_ATOM_NONE 0 + +struct atom_table; + +struct atom_table * +atom_table_new(void); + +void +atom_table_free(struct atom_table *table); + +xkb_atom_t +atom_lookup(struct atom_table *table, const char *string, size_t len); + +xkb_atom_t +atom_intern(struct atom_table *table, const char *string, size_t len, + bool steal); + +const char * +atom_text(struct atom_table *table, xkb_atom_t atom); + +#endif /* ATOM_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c new file mode 100644 index 0000000..95f0fdd --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.c @@ -0,0 +1,759 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +/****************************************************************** + + Copyright 1992 by Oki Technosystems Laboratory, Inc. + Copyright 1992 by Fuji Xerox Co., Ltd. + +Permission to use, copy, modify, distribute, and sell this software +and its documentation for any purpose is hereby granted without fee, +provided that the above copyright notice appear in all copies and +that both that copyright notice and this permission notice appear +in supporting documentation, and that the name of Oki Technosystems +Laboratory and Fuji Xerox not be used in advertising or publicity +pertaining to distribution of the software without specific, written +prior permission. +Oki Technosystems Laboratory and Fuji Xerox make no representations +about the suitability of this software for any purpose. It is provided +"as is" without express or implied warranty. + +OKI TECHNOSYSTEMS LABORATORY AND FUJI XEROX DISCLAIM ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL OKI TECHNOSYSTEMS +LABORATORY AND FUJI XEROX BE LIABLE FOR ANY SPECIAL, INDIRECT OR +CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE +OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE +OR PERFORMANCE OF THIS SOFTWARE. + + Author: Yasuhiro Kawai Oki Technosystems Laboratory + Author: Kazunori Nishihara Fuji Xerox + +******************************************************************/ + +#include + +#include "utils.h" +#include "scanner-utils.h" +#include "table.h" +#include "paths.h" +#include "utf8.h" +#include "parser.h" + +#define MAX_LHS_LEN 10 +#define MAX_INCLUDE_DEPTH 5 + +#define KEYSYM_FROM_NAME_CACHE_SIZE 8 + +/* + * xkb_keysym_from_name() is fairly slow, because for internal reasons + * it must use strcasecmp(). + * A small cache reduces about 20% from the compilation time of + * en_US.UTF-8/Compose. + */ +struct keysym_from_name_cache { + struct { + char name[64]; + unsigned len; + xkb_keysym_t keysym; + } cache[KEYSYM_FROM_NAME_CACHE_SIZE]; + unsigned next; +}; + +static xkb_keysym_t +cached_keysym_from_name(struct keysym_from_name_cache *cache, + const char *name, size_t len) +{ + xkb_keysym_t keysym; + + if (len >= sizeof(cache->cache[0].name)) + return XKB_KEY_NoSymbol; + + for (unsigned i = 0; i < KEYSYM_FROM_NAME_CACHE_SIZE; i++) + if (cache->cache[i].len == len && + memcmp(cache->cache[i].name, name, len) == 0) + return cache->cache[i].keysym; + + keysym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS); + strcpy(cache->cache[cache->next].name, name); + cache->cache[cache->next].len = len; + cache->cache[cache->next].keysym = keysym; + cache->next = (cache->next + 1) % KEYSYM_FROM_NAME_CACHE_SIZE; + return keysym; +} + +/* + * Grammar adapted from libX11/modules/im/ximcp/imLcPrs.c. + * See also the XCompose(5) manpage. + * + * FILE ::= { [PRODUCTION] [COMMENT] "\n" | INCLUDE } + * INCLUDE ::= "include" '"' INCLUDE_STRING '"' + * PRODUCTION ::= LHS ":" RHS [ COMMENT ] + * COMMENT ::= "#" {} + * LHS ::= EVENT { EVENT } + * EVENT ::= [MODIFIER_LIST] "<" keysym ">" + * MODIFIER_LIST ::= ("!" {MODIFIER} ) | "None" + * MODIFIER ::= ["~"] modifier_name + * RHS ::= ( STRING | keysym | STRING keysym ) + * STRING ::= '"' { CHAR } '"' + * CHAR ::= GRAPHIC_CHAR | ESCAPED_CHAR + * GRAPHIC_CHAR ::= locale (codeset) dependent code + * ESCAPED_CHAR ::= ('\\' | '\"' | OCTAL | HEX ) + * OCTAL ::= '\' OCTAL_CHAR [OCTAL_CHAR [OCTAL_CHAR]] + * OCTAL_CHAR ::= (0|1|2|3|4|5|6|7) + * HEX ::= '\' (x|X) HEX_CHAR [HEX_CHAR]] + * HEX_CHAR ::= (0|1|2|3|4|5|6|7|8|9|A|B|C|D|E|F|a|b|c|d|e|f) + * + * INCLUDE_STRING is a filesystem path, with the following %-expansions: + * %% - '%'. + * %H - The user's home directory (the $HOME environment variable). + * %L - The name of the locale specific Compose file (e.g., + * "/usr/share/X11/locale//Compose"). + * %S - The name of the system directory for Compose files (e.g., + * "/usr/share/X11/locale"). + */ + +enum rules_token { + TOK_END_OF_FILE = 0, + TOK_END_OF_LINE, + TOK_INCLUDE, + TOK_INCLUDE_STRING, + TOK_LHS_KEYSYM, + TOK_COLON, + TOK_BANG, + TOK_TILDE, + TOK_STRING, + TOK_IDENT, + TOK_ERROR +}; + +/* Values returned with some tokens, like yylval. */ +union lvalue { + struct { + /* Still \0-terminated. */ + const char *str; + size_t len; + } string; +}; + +static enum rules_token +lex(struct scanner *s, union lvalue *val) +{ +skip_more_whitespace_and_comments: + /* Skip spaces. */ + while (is_space(peek(s))) + if (next(s) == '\n') + return TOK_END_OF_LINE; + + /* Skip comments. */ + if (chr(s, '#')) { + skip_to_eol(s); + goto skip_more_whitespace_and_comments; + } + + /* See if we're done. */ + if (eof(s)) return TOK_END_OF_FILE; + + /* New token. */ + s->token_line = s->line; + s->token_column = s->column; + s->buf_pos = 0; + + /* LHS Keysym. */ + if (chr(s, '<')) { + while (peek(s) != '>' && !eol(s)) + buf_append(s, next(s)); + if (!chr(s, '>')) { + scanner_err(s, "unterminated keysym literal"); + return TOK_ERROR; + } + if (!buf_append(s, '\0')) { + scanner_err(s, "keysym literal is too long"); + return TOK_ERROR; + } + val->string.str = s->buf; + val->string.len = s->buf_pos; + return TOK_LHS_KEYSYM; + } + + /* Colon. */ + if (chr(s, ':')) + return TOK_COLON; + if (chr(s, '!')) + return TOK_BANG; + if (chr(s, '~')) + return TOK_TILDE; + + /* String literal. */ + if (chr(s, '\"')) { + while (!eof(s) && !eol(s) && peek(s) != '\"') { + if (chr(s, '\\')) { + uint8_t o; + if (chr(s, '\\')) { + buf_append(s, '\\'); + } + else if (chr(s, '"')) { + buf_append(s, '"'); + } + else if (chr(s, 'x') || chr(s, 'X')) { + if (hex(s, &o)) + buf_append(s, (char) o); + else + scanner_warn(s, "illegal hexadecimal escape sequence in string literal"); + } + else if (oct(s, &o)) { + buf_append(s, (char) o); + } + else { + scanner_warn(s, "unknown escape sequence (%c) in string literal", peek(s)); + /* Ignore. */ + } + } else { + buf_append(s, next(s)); + } + } + if (!chr(s, '\"')) { + scanner_err(s, "unterminated string literal"); + return TOK_ERROR; + } + if (!buf_append(s, '\0')) { + scanner_err(s, "string literal is too long"); + return TOK_ERROR; + } + if (!is_valid_utf8(s->buf, s->buf_pos - 1)) { + scanner_err(s, "string literal is not a valid UTF-8 string"); + return TOK_ERROR; + } + val->string.str = s->buf; + val->string.len = s->buf_pos; + return TOK_STRING; + } + + /* Identifier or include. */ + if (is_alpha(peek(s)) || peek(s) == '_') { + s->buf_pos = 0; + while (is_alnum(peek(s)) || peek(s) == '_') + buf_append(s, next(s)); + if (!buf_append(s, '\0')) { + scanner_err(s, "identifier is too long"); + return TOK_ERROR; + } + + if (streq(s->buf, "include")) + return TOK_INCLUDE; + + val->string.str = s->buf; + val->string.len = s->buf_pos; + return TOK_IDENT; + } + + /* Discard rest of line. */ + skip_to_eol(s); + + scanner_err(s, "unrecognized token"); + return TOK_ERROR; +} + +static enum rules_token +lex_include_string(struct scanner *s, struct xkb_compose_table *table, + union lvalue *val_out) +{ + while (is_space(peek(s))) + if (next(s) == '\n') + return TOK_END_OF_LINE; + + s->token_line = s->line; + s->token_column = s->column; + s->buf_pos = 0; + + if (!chr(s, '\"')) { + scanner_err(s, "include statement must be followed by a path"); + return TOK_ERROR; + } + + while (!eof(s) && !eol(s) && peek(s) != '\"') { + if (chr(s, '%')) { + if (chr(s, '%')) { + buf_append(s, '%'); + } + else if (chr(s, 'H')) { + const char *home = secure_getenv("HOME"); + if (!home) { + scanner_err(s, "%%H was used in an include statement, but the HOME environment variable is not set"); + return TOK_ERROR; + } + if (!buf_appends(s, home)) { + scanner_err(s, "include path after expanding %%H is too long"); + return TOK_ERROR; + } + } + else if (chr(s, 'L')) { + char *path = get_locale_compose_file_path(table->locale); + if (!path) { + scanner_err(s, "failed to expand %%L to the locale Compose file"); + return TOK_ERROR; + } + if (!buf_appends(s, path)) { + free(path); + scanner_err(s, "include path after expanding %%L is too long"); + return TOK_ERROR; + } + free(path); + } + else if (chr(s, 'S')) { + const char *xlocaledir = get_xlocaledir_path(); + if (!buf_appends(s, xlocaledir)) { + scanner_err(s, "include path after expanding %%S is too long"); + return TOK_ERROR; + } + } + else { + scanner_err(s, "unknown %% format (%c) in include statement", peek(s)); + return TOK_ERROR; + } + } else { + buf_append(s, next(s)); + } + } + if (!chr(s, '\"')) { + scanner_err(s, "unterminated include statement"); + return TOK_ERROR; + } + if (!buf_append(s, '\0')) { + scanner_err(s, "include path is too long"); + return TOK_ERROR; + } + val_out->string.str = s->buf; + val_out->string.len = s->buf_pos; + return TOK_INCLUDE_STRING; +} + +struct production { + xkb_keysym_t lhs[MAX_LHS_LEN]; + unsigned int len; + xkb_keysym_t keysym; + char string[256]; + bool has_keysym; + bool has_string; + + xkb_mod_mask_t mods; + xkb_mod_mask_t modmask; +}; + +static uint32_t +add_node(struct xkb_compose_table *table, xkb_keysym_t keysym) +{ + struct compose_node new = { + .keysym = keysym, + .next = 0, + .is_leaf = true, + }; + darray_append(table->nodes, new); + return darray_size(table->nodes) - 1; +} + +static void +add_production(struct xkb_compose_table *table, struct scanner *s, + const struct production *production) +{ + unsigned lhs_pos; + uint32_t curr; + struct compose_node *node; + + curr = 0; + node = &darray_item(table->nodes, curr); + + /* + * Insert the sequence to the trie, creating new nodes as needed. + * + * TODO: This can be sped up a bit by first trying the path that the + * previous production took, and only then doing the linear search + * through the trie levels. This will work because sequences in the + * Compose files are often clustered by a common prefix; especially + * in the 1st and 2nd keysyms, which is where the largest variation + * (thus, longest search) is. + */ + for (lhs_pos = 0; lhs_pos < production->len; lhs_pos++) { + while (production->lhs[lhs_pos] != node->keysym) { + if (node->next == 0) { + uint32_t next = add_node(table, production->lhs[lhs_pos]); + /* Refetch since add_node could have realloc()ed. */ + node = &darray_item(table->nodes, curr); + node->next = next; + } + + curr = node->next; + node = &darray_item(table->nodes, curr); + } + + if (lhs_pos + 1 == production->len) + break; + + if (node->is_leaf) { + if (node->u.leaf.utf8 != 0 || + node->u.leaf.keysym != XKB_KEY_NoSymbol) { + scanner_warn(s, "a sequence already exists which is a prefix of this sequence; overriding"); + node->u.leaf.utf8 = 0; + node->u.leaf.keysym = XKB_KEY_NoSymbol; + } + + { + uint32_t successor = add_node(table, production->lhs[lhs_pos + 1]); + /* Refetch since add_node could have realloc()ed. */ + node = &darray_item(table->nodes, curr); + node->is_leaf = false; + node->u.successor = successor; + } + } + + curr = node->u.successor; + node = &darray_item(table->nodes, curr); + } + + if (!node->is_leaf) { + scanner_warn(s, "this compose sequence is a prefix of another; skipping line"); + return; + } + + if (node->u.leaf.utf8 != 0 || node->u.leaf.keysym != XKB_KEY_NoSymbol) { + if (streq(&darray_item(table->utf8, node->u.leaf.utf8), + production->string) && + node->u.leaf.keysym == production->keysym) { + scanner_warn(s, "this compose sequence is a duplicate of another; skipping line"); + return; + } + scanner_warn(s, "this compose sequence already exists; overriding"); + } + + if (production->has_string) { + node->u.leaf.utf8 = darray_size(table->utf8); + darray_append_items(table->utf8, production->string, + strlen(production->string) + 1); + } + if (production->has_keysym) { + node->u.leaf.keysym = production->keysym; + } +} + +static xkb_mod_index_t +resolve_modifier(const char *name) +{ + static const struct { + const char *name; + xkb_mod_index_t mod; + } mods[] = { + { "Shift", 0 }, + { "Ctrl", 2 }, + { "Alt", 3 }, + { "Meta", 3 }, + { "Lock", 1 }, + { "Caps", 1 }, + }; + + for (unsigned i = 0; i < ARRAY_SIZE(mods); i++) + if (streq(name, mods[i].name)) + return mods[i].mod; + + return XKB_MOD_INVALID; +} + +static bool +parse(struct xkb_compose_table *table, struct scanner *s, + unsigned include_depth); + +static bool +do_include(struct xkb_compose_table *table, struct scanner *s, + const char *path, unsigned include_depth) +{ + FILE *file; + bool ok; + const char *string; + size_t size; + struct scanner new_s; + + if (include_depth >= MAX_INCLUDE_DEPTH) { + scanner_err(s, "maximum include depth (%d) exceeded; maybe there is an include loop?", + MAX_INCLUDE_DEPTH); + return false; + } + + file = fopen(path, "r"); + if (!file) { + scanner_err(s, "failed to open included Compose file \"%s\": %s", + path, strerror(errno)); + return false; + } + + ok = map_file(file, &string, &size); + if (!ok) { + scanner_err(s, "failed to read included Compose file \"%s\": %s", + path, strerror(errno)); + goto err_file; + } + + scanner_init(&new_s, table->ctx, string, size, path, s->priv); + + ok = parse(table, &new_s, include_depth + 1); + if (!ok) + goto err_unmap; + +err_unmap: + unmap_file(string, size); +err_file: + fclose(file); + return ok; +} + +static bool +parse(struct xkb_compose_table *table, struct scanner *s, + unsigned include_depth) +{ + enum rules_token tok; + union lvalue val; + struct keysym_from_name_cache *cache = s->priv; + xkb_keysym_t keysym; + struct production production; + enum { MAX_ERRORS = 10 }; + int num_errors = 0; + +initial: + production.len = 0; + production.has_keysym = false; + production.has_string = false; + production.mods = 0; + production.modmask = 0; + + /* fallthrough */ + +initial_eol: + switch (tok = lex(s, &val)) { + case TOK_END_OF_LINE: + goto initial_eol; + case TOK_END_OF_FILE: + goto finished; + case TOK_INCLUDE: + goto include; + default: + goto lhs_tok; + } + +include: + switch (tok = lex_include_string(s, table, &val)) { + case TOK_INCLUDE_STRING: + goto include_eol; + default: + goto unexpected; + } + +include_eol: + switch (tok = lex(s, &val)) { + case TOK_END_OF_LINE: + if (!do_include(table, s, val.string.str, include_depth)) + goto fail; + goto initial; + default: + goto unexpected; + } + +lhs: + tok = lex(s, &val); +lhs_tok: + switch (tok) { + case TOK_COLON: + if (production.len <= 0) { + scanner_warn(s, "expected at least one keysym on left-hand side; skipping line"); + goto skip; + } + goto rhs; + case TOK_IDENT: + if (!streq(val.string.str, "None")) { + scanner_err(s, "unrecognized identifier \"%s\"", val.string.str); + goto error; + } + production.mods = 0; + /* XXX Should only include the mods in resolve_mods(). */ + production.modmask = 0xff; + goto lhs_keysym; + case TOK_BANG: + goto lhs_mod_list; + default: + goto lhs_keysym_tok; + } + +lhs_keysym: + tok = lex(s, &val); +lhs_keysym_tok: + switch (tok) { + case TOK_LHS_KEYSYM: + keysym = cached_keysym_from_name(cache, val.string.str, val.string.len); + if (keysym == XKB_KEY_NoSymbol) { + scanner_err(s, "unrecognized keysym \"%s\" on left-hand side", + val.string.str); + goto error; + } + if (production.len + 1 > MAX_LHS_LEN) { + scanner_warn(s, "too many keysyms (%d) on left-hand side; skipping line", + MAX_LHS_LEN + 1); + goto skip; + } + production.lhs[production.len++] = keysym; + production.mods = 0; + production.modmask = 0; + goto lhs; + default: + goto unexpected; + } + +lhs_mod_list: { + bool tilde = false; + xkb_mod_index_t mod; + + tok = lex(s, &val); + if (tok == TOK_TILDE) { + tilde = true; + tok = lex(s, &val); + } + + if (tok != TOK_IDENT) { + if (tilde || production.modmask == 0) + goto unexpected; + goto lhs_keysym_tok; + } + + mod = resolve_modifier(val.string.str); + if (mod == XKB_MOD_INVALID) { + scanner_err(s, "unrecognized modifier \"%s\"", + val.string.str); + goto error; + } + + production.modmask |= 1 << mod; + if (tilde) + production.mods &= ~(1 << mod); + else + production.mods |= 1 << mod; + + goto lhs_mod_list; + } + +rhs: + switch (tok = lex(s, &val)) { + case TOK_STRING: + if (production.has_string) { + scanner_warn(s, "right-hand side can have at most one string; skipping line"); + goto skip; + } + if (val.string.len <= 0) { + scanner_warn(s, "right-hand side string must not be empty; skipping line"); + goto skip; + } + if (val.string.len >= sizeof(production.string)) { + scanner_warn(s, "right-hand side string is too long; skipping line"); + goto skip; + } + strcpy(production.string, val.string.str); + production.has_string = true; + goto rhs; + case TOK_IDENT: + keysym = cached_keysym_from_name(cache, val.string.str, val.string.len); + if (keysym == XKB_KEY_NoSymbol) { + scanner_err(s, "unrecognized keysym \"%s\" on right-hand side", + val.string.str); + goto error; + } + if (production.has_keysym) { + scanner_warn(s, "right-hand side can have at most one keysym; skipping line"); + goto skip; + } + production.keysym = keysym; + production.has_keysym = true; + case TOK_END_OF_LINE: + if (!production.has_string && !production.has_keysym) { + scanner_warn(s, "right-hand side must have at least one of string or keysym; skipping line"); + goto skip; + } + add_production(table, s, &production); + goto initial; + default: + goto unexpected; + } + +unexpected: + if (tok != TOK_ERROR) + scanner_err(s, "unexpected token"); +error: + num_errors++; + if (num_errors <= MAX_ERRORS) + goto skip; + + scanner_err(s, "too many errors"); + goto fail; + +fail: + scanner_err(s, "failed to parse file"); + return false; + +skip: + while (tok != TOK_END_OF_LINE && tok != TOK_END_OF_FILE) + tok = lex(s, &val); + goto initial; + +finished: + return true; +} + +bool +parse_string(struct xkb_compose_table *table, const char *string, size_t len, + const char *file_name) +{ + struct scanner s; + struct keysym_from_name_cache cache; + memset(&cache, 0, sizeof(cache)); + scanner_init(&s, table->ctx, string, len, file_name, &cache); + if (!parse(table, &s, 0)) + return false; + /* Maybe the allocator can use the excess space. */ + darray_shrink(table->nodes); + darray_shrink(table->utf8); + return true; +} + +bool +parse_file(struct xkb_compose_table *table, FILE *file, const char *file_name) +{ + bool ok; + const char *string; + size_t size; + + ok = map_file(file, &string, &size); + if (!ok) { + log_err(table->ctx, "Couldn't read Compose file %s: %s\n", + file_name, strerror(errno)); + return false; + } + + ok = parse_string(table, string, size, file_name); + unmap_file(string, size); + return ok; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.h new file mode 100644 index 0000000..3f64a07 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/parser.h @@ -0,0 +1,36 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef COMPOSE_PARSER_H +#define COMPOSE_PARSER_H + +bool +parse_string(struct xkb_compose_table *table, + const char *string, size_t len, + const char *file_name); + +bool +parse_file(struct xkb_compose_table *table, + FILE *file, const char *file_name); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c new file mode 100644 index 0000000..8deb1dd --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.c @@ -0,0 +1,204 @@ +/* + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "utils.h" +#include "paths.h" + +enum resolve_name_direction { + LEFT_TO_RIGHT, + RIGHT_TO_LEFT, +}; + +const char * +get_xlocaledir_path(void) +{ + const char *dir = secure_getenv("XLOCALEDIR"); + if (!dir) + dir = XLOCALEDIR; + return dir; +} + +/* + * Files like compose.dir have the format LEFT: RIGHT. Lookup @name in + * such a file and return its matching value, according to @direction. + * @filename is relative to the xlocaledir. + */ +static char * +resolve_name(const char *filename, enum resolve_name_direction direction, + const char *name) +{ + int ret; + bool ok; + const char *xlocaledir; + char path[512]; + FILE *file; + const char *string, *end; + size_t string_size; + const char *s, *left, *right; + char *match; + size_t left_len, right_len, name_len; + + xlocaledir = get_xlocaledir_path(); + + ret = snprintf(path, sizeof(path), "%s/%s", xlocaledir, filename); + if (ret < 0 || (size_t) ret >= sizeof(path)) + return false; + + file = fopen(path, "r"); + if (!file) + return false; + + ok = map_file(file, &string, &string_size); + fclose(file); + if (!ok) + return false; + + s = string; + end = string + string_size; + name_len = strlen(name); + match = NULL; + + while (s < end) { + /* Skip spaces. */ + while (s < end && is_space(*s)) + s++; + + /* Skip comments. */ + if (s < end && *s == '#') { + while (s < end && *s != '\n') + s++; + continue; + } + + /* Get the left value. */ + left = s; + while (s < end && !is_space(*s) && *s != ':') + s++; + left_len = s - left; + + /* There's an optional colon between left and right. */ + if (s < end && *s == ':') + s++; + + /* Skip spaces. */ + while (s < end && is_space(*s)) + s++; + + /* Get the right value. */ + right = s; + while (s < end && !is_space(*s)) + s++; + right_len = s - right; + + /* Discard rest of line. */ + while (s < end && *s != '\n') + s++; + + if (direction == LEFT_TO_RIGHT) { + if (left_len == name_len && memcmp(left, name, left_len) == 0) { + match = strndup(right, right_len); + break; + } + } + else if (direction == RIGHT_TO_LEFT) { + if (right_len == name_len && memcmp(right, name, right_len) == 0) { + match = strndup(left, left_len); + break; + } + } + } + + unmap_file(string, string_size); + return match; +} + +char * +resolve_locale(const char *locale) +{ + char *alias = resolve_name("locale.alias", LEFT_TO_RIGHT, locale); + return alias ? alias : strdup(locale); +} + +const char * +get_xcomposefile_path(void) +{ + return secure_getenv("XCOMPOSEFILE"); +} + +char * +get_home_xcompose_file_path(void) +{ + int ret; + const char *home; + char *path; + + home = secure_getenv("HOME"); + if (!home) + return NULL; + + ret = asprintf(&path, "%s/.XCompose", home); + if (ret <0) + return NULL; + + return path; +} + +char * +get_locale_compose_file_path(const char *locale) +{ + int ret; + const char *xlocaledir; + char *resolved; + char *path; + + /* + * WARNING: Random workaround ahead. + * + * We currently do not support non-UTF-8 Compose files. The C/POSIX + * locale is specified to be the default fallback locale with an + * ASCII charset. But for some reason the compose.dir points the C + * locale to the iso8859-1/Compose file, which is not ASCII but + * ISO8859-1. Since this is bound to happen a lot, and since our API + * is UTF-8 based, and since 99% of the time a C locale is really just + * a misconfiguration for UTF-8, let's do the most helpful thing. + */ + if (streq(locale, "C")) + locale = "en_US.UTF-8"; + + resolved = resolve_name("compose.dir", RIGHT_TO_LEFT, locale); + if (!resolved) + return NULL; + + if (resolved[0] == '/') { + path = resolved; + } + else { + xlocaledir = get_xlocaledir_path(); + ret = asprintf(&path, "%s/%s", xlocaledir, resolved); + free(resolved); + if (ret < 0) + return NULL; + } + + return path; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.h new file mode 100644 index 0000000..1d719af --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/paths.h @@ -0,0 +1,42 @@ +/* + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef COMPOSE_RESOLVE_H +#define COMPOSE_RESOLVE_H + +char * +resolve_locale(const char *locale); + +const char * +get_xlocaledir_path(void); + +const char * +get_xcomposefile_path(void); + +char * +get_home_xcompose_file_path(void); + +char * +get_locale_compose_file_path(const char *locale); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c new file mode 100644 index 0000000..8657ff7 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/state.c @@ -0,0 +1,196 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "table.h" +#include "utils.h" +#include "keysym.h" + +struct xkb_compose_state { + int refcnt; + enum xkb_compose_state_flags flags; + struct xkb_compose_table *table; + + /* + * Offsets into xkb_compose_table::nodes. + * + * They maintain the current and previous position in the trie; see + * xkb_compose_state_feed(). + * + * This is also sufficient for inferring the current status; see + * xkb_compose_state_get_status(). + */ + uint32_t prev_context; + uint32_t context; +}; + +XKB_EXPORT struct xkb_compose_state * +xkb_compose_state_new(struct xkb_compose_table *table, + enum xkb_compose_state_flags flags) +{ + struct xkb_compose_state *state; + + state = calloc(1, sizeof(*state)); + if (!state) + return NULL; + + state->refcnt = 1; + state->table = xkb_compose_table_ref(table); + + state->flags = flags; + state->prev_context = 0; + state->context = 0; + + return state; +} + +XKB_EXPORT struct xkb_compose_state * +xkb_compose_state_ref(struct xkb_compose_state *state) +{ + state->refcnt++; + return state; +} + +XKB_EXPORT void +xkb_compose_state_unref(struct xkb_compose_state *state) +{ + if (!state || --state->refcnt > 0) + return; + + xkb_compose_table_unref(state->table); + free(state); +} + +XKB_EXPORT struct xkb_compose_table * +xkb_compose_state_get_compose_table(struct xkb_compose_state *state) +{ + return state->table; +} + +XKB_EXPORT enum xkb_compose_feed_result +xkb_compose_state_feed(struct xkb_compose_state *state, xkb_keysym_t keysym) +{ + uint32_t context; + const struct compose_node *node; + + /* + * Modifiers do not affect the sequence directly. In particular, + * they do not cancel a sequence; otherwise it'd be impossible to + * have a sequence like (needs Shift in the middle). + * + * The following test is not really accurate - in order to test if + * a key is "modifier key", we really need the keymap, but we don't + * have it here. However, this is (approximately) what libX11 does + * as well. + */ + if (xkb_keysym_is_modifier(keysym)) + return XKB_COMPOSE_FEED_IGNORED; + + node = &darray_item(state->table->nodes, state->context); + + context = (node->is_leaf ? 0 : node->u.successor); + node = &darray_item(state->table->nodes, context); + + while (node->keysym != keysym && node->next != 0) { + context = node->next; + node = &darray_item(state->table->nodes, context); + } + + if (node->keysym != keysym) + context = 0; + + state->prev_context = state->context; + state->context = context; + return XKB_COMPOSE_FEED_ACCEPTED; +} + +XKB_EXPORT void +xkb_compose_state_reset(struct xkb_compose_state *state) +{ + state->prev_context = 0; + state->context = 0; +} + +XKB_EXPORT enum xkb_compose_status +xkb_compose_state_get_status(struct xkb_compose_state *state) +{ + const struct compose_node *prev_node, *node; + + prev_node = &darray_item(state->table->nodes, state->prev_context); + node = &darray_item(state->table->nodes, state->context); + + if (state->context == 0 && !prev_node->is_leaf) + return XKB_COMPOSE_CANCELLED; + + if (state->context == 0) + return XKB_COMPOSE_NOTHING; + + if (!node->is_leaf) + return XKB_COMPOSE_COMPOSING; + + return XKB_COMPOSE_COMPOSED; +} + +XKB_EXPORT int +xkb_compose_state_get_utf8(struct xkb_compose_state *state, + char *buffer, size_t size) +{ + const struct compose_node *node = + &darray_item(state->table->nodes, state->context); + + if (!node->is_leaf) + goto fail; + + /* If there's no string specified, but only a keysym, try to do the + * most helpful thing. */ + if (node->u.leaf.utf8 == 0 && node->u.leaf.keysym != XKB_KEY_NoSymbol) { + char name[64]; + int ret; + + ret = xkb_keysym_to_utf8(node->u.leaf.keysym, name, sizeof(name)); + if (ret < 0 || ret == 0) { + /* ret < 0 is impossible. + * ret == 0 means the keysym has no string representation. */ + goto fail; + } + + return snprintf(buffer, size, "%s", name); + } + + return snprintf(buffer, size, "%s", + &darray_item(state->table->utf8, node->u.leaf.utf8)); + +fail: + if (size > 0) + buffer[0] = '\0'; + return 0; +} + +XKB_EXPORT xkb_keysym_t +xkb_compose_state_get_one_sym(struct xkb_compose_state *state) +{ + const struct compose_node *node = + &darray_item(state->table->nodes, state->context); + if (!node->is_leaf) + return XKB_KEY_NoSymbol; + return node->u.leaf.keysym; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c new file mode 100644 index 0000000..5cd8415 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.c @@ -0,0 +1,219 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "utils.h" +#include "table.h" +#include "parser.h" +#include "paths.h" + +static struct xkb_compose_table * +xkb_compose_table_new(struct xkb_context *ctx, + const char *locale, + enum xkb_compose_format format, + enum xkb_compose_compile_flags flags) +{ + char *resolved_locale; + struct xkb_compose_table *table; + struct compose_node root; + + resolved_locale = resolve_locale(locale); + if (!resolved_locale) + return NULL; + + table = calloc(1, sizeof(*table)); + if (!table) { + free(resolved_locale); + return NULL; + } + + table->refcnt = 1; + table->ctx = xkb_context_ref(ctx); + + table->locale = resolved_locale; + table->format = format; + table->flags = flags; + + darray_init(table->nodes); + darray_init(table->utf8); + + root.keysym = XKB_KEY_NoSymbol; + root.next = 0; + root.is_leaf = true; + root.u.leaf.utf8 = 0; + root.u.leaf.keysym = XKB_KEY_NoSymbol; + darray_append(table->nodes, root); + + darray_append(table->utf8, '\0'); + + return table; +} + +XKB_EXPORT struct xkb_compose_table * +xkb_compose_table_ref(struct xkb_compose_table *table) +{ + table->refcnt++; + return table; +} + +XKB_EXPORT void +xkb_compose_table_unref(struct xkb_compose_table *table) +{ + if (!table || --table->refcnt > 0) + return; + free(table->locale); + darray_free(table->nodes); + darray_free(table->utf8); + xkb_context_unref(table->ctx); + free(table); +} + +XKB_EXPORT struct xkb_compose_table * +xkb_compose_table_new_from_file(struct xkb_context *ctx, + FILE *file, + const char *locale, + enum xkb_compose_format format, + enum xkb_compose_compile_flags flags) +{ + struct xkb_compose_table *table; + bool ok; + + if (flags & ~(XKB_COMPOSE_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + if (format != XKB_COMPOSE_FORMAT_TEXT_V1) { + log_err_func(ctx, "unsupported compose format: %d\n", format); + return NULL; + } + + table = xkb_compose_table_new(ctx, locale, format, flags); + if (!table) + return NULL; + + ok = parse_file(table, file, "(unknown file)"); + if (!ok) { + xkb_compose_table_unref(table); + return NULL; + } + + return table; +} + +XKB_EXPORT struct xkb_compose_table * +xkb_compose_table_new_from_buffer(struct xkb_context *ctx, + const char *buffer, size_t length, + const char *locale, + enum xkb_compose_format format, + enum xkb_compose_compile_flags flags) +{ + struct xkb_compose_table *table; + bool ok; + + if (flags & ~(XKB_COMPOSE_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + if (format != XKB_COMPOSE_FORMAT_TEXT_V1) { + log_err_func(ctx, "unsupported compose format: %d\n", format); + return NULL; + } + + table = xkb_compose_table_new(ctx, locale, format, flags); + if (!table) + return NULL; + + ok = parse_string(table, buffer, length, "(input string)"); + if (!ok) { + xkb_compose_table_unref(table); + return NULL; + } + + return table; +} + +XKB_EXPORT struct xkb_compose_table * +xkb_compose_table_new_from_locale(struct xkb_context *ctx, + const char *locale, + enum xkb_compose_compile_flags flags) +{ + struct xkb_compose_table *table; + char *path = NULL; + const char *cpath; + FILE *file; + bool ok; + + if (flags & ~(XKB_COMPOSE_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + table = xkb_compose_table_new(ctx, locale, XKB_COMPOSE_FORMAT_TEXT_V1, + flags); + if (!table) + return NULL; + + cpath = get_xcomposefile_path(); + if (cpath) { + file = fopen(cpath, "r"); + if (file) + goto found_path; + } + + cpath = path = get_home_xcompose_file_path(); + if (path) { + file = fopen(path, "r"); + if (file) + goto found_path; + } + free(path); + path = NULL; + + cpath = path = get_locale_compose_file_path(table->locale); + if (path) { + file = fopen(path, "r"); + if (file) + goto found_path; + } + free(path); + path = NULL; + + log_err(ctx, "couldn't find a Compose file for locale \"%s\"\n", locale); + xkb_compose_table_unref(table); + return NULL; + +found_path: + ok = parse_file(table, file, cpath); + fclose(file); + if (!ok) { + xkb_compose_table_unref(table); + return NULL; + } + + log_dbg(ctx, "created compose table from locale %s with path %s\n", + table->locale, path); + + free(path); + return table; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.h new file mode 100644 index 0000000..05a415f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/compose/table.h @@ -0,0 +1,100 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef COMPOSE_COMPOSE_H +#define COMPOSE_COMPOSE_H + +#include "xkbcommon/xkbcommon-compose.h" +#include "utils.h" +#include "context.h" + +/* + * The compose table data structure is a simple trie. An example will + * help. Given these sequences: + * + * : "first" dead_a + * : "second" dead_b + * : "third" dead_c + * + * the trie would look like: + * + * [root] ---> [] -----------------> [] -# + * | | | + * # v v + * [] ---> [] -# [] -# + * | | - + * # v # + * [] -# + * | + * # + * where: + * - [root] is a special empty root node. + * - [] is a node for a sequence keysym . + * - right arrows are `next` pointers. + * - down arrows are `successor` pointers. + * - # is a nil pointer. + * + * The nodes are all kept in a contiguous array. Pointers are represented + * as integer offsets into this array. A nil pointer is represented as 0 + * (which, helpfully, is the offset of the empty root node). + * + * Nodes without a successor are leaf nodes. Since a sequence cannot be a + * prefix of another, these are exactly the nodes which terminate the + * sequences (in a bijective manner). + * + * A leaf contains the result data of its sequence. The result keysym is + * contained in the node struct itself; the result UTF-8 string is a byte + * offset into an array of the form "\0first\0second\0third" (the initial + * \0 is so offset 0 points to an empty string). + */ + +struct compose_node { + xkb_keysym_t keysym; + /* Offset into xkb_compose_table::nodes. */ + unsigned int next:31; + bool is_leaf:1; + + union { + /* Offset into xkb_compose_table::nodes. */ + uint32_t successor; + struct { + /* Offset into xkb_compose_table::utf8. */ + uint32_t utf8; + xkb_keysym_t keysym; + } leaf; + } u; +}; + +struct xkb_compose_table { + int refcnt; + enum xkb_compose_format format; + enum xkb_compose_compile_flags flags; + struct xkb_context *ctx; + + char *locale; + + darray_char utf8; + darray(struct compose_node) nodes; +}; + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c new file mode 100644 index 0000000..c934201 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/context-priv.c @@ -0,0 +1,190 @@ +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include +#include +#include +#include + +#include "xkbcommon/xkbcommon.h" +#include "utils.h" +#include "context.h" + +unsigned int +xkb_context_num_failed_include_paths(struct xkb_context *ctx) +{ + return darray_size(ctx->failed_includes); +} + +const char * +xkb_context_failed_include_path_get(struct xkb_context *ctx, + unsigned int idx) +{ + if (idx >= xkb_context_num_failed_include_paths(ctx)) + return NULL; + + return darray_item(ctx->failed_includes, idx); +} + +xkb_atom_t +xkb_atom_lookup(struct xkb_context *ctx, const char *string) +{ + return atom_lookup(ctx->atom_table, string, strlen(string)); +} + +xkb_atom_t +xkb_atom_intern(struct xkb_context *ctx, const char *string, size_t len) +{ + return atom_intern(ctx->atom_table, string, len, false); +} + +xkb_atom_t +xkb_atom_steal(struct xkb_context *ctx, char *string) +{ + return atom_intern(ctx->atom_table, string, strlen(string), true); +} + +const char * +xkb_atom_text(struct xkb_context *ctx, xkb_atom_t atom) +{ + return atom_text(ctx->atom_table, atom); +} + +void +xkb_log(struct xkb_context *ctx, enum xkb_log_level level, int verbosity, + const char *fmt, ...) +{ + va_list args; + + if (ctx->log_level < level || ctx->log_verbosity < verbosity) + return; + + va_start(args, fmt); + ctx->log_fn(ctx, level, fmt, args); + va_end(args); +} + +char * +xkb_context_get_buffer(struct xkb_context *ctx, size_t size) +{ + char *rtrn; + + if (size >= sizeof(ctx->text_buffer)) + return NULL; + + if (sizeof(ctx->text_buffer) - ctx->text_next <= size) + ctx->text_next = 0; + + rtrn = &ctx->text_buffer[ctx->text_next]; + ctx->text_next += size; + + return rtrn; +} + +#ifndef DEFAULT_XKB_VARIANT +#define DEFAULT_XKB_VARIANT NULL +#endif + +#ifndef DEFAULT_XKB_OPTIONS +#define DEFAULT_XKB_OPTIONS NULL +#endif + +static const char * +xkb_context_get_default_rules(struct xkb_context *ctx) +{ + const char *env = NULL; + + if (ctx->use_environment_names) + env = secure_getenv("XKB_DEFAULT_RULES"); + + return env ? env : DEFAULT_XKB_RULES; +} + +static const char * +xkb_context_get_default_model(struct xkb_context *ctx) +{ + const char *env = NULL; + + if (ctx->use_environment_names) + env = secure_getenv("XKB_DEFAULT_MODEL"); + + return env ? env : DEFAULT_XKB_MODEL; +} + +static const char * +xkb_context_get_default_layout(struct xkb_context *ctx) +{ + const char *env = NULL; + + if (ctx->use_environment_names) + env = secure_getenv("XKB_DEFAULT_LAYOUT"); + + return env ? env : DEFAULT_XKB_LAYOUT; +} + +static const char * +xkb_context_get_default_variant(struct xkb_context *ctx) +{ + const char *env = NULL; + const char *layout = secure_getenv("XKB_DEFAULT_LAYOUT"); + + /* We don't want to inherit the variant if they haven't also set a + * layout, since they're so closely paired. */ + if (layout && ctx->use_environment_names) + env = secure_getenv("XKB_DEFAULT_VARIANT"); + + return env ? env : DEFAULT_XKB_VARIANT; +} + +static const char * +xkb_context_get_default_options(struct xkb_context *ctx) +{ + const char *env = NULL; + + if (ctx->use_environment_names) + env = secure_getenv("XKB_DEFAULT_OPTIONS"); + + return env ? env : DEFAULT_XKB_OPTIONS; +} + +void +xkb_context_sanitize_rule_names(struct xkb_context *ctx, + struct xkb_rule_names *rmlvo) +{ + if (isempty(rmlvo->rules)) + rmlvo->rules = xkb_context_get_default_rules(ctx); + if (isempty(rmlvo->model)) + rmlvo->model = xkb_context_get_default_model(ctx); + /* Layout and variant are tied together, so don't try to use one from + * the caller and one from the environment. */ + if (isempty(rmlvo->layout)) { + rmlvo->layout = xkb_context_get_default_layout(ctx); + rmlvo->variant = xkb_context_get_default_variant(ctx); + } + /* Options can be empty, so respect that if passed in. */ + if (rmlvo->options == NULL) + rmlvo->options = xkb_context_get_default_options(ctx); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c new file mode 100644 index 0000000..e9c52eb --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/context.c @@ -0,0 +1,327 @@ +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include +#include +#include +#include + +#include "xkbcommon/xkbcommon.h" +#include "utils.h" +#include "context.h" + +/** + * Append one directory to the context's include path. + */ +XKB_EXPORT int +xkb_context_include_path_append(struct xkb_context *ctx, const char *path) +{ + struct stat stat_buf; + int err; + char *tmp; + + tmp = strdup(path); + if (!tmp) + goto err; + + err = stat(path, &stat_buf); + if (err != 0) + goto err; + if (!S_ISDIR(stat_buf.st_mode)) + goto err; + +#if defined(HAVE_EACCESS) + if (eaccess(path, R_OK | X_OK) != 0) + goto err; +#elif defined(HAVE_EUIDACCESS) + if (euidaccess(path, R_OK | X_OK) != 0) + goto err; +#endif + + darray_append(ctx->includes, tmp); + return 1; + +err: + darray_append(ctx->failed_includes, tmp); + return 0; +} + +/** + * Append the default include directories to the context. + */ +XKB_EXPORT int +xkb_context_include_path_append_default(struct xkb_context *ctx) +{ + const char *home; + char *user_path; + int err; + int ret = 0; + + ret |= xkb_context_include_path_append(ctx, DFLT_XKB_CONFIG_ROOT); + + home = secure_getenv("HOME"); + if (!home) + return ret; + err = asprintf(&user_path, "%s/.xkb", home); + if (err <= 0) + return ret; + ret |= xkb_context_include_path_append(ctx, user_path); + free(user_path); + + return ret; +} + +/** + * Remove all entries in the context's include path. + */ +XKB_EXPORT void +xkb_context_include_path_clear(struct xkb_context *ctx) +{ + char **path; + + darray_foreach(path, ctx->includes) + free(*path); + darray_free(ctx->includes); + + darray_foreach(path, ctx->failed_includes) + free(*path); + darray_free(ctx->failed_includes); +} + +/** + * xkb_context_include_path_clear() + xkb_context_include_path_append_default() + */ +XKB_EXPORT int +xkb_context_include_path_reset_defaults(struct xkb_context *ctx) +{ + xkb_context_include_path_clear(ctx); + return xkb_context_include_path_append_default(ctx); +} + +/** + * Returns the number of entries in the context's include path. + */ +XKB_EXPORT unsigned int +xkb_context_num_include_paths(struct xkb_context *ctx) +{ + return darray_size(ctx->includes); +} + +/** + * Returns the given entry in the context's include path, or NULL if an + * invalid index is passed. + */ +XKB_EXPORT const char * +xkb_context_include_path_get(struct xkb_context *ctx, unsigned int idx) +{ + if (idx >= xkb_context_num_include_paths(ctx)) + return NULL; + + return darray_item(ctx->includes, idx); +} + +/** + * Take a new reference on the context. + */ +XKB_EXPORT struct xkb_context * +xkb_context_ref(struct xkb_context *ctx) +{ + ctx->refcnt++; + return ctx; +} + +/** + * Drop an existing reference on the context, and free it if the refcnt is + * now 0. + */ +XKB_EXPORT void +xkb_context_unref(struct xkb_context *ctx) +{ + if (!ctx || --ctx->refcnt > 0) + return; + + xkb_context_include_path_clear(ctx); + atom_table_free(ctx->atom_table); + free(ctx); +} + +static const char * +log_level_to_prefix(enum xkb_log_level level) +{ + switch (level) { + case XKB_LOG_LEVEL_DEBUG: + return "xkbcommon: DEBUG: "; + case XKB_LOG_LEVEL_INFO: + return "xkbcommon: INFO: "; + case XKB_LOG_LEVEL_WARNING: + return "xkbcommon: WARNING: "; + case XKB_LOG_LEVEL_ERROR: + return "xkbcommon: ERROR: "; + case XKB_LOG_LEVEL_CRITICAL: + return "xkbcommon: CRITICAL: "; + default: + return NULL; + } +} + +ATTR_PRINTF(3, 0) static void +default_log_fn(struct xkb_context *ctx, enum xkb_log_level level, + const char *fmt, va_list args) +{ + const char *prefix = log_level_to_prefix(level); + + if (prefix) + fprintf(stderr, "%s", prefix); + vfprintf(stderr, fmt, args); +} + +static enum xkb_log_level +log_level(const char *level) { + char *endptr; + enum xkb_log_level lvl; + + errno = 0; + lvl = strtol(level, &endptr, 10); + if (errno == 0 && (endptr[0] == '\0' || is_space(endptr[0]))) + return lvl; + if (istreq_prefix("crit", level)) + return XKB_LOG_LEVEL_CRITICAL; + if (istreq_prefix("err", level)) + return XKB_LOG_LEVEL_ERROR; + if (istreq_prefix("warn", level)) + return XKB_LOG_LEVEL_WARNING; + if (istreq_prefix("info", level)) + return XKB_LOG_LEVEL_INFO; + if (istreq_prefix("debug", level) || istreq_prefix("dbg", level)) + return XKB_LOG_LEVEL_DEBUG; + + return XKB_LOG_LEVEL_ERROR; +} + +static int +log_verbosity(const char *verbosity) { + char *endptr; + int v; + + errno = 0; + v = strtol(verbosity, &endptr, 10); + if (errno == 0) + return v; + + return 0; +} + +/** + * Create a new context. + */ +XKB_EXPORT struct xkb_context * +xkb_context_new(enum xkb_context_flags flags) +{ + const char *env; + struct xkb_context *ctx = calloc(1, sizeof(*ctx)); + + if (!ctx) + return NULL; + + ctx->refcnt = 1; + ctx->log_fn = default_log_fn; + ctx->log_level = XKB_LOG_LEVEL_ERROR; + ctx->log_verbosity = 0; + + /* Environment overwrites defaults. */ + env = secure_getenv("XKB_LOG_LEVEL"); + if (env) + xkb_context_set_log_level(ctx, log_level(env)); + + env = secure_getenv("XKB_LOG_VERBOSITY"); + if (env) + xkb_context_set_log_verbosity(ctx, log_verbosity(env)); + + if (!(flags & XKB_CONTEXT_NO_DEFAULT_INCLUDES) && + !xkb_context_include_path_append_default(ctx)) { + log_err(ctx, "failed to add default include path %s\n", + DFLT_XKB_CONFIG_ROOT); + xkb_context_unref(ctx); + return NULL; + } + + ctx->use_environment_names = !(flags & XKB_CONTEXT_NO_ENVIRONMENT_NAMES); + + ctx->atom_table = atom_table_new(); + if (!ctx->atom_table) { + xkb_context_unref(ctx); + return NULL; + } + + return ctx; +} + +XKB_EXPORT void +xkb_context_set_log_fn(struct xkb_context *ctx, + void (*log_fn)(struct xkb_context *ctx, + enum xkb_log_level level, + const char *fmt, va_list args)) +{ + ctx->log_fn = (log_fn ? log_fn : default_log_fn); +} + +XKB_EXPORT enum xkb_log_level +xkb_context_get_log_level(struct xkb_context *ctx) +{ + return ctx->log_level; +} + +XKB_EXPORT void +xkb_context_set_log_level(struct xkb_context *ctx, enum xkb_log_level level) +{ + ctx->log_level = level; +} + +XKB_EXPORT int +xkb_context_get_log_verbosity(struct xkb_context *ctx) +{ + return ctx->log_verbosity; +} + +XKB_EXPORT void +xkb_context_set_log_verbosity(struct xkb_context *ctx, int verbosity) +{ + ctx->log_verbosity = verbosity; +} + +XKB_EXPORT void * +xkb_context_get_user_data(struct xkb_context *ctx) +{ + if (ctx) + return ctx->user_data; + return NULL; +} + +XKB_EXPORT void +xkb_context_set_user_data(struct xkb_context *ctx, void *user_data) +{ + ctx->user_data = user_data; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/context.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/context.h new file mode 100644 index 0000000..03e6d50 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/context.h @@ -0,0 +1,127 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#ifndef CONTEXT_H +#define CONTEXT_H + +#include "atom.h" + +struct xkb_context { + int refcnt; + + ATTR_PRINTF(3, 0) void (*log_fn)(struct xkb_context *ctx, + enum xkb_log_level level, + const char *fmt, va_list args); + enum xkb_log_level log_level; + int log_verbosity; + void *user_data; + + struct xkb_rule_names names_dflt; + + darray(char *) includes; + darray(char *) failed_includes; + + struct atom_table *atom_table; + + /* Buffer for the *Text() functions. */ + char text_buffer[2048]; + size_t text_next; + + unsigned int use_environment_names : 1; +}; + +unsigned int +xkb_context_num_failed_include_paths(struct xkb_context *ctx); + +const char * +xkb_context_failed_include_path_get(struct xkb_context *ctx, + unsigned int idx); + +/* + * Returns XKB_ATOM_NONE if @string was not previously interned, + * otherwise returns the atom. + */ +xkb_atom_t +xkb_atom_lookup(struct xkb_context *ctx, const char *string); + +xkb_atom_t +xkb_atom_intern(struct xkb_context *ctx, const char *string, size_t len); + +#define xkb_atom_intern_literal(ctx, literal) \ + xkb_atom_intern((ctx), (literal), sizeof(literal) - 1) + +/** + * If @string is dynamically allocated, NUL-terminated, free'd immediately + * after being interned, and not used afterwards, use this function + * instead of xkb_atom_intern to avoid some unnecessary allocations. + * The caller should not use or free the passed in string afterwards. + */ +xkb_atom_t +xkb_atom_steal(struct xkb_context *ctx, char *string); + +const char * +xkb_atom_text(struct xkb_context *ctx, xkb_atom_t atom); + +char * +xkb_context_get_buffer(struct xkb_context *ctx, size_t size); + +ATTR_PRINTF(4, 5) void +xkb_log(struct xkb_context *ctx, enum xkb_log_level level, int verbosity, + const char *fmt, ...); + +void +xkb_context_sanitize_rule_names(struct xkb_context *ctx, + struct xkb_rule_names *rmlvo); + +/* + * The format is not part of the argument list in order to avoid the + * "ISO C99 requires rest arguments to be used" warning when only the + * format is supplied without arguments. Not supplying it would still + * result in an error, though. + */ +#define log_dbg(ctx, ...) \ + xkb_log((ctx), XKB_LOG_LEVEL_DEBUG, 0, __VA_ARGS__) +#define log_info(ctx, ...) \ + xkb_log((ctx), XKB_LOG_LEVEL_INFO, 0, __VA_ARGS__) +#define log_warn(ctx, ...) \ + xkb_log((ctx), XKB_LOG_LEVEL_WARNING, 0, __VA_ARGS__) +#define log_err(ctx, ...) \ + xkb_log((ctx), XKB_LOG_LEVEL_ERROR, 0, __VA_ARGS__) +#define log_wsgo(ctx, ...) \ + xkb_log((ctx), XKB_LOG_LEVEL_CRITICAL, 0, __VA_ARGS__) +#define log_vrb(ctx, vrb, ...) \ + xkb_log((ctx), XKB_LOG_LEVEL_WARNING, (vrb), __VA_ARGS__) + +/* + * Variants which are prefixed by the name of the function they're + * called from. + * Here we must have the silly 1 variant. + */ +#define log_err_func(ctx, fmt, ...) \ + log_err(ctx, "%s: " fmt, __func__, __VA_ARGS__) +#define log_err_func1(ctx, fmt) \ + log_err(ctx, "%s: " fmt, __func__) + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/darray.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/darray.h new file mode 100644 index 0000000..be0319f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/darray.h @@ -0,0 +1,205 @@ +/* + * Copyright (C) 2011 Joseph Adams + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#ifndef CCAN_DARRAY_H +#define CCAN_DARRAY_H + +/* Originally taken from: http://ccodearchive.net/info/darray.html + * But modified for libxkbcommon. */ + +#include +#include +#include +#include + +#define darray(type) struct { type *item; unsigned size; unsigned alloc; } + +#define darray_new() { 0, 0, 0 } + +#define darray_init(arr) do { \ + (arr).item = 0; (arr).size = 0; (arr).alloc = 0; \ +} while (0) + +#define darray_free(arr) do { \ + free((arr).item); \ + darray_init(arr); \ +} while (0) + +#define darray_steal(arr, to, to_size) do { \ + *(to) = (arr).item; \ + if (to_size) \ + *(unsigned int *) (to_size) = (arr).size; \ + darray_init(arr); \ +} while (0) + +/* + * Typedefs for darrays of common types. These are useful + * when you want to pass a pointer to an darray(T) around. + * + * The following will produce an incompatible pointer warning: + * + * void foo(darray(int) *arr); + * darray(int) arr = darray_new(); + * foo(&arr); + * + * The workaround: + * + * void foo(darray_int *arr); + * darray_int arr = darray_new(); + * foo(&arr); + */ + +typedef darray (char) darray_char; +typedef darray (signed char) darray_schar; +typedef darray (unsigned char) darray_uchar; + +typedef darray (short) darray_short; +typedef darray (int) darray_int; +typedef darray (long) darray_long; + +typedef darray (unsigned short) darray_ushort; +typedef darray (unsigned int) darray_uint; +typedef darray (unsigned long) darray_ulong; + +/*** Access ***/ + +#define darray_item(arr, i) ((arr).item[i]) +#define darray_size(arr) ((arr).size) +#define darray_empty(arr) ((arr).size == 0) + +/*** Insertion (single item) ***/ + +#define darray_append(arr, ...) do { \ + darray_resize(arr, (arr).size + 1); \ + (arr).item[(arr).size - 1] = (__VA_ARGS__); \ +} while (0) + +/*** Insertion (multiple items) ***/ + +#define darray_append_items(arr, items, count) do { \ + unsigned __count = (count), __oldSize = (arr).size; \ + darray_resize(arr, __oldSize + __count); \ + memcpy((arr).item + __oldSize, items, __count * sizeof(*(arr).item)); \ +} while (0) + +#define darray_from_items(arr, items, count) do { \ + unsigned __count = (count); \ + darray_resize(arr, __count); \ + memcpy((arr).item, items, __count * sizeof(*(arr).item)); \ +} while (0) + +#define darray_copy(arr_to, arr_from) \ + darray_from_items((arr_to), (arr_from).item, (arr_from).size) + +/*** String buffer ***/ + +#define darray_append_string(arr, str) do { \ + const char *__str = (str); \ + darray_append_items(arr, __str, strlen(__str) + 1); \ + (arr).size--; \ +} while (0) + +#define darray_append_lit(arr, stringLiteral) do { \ + darray_append_items(arr, stringLiteral, sizeof(stringLiteral)); \ + (arr).size--; \ +} while (0) + +#define darray_appends_nullterminate(arr, items, count) do { \ + unsigned __count = (count), __oldSize = (arr).size; \ + darray_resize(arr, __oldSize + __count + 1); \ + memcpy((arr).item + __oldSize, items, __count * sizeof(*(arr).item)); \ + (arr).item[--(arr).size] = 0; \ +} while (0) + +#define darray_prepends_nullterminate(arr, items, count) do { \ + unsigned __count = (count), __oldSize = (arr).size; \ + darray_resize(arr, __count + __oldSize + 1); \ + memmove((arr).item + __count, (arr).item, \ + __oldSize * sizeof(*(arr).item)); \ + memcpy((arr).item, items, __count * sizeof(*(arr).item)); \ + (arr).item[--(arr).size] = 0; \ +} while (0) + +/*** Size management ***/ + +#define darray_resize(arr, newSize) \ + darray_growalloc(arr, (arr).size = (newSize)) + +#define darray_resize0(arr, newSize) do { \ + unsigned __oldSize = (arr).size, __newSize = (newSize); \ + (arr).size = __newSize; \ + if (__newSize > __oldSize) { \ + darray_growalloc(arr, __newSize); \ + memset(&(arr).item[__oldSize], 0, \ + (__newSize - __oldSize) * sizeof(*(arr).item)); \ + } \ +} while (0) + +#define darray_realloc(arr, newAlloc) do { \ + (arr).item = realloc((arr).item, \ + ((arr).alloc = (newAlloc)) * sizeof(*(arr).item)); \ +} while (0) + +#define darray_growalloc(arr, need) do { \ + unsigned __need = (need); \ + if (__need > (arr).alloc) \ + darray_realloc(arr, darray_next_alloc((arr).alloc, __need, \ + sizeof(*(arr).item))); \ +} while (0) + +#define darray_shrink(arr) do { \ + if ((arr).size > 0) \ + (arr).item = realloc((arr).item, \ + ((arr).alloc = (arr).size) * sizeof(*(arr).item)); \ +} while (0) + +static inline unsigned +darray_next_alloc(unsigned alloc, unsigned need, unsigned itemSize) +{ + assert(need < UINT_MAX / itemSize / 2); /* Overflow. */ + if (alloc == 0) + alloc = 4; + while (alloc < need) + alloc *= 2; + return alloc; +} + +/*** Traversal ***/ + +#define darray_foreach(i, arr) \ + for ((i) = &(arr).item[0]; (i) < &(arr).item[(arr).size]; (i)++) + +#define darray_foreach_from(i, arr, from) \ + for ((i) = &(arr).item[from]; (i) < &(arr).item[(arr).size]; (i)++) + +/* Iterate on index and value at the same time, like Python's enumerate. */ +#define darray_enumerate(idx, val, arr) \ + for ((idx) = 0, (val) = &(arr).item[0]; \ + (idx) < (arr).size; \ + (idx)++, (val)++) + +#define darray_enumerate_from(idx, val, arr, from) \ + for ((idx) = (from), (val) = &(arr).item[0]; \ + (idx) < (arr).size; \ + (idx)++, (val)++) + +#endif /* CCAN_DARRAY_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c new file mode 100644 index 0000000..d21dda7 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap-priv.c @@ -0,0 +1,139 @@ +/** + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include "keymap.h" + +static void +update_builtin_keymap_fields(struct xkb_keymap *keymap) +{ + /* Predefined (AKA real, core, X11) modifiers. The order is important! */ + static const char *const builtin_mods[] = { + [0] = "Shift", + [1] = "Lock", + [2] = "Control", + [3] = "Mod1", + [4] = "Mod2", + [5] = "Mod3", + [6] = "Mod4", + [7] = "Mod5" + }; + + for (unsigned i = 0; i < ARRAY_SIZE(builtin_mods); i++) { + keymap->mods.mods[i].name = xkb_atom_intern(keymap->ctx, + builtin_mods[i], + strlen(builtin_mods[i])); + keymap->mods.mods[i].type = MOD_REAL; + } + keymap->mods.num_mods = ARRAY_SIZE(builtin_mods); +} + +struct xkb_keymap * +xkb_keymap_new(struct xkb_context *ctx, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags) +{ + struct xkb_keymap *keymap; + + keymap = calloc(1, sizeof(*keymap)); + if (!keymap) + return NULL; + + keymap->refcnt = 1; + keymap->ctx = xkb_context_ref(ctx); + + keymap->format = format; + keymap->flags = flags; + + update_builtin_keymap_fields(keymap); + + return keymap; +} + +struct xkb_key * +XkbKeyByName(struct xkb_keymap *keymap, xkb_atom_t name, bool use_aliases) +{ + struct xkb_key *key; + + xkb_keys_foreach(key, keymap) + if (key->name == name) + return key; + + if (use_aliases) { + xkb_atom_t new_name = XkbResolveKeyAlias(keymap, name); + if (new_name != XKB_ATOM_NONE) + return XkbKeyByName(keymap, new_name, false); + } + + return NULL; +} + +xkb_atom_t +XkbResolveKeyAlias(const struct xkb_keymap *keymap, xkb_atom_t name) +{ + for (unsigned i = 0; i < keymap->num_key_aliases; i++) + if (keymap->key_aliases[i].alias == name) + return keymap->key_aliases[i].real; + + return XKB_ATOM_NONE; +} + +void +XkbEscapeMapName(char *name) +{ + /* + * All latin-1 alphanumerics, plus parens, slash, minus, underscore and + * wildcards. + */ + static const unsigned char legal[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xff, 0x83, + 0xfe, 0xff, 0xff, 0x87, 0xfe, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0x7f, 0xff + }; + + if (!name) + return; + + while (*name) { + if (!(legal[*name / 8] & (1 << (*name % 8)))) + *name = '_'; + name++; + } +} + +xkb_mod_index_t +XkbModNameToIndex(const struct xkb_mod_set *mods, xkb_atom_t name, + enum mod_type type) +{ + xkb_mod_index_t i; + const struct xkb_mod *mod; + + xkb_mods_enumerate(i, mod, mods) + if ((mod->type & type) && name == mod->name) + return i; + + return XKB_MOD_INVALID; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c new file mode 100644 index 0000000..a9fc9b4 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.c @@ -0,0 +1,485 @@ +/** + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +/************************************************************ + * Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * ********************************************************/ + +#include "keymap.h" +#include "text.h" + +XKB_EXPORT struct xkb_keymap * +xkb_keymap_ref(struct xkb_keymap *keymap) +{ + keymap->refcnt++; + return keymap; +} + +XKB_EXPORT void +xkb_keymap_unref(struct xkb_keymap *keymap) +{ + if (!keymap || --keymap->refcnt > 0) + return; + + if (keymap->keys) { + struct xkb_key *key; + xkb_keys_foreach(key, keymap) { + if (key->groups) { + for (unsigned i = 0; i < key->num_groups; i++) { + if (key->groups[i].levels) { + for (unsigned j = 0; j < XkbKeyNumLevels(key, i); j++) + if (key->groups[i].levels[j].num_syms > 1) + free(key->groups[i].levels[j].u.syms); + free(key->groups[i].levels); + } + } + free(key->groups); + } + } + free(keymap->keys); + } + if (keymap->types) { + for (unsigned i = 0; i < keymap->num_types; i++) { + free(keymap->types[i].entries); + free(keymap->types[i].level_names); + } + free(keymap->types); + } + free(keymap->sym_interprets); + free(keymap->key_aliases); + free(keymap->group_names); + free(keymap->keycodes_section_name); + free(keymap->symbols_section_name); + free(keymap->types_section_name); + free(keymap->compat_section_name); + xkb_context_unref(keymap->ctx); + free(keymap); +} + +static const struct xkb_keymap_format_ops * +get_keymap_format_ops(enum xkb_keymap_format format) +{ + static const struct xkb_keymap_format_ops *keymap_format_ops[] = { + [XKB_KEYMAP_FORMAT_TEXT_V1] = &text_v1_keymap_format_ops, + }; + + if ((int) format < 0 || (int) format >= (int) ARRAY_SIZE(keymap_format_ops)) + return NULL; + + return keymap_format_ops[(int) format]; +} + +XKB_EXPORT struct xkb_keymap * +xkb_keymap_new_from_names(struct xkb_context *ctx, + const struct xkb_rule_names *rmlvo_in, + enum xkb_keymap_compile_flags flags) +{ + struct xkb_keymap *keymap; + struct xkb_rule_names rmlvo; + const enum xkb_keymap_format format = XKB_KEYMAP_FORMAT_TEXT_V1; + const struct xkb_keymap_format_ops *ops; + + ops = get_keymap_format_ops(format); + if (!ops || !ops->keymap_new_from_names) { + log_err_func(ctx, "unsupported keymap format: %d\n", format); + return NULL; + } + + if (flags & ~(XKB_KEYMAP_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + keymap = xkb_keymap_new(ctx, format, flags); + if (!keymap) + return NULL; + + if (rmlvo_in) + rmlvo = *rmlvo_in; + else + memset(&rmlvo, 0, sizeof(rmlvo)); + xkb_context_sanitize_rule_names(ctx, &rmlvo); + + if (!ops->keymap_new_from_names(keymap, &rmlvo)) { + xkb_keymap_unref(keymap); + return NULL; + } + + return keymap; +} + +XKB_EXPORT struct xkb_keymap * +xkb_keymap_new_from_string(struct xkb_context *ctx, + const char *string, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags) +{ + return xkb_keymap_new_from_buffer(ctx, string, strlen(string), + format, flags); +} + +XKB_EXPORT struct xkb_keymap * +xkb_keymap_new_from_buffer(struct xkb_context *ctx, + const char *buffer, size_t length, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags) +{ + struct xkb_keymap *keymap; + const struct xkb_keymap_format_ops *ops; + + ops = get_keymap_format_ops(format); + if (!ops || !ops->keymap_new_from_string) { + log_err_func(ctx, "unsupported keymap format: %d\n", format); + return NULL; + } + + if (flags & ~(XKB_KEYMAP_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + if (!buffer) { + log_err_func1(ctx, "no buffer specified\n"); + return NULL; + } + + keymap = xkb_keymap_new(ctx, format, flags); + if (!keymap) + return NULL; + + if (!ops->keymap_new_from_string(keymap, buffer, length)) { + xkb_keymap_unref(keymap); + return NULL; + } + + return keymap; +} + +XKB_EXPORT struct xkb_keymap * +xkb_keymap_new_from_file(struct xkb_context *ctx, + FILE *file, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags) +{ + struct xkb_keymap *keymap; + const struct xkb_keymap_format_ops *ops; + + ops = get_keymap_format_ops(format); + if (!ops || !ops->keymap_new_from_file) { + log_err_func(ctx, "unsupported keymap format: %d\n", format); + return NULL; + } + + if (flags & ~(XKB_KEYMAP_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + if (!file) { + log_err_func1(ctx, "no file specified\n"); + return NULL; + } + + keymap = xkb_keymap_new(ctx, format, flags); + if (!keymap) + return NULL; + + if (!ops->keymap_new_from_file(keymap, file)) { + xkb_keymap_unref(keymap); + return NULL; + } + + return keymap; +} + +XKB_EXPORT char * +xkb_keymap_get_as_string(struct xkb_keymap *keymap, + enum xkb_keymap_format format) +{ + const struct xkb_keymap_format_ops *ops; + + if (format == XKB_KEYMAP_USE_ORIGINAL_FORMAT) + format = keymap->format; + + ops = get_keymap_format_ops(format); + if (!ops || !ops->keymap_get_as_string) { + log_err_func(keymap->ctx, "unsupported keymap format: %d\n", format); + return NULL; + } + + return ops->keymap_get_as_string(keymap); +} + +/** + * Returns the total number of modifiers active in the keymap. + */ +XKB_EXPORT xkb_mod_index_t +xkb_keymap_num_mods(struct xkb_keymap *keymap) +{ + return keymap->mods.num_mods; +} + +/** + * Return the name for a given modifier. + */ +XKB_EXPORT const char * +xkb_keymap_mod_get_name(struct xkb_keymap *keymap, xkb_mod_index_t idx) +{ + if (idx >= keymap->mods.num_mods) + return NULL; + + return xkb_atom_text(keymap->ctx, keymap->mods.mods[idx].name); +} + +/** + * Returns the index for a named modifier. + */ +XKB_EXPORT xkb_mod_index_t +xkb_keymap_mod_get_index(struct xkb_keymap *keymap, const char *name) +{ + xkb_atom_t atom; + + atom = xkb_atom_lookup(keymap->ctx, name); + if (atom == XKB_ATOM_NONE) + return XKB_MOD_INVALID; + + return XkbModNameToIndex(&keymap->mods, atom, MOD_BOTH); +} + +/** + * Return the total number of active groups in the keymap. + */ +XKB_EXPORT xkb_layout_index_t +xkb_keymap_num_layouts(struct xkb_keymap *keymap) +{ + return keymap->num_groups; +} + +/** + * Returns the name for a given group. + */ +XKB_EXPORT const char * +xkb_keymap_layout_get_name(struct xkb_keymap *keymap, xkb_layout_index_t idx) +{ + if (idx >= keymap->num_group_names) + return NULL; + + return xkb_atom_text(keymap->ctx, keymap->group_names[idx]); +} + +/** + * Returns the index for a named layout. + */ +XKB_EXPORT xkb_layout_index_t +xkb_keymap_layout_get_index(struct xkb_keymap *keymap, const char *name) +{ + xkb_atom_t atom = xkb_atom_lookup(keymap->ctx, name); + xkb_layout_index_t i; + + if (atom == XKB_ATOM_NONE) + return XKB_LAYOUT_INVALID; + + for (i = 0; i < keymap->num_group_names; i++) + if (keymap->group_names[i] == atom) + return i; + + return XKB_LAYOUT_INVALID; +} + +/** + * Returns the number of layouts active for a particular key. + */ +XKB_EXPORT xkb_layout_index_t +xkb_keymap_num_layouts_for_key(struct xkb_keymap *keymap, xkb_keycode_t kc) +{ + const struct xkb_key *key = XkbKey(keymap, kc); + + if (!key) + return 0; + + return key->num_groups; +} + +/** + * Returns the number of levels active for a particular key and layout. + */ +XKB_EXPORT xkb_level_index_t +xkb_keymap_num_levels_for_key(struct xkb_keymap *keymap, xkb_keycode_t kc, + xkb_layout_index_t layout) +{ + const struct xkb_key *key = XkbKey(keymap, kc); + + if (!key) + return 0; + + layout = XkbWrapGroupIntoRange(layout, key->num_groups, + key->out_of_range_group_action, + key->out_of_range_group_number); + if (layout == XKB_LAYOUT_INVALID) + return 0; + + return XkbKeyNumLevels(key, layout); +} + +/** + * Return the total number of LEDs in the keymap. + */ +XKB_EXPORT xkb_led_index_t +xkb_keymap_num_leds(struct xkb_keymap *keymap) +{ + return keymap->num_leds; +} + +/** + * Returns the name for a given LED. + */ +XKB_EXPORT const char * +xkb_keymap_led_get_name(struct xkb_keymap *keymap, xkb_led_index_t idx) +{ + if (idx >= keymap->num_leds) + return NULL; + + return xkb_atom_text(keymap->ctx, keymap->leds[idx].name); +} + +/** + * Returns the index for a named LED. + */ +XKB_EXPORT xkb_led_index_t +xkb_keymap_led_get_index(struct xkb_keymap *keymap, const char *name) +{ + xkb_atom_t atom = xkb_atom_lookup(keymap->ctx, name); + xkb_led_index_t i; + const struct xkb_led *led; + + if (atom == XKB_ATOM_NONE) + return XKB_LED_INVALID; + + xkb_leds_enumerate(i, led, keymap) + if (led->name == atom) + return i; + + return XKB_LED_INVALID; +} + +/** + * As below, but takes an explicit layout/level rather than state. + */ +XKB_EXPORT int +xkb_keymap_key_get_syms_by_level(struct xkb_keymap *keymap, + xkb_keycode_t kc, + xkb_layout_index_t layout, + xkb_level_index_t level, + const xkb_keysym_t **syms_out) +{ + const struct xkb_key *key = XkbKey(keymap, kc); + int num_syms; + + if (!key) + goto err; + + layout = XkbWrapGroupIntoRange(layout, key->num_groups, + key->out_of_range_group_action, + key->out_of_range_group_number); + if (layout == XKB_LAYOUT_INVALID) + goto err; + + if (level >= XkbKeyNumLevels(key, layout)) + goto err; + + num_syms = key->groups[layout].levels[level].num_syms; + if (num_syms == 0) + goto err; + + if (num_syms == 1) + *syms_out = &key->groups[layout].levels[level].u.sym; + else + *syms_out = key->groups[layout].levels[level].u.syms; + + return num_syms; + +err: + *syms_out = NULL; + return 0; +} + +XKB_EXPORT xkb_keycode_t +xkb_keymap_min_keycode(struct xkb_keymap *keymap) +{ + return keymap->min_key_code; +} + +XKB_EXPORT xkb_keycode_t +xkb_keymap_max_keycode(struct xkb_keymap *keymap) +{ + return keymap->max_key_code; +} + +XKB_EXPORT void +xkb_keymap_key_for_each(struct xkb_keymap *keymap, xkb_keymap_key_iter_t iter, + void *data) +{ + struct xkb_key *key; + + xkb_keys_foreach(key, keymap) + iter(keymap, key->keycode, data); +} + +/** + * Simple boolean specifying whether or not the key should repeat. + */ +XKB_EXPORT int +xkb_keymap_key_repeats(struct xkb_keymap *keymap, xkb_keycode_t kc) +{ + const struct xkb_key *key = XkbKey(keymap, kc); + + if (!key) + return 0; + + return key->repeats; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.h new file mode 100644 index 0000000..91e95c2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/keymap.h @@ -0,0 +1,478 @@ +/* + * Copyright 1985, 1987, 1990, 1998 The Open Group + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the names of the authors or their + * institutions shall not be used in advertising or otherwise to promote the + * sale, use or other dealings in this Software without prior written + * authorization from the authors. + */ + +/************************************************************ + * Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2009 Dan Nicholson + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + * Dan Nicholson + */ + +#ifndef KEYMAP_H +#define KEYMAP_H + + /* Don't use compat names in internal code. */ +#define _XKBCOMMON_COMPAT_H +#include "xkbcommon/xkbcommon.h" + +#include "utils.h" +#include "context.h" + +/* This limit is artificially enforced, we do not depend on it any where. + * The reason it's still here is that the rules file format does not + * support multiple groups very well, and the rules shipped with + * xkeyboard-config (see rules/evdev) depend on this limit extensively. + * So just lifting this limit would cause problems for people who will use + * more than 4 layouts. + * TODO: Fix the group index syntax in the rules format, preferably in a + * backwards compatible way. + * See e.g. https://bugs.freedesktop.org/show_bug.cgi?id=14372 + * Note: A limit on the number of groups we *do* depend on is imposed by + * the size of the xkb_layout_mask_t type (32). This is more than enough + * though. + */ +#define XKB_MAX_GROUPS 4 + +/* Don't allow more modifiers than we can hold in xkb_mod_mask_t. */ +#define XKB_MAX_MODS ((xkb_mod_index_t) (sizeof(xkb_mod_mask_t) * 8)) + +/* Don't allow more leds than we can hold in xkb_led_mask_t. */ +#define XKB_MAX_LEDS ((xkb_led_index_t) (sizeof(xkb_led_mask_t) * 8)) + +/* These should all go away. */ +enum mod_type { + MOD_REAL = (1 << 0), + MOD_VIRT = (1 << 1), + MOD_BOTH = (MOD_REAL | MOD_VIRT), +}; +#define MOD_REAL_MASK_ALL ((xkb_mod_mask_t) 0x000000ff) + +enum xkb_action_type { + ACTION_TYPE_NONE = 0, + ACTION_TYPE_MOD_SET, + ACTION_TYPE_MOD_LATCH, + ACTION_TYPE_MOD_LOCK, + ACTION_TYPE_GROUP_SET, + ACTION_TYPE_GROUP_LATCH, + ACTION_TYPE_GROUP_LOCK, + ACTION_TYPE_PTR_MOVE, + ACTION_TYPE_PTR_BUTTON, + ACTION_TYPE_PTR_LOCK, + ACTION_TYPE_PTR_DEFAULT, + ACTION_TYPE_TERMINATE, + ACTION_TYPE_SWITCH_VT, + ACTION_TYPE_CTRL_SET, + ACTION_TYPE_CTRL_LOCK, + ACTION_TYPE_PRIVATE, + _ACTION_TYPE_NUM_ENTRIES +}; + +enum xkb_action_flags { + ACTION_LOCK_CLEAR = (1 << 0), + ACTION_LATCH_TO_LOCK = (1 << 1), + ACTION_LOCK_NO_LOCK = (1 << 2), + ACTION_LOCK_NO_UNLOCK = (1 << 3), + ACTION_MODS_LOOKUP_MODMAP = (1 << 4), + ACTION_ABSOLUTE_SWITCH = (1 << 5), + ACTION_ABSOLUTE_X = (1 << 6), + ACTION_ABSOLUTE_Y = (1 << 7), + ACTION_ACCEL = (1 << 8), + ACTION_SAME_SCREEN = (1 << 9), +}; + +enum xkb_action_controls { + CONTROL_REPEAT = (1 << 0), + CONTROL_SLOW = (1 << 1), + CONTROL_DEBOUNCE = (1 << 2), + CONTROL_STICKY = (1 << 3), + CONTROL_MOUSEKEYS = (1 << 4), + CONTROL_MOUSEKEYS_ACCEL = (1 << 5), + CONTROL_AX = (1 << 6), + CONTROL_AX_TIMEOUT = (1 << 7), + CONTROL_AX_FEEDBACK = (1 << 8), + CONTROL_BELL = (1 << 9), + CONTROL_IGNORE_GROUP_LOCK = (1 << 10), + CONTROL_ALL = \ + (CONTROL_REPEAT | CONTROL_SLOW | CONTROL_DEBOUNCE | CONTROL_STICKY | \ + CONTROL_MOUSEKEYS | CONTROL_MOUSEKEYS_ACCEL | CONTROL_AX | \ + CONTROL_AX_TIMEOUT | CONTROL_AX_FEEDBACK | CONTROL_BELL | \ + CONTROL_IGNORE_GROUP_LOCK) +}; + +enum xkb_match_operation { + MATCH_NONE, + MATCH_ANY_OR_NONE, + MATCH_ANY, + MATCH_ALL, + MATCH_EXACTLY, +}; + +struct xkb_mods { + xkb_mod_mask_t mods; /* original real+virtual mods in definition */ + xkb_mod_mask_t mask; /* computed effective mask */ +}; + +struct xkb_mod_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + struct xkb_mods mods; +}; + +struct xkb_group_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + int32_t group; +}; + +struct xkb_controls_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + enum xkb_action_controls ctrls; +}; + +struct xkb_pointer_default_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + int8_t value; +}; + +struct xkb_switch_screen_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + int8_t screen; +}; + +struct xkb_pointer_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + int16_t x; + int16_t y; +}; + +struct xkb_pointer_button_action { + enum xkb_action_type type; + enum xkb_action_flags flags; + uint8_t count; + uint8_t button; +}; + +struct xkb_private_action { + enum xkb_action_type type; + uint8_t data[7]; +}; + +union xkb_action { + enum xkb_action_type type; + struct xkb_mod_action mods; + struct xkb_group_action group; + struct xkb_controls_action ctrls; + struct xkb_pointer_default_action dflt; + struct xkb_switch_screen_action screen; + struct xkb_pointer_action ptr; + struct xkb_pointer_button_action btn; + struct xkb_private_action priv; +}; + +struct xkb_key_type_entry { + xkb_level_index_t level; + struct xkb_mods mods; + struct xkb_mods preserve; +}; + +struct xkb_key_type { + xkb_atom_t name; + struct xkb_mods mods; + xkb_level_index_t num_levels; + xkb_atom_t *level_names; + unsigned int num_entries; + struct xkb_key_type_entry *entries; +}; + +struct xkb_sym_interpret { + xkb_keysym_t sym; + enum xkb_match_operation match; + xkb_mod_mask_t mods; + xkb_mod_index_t virtual_mod; + union xkb_action action; + bool level_one_only; + bool repeat; +}; + +struct xkb_led { + xkb_atom_t name; + enum xkb_state_component which_groups; + xkb_layout_mask_t groups; + enum xkb_state_component which_mods; + struct xkb_mods mods; + enum xkb_action_controls ctrls; +}; + +struct xkb_key_alias { + xkb_atom_t real; + xkb_atom_t alias; +}; + +struct xkb_controls { + unsigned char groups_wrap; + struct xkb_mods internal; + struct xkb_mods ignore_lock; + unsigned short repeat_delay; + unsigned short repeat_interval; + unsigned short slow_keys_delay; + unsigned short debounce_delay; + unsigned short ax_options; + unsigned short ax_timeout; + unsigned short axt_opts_mask; + unsigned short axt_opts_values; + unsigned int axt_ctrls_mask; + unsigned int axt_ctrls_values; +}; + +/* Such an awkward name. Oh well. */ +enum xkb_range_exceed_type { + RANGE_WRAP = 0, + RANGE_SATURATE, + RANGE_REDIRECT, +}; + +enum xkb_explicit_components { + EXPLICIT_INTERP = (1 << 0), + EXPLICIT_VMODMAP = (1 << 1), + EXPLICIT_REPEAT = (1 << 2), +}; + +struct xkb_level { + union xkb_action action; + unsigned int num_syms; + union { + xkb_keysym_t sym; /* num_syms == 1 */ + xkb_keysym_t *syms; /* num_syms > 1 */ + } u; +}; + +struct xkb_group { + bool explicit_type; + /* Points to a type in keymap->types. */ + const struct xkb_key_type *type; + /* Use XkbKeyGroupWidth for the number of levels. */ + struct xkb_level *levels; +}; + +struct xkb_key { + xkb_keycode_t keycode; + xkb_atom_t name; + + enum xkb_explicit_components explicit; + + xkb_mod_mask_t modmap; + xkb_mod_mask_t vmodmap; + + bool repeats; + + enum xkb_range_exceed_type out_of_range_group_action; + xkb_layout_index_t out_of_range_group_number; + + xkb_layout_index_t num_groups; + struct xkb_group *groups; +}; + +struct xkb_mod { + xkb_atom_t name; + enum mod_type type; + xkb_mod_mask_t mapping; /* vmod -> real mod mapping */ +}; + +struct xkb_mod_set { + struct xkb_mod mods[XKB_MAX_MODS]; + unsigned int num_mods; +}; + +/* Common keyboard description structure */ +struct xkb_keymap { + struct xkb_context *ctx; + + int refcnt; + enum xkb_keymap_compile_flags flags; + enum xkb_keymap_format format; + + enum xkb_action_controls enabled_ctrls; + + xkb_keycode_t min_key_code; + xkb_keycode_t max_key_code; + struct xkb_key *keys; + + /* aliases in no particular order */ + unsigned int num_key_aliases; + struct xkb_key_alias *key_aliases; + + struct xkb_key_type *types; + unsigned int num_types; + + unsigned int num_sym_interprets; + struct xkb_sym_interpret *sym_interprets; + + struct xkb_mod_set mods; + + /* Number of groups in the key with the most groups. */ + xkb_layout_index_t num_groups; + /* Not all groups must have names. */ + xkb_layout_index_t num_group_names; + xkb_atom_t *group_names; + + struct xkb_led leds[XKB_MAX_LEDS]; + unsigned int num_leds; + + char *keycodes_section_name; + char *symbols_section_name; + char *types_section_name; + char *compat_section_name; +}; + +#define xkb_keys_foreach(iter, keymap) \ + for ((iter) = (keymap)->keys + (keymap)->min_key_code; \ + (iter) <= (keymap)->keys + (keymap)->max_key_code; \ + (iter)++) + +#define xkb_mods_foreach(iter, mods_) \ + for ((iter) = (mods_)->mods; \ + (iter) < (mods_)->mods + (mods_)->num_mods; \ + (iter)++) + +#define xkb_mods_enumerate(idx, iter, mods_) \ + for ((idx) = 0, (iter) = (mods_)->mods; \ + (idx) < (mods_)->num_mods; \ + (idx)++, (iter)++) + +#define xkb_leds_foreach(iter, keymap) \ + for ((iter) = (keymap)->leds; \ + (iter) < (keymap)->leds + (keymap)->num_leds; \ + (iter)++) + +#define xkb_leds_enumerate(idx, iter, keymap) \ + for ((idx) = 0, (iter) = (keymap)->leds; \ + (idx) < (keymap)->num_leds; \ + (idx)++, (iter)++) + +static inline const struct xkb_key * +XkbKey(struct xkb_keymap *keymap, xkb_keycode_t kc) +{ + if (kc < keymap->min_key_code || kc > keymap->max_key_code) + return NULL; + return &keymap->keys[kc]; +} + +static inline xkb_level_index_t +XkbKeyNumLevels(const struct xkb_key *key, xkb_layout_index_t layout) +{ + return key->groups[layout].type->num_levels; +} + +struct xkb_keymap * +xkb_keymap_new(struct xkb_context *ctx, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags); + +struct xkb_key * +XkbKeyByName(struct xkb_keymap *keymap, xkb_atom_t name, bool use_aliases); + +xkb_atom_t +XkbResolveKeyAlias(const struct xkb_keymap *keymap, xkb_atom_t name); + +void +XkbEscapeMapName(char *name); + +xkb_mod_index_t +XkbModNameToIndex(const struct xkb_mod_set *mods, xkb_atom_t name, + enum mod_type type); + +xkb_layout_index_t +XkbWrapGroupIntoRange(int32_t group, + xkb_layout_index_t num_groups, + enum xkb_range_exceed_type out_of_range_group_action, + xkb_layout_index_t out_of_range_group_number); + +xkb_mod_mask_t +mod_mask_get_effective(struct xkb_keymap *keymap, xkb_mod_mask_t mods); + +struct xkb_keymap_format_ops { + bool (*keymap_new_from_names)(struct xkb_keymap *keymap, + const struct xkb_rule_names *names); + bool (*keymap_new_from_string)(struct xkb_keymap *keymap, + const char *string, size_t length); + bool (*keymap_new_from_file)(struct xkb_keymap *keymap, FILE *file); + char *(*keymap_get_as_string)(struct xkb_keymap *keymap); +}; + +extern const struct xkb_keymap_format_ops text_v1_keymap_format_ops; + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c new file mode 100644 index 0000000..ffe2cea --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym-utf.c @@ -0,0 +1,930 @@ +/* The table and comments below along with the function xkb_keysym_to_ucs4 + * are under the public domain and are derived as described below. + */ +/* This module converts keysym values into the corresponding ISO 10646 + * (UCS, Unicode) values. + * + * The array keysymtab[] contains pairs of X11 keysym values for graphical + * characters and the corresponding Unicode value. The function + * keysym2ucs() maps a keysym onto a Unicode value using a binary search, + * therefore keysymtab[] must remain SORTED by keysym value. + * + * The keysym -> UTF-8 conversion will hopefully one day be provided + * by Xlib via XmbLookupString() and should ideally not have to be + * done in X applications. But we are not there yet. + * + * We allow to represent any UCS character in the range U-00000000 to + * U-00FFFFFF by a keysym value in the range 0x01000000 to 0x01ffffff. + * This admittedly does not cover the entire 31-bit space of UCS, but + * it does cover all of the characters up to U-10FFFF, which can be + * represented by UTF-16, and more, and it is very unlikely that higher + * UCS codes will ever be assigned by ISO. So to get Unicode character + * U+ABCD you can directly use keysym 0x0100abcd. + * + * NOTE: The comments in the table below contain the actual character + * encoded in UTF-8, so for viewing and editing best use an editor in + * UTF-8 mode. + * + * Author: Markus G. Kuhn , + * University of Cambridge, April 2001 + * + * Special thanks to Richard Verhoeven for preparing + * an initial draft of the mapping table. + * + * This software is in the public domain. Share and enjoy! + * + */ + +#include "xkbcommon/xkbcommon.h" +#include "utils.h" +#include "utf8.h" + +/* We don't use the uint32_t types here, to save some space. */ +struct codepair { + uint16_t keysym; + uint16_t ucs; +}; + +static const struct codepair keysymtab[] = { + { 0x01a1, 0x0104 }, /* Aogonek Ą LATIN CAPITAL LETTER A WITH OGONEK */ + { 0x01a2, 0x02d8 }, /* breve ˘ BREVE */ + { 0x01a3, 0x0141 }, /* Lstroke Ł LATIN CAPITAL LETTER L WITH STROKE */ + { 0x01a5, 0x013d }, /* Lcaron Ľ LATIN CAPITAL LETTER L WITH CARON */ + { 0x01a6, 0x015a }, /* Sacute Ś LATIN CAPITAL LETTER S WITH ACUTE */ + { 0x01a9, 0x0160 }, /* Scaron Š LATIN CAPITAL LETTER S WITH CARON */ + { 0x01aa, 0x015e }, /* Scedilla Ş LATIN CAPITAL LETTER S WITH CEDILLA */ + { 0x01ab, 0x0164 }, /* Tcaron Ť LATIN CAPITAL LETTER T WITH CARON */ + { 0x01ac, 0x0179 }, /* Zacute Ź LATIN CAPITAL LETTER Z WITH ACUTE */ + { 0x01ae, 0x017d }, /* Zcaron Ž LATIN CAPITAL LETTER Z WITH CARON */ + { 0x01af, 0x017b }, /* Zabovedot Ż LATIN CAPITAL LETTER Z WITH DOT ABOVE */ + { 0x01b1, 0x0105 }, /* aogonek ą LATIN SMALL LETTER A WITH OGONEK */ + { 0x01b2, 0x02db }, /* ogonek ˛ OGONEK */ + { 0x01b3, 0x0142 }, /* lstroke ł LATIN SMALL LETTER L WITH STROKE */ + { 0x01b5, 0x013e }, /* lcaron ľ LATIN SMALL LETTER L WITH CARON */ + { 0x01b6, 0x015b }, /* sacute ś LATIN SMALL LETTER S WITH ACUTE */ + { 0x01b7, 0x02c7 }, /* caron ˇ CARON */ + { 0x01b9, 0x0161 }, /* scaron š LATIN SMALL LETTER S WITH CARON */ + { 0x01ba, 0x015f }, /* scedilla ş LATIN SMALL LETTER S WITH CEDILLA */ + { 0x01bb, 0x0165 }, /* tcaron ť LATIN SMALL LETTER T WITH CARON */ + { 0x01bc, 0x017a }, /* zacute ź LATIN SMALL LETTER Z WITH ACUTE */ + { 0x01bd, 0x02dd }, /* doubleacute ˝ DOUBLE ACUTE ACCENT */ + { 0x01be, 0x017e }, /* zcaron ž LATIN SMALL LETTER Z WITH CARON */ + { 0x01bf, 0x017c }, /* zabovedot ż LATIN SMALL LETTER Z WITH DOT ABOVE */ + { 0x01c0, 0x0154 }, /* Racute Ŕ LATIN CAPITAL LETTER R WITH ACUTE */ + { 0x01c3, 0x0102 }, /* Abreve Ă LATIN CAPITAL LETTER A WITH BREVE */ + { 0x01c5, 0x0139 }, /* Lacute Ĺ LATIN CAPITAL LETTER L WITH ACUTE */ + { 0x01c6, 0x0106 }, /* Cacute Ć LATIN CAPITAL LETTER C WITH ACUTE */ + { 0x01c8, 0x010c }, /* Ccaron Č LATIN CAPITAL LETTER C WITH CARON */ + { 0x01ca, 0x0118 }, /* Eogonek Ę LATIN CAPITAL LETTER E WITH OGONEK */ + { 0x01cc, 0x011a }, /* Ecaron Ě LATIN CAPITAL LETTER E WITH CARON */ + { 0x01cf, 0x010e }, /* Dcaron Ď LATIN CAPITAL LETTER D WITH CARON */ + { 0x01d0, 0x0110 }, /* Dstroke Đ LATIN CAPITAL LETTER D WITH STROKE */ + { 0x01d1, 0x0143 }, /* Nacute Ń LATIN CAPITAL LETTER N WITH ACUTE */ + { 0x01d2, 0x0147 }, /* Ncaron Ň LATIN CAPITAL LETTER N WITH CARON */ + { 0x01d5, 0x0150 }, /* Odoubleacute Ő LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ + { 0x01d8, 0x0158 }, /* Rcaron Ř LATIN CAPITAL LETTER R WITH CARON */ + { 0x01d9, 0x016e }, /* Uring Ů LATIN CAPITAL LETTER U WITH RING ABOVE */ + { 0x01db, 0x0170 }, /* Udoubleacute Ű LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ + { 0x01de, 0x0162 }, /* Tcedilla Ţ LATIN CAPITAL LETTER T WITH CEDILLA */ + { 0x01e0, 0x0155 }, /* racute ŕ LATIN SMALL LETTER R WITH ACUTE */ + { 0x01e3, 0x0103 }, /* abreve ă LATIN SMALL LETTER A WITH BREVE */ + { 0x01e5, 0x013a }, /* lacute ĺ LATIN SMALL LETTER L WITH ACUTE */ + { 0x01e6, 0x0107 }, /* cacute ć LATIN SMALL LETTER C WITH ACUTE */ + { 0x01e8, 0x010d }, /* ccaron č LATIN SMALL LETTER C WITH CARON */ + { 0x01ea, 0x0119 }, /* eogonek ę LATIN SMALL LETTER E WITH OGONEK */ + { 0x01ec, 0x011b }, /* ecaron ě LATIN SMALL LETTER E WITH CARON */ + { 0x01ef, 0x010f }, /* dcaron ď LATIN SMALL LETTER D WITH CARON */ + { 0x01f0, 0x0111 }, /* dstroke đ LATIN SMALL LETTER D WITH STROKE */ + { 0x01f1, 0x0144 }, /* nacute ń LATIN SMALL LETTER N WITH ACUTE */ + { 0x01f2, 0x0148 }, /* ncaron ň LATIN SMALL LETTER N WITH CARON */ + { 0x01f5, 0x0151 }, /* odoubleacute ő LATIN SMALL LETTER O WITH DOUBLE ACUTE */ + { 0x01f8, 0x0159 }, /* rcaron ř LATIN SMALL LETTER R WITH CARON */ + { 0x01f9, 0x016f }, /* uring ů LATIN SMALL LETTER U WITH RING ABOVE */ + { 0x01fb, 0x0171 }, /* udoubleacute ű LATIN SMALL LETTER U WITH DOUBLE ACUTE */ + { 0x01fe, 0x0163 }, /* tcedilla ţ LATIN SMALL LETTER T WITH CEDILLA */ + { 0x01ff, 0x02d9 }, /* abovedot ˙ DOT ABOVE */ + { 0x02a1, 0x0126 }, /* Hstroke Ħ LATIN CAPITAL LETTER H WITH STROKE */ + { 0x02a6, 0x0124 }, /* Hcircumflex Ĥ LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ + { 0x02a9, 0x0130 }, /* Iabovedot İ LATIN CAPITAL LETTER I WITH DOT ABOVE */ + { 0x02ab, 0x011e }, /* Gbreve Ğ LATIN CAPITAL LETTER G WITH BREVE */ + { 0x02ac, 0x0134 }, /* Jcircumflex Ĵ LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ + { 0x02b1, 0x0127 }, /* hstroke ħ LATIN SMALL LETTER H WITH STROKE */ + { 0x02b6, 0x0125 }, /* hcircumflex ĥ LATIN SMALL LETTER H WITH CIRCUMFLEX */ + { 0x02b9, 0x0131 }, /* idotless ı LATIN SMALL LETTER DOTLESS I */ + { 0x02bb, 0x011f }, /* gbreve ğ LATIN SMALL LETTER G WITH BREVE */ + { 0x02bc, 0x0135 }, /* jcircumflex ĵ LATIN SMALL LETTER J WITH CIRCUMFLEX */ + { 0x02c5, 0x010a }, /* Cabovedot Ċ LATIN CAPITAL LETTER C WITH DOT ABOVE */ + { 0x02c6, 0x0108 }, /* Ccircumflex Ĉ LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ + { 0x02d5, 0x0120 }, /* Gabovedot Ġ LATIN CAPITAL LETTER G WITH DOT ABOVE */ + { 0x02d8, 0x011c }, /* Gcircumflex Ĝ LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ + { 0x02dd, 0x016c }, /* Ubreve Ŭ LATIN CAPITAL LETTER U WITH BREVE */ + { 0x02de, 0x015c }, /* Scircumflex Ŝ LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ + { 0x02e5, 0x010b }, /* cabovedot ċ LATIN SMALL LETTER C WITH DOT ABOVE */ + { 0x02e6, 0x0109 }, /* ccircumflex ĉ LATIN SMALL LETTER C WITH CIRCUMFLEX */ + { 0x02f5, 0x0121 }, /* gabovedot ġ LATIN SMALL LETTER G WITH DOT ABOVE */ + { 0x02f8, 0x011d }, /* gcircumflex ĝ LATIN SMALL LETTER G WITH CIRCUMFLEX */ + { 0x02fd, 0x016d }, /* ubreve ŭ LATIN SMALL LETTER U WITH BREVE */ + { 0x02fe, 0x015d }, /* scircumflex ŝ LATIN SMALL LETTER S WITH CIRCUMFLEX */ + { 0x03a2, 0x0138 }, /* kra ĸ LATIN SMALL LETTER KRA */ + { 0x03a3, 0x0156 }, /* Rcedilla Ŗ LATIN CAPITAL LETTER R WITH CEDILLA */ + { 0x03a5, 0x0128 }, /* Itilde Ĩ LATIN CAPITAL LETTER I WITH TILDE */ + { 0x03a6, 0x013b }, /* Lcedilla Ļ LATIN CAPITAL LETTER L WITH CEDILLA */ + { 0x03aa, 0x0112 }, /* Emacron Ē LATIN CAPITAL LETTER E WITH MACRON */ + { 0x03ab, 0x0122 }, /* Gcedilla Ģ LATIN CAPITAL LETTER G WITH CEDILLA */ + { 0x03ac, 0x0166 }, /* Tslash Ŧ LATIN CAPITAL LETTER T WITH STROKE */ + { 0x03b3, 0x0157 }, /* rcedilla ŗ LATIN SMALL LETTER R WITH CEDILLA */ + { 0x03b5, 0x0129 }, /* itilde ĩ LATIN SMALL LETTER I WITH TILDE */ + { 0x03b6, 0x013c }, /* lcedilla ļ LATIN SMALL LETTER L WITH CEDILLA */ + { 0x03ba, 0x0113 }, /* emacron ē LATIN SMALL LETTER E WITH MACRON */ + { 0x03bb, 0x0123 }, /* gcedilla ģ LATIN SMALL LETTER G WITH CEDILLA */ + { 0x03bc, 0x0167 }, /* tslash ŧ LATIN SMALL LETTER T WITH STROKE */ + { 0x03bd, 0x014a }, /* ENG Ŋ LATIN CAPITAL LETTER ENG */ + { 0x03bf, 0x014b }, /* eng ŋ LATIN SMALL LETTER ENG */ + { 0x03c0, 0x0100 }, /* Amacron Ā LATIN CAPITAL LETTER A WITH MACRON */ + { 0x03c7, 0x012e }, /* Iogonek Į LATIN CAPITAL LETTER I WITH OGONEK */ + { 0x03cc, 0x0116 }, /* Eabovedot Ė LATIN CAPITAL LETTER E WITH DOT ABOVE */ + { 0x03cf, 0x012a }, /* Imacron Ī LATIN CAPITAL LETTER I WITH MACRON */ + { 0x03d1, 0x0145 }, /* Ncedilla Ņ LATIN CAPITAL LETTER N WITH CEDILLA */ + { 0x03d2, 0x014c }, /* Omacron Ō LATIN CAPITAL LETTER O WITH MACRON */ + { 0x03d3, 0x0136 }, /* Kcedilla Ķ LATIN CAPITAL LETTER K WITH CEDILLA */ + { 0x03d9, 0x0172 }, /* Uogonek Ų LATIN CAPITAL LETTER U WITH OGONEK */ + { 0x03dd, 0x0168 }, /* Utilde Ũ LATIN CAPITAL LETTER U WITH TILDE */ + { 0x03de, 0x016a }, /* Umacron Ū LATIN CAPITAL LETTER U WITH MACRON */ + { 0x03e0, 0x0101 }, /* amacron ā LATIN SMALL LETTER A WITH MACRON */ + { 0x03e7, 0x012f }, /* iogonek į LATIN SMALL LETTER I WITH OGONEK */ + { 0x03ec, 0x0117 }, /* eabovedot ė LATIN SMALL LETTER E WITH DOT ABOVE */ + { 0x03ef, 0x012b }, /* imacron ī LATIN SMALL LETTER I WITH MACRON */ + { 0x03f1, 0x0146 }, /* ncedilla ņ LATIN SMALL LETTER N WITH CEDILLA */ + { 0x03f2, 0x014d }, /* omacron ō LATIN SMALL LETTER O WITH MACRON */ + { 0x03f3, 0x0137 }, /* kcedilla ķ LATIN SMALL LETTER K WITH CEDILLA */ + { 0x03f9, 0x0173 }, /* uogonek ų LATIN SMALL LETTER U WITH OGONEK */ + { 0x03fd, 0x0169 }, /* utilde ũ LATIN SMALL LETTER U WITH TILDE */ + { 0x03fe, 0x016b }, /* umacron ū LATIN SMALL LETTER U WITH MACRON */ + { 0x047e, 0x203e }, /* overline ‾ OVERLINE */ + { 0x04a1, 0x3002 }, /* kana_fullstop 。 IDEOGRAPHIC FULL STOP */ + { 0x04a2, 0x300c }, /* kana_openingbracket 「 LEFT CORNER BRACKET */ + { 0x04a3, 0x300d }, /* kana_closingbracket 」 RIGHT CORNER BRACKET */ + { 0x04a4, 0x3001 }, /* kana_comma 、 IDEOGRAPHIC COMMA */ + { 0x04a5, 0x30fb }, /* kana_conjunctive ・ KATAKANA MIDDLE DOT */ + { 0x04a6, 0x30f2 }, /* kana_WO ヲ KATAKANA LETTER WO */ + { 0x04a7, 0x30a1 }, /* kana_a ァ KATAKANA LETTER SMALL A */ + { 0x04a8, 0x30a3 }, /* kana_i ィ KATAKANA LETTER SMALL I */ + { 0x04a9, 0x30a5 }, /* kana_u ゥ KATAKANA LETTER SMALL U */ + { 0x04aa, 0x30a7 }, /* kana_e ェ KATAKANA LETTER SMALL E */ + { 0x04ab, 0x30a9 }, /* kana_o ォ KATAKANA LETTER SMALL O */ + { 0x04ac, 0x30e3 }, /* kana_ya ャ KATAKANA LETTER SMALL YA */ + { 0x04ad, 0x30e5 }, /* kana_yu ュ KATAKANA LETTER SMALL YU */ + { 0x04ae, 0x30e7 }, /* kana_yo ョ KATAKANA LETTER SMALL YO */ + { 0x04af, 0x30c3 }, /* kana_tsu ッ KATAKANA LETTER SMALL TU */ + { 0x04b0, 0x30fc }, /* prolongedsound ー KATAKANA-HIRAGANA PROLONGED SOUND MARK */ + { 0x04b1, 0x30a2 }, /* kana_A ア KATAKANA LETTER A */ + { 0x04b2, 0x30a4 }, /* kana_I イ KATAKANA LETTER I */ + { 0x04b3, 0x30a6 }, /* kana_U ウ KATAKANA LETTER U */ + { 0x04b4, 0x30a8 }, /* kana_E エ KATAKANA LETTER E */ + { 0x04b5, 0x30aa }, /* kana_O オ KATAKANA LETTER O */ + { 0x04b6, 0x30ab }, /* kana_KA カ KATAKANA LETTER KA */ + { 0x04b7, 0x30ad }, /* kana_KI キ KATAKANA LETTER KI */ + { 0x04b8, 0x30af }, /* kana_KU ク KATAKANA LETTER KU */ + { 0x04b9, 0x30b1 }, /* kana_KE ケ KATAKANA LETTER KE */ + { 0x04ba, 0x30b3 }, /* kana_KO コ KATAKANA LETTER KO */ + { 0x04bb, 0x30b5 }, /* kana_SA サ KATAKANA LETTER SA */ + { 0x04bc, 0x30b7 }, /* kana_SHI シ KATAKANA LETTER SI */ + { 0x04bd, 0x30b9 }, /* kana_SU ス KATAKANA LETTER SU */ + { 0x04be, 0x30bb }, /* kana_SE セ KATAKANA LETTER SE */ + { 0x04bf, 0x30bd }, /* kana_SO ソ KATAKANA LETTER SO */ + { 0x04c0, 0x30bf }, /* kana_TA タ KATAKANA LETTER TA */ + { 0x04c1, 0x30c1 }, /* kana_CHI チ KATAKANA LETTER TI */ + { 0x04c2, 0x30c4 }, /* kana_TSU ツ KATAKANA LETTER TU */ + { 0x04c3, 0x30c6 }, /* kana_TE テ KATAKANA LETTER TE */ + { 0x04c4, 0x30c8 }, /* kana_TO ト KATAKANA LETTER TO */ + { 0x04c5, 0x30ca }, /* kana_NA ナ KATAKANA LETTER NA */ + { 0x04c6, 0x30cb }, /* kana_NI ニ KATAKANA LETTER NI */ + { 0x04c7, 0x30cc }, /* kana_NU ヌ KATAKANA LETTER NU */ + { 0x04c8, 0x30cd }, /* kana_NE ネ KATAKANA LETTER NE */ + { 0x04c9, 0x30ce }, /* kana_NO ノ KATAKANA LETTER NO */ + { 0x04ca, 0x30cf }, /* kana_HA ハ KATAKANA LETTER HA */ + { 0x04cb, 0x30d2 }, /* kana_HI ヒ KATAKANA LETTER HI */ + { 0x04cc, 0x30d5 }, /* kana_FU フ KATAKANA LETTER HU */ + { 0x04cd, 0x30d8 }, /* kana_HE ヘ KATAKANA LETTER HE */ + { 0x04ce, 0x30db }, /* kana_HO ホ KATAKANA LETTER HO */ + { 0x04cf, 0x30de }, /* kana_MA マ KATAKANA LETTER MA */ + { 0x04d0, 0x30df }, /* kana_MI ミ KATAKANA LETTER MI */ + { 0x04d1, 0x30e0 }, /* kana_MU ム KATAKANA LETTER MU */ + { 0x04d2, 0x30e1 }, /* kana_ME メ KATAKANA LETTER ME */ + { 0x04d3, 0x30e2 }, /* kana_MO モ KATAKANA LETTER MO */ + { 0x04d4, 0x30e4 }, /* kana_YA ヤ KATAKANA LETTER YA */ + { 0x04d5, 0x30e6 }, /* kana_YU ユ KATAKANA LETTER YU */ + { 0x04d6, 0x30e8 }, /* kana_YO ヨ KATAKANA LETTER YO */ + { 0x04d7, 0x30e9 }, /* kana_RA ラ KATAKANA LETTER RA */ + { 0x04d8, 0x30ea }, /* kana_RI リ KATAKANA LETTER RI */ + { 0x04d9, 0x30eb }, /* kana_RU ル KATAKANA LETTER RU */ + { 0x04da, 0x30ec }, /* kana_RE レ KATAKANA LETTER RE */ + { 0x04db, 0x30ed }, /* kana_RO ロ KATAKANA LETTER RO */ + { 0x04dc, 0x30ef }, /* kana_WA ワ KATAKANA LETTER WA */ + { 0x04dd, 0x30f3 }, /* kana_N ン KATAKANA LETTER N */ + { 0x04de, 0x309b }, /* voicedsound ゛ KATAKANA-HIRAGANA VOICED SOUND MARK */ + { 0x04df, 0x309c }, /* semivoicedsound ゜ KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ + { 0x05ac, 0x060c }, /* Arabic_comma ، ARABIC COMMA */ + { 0x05bb, 0x061b }, /* Arabic_semicolon ؛ ARABIC SEMICOLON */ + { 0x05bf, 0x061f }, /* Arabic_question_mark ؟ ARABIC QUESTION MARK */ + { 0x05c1, 0x0621 }, /* Arabic_hamza ء ARABIC LETTER HAMZA */ + { 0x05c2, 0x0622 }, /* Arabic_maddaonalef آ ARABIC LETTER ALEF WITH MADDA ABOVE */ + { 0x05c3, 0x0623 }, /* Arabic_hamzaonalef أ ARABIC LETTER ALEF WITH HAMZA ABOVE */ + { 0x05c4, 0x0624 }, /* Arabic_hamzaonwaw ؤ ARABIC LETTER WAW WITH HAMZA ABOVE */ + { 0x05c5, 0x0625 }, /* Arabic_hamzaunderalef إ ARABIC LETTER ALEF WITH HAMZA BELOW */ + { 0x05c6, 0x0626 }, /* Arabic_hamzaonyeh ئ ARABIC LETTER YEH WITH HAMZA ABOVE */ + { 0x05c7, 0x0627 }, /* Arabic_alef ا ARABIC LETTER ALEF */ + { 0x05c8, 0x0628 }, /* Arabic_beh ب ARABIC LETTER BEH */ + { 0x05c9, 0x0629 }, /* Arabic_tehmarbuta ة ARABIC LETTER TEH MARBUTA */ + { 0x05ca, 0x062a }, /* Arabic_teh ت ARABIC LETTER TEH */ + { 0x05cb, 0x062b }, /* Arabic_theh ث ARABIC LETTER THEH */ + { 0x05cc, 0x062c }, /* Arabic_jeem ج ARABIC LETTER JEEM */ + { 0x05cd, 0x062d }, /* Arabic_hah ح ARABIC LETTER HAH */ + { 0x05ce, 0x062e }, /* Arabic_khah خ ARABIC LETTER KHAH */ + { 0x05cf, 0x062f }, /* Arabic_dal د ARABIC LETTER DAL */ + { 0x05d0, 0x0630 }, /* Arabic_thal ذ ARABIC LETTER THAL */ + { 0x05d1, 0x0631 }, /* Arabic_ra ر ARABIC LETTER REH */ + { 0x05d2, 0x0632 }, /* Arabic_zain ز ARABIC LETTER ZAIN */ + { 0x05d3, 0x0633 }, /* Arabic_seen س ARABIC LETTER SEEN */ + { 0x05d4, 0x0634 }, /* Arabic_sheen ش ARABIC LETTER SHEEN */ + { 0x05d5, 0x0635 }, /* Arabic_sad ص ARABIC LETTER SAD */ + { 0x05d6, 0x0636 }, /* Arabic_dad ض ARABIC LETTER DAD */ + { 0x05d7, 0x0637 }, /* Arabic_tah ط ARABIC LETTER TAH */ + { 0x05d8, 0x0638 }, /* Arabic_zah ظ ARABIC LETTER ZAH */ + { 0x05d9, 0x0639 }, /* Arabic_ain ع ARABIC LETTER AIN */ + { 0x05da, 0x063a }, /* Arabic_ghain غ ARABIC LETTER GHAIN */ + { 0x05e0, 0x0640 }, /* Arabic_tatweel ـ ARABIC TATWEEL */ + { 0x05e1, 0x0641 }, /* Arabic_feh ف ARABIC LETTER FEH */ + { 0x05e2, 0x0642 }, /* Arabic_qaf ق ARABIC LETTER QAF */ + { 0x05e3, 0x0643 }, /* Arabic_kaf ك ARABIC LETTER KAF */ + { 0x05e4, 0x0644 }, /* Arabic_lam ل ARABIC LETTER LAM */ + { 0x05e5, 0x0645 }, /* Arabic_meem م ARABIC LETTER MEEM */ + { 0x05e6, 0x0646 }, /* Arabic_noon ن ARABIC LETTER NOON */ + { 0x05e7, 0x0647 }, /* Arabic_ha ه ARABIC LETTER HEH */ + { 0x05e8, 0x0648 }, /* Arabic_waw و ARABIC LETTER WAW */ + { 0x05e9, 0x0649 }, /* Arabic_alefmaksura ى ARABIC LETTER ALEF MAKSURA */ + { 0x05ea, 0x064a }, /* Arabic_yeh ي ARABIC LETTER YEH */ + { 0x05eb, 0x064b }, /* Arabic_fathatan ً ARABIC FATHATAN */ + { 0x05ec, 0x064c }, /* Arabic_dammatan ٌ ARABIC DAMMATAN */ + { 0x05ed, 0x064d }, /* Arabic_kasratan ٍ ARABIC KASRATAN */ + { 0x05ee, 0x064e }, /* Arabic_fatha َ ARABIC FATHA */ + { 0x05ef, 0x064f }, /* Arabic_damma ُ ARABIC DAMMA */ + { 0x05f0, 0x0650 }, /* Arabic_kasra ِ ARABIC KASRA */ + { 0x05f1, 0x0651 }, /* Arabic_shadda ّ ARABIC SHADDA */ + { 0x05f2, 0x0652 }, /* Arabic_sukun ْ ARABIC SUKUN */ + { 0x06a1, 0x0452 }, /* Serbian_dje ђ CYRILLIC SMALL LETTER DJE */ + { 0x06a2, 0x0453 }, /* Macedonia_gje ѓ CYRILLIC SMALL LETTER GJE */ + { 0x06a3, 0x0451 }, /* Cyrillic_io ё CYRILLIC SMALL LETTER IO */ + { 0x06a4, 0x0454 }, /* Ukrainian_ie є CYRILLIC SMALL LETTER UKRAINIAN IE */ + { 0x06a5, 0x0455 }, /* Macedonia_dse ѕ CYRILLIC SMALL LETTER DZE */ + { 0x06a6, 0x0456 }, /* Ukrainian_i і CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ + { 0x06a7, 0x0457 }, /* Ukrainian_yi ї CYRILLIC SMALL LETTER YI */ + { 0x06a8, 0x0458 }, /* Cyrillic_je ј CYRILLIC SMALL LETTER JE */ + { 0x06a9, 0x0459 }, /* Cyrillic_lje љ CYRILLIC SMALL LETTER LJE */ + { 0x06aa, 0x045a }, /* Cyrillic_nje њ CYRILLIC SMALL LETTER NJE */ + { 0x06ab, 0x045b }, /* Serbian_tshe ћ CYRILLIC SMALL LETTER TSHE */ + { 0x06ac, 0x045c }, /* Macedonia_kje ќ CYRILLIC SMALL LETTER KJE */ + { 0x06ad, 0x0491 }, /* Ukrainian_ghe_with_upturn ґ CYRILLIC SMALL LETTER GHE WITH UPTURN */ + { 0x06ae, 0x045e }, /* Byelorussian_shortu ў CYRILLIC SMALL LETTER SHORT U */ + { 0x06af, 0x045f }, /* Cyrillic_dzhe џ CYRILLIC SMALL LETTER DZHE */ + { 0x06b0, 0x2116 }, /* numerosign № NUMERO SIGN */ + { 0x06b1, 0x0402 }, /* Serbian_DJE Ђ CYRILLIC CAPITAL LETTER DJE */ + { 0x06b2, 0x0403 }, /* Macedonia_GJE Ѓ CYRILLIC CAPITAL LETTER GJE */ + { 0x06b3, 0x0401 }, /* Cyrillic_IO Ё CYRILLIC CAPITAL LETTER IO */ + { 0x06b4, 0x0404 }, /* Ukrainian_IE Є CYRILLIC CAPITAL LETTER UKRAINIAN IE */ + { 0x06b5, 0x0405 }, /* Macedonia_DSE Ѕ CYRILLIC CAPITAL LETTER DZE */ + { 0x06b6, 0x0406 }, /* Ukrainian_I І CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ + { 0x06b7, 0x0407 }, /* Ukrainian_YI Ї CYRILLIC CAPITAL LETTER YI */ + { 0x06b8, 0x0408 }, /* Cyrillic_JE Ј CYRILLIC CAPITAL LETTER JE */ + { 0x06b9, 0x0409 }, /* Cyrillic_LJE Љ CYRILLIC CAPITAL LETTER LJE */ + { 0x06ba, 0x040a }, /* Cyrillic_NJE Њ CYRILLIC CAPITAL LETTER NJE */ + { 0x06bb, 0x040b }, /* Serbian_TSHE Ћ CYRILLIC CAPITAL LETTER TSHE */ + { 0x06bc, 0x040c }, /* Macedonia_KJE Ќ CYRILLIC CAPITAL LETTER KJE */ + { 0x06bd, 0x0490 }, /* Ukrainian_GHE_WITH_UPTURN Ґ CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ + { 0x06be, 0x040e }, /* Byelorussian_SHORTU Ў CYRILLIC CAPITAL LETTER SHORT U */ + { 0x06bf, 0x040f }, /* Cyrillic_DZHE Џ CYRILLIC CAPITAL LETTER DZHE */ + { 0x06c0, 0x044e }, /* Cyrillic_yu ю CYRILLIC SMALL LETTER YU */ + { 0x06c1, 0x0430 }, /* Cyrillic_a а CYRILLIC SMALL LETTER A */ + { 0x06c2, 0x0431 }, /* Cyrillic_be б CYRILLIC SMALL LETTER BE */ + { 0x06c3, 0x0446 }, /* Cyrillic_tse ц CYRILLIC SMALL LETTER TSE */ + { 0x06c4, 0x0434 }, /* Cyrillic_de д CYRILLIC SMALL LETTER DE */ + { 0x06c5, 0x0435 }, /* Cyrillic_ie е CYRILLIC SMALL LETTER IE */ + { 0x06c6, 0x0444 }, /* Cyrillic_ef ф CYRILLIC SMALL LETTER EF */ + { 0x06c7, 0x0433 }, /* Cyrillic_ghe г CYRILLIC SMALL LETTER GHE */ + { 0x06c8, 0x0445 }, /* Cyrillic_ha х CYRILLIC SMALL LETTER HA */ + { 0x06c9, 0x0438 }, /* Cyrillic_i и CYRILLIC SMALL LETTER I */ + { 0x06ca, 0x0439 }, /* Cyrillic_shorti й CYRILLIC SMALL LETTER SHORT I */ + { 0x06cb, 0x043a }, /* Cyrillic_ka к CYRILLIC SMALL LETTER KA */ + { 0x06cc, 0x043b }, /* Cyrillic_el л CYRILLIC SMALL LETTER EL */ + { 0x06cd, 0x043c }, /* Cyrillic_em м CYRILLIC SMALL LETTER EM */ + { 0x06ce, 0x043d }, /* Cyrillic_en н CYRILLIC SMALL LETTER EN */ + { 0x06cf, 0x043e }, /* Cyrillic_o о CYRILLIC SMALL LETTER O */ + { 0x06d0, 0x043f }, /* Cyrillic_pe п CYRILLIC SMALL LETTER PE */ + { 0x06d1, 0x044f }, /* Cyrillic_ya я CYRILLIC SMALL LETTER YA */ + { 0x06d2, 0x0440 }, /* Cyrillic_er р CYRILLIC SMALL LETTER ER */ + { 0x06d3, 0x0441 }, /* Cyrillic_es с CYRILLIC SMALL LETTER ES */ + { 0x06d4, 0x0442 }, /* Cyrillic_te т CYRILLIC SMALL LETTER TE */ + { 0x06d5, 0x0443 }, /* Cyrillic_u у CYRILLIC SMALL LETTER U */ + { 0x06d6, 0x0436 }, /* Cyrillic_zhe ж CYRILLIC SMALL LETTER ZHE */ + { 0x06d7, 0x0432 }, /* Cyrillic_ve в CYRILLIC SMALL LETTER VE */ + { 0x06d8, 0x044c }, /* Cyrillic_softsign ь CYRILLIC SMALL LETTER SOFT SIGN */ + { 0x06d9, 0x044b }, /* Cyrillic_yeru ы CYRILLIC SMALL LETTER YERU */ + { 0x06da, 0x0437 }, /* Cyrillic_ze з CYRILLIC SMALL LETTER ZE */ + { 0x06db, 0x0448 }, /* Cyrillic_sha ш CYRILLIC SMALL LETTER SHA */ + { 0x06dc, 0x044d }, /* Cyrillic_e э CYRILLIC SMALL LETTER E */ + { 0x06dd, 0x0449 }, /* Cyrillic_shcha щ CYRILLIC SMALL LETTER SHCHA */ + { 0x06de, 0x0447 }, /* Cyrillic_che ч CYRILLIC SMALL LETTER CHE */ + { 0x06df, 0x044a }, /* Cyrillic_hardsign ъ CYRILLIC SMALL LETTER HARD SIGN */ + { 0x06e0, 0x042e }, /* Cyrillic_YU Ю CYRILLIC CAPITAL LETTER YU */ + { 0x06e1, 0x0410 }, /* Cyrillic_A А CYRILLIC CAPITAL LETTER A */ + { 0x06e2, 0x0411 }, /* Cyrillic_BE Б CYRILLIC CAPITAL LETTER BE */ + { 0x06e3, 0x0426 }, /* Cyrillic_TSE Ц CYRILLIC CAPITAL LETTER TSE */ + { 0x06e4, 0x0414 }, /* Cyrillic_DE Д CYRILLIC CAPITAL LETTER DE */ + { 0x06e5, 0x0415 }, /* Cyrillic_IE Е CYRILLIC CAPITAL LETTER IE */ + { 0x06e6, 0x0424 }, /* Cyrillic_EF Ф CYRILLIC CAPITAL LETTER EF */ + { 0x06e7, 0x0413 }, /* Cyrillic_GHE Г CYRILLIC CAPITAL LETTER GHE */ + { 0x06e8, 0x0425 }, /* Cyrillic_HA Х CYRILLIC CAPITAL LETTER HA */ + { 0x06e9, 0x0418 }, /* Cyrillic_I И CYRILLIC CAPITAL LETTER I */ + { 0x06ea, 0x0419 }, /* Cyrillic_SHORTI Й CYRILLIC CAPITAL LETTER SHORT I */ + { 0x06eb, 0x041a }, /* Cyrillic_KA К CYRILLIC CAPITAL LETTER KA */ + { 0x06ec, 0x041b }, /* Cyrillic_EL Л CYRILLIC CAPITAL LETTER EL */ + { 0x06ed, 0x041c }, /* Cyrillic_EM М CYRILLIC CAPITAL LETTER EM */ + { 0x06ee, 0x041d }, /* Cyrillic_EN Н CYRILLIC CAPITAL LETTER EN */ + { 0x06ef, 0x041e }, /* Cyrillic_O О CYRILLIC CAPITAL LETTER O */ + { 0x06f0, 0x041f }, /* Cyrillic_PE П CYRILLIC CAPITAL LETTER PE */ + { 0x06f1, 0x042f }, /* Cyrillic_YA Я CYRILLIC CAPITAL LETTER YA */ + { 0x06f2, 0x0420 }, /* Cyrillic_ER Р CYRILLIC CAPITAL LETTER ER */ + { 0x06f3, 0x0421 }, /* Cyrillic_ES С CYRILLIC CAPITAL LETTER ES */ + { 0x06f4, 0x0422 }, /* Cyrillic_TE Т CYRILLIC CAPITAL LETTER TE */ + { 0x06f5, 0x0423 }, /* Cyrillic_U У CYRILLIC CAPITAL LETTER U */ + { 0x06f6, 0x0416 }, /* Cyrillic_ZHE Ж CYRILLIC CAPITAL LETTER ZHE */ + { 0x06f7, 0x0412 }, /* Cyrillic_VE В CYRILLIC CAPITAL LETTER VE */ + { 0x06f8, 0x042c }, /* Cyrillic_SOFTSIGN Ь CYRILLIC CAPITAL LETTER SOFT SIGN */ + { 0x06f9, 0x042b }, /* Cyrillic_YERU Ы CYRILLIC CAPITAL LETTER YERU */ + { 0x06fa, 0x0417 }, /* Cyrillic_ZE З CYRILLIC CAPITAL LETTER ZE */ + { 0x06fb, 0x0428 }, /* Cyrillic_SHA Ш CYRILLIC CAPITAL LETTER SHA */ + { 0x06fc, 0x042d }, /* Cyrillic_E Э CYRILLIC CAPITAL LETTER E */ + { 0x06fd, 0x0429 }, /* Cyrillic_SHCHA Щ CYRILLIC CAPITAL LETTER SHCHA */ + { 0x06fe, 0x0427 }, /* Cyrillic_CHE Ч CYRILLIC CAPITAL LETTER CHE */ + { 0x06ff, 0x042a }, /* Cyrillic_HARDSIGN Ъ CYRILLIC CAPITAL LETTER HARD SIGN */ + { 0x07a1, 0x0386 }, /* Greek_ALPHAaccent Ά GREEK CAPITAL LETTER ALPHA WITH TONOS */ + { 0x07a2, 0x0388 }, /* Greek_EPSILONaccent Έ GREEK CAPITAL LETTER EPSILON WITH TONOS */ + { 0x07a3, 0x0389 }, /* Greek_ETAaccent Ή GREEK CAPITAL LETTER ETA WITH TONOS */ + { 0x07a4, 0x038a }, /* Greek_IOTAaccent Ί GREEK CAPITAL LETTER IOTA WITH TONOS */ + { 0x07a5, 0x03aa }, /* Greek_IOTAdiaeresis Ϊ GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ + { 0x07a7, 0x038c }, /* Greek_OMICRONaccent Ό GREEK CAPITAL LETTER OMICRON WITH TONOS */ + { 0x07a8, 0x038e }, /* Greek_UPSILONaccent Ύ GREEK CAPITAL LETTER UPSILON WITH TONOS */ + { 0x07a9, 0x03ab }, /* Greek_UPSILONdieresis Ϋ GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ + { 0x07ab, 0x038f }, /* Greek_OMEGAaccent Ώ GREEK CAPITAL LETTER OMEGA WITH TONOS */ + { 0x07ae, 0x0385 }, /* Greek_accentdieresis ΅ GREEK DIALYTIKA TONOS */ + { 0x07af, 0x2015 }, /* Greek_horizbar ― HORIZONTAL BAR */ + { 0x07b1, 0x03ac }, /* Greek_alphaaccent ά GREEK SMALL LETTER ALPHA WITH TONOS */ + { 0x07b2, 0x03ad }, /* Greek_epsilonaccent έ GREEK SMALL LETTER EPSILON WITH TONOS */ + { 0x07b3, 0x03ae }, /* Greek_etaaccent ή GREEK SMALL LETTER ETA WITH TONOS */ + { 0x07b4, 0x03af }, /* Greek_iotaaccent ί GREEK SMALL LETTER IOTA WITH TONOS */ + { 0x07b5, 0x03ca }, /* Greek_iotadieresis ϊ GREEK SMALL LETTER IOTA WITH DIALYTIKA */ + { 0x07b6, 0x0390 }, /* Greek_iotaaccentdieresis ΐ GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ + { 0x07b7, 0x03cc }, /* Greek_omicronaccent ό GREEK SMALL LETTER OMICRON WITH TONOS */ + { 0x07b8, 0x03cd }, /* Greek_upsilonaccent ύ GREEK SMALL LETTER UPSILON WITH TONOS */ + { 0x07b9, 0x03cb }, /* Greek_upsilondieresis ϋ GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ + { 0x07ba, 0x03b0 }, /* Greek_upsilonaccentdieresis ΰ GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ + { 0x07bb, 0x03ce }, /* Greek_omegaaccent ώ GREEK SMALL LETTER OMEGA WITH TONOS */ + { 0x07c1, 0x0391 }, /* Greek_ALPHA Α GREEK CAPITAL LETTER ALPHA */ + { 0x07c2, 0x0392 }, /* Greek_BETA Β GREEK CAPITAL LETTER BETA */ + { 0x07c3, 0x0393 }, /* Greek_GAMMA Γ GREEK CAPITAL LETTER GAMMA */ + { 0x07c4, 0x0394 }, /* Greek_DELTA Δ GREEK CAPITAL LETTER DELTA */ + { 0x07c5, 0x0395 }, /* Greek_EPSILON Ε GREEK CAPITAL LETTER EPSILON */ + { 0x07c6, 0x0396 }, /* Greek_ZETA Ζ GREEK CAPITAL LETTER ZETA */ + { 0x07c7, 0x0397 }, /* Greek_ETA Η GREEK CAPITAL LETTER ETA */ + { 0x07c8, 0x0398 }, /* Greek_THETA Θ GREEK CAPITAL LETTER THETA */ + { 0x07c9, 0x0399 }, /* Greek_IOTA Ι GREEK CAPITAL LETTER IOTA */ + { 0x07ca, 0x039a }, /* Greek_KAPPA Κ GREEK CAPITAL LETTER KAPPA */ + { 0x07cb, 0x039b }, /* Greek_LAMBDA Λ GREEK CAPITAL LETTER LAMDA */ + { 0x07cc, 0x039c }, /* Greek_MU Μ GREEK CAPITAL LETTER MU */ + { 0x07cd, 0x039d }, /* Greek_NU Ν GREEK CAPITAL LETTER NU */ + { 0x07ce, 0x039e }, /* Greek_XI Ξ GREEK CAPITAL LETTER XI */ + { 0x07cf, 0x039f }, /* Greek_OMICRON Ο GREEK CAPITAL LETTER OMICRON */ + { 0x07d0, 0x03a0 }, /* Greek_PI Π GREEK CAPITAL LETTER PI */ + { 0x07d1, 0x03a1 }, /* Greek_RHO Ρ GREEK CAPITAL LETTER RHO */ + { 0x07d2, 0x03a3 }, /* Greek_SIGMA Σ GREEK CAPITAL LETTER SIGMA */ + { 0x07d4, 0x03a4 }, /* Greek_TAU Τ GREEK CAPITAL LETTER TAU */ + { 0x07d5, 0x03a5 }, /* Greek_UPSILON Υ GREEK CAPITAL LETTER UPSILON */ + { 0x07d6, 0x03a6 }, /* Greek_PHI Φ GREEK CAPITAL LETTER PHI */ + { 0x07d7, 0x03a7 }, /* Greek_CHI Χ GREEK CAPITAL LETTER CHI */ + { 0x07d8, 0x03a8 }, /* Greek_PSI Ψ GREEK CAPITAL LETTER PSI */ + { 0x07d9, 0x03a9 }, /* Greek_OMEGA Ω GREEK CAPITAL LETTER OMEGA */ + { 0x07e1, 0x03b1 }, /* Greek_alpha α GREEK SMALL LETTER ALPHA */ + { 0x07e2, 0x03b2 }, /* Greek_beta β GREEK SMALL LETTER BETA */ + { 0x07e3, 0x03b3 }, /* Greek_gamma γ GREEK SMALL LETTER GAMMA */ + { 0x07e4, 0x03b4 }, /* Greek_delta δ GREEK SMALL LETTER DELTA */ + { 0x07e5, 0x03b5 }, /* Greek_epsilon ε GREEK SMALL LETTER EPSILON */ + { 0x07e6, 0x03b6 }, /* Greek_zeta ζ GREEK SMALL LETTER ZETA */ + { 0x07e7, 0x03b7 }, /* Greek_eta η GREEK SMALL LETTER ETA */ + { 0x07e8, 0x03b8 }, /* Greek_theta θ GREEK SMALL LETTER THETA */ + { 0x07e9, 0x03b9 }, /* Greek_iota ι GREEK SMALL LETTER IOTA */ + { 0x07ea, 0x03ba }, /* Greek_kappa κ GREEK SMALL LETTER KAPPA */ + { 0x07eb, 0x03bb }, /* Greek_lambda λ GREEK SMALL LETTER LAMDA */ + { 0x07ec, 0x03bc }, /* Greek_mu μ GREEK SMALL LETTER MU */ + { 0x07ed, 0x03bd }, /* Greek_nu ν GREEK SMALL LETTER NU */ + { 0x07ee, 0x03be }, /* Greek_xi ξ GREEK SMALL LETTER XI */ + { 0x07ef, 0x03bf }, /* Greek_omicron ο GREEK SMALL LETTER OMICRON */ + { 0x07f0, 0x03c0 }, /* Greek_pi π GREEK SMALL LETTER PI */ + { 0x07f1, 0x03c1 }, /* Greek_rho ρ GREEK SMALL LETTER RHO */ + { 0x07f2, 0x03c3 }, /* Greek_sigma σ GREEK SMALL LETTER SIGMA */ + { 0x07f3, 0x03c2 }, /* Greek_finalsmallsigma ς GREEK SMALL LETTER FINAL SIGMA */ + { 0x07f4, 0x03c4 }, /* Greek_tau τ GREEK SMALL LETTER TAU */ + { 0x07f5, 0x03c5 }, /* Greek_upsilon υ GREEK SMALL LETTER UPSILON */ + { 0x07f6, 0x03c6 }, /* Greek_phi φ GREEK SMALL LETTER PHI */ + { 0x07f7, 0x03c7 }, /* Greek_chi χ GREEK SMALL LETTER CHI */ + { 0x07f8, 0x03c8 }, /* Greek_psi ψ GREEK SMALL LETTER PSI */ + { 0x07f9, 0x03c9 }, /* Greek_omega ω GREEK SMALL LETTER OMEGA */ + { 0x08a1, 0x23b7 }, /* leftradical ⎷ ??? */ + { 0x08a2, 0x250c }, /* topleftradical ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT */ + { 0x08a3, 0x2500 }, /* horizconnector ─ BOX DRAWINGS LIGHT HORIZONTAL */ + { 0x08a4, 0x2320 }, /* topintegral ⌠ TOP HALF INTEGRAL */ + { 0x08a5, 0x2321 }, /* botintegral ⌡ BOTTOM HALF INTEGRAL */ + { 0x08a6, 0x2502 }, /* vertconnector │ BOX DRAWINGS LIGHT VERTICAL */ + { 0x08a7, 0x23a1 }, /* topleftsqbracket ⎡ ??? */ + { 0x08a8, 0x23a3 }, /* botleftsqbracket ⎣ ??? */ + { 0x08a9, 0x23a4 }, /* toprightsqbracket ⎤ ??? */ + { 0x08aa, 0x23a6 }, /* botrightsqbracket ⎦ ??? */ + { 0x08ab, 0x239b }, /* topleftparens ⎛ ??? */ + { 0x08ac, 0x239d }, /* botleftparens ⎝ ??? */ + { 0x08ad, 0x239e }, /* toprightparens ⎞ ??? */ + { 0x08ae, 0x23a0 }, /* botrightparens ⎠ ??? */ + { 0x08af, 0x23a8 }, /* leftmiddlecurlybrace ⎨ ??? */ + { 0x08b0, 0x23ac }, /* rightmiddlecurlybrace ⎬ ??? */ + /* 0x08b1 topleftsummation ? ??? */ + /* 0x08b2 botleftsummation ? ??? */ + /* 0x08b3 topvertsummationconnector ? ??? */ + /* 0x08b4 botvertsummationconnector ? ??? */ + /* 0x08b5 toprightsummation ? ??? */ + /* 0x08b6 botrightsummation ? ??? */ + /* 0x08b7 rightmiddlesummation ? ??? */ + { 0x08bc, 0x2264 }, /* lessthanequal ≤ LESS-THAN OR EQUAL TO */ + { 0x08bd, 0x2260 }, /* notequal ≠ NOT EQUAL TO */ + { 0x08be, 0x2265 }, /* greaterthanequal ≥ GREATER-THAN OR EQUAL TO */ + { 0x08bf, 0x222b }, /* integral ∫ INTEGRAL */ + { 0x08c0, 0x2234 }, /* therefore ∴ THEREFORE */ + { 0x08c1, 0x221d }, /* variation ∝ PROPORTIONAL TO */ + { 0x08c2, 0x221e }, /* infinity ∞ INFINITY */ + { 0x08c5, 0x2207 }, /* nabla ∇ NABLA */ + { 0x08c8, 0x223c }, /* approximate ∼ TILDE OPERATOR */ + { 0x08c9, 0x2243 }, /* similarequal ≃ ASYMPTOTICALLY EQUAL TO */ + { 0x08cd, 0x21d4 }, /* ifonlyif ⇔ LEFT RIGHT DOUBLE ARROW */ + { 0x08ce, 0x21d2 }, /* implies ⇒ RIGHTWARDS DOUBLE ARROW */ + { 0x08cf, 0x2261 }, /* identical ≡ IDENTICAL TO */ + { 0x08d6, 0x221a }, /* radical √ SQUARE ROOT */ + { 0x08da, 0x2282 }, /* includedin ⊂ SUBSET OF */ + { 0x08db, 0x2283 }, /* includes ⊃ SUPERSET OF */ + { 0x08dc, 0x2229 }, /* intersection ∩ INTERSECTION */ + { 0x08dd, 0x222a }, /* union ∪ UNION */ + { 0x08de, 0x2227 }, /* logicaland ∧ LOGICAL AND */ + { 0x08df, 0x2228 }, /* logicalor ∨ LOGICAL OR */ + { 0x08ef, 0x2202 }, /* partialderivative ∂ PARTIAL DIFFERENTIAL */ + { 0x08f6, 0x0192 }, /* function ƒ LATIN SMALL LETTER F WITH HOOK */ + { 0x08fb, 0x2190 }, /* leftarrow ← LEFTWARDS ARROW */ + { 0x08fc, 0x2191 }, /* uparrow ↑ UPWARDS ARROW */ + { 0x08fd, 0x2192 }, /* rightarrow → RIGHTWARDS ARROW */ + { 0x08fe, 0x2193 }, /* downarrow ↓ DOWNWARDS ARROW */ +/* 0x09df blank ? ??? */ + { 0x09e0, 0x25c6 }, /* soliddiamond ◆ BLACK DIAMOND */ + { 0x09e1, 0x2592 }, /* checkerboard ▒ MEDIUM SHADE */ + { 0x09e2, 0x2409 }, /* ht ␉ SYMBOL FOR HORIZONTAL TABULATION */ + { 0x09e3, 0x240c }, /* ff ␌ SYMBOL FOR FORM FEED */ + { 0x09e4, 0x240d }, /* cr ␍ SYMBOL FOR CARRIAGE RETURN */ + { 0x09e5, 0x240a }, /* lf ␊ SYMBOL FOR LINE FEED */ + { 0x09e8, 0x2424 }, /* nl ␤ SYMBOL FOR NEWLINE */ + { 0x09e9, 0x240b }, /* vt ␋ SYMBOL FOR VERTICAL TABULATION */ + { 0x09ea, 0x2518 }, /* lowrightcorner ┘ BOX DRAWINGS LIGHT UP AND LEFT */ + { 0x09eb, 0x2510 }, /* uprightcorner ┐ BOX DRAWINGS LIGHT DOWN AND LEFT */ + { 0x09ec, 0x250c }, /* upleftcorner ┌ BOX DRAWINGS LIGHT DOWN AND RIGHT */ + { 0x09ed, 0x2514 }, /* lowleftcorner └ BOX DRAWINGS LIGHT UP AND RIGHT */ + { 0x09ee, 0x253c }, /* crossinglines ┼ BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ + { 0x09ef, 0x23ba }, /* horizlinescan1 ⎺ HORIZONTAL SCAN LINE-1 (Unicode 3.2 draft) */ + { 0x09f0, 0x23bb }, /* horizlinescan3 ⎻ HORIZONTAL SCAN LINE-3 (Unicode 3.2 draft) */ + { 0x09f1, 0x2500 }, /* horizlinescan5 ─ BOX DRAWINGS LIGHT HORIZONTAL */ + { 0x09f2, 0x23bc }, /* horizlinescan7 ⎼ HORIZONTAL SCAN LINE-7 (Unicode 3.2 draft) */ + { 0x09f3, 0x23bd }, /* horizlinescan9 ⎽ HORIZONTAL SCAN LINE-9 (Unicode 3.2 draft) */ + { 0x09f4, 0x251c }, /* leftt ├ BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ + { 0x09f5, 0x2524 }, /* rightt ┤ BOX DRAWINGS LIGHT VERTICAL AND LEFT */ + { 0x09f6, 0x2534 }, /* bott ┴ BOX DRAWINGS LIGHT UP AND HORIZONTAL */ + { 0x09f7, 0x252c }, /* topt ┬ BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ + { 0x09f8, 0x2502 }, /* vertbar │ BOX DRAWINGS LIGHT VERTICAL */ + { 0x0aa1, 0x2003 }, /* emspace   EM SPACE */ + { 0x0aa2, 0x2002 }, /* enspace   EN SPACE */ + { 0x0aa3, 0x2004 }, /* em3space   THREE-PER-EM SPACE */ + { 0x0aa4, 0x2005 }, /* em4space   FOUR-PER-EM SPACE */ + { 0x0aa5, 0x2007 }, /* digitspace   FIGURE SPACE */ + { 0x0aa6, 0x2008 }, /* punctspace   PUNCTUATION SPACE */ + { 0x0aa7, 0x2009 }, /* thinspace   THIN SPACE */ + { 0x0aa8, 0x200a }, /* hairspace   HAIR SPACE */ + { 0x0aa9, 0x2014 }, /* emdash — EM DASH */ + { 0x0aaa, 0x2013 }, /* endash – EN DASH */ + /* 0x0aac signifblank ? ??? */ + { 0x0aae, 0x2026 }, /* ellipsis … HORIZONTAL ELLIPSIS */ + { 0x0aaf, 0x2025 }, /* doubbaselinedot ‥ TWO DOT LEADER */ + { 0x0ab0, 0x2153 }, /* onethird ⅓ VULGAR FRACTION ONE THIRD */ + { 0x0ab1, 0x2154 }, /* twothirds ⅔ VULGAR FRACTION TWO THIRDS */ + { 0x0ab2, 0x2155 }, /* onefifth ⅕ VULGAR FRACTION ONE FIFTH */ + { 0x0ab3, 0x2156 }, /* twofifths ⅖ VULGAR FRACTION TWO FIFTHS */ + { 0x0ab4, 0x2157 }, /* threefifths ⅗ VULGAR FRACTION THREE FIFTHS */ + { 0x0ab5, 0x2158 }, /* fourfifths ⅘ VULGAR FRACTION FOUR FIFTHS */ + { 0x0ab6, 0x2159 }, /* onesixth ⅙ VULGAR FRACTION ONE SIXTH */ + { 0x0ab7, 0x215a }, /* fivesixths ⅚ VULGAR FRACTION FIVE SIXTHS */ + { 0x0ab8, 0x2105 }, /* careof ℅ CARE OF */ + { 0x0abb, 0x2012 }, /* figdash ‒ FIGURE DASH */ + { 0x0abc, 0x2329 }, /* leftanglebracket 〈 LEFT-POINTING ANGLE BRACKET */ + { 0x0abd, 0x002e }, /* decimalpoint . FULL STOP */ + { 0x0abe, 0x232a }, /* rightanglebracket 〉 RIGHT-POINTING ANGLE BRACKET */ + /* 0x0abf marker ? ??? */ + { 0x0ac3, 0x215b }, /* oneeighth ⅛ VULGAR FRACTION ONE EIGHTH */ + { 0x0ac4, 0x215c }, /* threeeighths ⅜ VULGAR FRACTION THREE EIGHTHS */ + { 0x0ac5, 0x215d }, /* fiveeighths ⅝ VULGAR FRACTION FIVE EIGHTHS */ + { 0x0ac6, 0x215e }, /* seveneighths ⅞ VULGAR FRACTION SEVEN EIGHTHS */ + { 0x0ac9, 0x2122 }, /* trademark ™ TRADE MARK SIGN */ + { 0x0aca, 0x2613 }, /* signaturemark ☓ SALTIRE */ + /* 0x0acb trademarkincircle ? ??? */ + { 0x0acc, 0x25c1 }, /* leftopentriangle ◁ WHITE LEFT-POINTING TRIANGLE */ + { 0x0acd, 0x25b7 }, /* rightopentriangle ▷ WHITE RIGHT-POINTING TRIANGLE */ + { 0x0ace, 0x25cb }, /* emopencircle ○ WHITE CIRCLE */ + { 0x0acf, 0x25af }, /* emopenrectangle ▯ WHITE VERTICAL RECTANGLE */ + { 0x0ad0, 0x2018 }, /* leftsinglequotemark ‘ LEFT SINGLE QUOTATION MARK */ + { 0x0ad1, 0x2019 }, /* rightsinglequotemark ’ RIGHT SINGLE QUOTATION MARK */ + { 0x0ad2, 0x201c }, /* leftdoublequotemark “ LEFT DOUBLE QUOTATION MARK */ + { 0x0ad3, 0x201d }, /* rightdoublequotemark ” RIGHT DOUBLE QUOTATION MARK */ + { 0x0ad4, 0x211e }, /* prescription ℞ PRESCRIPTION TAKE */ + { 0x0ad6, 0x2032 }, /* minutes ′ PRIME */ + { 0x0ad7, 0x2033 }, /* seconds ″ DOUBLE PRIME */ + { 0x0ad9, 0x271d }, /* latincross ✝ LATIN CROSS */ + /* 0x0ada hexagram ? ??? */ + { 0x0adb, 0x25ac }, /* filledrectbullet ▬ BLACK RECTANGLE */ + { 0x0adc, 0x25c0 }, /* filledlefttribullet ◀ BLACK LEFT-POINTING TRIANGLE */ + { 0x0add, 0x25b6 }, /* filledrighttribullet ▶ BLACK RIGHT-POINTING TRIANGLE */ + { 0x0ade, 0x25cf }, /* emfilledcircle ● BLACK CIRCLE */ + { 0x0adf, 0x25ae }, /* emfilledrect ▮ BLACK VERTICAL RECTANGLE */ + { 0x0ae0, 0x25e6 }, /* enopencircbullet ◦ WHITE BULLET */ + { 0x0ae1, 0x25ab }, /* enopensquarebullet ▫ WHITE SMALL SQUARE */ + { 0x0ae2, 0x25ad }, /* openrectbullet ▭ WHITE RECTANGLE */ + { 0x0ae3, 0x25b3 }, /* opentribulletup △ WHITE UP-POINTING TRIANGLE */ + { 0x0ae4, 0x25bd }, /* opentribulletdown ▽ WHITE DOWN-POINTING TRIANGLE */ + { 0x0ae5, 0x2606 }, /* openstar ☆ WHITE STAR */ + { 0x0ae6, 0x2022 }, /* enfilledcircbullet • BULLET */ + { 0x0ae7, 0x25aa }, /* enfilledsqbullet ▪ BLACK SMALL SQUARE */ + { 0x0ae8, 0x25b2 }, /* filledtribulletup ▲ BLACK UP-POINTING TRIANGLE */ + { 0x0ae9, 0x25bc }, /* filledtribulletdown ▼ BLACK DOWN-POINTING TRIANGLE */ + { 0x0aea, 0x261c }, /* leftpointer ☜ WHITE LEFT POINTING INDEX */ + { 0x0aeb, 0x261e }, /* rightpointer ☞ WHITE RIGHT POINTING INDEX */ + { 0x0aec, 0x2663 }, /* club ♣ BLACK CLUB SUIT */ + { 0x0aed, 0x2666 }, /* diamond ♦ BLACK DIAMOND SUIT */ + { 0x0aee, 0x2665 }, /* heart ♥ BLACK HEART SUIT */ + { 0x0af0, 0x2720 }, /* maltesecross ✠ MALTESE CROSS */ + { 0x0af1, 0x2020 }, /* dagger † DAGGER */ + { 0x0af2, 0x2021 }, /* doubledagger ‡ DOUBLE DAGGER */ + { 0x0af3, 0x2713 }, /* checkmark ✓ CHECK MARK */ + { 0x0af4, 0x2717 }, /* ballotcross ✗ BALLOT X */ + { 0x0af5, 0x266f }, /* musicalsharp ♯ MUSIC SHARP SIGN */ + { 0x0af6, 0x266d }, /* musicalflat ♭ MUSIC FLAT SIGN */ + { 0x0af7, 0x2642 }, /* malesymbol ♂ MALE SIGN */ + { 0x0af8, 0x2640 }, /* femalesymbol ♀ FEMALE SIGN */ + { 0x0af9, 0x260e }, /* telephone ☎ BLACK TELEPHONE */ + { 0x0afa, 0x2315 }, /* telephonerecorder ⌕ TELEPHONE RECORDER */ + { 0x0afb, 0x2117 }, /* phonographcopyright ℗ SOUND RECORDING COPYRIGHT */ + { 0x0afc, 0x2038 }, /* caret ‸ CARET */ + { 0x0afd, 0x201a }, /* singlelowquotemark ‚ SINGLE LOW-9 QUOTATION MARK */ + { 0x0afe, 0x201e }, /* doublelowquotemark „ DOUBLE LOW-9 QUOTATION MARK */ + /* 0x0aff cursor ? ??? */ + { 0x0ba3, 0x003c }, /* leftcaret < LESS-THAN SIGN */ + { 0x0ba6, 0x003e }, /* rightcaret > GREATER-THAN SIGN */ + { 0x0ba8, 0x2228 }, /* downcaret ∨ LOGICAL OR */ + { 0x0ba9, 0x2227 }, /* upcaret ∧ LOGICAL AND */ + { 0x0bc0, 0x00af }, /* overbar ¯ MACRON */ + { 0x0bc2, 0x22a4 }, /* downtack ⊤ DOWN TACK */ + { 0x0bc3, 0x2229 }, /* upshoe ∩ INTERSECTION */ + { 0x0bc4, 0x230a }, /* downstile ⌊ LEFT FLOOR */ + { 0x0bc6, 0x005f }, /* underbar _ LOW LINE */ + { 0x0bca, 0x2218 }, /* jot ∘ RING OPERATOR */ + { 0x0bcc, 0x2395 }, /* quad ⎕ APL FUNCTIONAL SYMBOL QUAD (Unicode 3.0) */ + { 0x0bce, 0x22a5 }, /* uptack ⊥ UP TACK */ + { 0x0bcf, 0x25cb }, /* circle ○ WHITE CIRCLE */ + { 0x0bd3, 0x2308 }, /* upstile ⌈ LEFT CEILING */ + { 0x0bd6, 0x222a }, /* downshoe ∪ UNION */ + { 0x0bd8, 0x2283 }, /* rightshoe ⊃ SUPERSET OF */ + { 0x0bda, 0x2282 }, /* leftshoe ⊂ SUBSET OF */ + { 0x0bdc, 0x22a2 }, /* lefttack ⊢ RIGHT TACK */ + { 0x0bfc, 0x22a3 }, /* righttack ⊣ LEFT TACK */ + { 0x0cdf, 0x2017 }, /* hebrew_doublelowline ‗ DOUBLE LOW LINE */ + { 0x0ce0, 0x05d0 }, /* hebrew_aleph א HEBREW LETTER ALEF */ + { 0x0ce1, 0x05d1 }, /* hebrew_bet ב HEBREW LETTER BET */ + { 0x0ce2, 0x05d2 }, /* hebrew_gimel ג HEBREW LETTER GIMEL */ + { 0x0ce3, 0x05d3 }, /* hebrew_dalet ד HEBREW LETTER DALET */ + { 0x0ce4, 0x05d4 }, /* hebrew_he ה HEBREW LETTER HE */ + { 0x0ce5, 0x05d5 }, /* hebrew_waw ו HEBREW LETTER VAV */ + { 0x0ce6, 0x05d6 }, /* hebrew_zain ז HEBREW LETTER ZAYIN */ + { 0x0ce7, 0x05d7 }, /* hebrew_chet ח HEBREW LETTER HET */ + { 0x0ce8, 0x05d8 }, /* hebrew_tet ט HEBREW LETTER TET */ + { 0x0ce9, 0x05d9 }, /* hebrew_yod י HEBREW LETTER YOD */ + { 0x0cea, 0x05da }, /* hebrew_finalkaph ך HEBREW LETTER FINAL KAF */ + { 0x0ceb, 0x05db }, /* hebrew_kaph כ HEBREW LETTER KAF */ + { 0x0cec, 0x05dc }, /* hebrew_lamed ל HEBREW LETTER LAMED */ + { 0x0ced, 0x05dd }, /* hebrew_finalmem ם HEBREW LETTER FINAL MEM */ + { 0x0cee, 0x05de }, /* hebrew_mem מ HEBREW LETTER MEM */ + { 0x0cef, 0x05df }, /* hebrew_finalnun ן HEBREW LETTER FINAL NUN */ + { 0x0cf0, 0x05e0 }, /* hebrew_nun נ HEBREW LETTER NUN */ + { 0x0cf1, 0x05e1 }, /* hebrew_samech ס HEBREW LETTER SAMEKH */ + { 0x0cf2, 0x05e2 }, /* hebrew_ayin ע HEBREW LETTER AYIN */ + { 0x0cf3, 0x05e3 }, /* hebrew_finalpe ף HEBREW LETTER FINAL PE */ + { 0x0cf4, 0x05e4 }, /* hebrew_pe פ HEBREW LETTER PE */ + { 0x0cf5, 0x05e5 }, /* hebrew_finalzade ץ HEBREW LETTER FINAL TSADI */ + { 0x0cf6, 0x05e6 }, /* hebrew_zade צ HEBREW LETTER TSADI */ + { 0x0cf7, 0x05e7 }, /* hebrew_qoph ק HEBREW LETTER QOF */ + { 0x0cf8, 0x05e8 }, /* hebrew_resh ר HEBREW LETTER RESH */ + { 0x0cf9, 0x05e9 }, /* hebrew_shin ש HEBREW LETTER SHIN */ + { 0x0cfa, 0x05ea }, /* hebrew_taw ת HEBREW LETTER TAV */ + { 0x0da1, 0x0e01 }, /* Thai_kokai ก THAI CHARACTER KO KAI */ + { 0x0da2, 0x0e02 }, /* Thai_khokhai ข THAI CHARACTER KHO KHAI */ + { 0x0da3, 0x0e03 }, /* Thai_khokhuat ฃ THAI CHARACTER KHO KHUAT */ + { 0x0da4, 0x0e04 }, /* Thai_khokhwai ค THAI CHARACTER KHO KHWAI */ + { 0x0da5, 0x0e05 }, /* Thai_khokhon ฅ THAI CHARACTER KHO KHON */ + { 0x0da6, 0x0e06 }, /* Thai_khorakhang ฆ THAI CHARACTER KHO RAKHANG */ + { 0x0da7, 0x0e07 }, /* Thai_ngongu ง THAI CHARACTER NGO NGU */ + { 0x0da8, 0x0e08 }, /* Thai_chochan จ THAI CHARACTER CHO CHAN */ + { 0x0da9, 0x0e09 }, /* Thai_choching ฉ THAI CHARACTER CHO CHING */ + { 0x0daa, 0x0e0a }, /* Thai_chochang ช THAI CHARACTER CHO CHANG */ + { 0x0dab, 0x0e0b }, /* Thai_soso ซ THAI CHARACTER SO SO */ + { 0x0dac, 0x0e0c }, /* Thai_chochoe ฌ THAI CHARACTER CHO CHOE */ + { 0x0dad, 0x0e0d }, /* Thai_yoying ญ THAI CHARACTER YO YING */ + { 0x0dae, 0x0e0e }, /* Thai_dochada ฎ THAI CHARACTER DO CHADA */ + { 0x0daf, 0x0e0f }, /* Thai_topatak ฏ THAI CHARACTER TO PATAK */ + { 0x0db0, 0x0e10 }, /* Thai_thothan ฐ THAI CHARACTER THO THAN */ + { 0x0db1, 0x0e11 }, /* Thai_thonangmontho ฑ THAI CHARACTER THO NANGMONTHO */ + { 0x0db2, 0x0e12 }, /* Thai_thophuthao ฒ THAI CHARACTER THO PHUTHAO */ + { 0x0db3, 0x0e13 }, /* Thai_nonen ณ THAI CHARACTER NO NEN */ + { 0x0db4, 0x0e14 }, /* Thai_dodek ด THAI CHARACTER DO DEK */ + { 0x0db5, 0x0e15 }, /* Thai_totao ต THAI CHARACTER TO TAO */ + { 0x0db6, 0x0e16 }, /* Thai_thothung ถ THAI CHARACTER THO THUNG */ + { 0x0db7, 0x0e17 }, /* Thai_thothahan ท THAI CHARACTER THO THAHAN */ + { 0x0db8, 0x0e18 }, /* Thai_thothong ธ THAI CHARACTER THO THONG */ + { 0x0db9, 0x0e19 }, /* Thai_nonu น THAI CHARACTER NO NU */ + { 0x0dba, 0x0e1a }, /* Thai_bobaimai บ THAI CHARACTER BO BAIMAI */ + { 0x0dbb, 0x0e1b }, /* Thai_popla ป THAI CHARACTER PO PLA */ + { 0x0dbc, 0x0e1c }, /* Thai_phophung ผ THAI CHARACTER PHO PHUNG */ + { 0x0dbd, 0x0e1d }, /* Thai_fofa ฝ THAI CHARACTER FO FA */ + { 0x0dbe, 0x0e1e }, /* Thai_phophan พ THAI CHARACTER PHO PHAN */ + { 0x0dbf, 0x0e1f }, /* Thai_fofan ฟ THAI CHARACTER FO FAN */ + { 0x0dc0, 0x0e20 }, /* Thai_phosamphao ภ THAI CHARACTER PHO SAMPHAO */ + { 0x0dc1, 0x0e21 }, /* Thai_moma ม THAI CHARACTER MO MA */ + { 0x0dc2, 0x0e22 }, /* Thai_yoyak ย THAI CHARACTER YO YAK */ + { 0x0dc3, 0x0e23 }, /* Thai_rorua ร THAI CHARACTER RO RUA */ + { 0x0dc4, 0x0e24 }, /* Thai_ru ฤ THAI CHARACTER RU */ + { 0x0dc5, 0x0e25 }, /* Thai_loling ล THAI CHARACTER LO LING */ + { 0x0dc6, 0x0e26 }, /* Thai_lu ฦ THAI CHARACTER LU */ + { 0x0dc7, 0x0e27 }, /* Thai_wowaen ว THAI CHARACTER WO WAEN */ + { 0x0dc8, 0x0e28 }, /* Thai_sosala ศ THAI CHARACTER SO SALA */ + { 0x0dc9, 0x0e29 }, /* Thai_sorusi ษ THAI CHARACTER SO RUSI */ + { 0x0dca, 0x0e2a }, /* Thai_sosua ส THAI CHARACTER SO SUA */ + { 0x0dcb, 0x0e2b }, /* Thai_hohip ห THAI CHARACTER HO HIP */ + { 0x0dcc, 0x0e2c }, /* Thai_lochula ฬ THAI CHARACTER LO CHULA */ + { 0x0dcd, 0x0e2d }, /* Thai_oang อ THAI CHARACTER O ANG */ + { 0x0dce, 0x0e2e }, /* Thai_honokhuk ฮ THAI CHARACTER HO NOKHUK */ + { 0x0dcf, 0x0e2f }, /* Thai_paiyannoi ฯ THAI CHARACTER PAIYANNOI */ + { 0x0dd0, 0x0e30 }, /* Thai_saraa ะ THAI CHARACTER SARA A */ + { 0x0dd1, 0x0e31 }, /* Thai_maihanakat ั THAI CHARACTER MAI HAN-AKAT */ + { 0x0dd2, 0x0e32 }, /* Thai_saraaa า THAI CHARACTER SARA AA */ + { 0x0dd3, 0x0e33 }, /* Thai_saraam ำ THAI CHARACTER SARA AM */ + { 0x0dd4, 0x0e34 }, /* Thai_sarai ิ THAI CHARACTER SARA I */ + { 0x0dd5, 0x0e35 }, /* Thai_saraii ี THAI CHARACTER SARA II */ + { 0x0dd6, 0x0e36 }, /* Thai_saraue ึ THAI CHARACTER SARA UE */ + { 0x0dd7, 0x0e37 }, /* Thai_sarauee ื THAI CHARACTER SARA UEE */ + { 0x0dd8, 0x0e38 }, /* Thai_sarau ุ THAI CHARACTER SARA U */ + { 0x0dd9, 0x0e39 }, /* Thai_sarauu ู THAI CHARACTER SARA UU */ + { 0x0dda, 0x0e3a }, /* Thai_phinthu ฺ THAI CHARACTER PHINTHU */ + { 0x0dde, 0x0e3e }, /* Thai_maihanakat_maitho ฾ ??? */ + { 0x0ddf, 0x0e3f }, /* Thai_baht ฿ THAI CURRENCY SYMBOL BAHT */ + { 0x0de0, 0x0e40 }, /* Thai_sarae เ THAI CHARACTER SARA E */ + { 0x0de1, 0x0e41 }, /* Thai_saraae แ THAI CHARACTER SARA AE */ + { 0x0de2, 0x0e42 }, /* Thai_sarao โ THAI CHARACTER SARA O */ + { 0x0de3, 0x0e43 }, /* Thai_saraaimaimuan ใ THAI CHARACTER SARA AI MAIMUAN */ + { 0x0de4, 0x0e44 }, /* Thai_saraaimaimalai ไ THAI CHARACTER SARA AI MAIMALAI */ + { 0x0de5, 0x0e45 }, /* Thai_lakkhangyao ๅ THAI CHARACTER LAKKHANGYAO */ + { 0x0de6, 0x0e46 }, /* Thai_maiyamok ๆ THAI CHARACTER MAIYAMOK */ + { 0x0de7, 0x0e47 }, /* Thai_maitaikhu ็ THAI CHARACTER MAITAIKHU */ + { 0x0de8, 0x0e48 }, /* Thai_maiek ่ THAI CHARACTER MAI EK */ + { 0x0de9, 0x0e49 }, /* Thai_maitho ้ THAI CHARACTER MAI THO */ + { 0x0dea, 0x0e4a }, /* Thai_maitri ๊ THAI CHARACTER MAI TRI */ + { 0x0deb, 0x0e4b }, /* Thai_maichattawa ๋ THAI CHARACTER MAI CHATTAWA */ + { 0x0dec, 0x0e4c }, /* Thai_thanthakhat ์ THAI CHARACTER THANTHAKHAT */ + { 0x0ded, 0x0e4d }, /* Thai_nikhahit ํ THAI CHARACTER NIKHAHIT */ + { 0x0df0, 0x0e50 }, /* Thai_leksun ๐ THAI DIGIT ZERO */ + { 0x0df1, 0x0e51 }, /* Thai_leknung ๑ THAI DIGIT ONE */ + { 0x0df2, 0x0e52 }, /* Thai_leksong ๒ THAI DIGIT TWO */ + { 0x0df3, 0x0e53 }, /* Thai_leksam ๓ THAI DIGIT THREE */ + { 0x0df4, 0x0e54 }, /* Thai_leksi ๔ THAI DIGIT FOUR */ + { 0x0df5, 0x0e55 }, /* Thai_lekha ๕ THAI DIGIT FIVE */ + { 0x0df6, 0x0e56 }, /* Thai_lekhok ๖ THAI DIGIT SIX */ + { 0x0df7, 0x0e57 }, /* Thai_lekchet ๗ THAI DIGIT SEVEN */ + { 0x0df8, 0x0e58 }, /* Thai_lekpaet ๘ THAI DIGIT EIGHT */ + { 0x0df9, 0x0e59 }, /* Thai_lekkao ๙ THAI DIGIT NINE */ + { 0x0ea1, 0x3131 }, /* Hangul_Kiyeog ㄱ HANGUL LETTER KIYEOK */ + { 0x0ea2, 0x3132 }, /* Hangul_SsangKiyeog ㄲ HANGUL LETTER SSANGKIYEOK */ + { 0x0ea3, 0x3133 }, /* Hangul_KiyeogSios ㄳ HANGUL LETTER KIYEOK-SIOS */ + { 0x0ea4, 0x3134 }, /* Hangul_Nieun ㄴ HANGUL LETTER NIEUN */ + { 0x0ea5, 0x3135 }, /* Hangul_NieunJieuj ㄵ HANGUL LETTER NIEUN-CIEUC */ + { 0x0ea6, 0x3136 }, /* Hangul_NieunHieuh ㄶ HANGUL LETTER NIEUN-HIEUH */ + { 0x0ea7, 0x3137 }, /* Hangul_Dikeud ㄷ HANGUL LETTER TIKEUT */ + { 0x0ea8, 0x3138 }, /* Hangul_SsangDikeud ㄸ HANGUL LETTER SSANGTIKEUT */ + { 0x0ea9, 0x3139 }, /* Hangul_Rieul ㄹ HANGUL LETTER RIEUL */ + { 0x0eaa, 0x313a }, /* Hangul_RieulKiyeog ㄺ HANGUL LETTER RIEUL-KIYEOK */ + { 0x0eab, 0x313b }, /* Hangul_RieulMieum ㄻ HANGUL LETTER RIEUL-MIEUM */ + { 0x0eac, 0x313c }, /* Hangul_RieulPieub ㄼ HANGUL LETTER RIEUL-PIEUP */ + { 0x0ead, 0x313d }, /* Hangul_RieulSios ㄽ HANGUL LETTER RIEUL-SIOS */ + { 0x0eae, 0x313e }, /* Hangul_RieulTieut ㄾ HANGUL LETTER RIEUL-THIEUTH */ + { 0x0eaf, 0x313f }, /* Hangul_RieulPhieuf ㄿ HANGUL LETTER RIEUL-PHIEUPH */ + { 0x0eb0, 0x3140 }, /* Hangul_RieulHieuh ㅀ HANGUL LETTER RIEUL-HIEUH */ + { 0x0eb1, 0x3141 }, /* Hangul_Mieum ㅁ HANGUL LETTER MIEUM */ + { 0x0eb2, 0x3142 }, /* Hangul_Pieub ㅂ HANGUL LETTER PIEUP */ + { 0x0eb3, 0x3143 }, /* Hangul_SsangPieub ㅃ HANGUL LETTER SSANGPIEUP */ + { 0x0eb4, 0x3144 }, /* Hangul_PieubSios ㅄ HANGUL LETTER PIEUP-SIOS */ + { 0x0eb5, 0x3145 }, /* Hangul_Sios ㅅ HANGUL LETTER SIOS */ + { 0x0eb6, 0x3146 }, /* Hangul_SsangSios ㅆ HANGUL LETTER SSANGSIOS */ + { 0x0eb7, 0x3147 }, /* Hangul_Ieung ㅇ HANGUL LETTER IEUNG */ + { 0x0eb8, 0x3148 }, /* Hangul_Jieuj ㅈ HANGUL LETTER CIEUC */ + { 0x0eb9, 0x3149 }, /* Hangul_SsangJieuj ㅉ HANGUL LETTER SSANGCIEUC */ + { 0x0eba, 0x314a }, /* Hangul_Cieuc ㅊ HANGUL LETTER CHIEUCH */ + { 0x0ebb, 0x314b }, /* Hangul_Khieuq ㅋ HANGUL LETTER KHIEUKH */ + { 0x0ebc, 0x314c }, /* Hangul_Tieut ㅌ HANGUL LETTER THIEUTH */ + { 0x0ebd, 0x314d }, /* Hangul_Phieuf ㅍ HANGUL LETTER PHIEUPH */ + { 0x0ebe, 0x314e }, /* Hangul_Hieuh ㅎ HANGUL LETTER HIEUH */ + { 0x0ebf, 0x314f }, /* Hangul_A ㅏ HANGUL LETTER A */ + { 0x0ec0, 0x3150 }, /* Hangul_AE ㅐ HANGUL LETTER AE */ + { 0x0ec1, 0x3151 }, /* Hangul_YA ㅑ HANGUL LETTER YA */ + { 0x0ec2, 0x3152 }, /* Hangul_YAE ㅒ HANGUL LETTER YAE */ + { 0x0ec3, 0x3153 }, /* Hangul_EO ㅓ HANGUL LETTER EO */ + { 0x0ec4, 0x3154 }, /* Hangul_E ㅔ HANGUL LETTER E */ + { 0x0ec5, 0x3155 }, /* Hangul_YEO ㅕ HANGUL LETTER YEO */ + { 0x0ec6, 0x3156 }, /* Hangul_YE ㅖ HANGUL LETTER YE */ + { 0x0ec7, 0x3157 }, /* Hangul_O ㅗ HANGUL LETTER O */ + { 0x0ec8, 0x3158 }, /* Hangul_WA ㅘ HANGUL LETTER WA */ + { 0x0ec9, 0x3159 }, /* Hangul_WAE ㅙ HANGUL LETTER WAE */ + { 0x0eca, 0x315a }, /* Hangul_OE ㅚ HANGUL LETTER OE */ + { 0x0ecb, 0x315b }, /* Hangul_YO ㅛ HANGUL LETTER YO */ + { 0x0ecc, 0x315c }, /* Hangul_U ㅜ HANGUL LETTER U */ + { 0x0ecd, 0x315d }, /* Hangul_WEO ㅝ HANGUL LETTER WEO */ + { 0x0ece, 0x315e }, /* Hangul_WE ㅞ HANGUL LETTER WE */ + { 0x0ecf, 0x315f }, /* Hangul_WI ㅟ HANGUL LETTER WI */ + { 0x0ed0, 0x3160 }, /* Hangul_YU ㅠ HANGUL LETTER YU */ + { 0x0ed1, 0x3161 }, /* Hangul_EU ㅡ HANGUL LETTER EU */ + { 0x0ed2, 0x3162 }, /* Hangul_YI ㅢ HANGUL LETTER YI */ + { 0x0ed3, 0x3163 }, /* Hangul_I ㅣ HANGUL LETTER I */ + { 0x0ed4, 0x11a8 }, /* Hangul_J_Kiyeog ᆨ HANGUL JONGSEONG KIYEOK */ + { 0x0ed5, 0x11a9 }, /* Hangul_J_SsangKiyeog ᆩ HANGUL JONGSEONG SSANGKIYEOK */ + { 0x0ed6, 0x11aa }, /* Hangul_J_KiyeogSios ᆪ HANGUL JONGSEONG KIYEOK-SIOS */ + { 0x0ed7, 0x11ab }, /* Hangul_J_Nieun ᆫ HANGUL JONGSEONG NIEUN */ + { 0x0ed8, 0x11ac }, /* Hangul_J_NieunJieuj ᆬ HANGUL JONGSEONG NIEUN-CIEUC */ + { 0x0ed9, 0x11ad }, /* Hangul_J_NieunHieuh ᆭ HANGUL JONGSEONG NIEUN-HIEUH */ + { 0x0eda, 0x11ae }, /* Hangul_J_Dikeud ᆮ HANGUL JONGSEONG TIKEUT */ + { 0x0edb, 0x11af }, /* Hangul_J_Rieul ᆯ HANGUL JONGSEONG RIEUL */ + { 0x0edc, 0x11b0 }, /* Hangul_J_RieulKiyeog ᆰ HANGUL JONGSEONG RIEUL-KIYEOK */ + { 0x0edd, 0x11b1 }, /* Hangul_J_RieulMieum ᆱ HANGUL JONGSEONG RIEUL-MIEUM */ + { 0x0ede, 0x11b2 }, /* Hangul_J_RieulPieub ᆲ HANGUL JONGSEONG RIEUL-PIEUP */ + { 0x0edf, 0x11b3 }, /* Hangul_J_RieulSios ᆳ HANGUL JONGSEONG RIEUL-SIOS */ + { 0x0ee0, 0x11b4 }, /* Hangul_J_RieulTieut ᆴ HANGUL JONGSEONG RIEUL-THIEUTH */ + { 0x0ee1, 0x11b5 }, /* Hangul_J_RieulPhieuf ᆵ HANGUL JONGSEONG RIEUL-PHIEUPH */ + { 0x0ee2, 0x11b6 }, /* Hangul_J_RieulHieuh ᆶ HANGUL JONGSEONG RIEUL-HIEUH */ + { 0x0ee3, 0x11b7 }, /* Hangul_J_Mieum ᆷ HANGUL JONGSEONG MIEUM */ + { 0x0ee4, 0x11b8 }, /* Hangul_J_Pieub ᆸ HANGUL JONGSEONG PIEUP */ + { 0x0ee5, 0x11b9 }, /* Hangul_J_PieubSios ᆹ HANGUL JONGSEONG PIEUP-SIOS */ + { 0x0ee6, 0x11ba }, /* Hangul_J_Sios ᆺ HANGUL JONGSEONG SIOS */ + { 0x0ee7, 0x11bb }, /* Hangul_J_SsangSios ᆻ HANGUL JONGSEONG SSANGSIOS */ + { 0x0ee8, 0x11bc }, /* Hangul_J_Ieung ᆼ HANGUL JONGSEONG IEUNG */ + { 0x0ee9, 0x11bd }, /* Hangul_J_Jieuj ᆽ HANGUL JONGSEONG CIEUC */ + { 0x0eea, 0x11be }, /* Hangul_J_Cieuc ᆾ HANGUL JONGSEONG CHIEUCH */ + { 0x0eeb, 0x11bf }, /* Hangul_J_Khieuq ᆿ HANGUL JONGSEONG KHIEUKH */ + { 0x0eec, 0x11c0 }, /* Hangul_J_Tieut ᇀ HANGUL JONGSEONG THIEUTH */ + { 0x0eed, 0x11c1 }, /* Hangul_J_Phieuf ᇁ HANGUL JONGSEONG PHIEUPH */ + { 0x0eee, 0x11c2 }, /* Hangul_J_Hieuh ᇂ HANGUL JONGSEONG HIEUH */ + { 0x0eef, 0x316d }, /* Hangul_RieulYeorinHieuh ㅭ HANGUL LETTER RIEUL-YEORINHIEUH */ + { 0x0ef0, 0x3171 }, /* Hangul_SunkyeongeumMieum ㅱ HANGUL LETTER KAPYEOUNMIEUM */ + { 0x0ef1, 0x3178 }, /* Hangul_SunkyeongeumPieub ㅸ HANGUL LETTER KAPYEOUNPIEUP */ + { 0x0ef2, 0x317f }, /* Hangul_PanSios ㅿ HANGUL LETTER PANSIOS */ +/* 0x0ef3 Hangul_KkogjiDalrinIeung ? ??? */ + { 0x0ef4, 0x3184 }, /* Hangul_SunkyeongeumPhieuf ㆄ HANGUL LETTER KAPYEOUNPHIEUPH */ + { 0x0ef5, 0x3186 }, /* Hangul_YeorinHieuh ㆆ HANGUL LETTER YEORINHIEUH */ + { 0x0ef6, 0x318d }, /* Hangul_AraeA ㆍ HANGUL LETTER ARAEA */ + { 0x0ef7, 0x318e }, /* Hangul_AraeAE ㆎ HANGUL LETTER ARAEAE */ + { 0x0ef8, 0x11eb }, /* Hangul_J_PanSios ᇫ HANGUL JONGSEONG PANSIOS */ + { 0x0ef9, 0x11f0 }, /* Hangul_J_KkogjiDalrinIeung ᇰ HANGUL JONGSEONG YESIEUNG */ + { 0x0efa, 0x11f9 }, /* Hangul_J_YeorinHieuh ᇹ HANGUL JONGSEONG YEORINHIEUH */ + { 0x0eff, 0x20a9 }, /* Korean_Won ₩ WON SIGN */ + { 0x13a4, 0x20ac }, /* Euro € EURO SIGN */ + { 0x13bc, 0x0152 }, /* OE Œ LATIN CAPITAL LIGATURE OE */ + { 0x13bd, 0x0153 }, /* oe œ LATIN SMALL LIGATURE OE */ + { 0x13be, 0x0178 }, /* Ydiaeresis Ÿ LATIN CAPITAL LETTER Y WITH DIAERESIS */ + { 0x20a0, 0x20a0 }, /* EcuSign ₠ EURO-CURRENCY SIGN */ + { 0x20a1, 0x20a1 }, /* ColonSign ₡ COLON SIGN */ + { 0x20a2, 0x20a2 }, /* CruzeiroSign ₢ CRUZEIRO SIGN */ + { 0x20a3, 0x20a3 }, /* FFrancSign ₣ FRENCH FRANC SIGN */ + { 0x20a4, 0x20a4 }, /* LiraSign ₤ LIRA SIGN */ + { 0x20a5, 0x20a5 }, /* MillSign ₥ MILL SIGN */ + { 0x20a6, 0x20a6 }, /* NairaSign ₦ NAIRA SIGN */ + { 0x20a7, 0x20a7 }, /* PesetaSign ₧ PESETA SIGN */ + { 0x20a8, 0x20a8 }, /* RupeeSign ₨ RUPEE SIGN */ + { 0x20a9, 0x20a9 }, /* WonSign ₩ WON SIGN */ + { 0x20aa, 0x20aa }, /* NewSheqelSign ₪ NEW SHEQEL SIGN */ + { 0x20ab, 0x20ab }, /* DongSign ₫ DONG SIGN */ + { 0x20ac, 0x20ac }, /* EuroSign € EURO SIGN */ +}; + +/* binary search with range check */ +static uint32_t +bin_search(const struct codepair *table, size_t length, xkb_keysym_t keysym) +{ + size_t first = 0; + size_t last = length; + + if (keysym < table[0].keysym || keysym > table[length].keysym) + return 0; + + /* binary search in table */ + while (last >= first) { + size_t mid = (first + last) / 2; + if (table[mid].keysym < keysym) + first = mid + 1; + else if (table[mid].keysym > keysym) + last = mid - 1; + else /* found it */ + return table[mid].ucs; + } + + /* no matching Unicode value found in table */ + return 0; +} + +XKB_EXPORT uint32_t +xkb_keysym_to_utf32(xkb_keysym_t keysym) +{ + /* first check for Latin-1 characters (1:1 mapping) */ + if ((keysym >= 0x0020 && keysym <= 0x007e) || + (keysym >= 0x00a0 && keysym <= 0x00ff)) + return keysym; + + /* patch encoding botch */ + if (keysym == XKB_KEY_KP_Space) + return XKB_KEY_space & 0x7f; + + /* special keysyms */ + if ((keysym >= XKB_KEY_BackSpace && keysym <= XKB_KEY_Clear) || + (keysym >= XKB_KEY_KP_Multiply && keysym <= XKB_KEY_KP_9) || + keysym == XKB_KEY_Return || keysym == XKB_KEY_Escape || + keysym == XKB_KEY_Delete || keysym == XKB_KEY_KP_Tab || + keysym == XKB_KEY_KP_Enter || keysym == XKB_KEY_KP_Equal) + return keysym & 0x7f; + + /* also check for directly encoded 24-bit UCS characters */ + if ((keysym & 0xff000000) == 0x01000000) + return keysym & 0x00ffffff; + + /* search main table */ + return bin_search(keysymtab, ARRAY_SIZE(keysymtab) - 1, keysym); +} + +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Rob Bradford + */ + +XKB_EXPORT int +xkb_keysym_to_utf8(xkb_keysym_t keysym, char *buffer, size_t size) +{ + uint32_t codepoint; + + if (size < 7) + return -1; + + codepoint = xkb_keysym_to_utf32(keysym); + + if (codepoint == 0) + return 0; + + return utf32_to_utf8(codepoint, buffer); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c new file mode 100644 index 0000000..db0e973 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.c @@ -0,0 +1,762 @@ +/* + * Copyright 1985, 1987, 1990, 1998 The Open Group + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the names of the authors or their + * institutions shall not be used in advertising or otherwise to promote the + * sale, use or other dealings in this Software without prior written + * authorization from the authors. + */ + +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include "xkbcommon/xkbcommon.h" +#include "utils.h" +#include "keysym.h" +#include "ks_tables.h" + +static inline const char * +get_name(const struct name_keysym *entry) +{ + return keysym_names + entry->offset; +} + +static int +compare_by_keysym(const void *a, const void *b) +{ + const xkb_keysym_t *key = a; + const struct name_keysym *entry = b; + if (*key < entry->keysym) + return -1; + if (*key > entry->keysym) + return 1; + return 0; +} + +static int +compare_by_name(const void *a, const void *b) +{ + const char *key = a; + const struct name_keysym *entry = b; + return strcasecmp(key, get_name(entry)); +} + +XKB_EXPORT int +xkb_keysym_get_name(xkb_keysym_t ks, char *buffer, size_t size) +{ + const struct name_keysym *entry; + + if ((ks & ((unsigned long) ~0x1fffffff)) != 0) { + snprintf(buffer, size, "Invalid"); + return -1; + } + + entry = bsearch(&ks, keysym_to_name, + ARRAY_SIZE(keysym_to_name), + sizeof(*keysym_to_name), + compare_by_keysym); + if (entry) + return snprintf(buffer, size, "%s", get_name(entry)); + + /* Unnamed Unicode codepoint. */ + if (ks >= 0x01000100 && ks <= 0x0110ffff) { + const int width = (ks & 0xff0000UL) ? 8 : 4; + return snprintf(buffer, size, "U%0*lX", width, ks & 0xffffffUL); + } + + /* Unnamed, non-Unicode, symbol (shouldn't generally happen). */ + return snprintf(buffer, size, "0x%08x", ks); +} + +/* + * Find the correct keysym if one case-insensitive match is given. + * + * The name_to_keysym table is sorted by strcasecmp(). So bsearch() may return + * _any_ of all possible case-insensitive duplicates. This function searches the + * returned entry @entry, all previous and all next entries that match by + * case-insensitive comparison and returns the exact match to @name. If @icase + * is true, then this returns the best case-insensitive match instead of a + * correct match. + * The "best" case-insensitive match is the lower-case keysym which we find with + * the help of xkb_keysym_is_lower(). + * The only keysyms that only differ by letter-case are keysyms that are + * available as lower-case and upper-case variant (like KEY_a and KEY_A). So + * returning the first lower-case match is enough in this case. + */ +static const struct name_keysym * +find_sym(const struct name_keysym *entry, const char *name, bool icase) +{ + const struct name_keysym *iter, *last; + size_t len = ARRAY_SIZE(name_to_keysym); + + if (!entry) + return NULL; + + if (!icase && strcmp(get_name(entry), name) == 0) + return entry; + if (icase && xkb_keysym_is_lower(entry->keysym)) + return entry; + + for (iter = entry - 1; iter >= name_to_keysym; --iter) { + if (!icase && strcmp(get_name(iter), name) == 0) + return iter; + if (strcasecmp(get_name(iter), get_name(entry)) != 0) + break; + if (icase && xkb_keysym_is_lower(iter->keysym)) + return iter; + } + + last = name_to_keysym + len; + for (iter = entry + 1; iter < last; ++iter) { + if (!icase && strcmp(get_name(iter), name) == 0) + return iter; + if (strcasecmp(get_name(iter), get_name(entry)) != 0) + break; + if (icase && xkb_keysym_is_lower(iter->keysym)) + return iter; + } + + if (icase) + return entry; + return NULL; +} + +XKB_EXPORT xkb_keysym_t +xkb_keysym_from_name(const char *s, enum xkb_keysym_flags flags) +{ + const struct name_keysym *entry; + char *tmp; + xkb_keysym_t val; + bool icase = (flags & XKB_KEYSYM_CASE_INSENSITIVE); + + if (flags & ~XKB_KEYSYM_CASE_INSENSITIVE) + return XKB_KEY_NoSymbol; + + entry = bsearch(s, name_to_keysym, + ARRAY_SIZE(name_to_keysym), + sizeof(*name_to_keysym), + compare_by_name); + entry = find_sym(entry, s, icase); + if (entry) + return entry->keysym; + + if (*s == 'U' || (icase && *s == 'u')) { + val = strtoul(&s[1], &tmp, 16); + if (tmp && *tmp != '\0') + return XKB_KEY_NoSymbol; + + if (val < 0x20 || (val > 0x7e && val < 0xa0)) + return XKB_KEY_NoSymbol; + if (val < 0x100) + return val; + if (val > 0x10ffff) + return XKB_KEY_NoSymbol; + return val | 0x01000000; + } + else if (s[0] == '0' && (s[1] == 'x' || (icase && s[1] == 'X'))) { + val = strtoul(&s[2], &tmp, 16); + if (tmp && *tmp != '\0') + return XKB_KEY_NoSymbol; + + return val; + } + + /* Stupid inconsistency between the headers and XKeysymDB: the former has + * no separating underscore, while some XF86* syms in the latter did. + * As a last ditch effort, try without. */ + if (strncmp(s, "XF86_", 5) == 0 || + (icase && strncasecmp(s, "XF86_", 5) == 0)) { + xkb_keysym_t ret; + tmp = strdup(s); + if (!tmp) + return XKB_KEY_NoSymbol; + memmove(&tmp[4], &tmp[5], strlen(s) - 5 + 1); + ret = xkb_keysym_from_name(tmp, flags); + free(tmp); + return ret; + } + + return XKB_KEY_NoSymbol; +} + +bool +xkb_keysym_is_keypad(xkb_keysym_t keysym) +{ + return keysym >= XKB_KEY_KP_Space && keysym <= XKB_KEY_KP_Equal; +} + + +bool +xkb_keysym_is_modifier(xkb_keysym_t keysym) +{ + return + (keysym >= XKB_KEY_Shift_L && keysym <= XKB_KEY_Hyper_R) || + /* libX11 only goes upto XKB_KEY_ISO_Level5_Lock. */ + (keysym >= XKB_KEY_ISO_Lock && keysym <= XKB_KEY_ISO_Last_Group_Lock) || + keysym == XKB_KEY_Mode_switch || + keysym == XKB_KEY_Num_Lock; +} + +static void +XConvertCase(xkb_keysym_t sym, xkb_keysym_t *lower, xkb_keysym_t *upper); + +bool +xkb_keysym_is_lower(xkb_keysym_t ks) +{ + xkb_keysym_t lower, upper; + + XConvertCase(ks, &lower, &upper); + + if (lower == upper) + return false; + + return (ks == lower ? true : false); +} + +bool +xkb_keysym_is_upper(xkb_keysym_t ks) +{ + xkb_keysym_t lower, upper; + + XConvertCase(ks, &lower, &upper); + + if (lower == upper) + return false; + + return (ks == upper ? true : false); +} + +xkb_keysym_t +xkb_keysym_to_lower(xkb_keysym_t ks) +{ + xkb_keysym_t lower, upper; + + XConvertCase(ks, &lower, &upper); + + return lower; +} + +xkb_keysym_t +xkb_keysym_to_upper(xkb_keysym_t ks) +{ + xkb_keysym_t lower, upper; + + XConvertCase(ks, &lower, &upper); + + return upper; +} + +/* + * The following is copied verbatim from libX11:src/KeyBind.c, commit + * d45b3fc19fbe95c41afc4e51d768df6d42332010, with the following changes: + * - unsigned -> uint32_t + * - unsigend short -> uint16_t + * - s/XK_/XKB_KEY_ + * + * XXX: If newlocale() and iswlower_l()/iswupper_l() interface ever + * become portable, we should use that in conjunction with + * xkb_keysym_to_utf32(), instead of all this stuff. We should + * be sure to give the same results as libX11, though, and be + * locale independent; this information is used by xkbcomp to + * find the automatic type to assign to key groups. + */ + +static void +UCSConvertCase(uint32_t code, xkb_keysym_t *lower, xkb_keysym_t *upper) +{ + /* Case conversion for UCS, as in Unicode Data version 4.0.0 */ + /* NB: Only converts simple one-to-one mappings. */ + + /* Tables are used where they take less space than */ + /* the code to work out the mappings. Zero values mean */ + /* undefined code points. */ + + static uint16_t const IPAExt_upper_mapping[] = { /* part only */ + 0x0181, 0x0186, 0x0255, 0x0189, 0x018A, + 0x0258, 0x018F, 0x025A, 0x0190, 0x025C, 0x025D, 0x025E, 0x025F, + 0x0193, 0x0261, 0x0262, 0x0194, 0x0264, 0x0265, 0x0266, 0x0267, + 0x0197, 0x0196, 0x026A, 0x026B, 0x026C, 0x026D, 0x026E, 0x019C, + 0x0270, 0x0271, 0x019D, 0x0273, 0x0274, 0x019F, 0x0276, 0x0277, + 0x0278, 0x0279, 0x027A, 0x027B, 0x027C, 0x027D, 0x027E, 0x027F, + 0x01A6, 0x0281, 0x0282, 0x01A9, 0x0284, 0x0285, 0x0286, 0x0287, + 0x01AE, 0x0289, 0x01B1, 0x01B2, 0x028C, 0x028D, 0x028E, 0x028F, + 0x0290, 0x0291, 0x01B7 + }; + + static uint16_t const LatinExtB_upper_mapping[] = { /* first part only */ + 0x0180, 0x0181, 0x0182, 0x0182, 0x0184, 0x0184, 0x0186, 0x0187, + 0x0187, 0x0189, 0x018A, 0x018B, 0x018B, 0x018D, 0x018E, 0x018F, + 0x0190, 0x0191, 0x0191, 0x0193, 0x0194, 0x01F6, 0x0196, 0x0197, + 0x0198, 0x0198, 0x019A, 0x019B, 0x019C, 0x019D, 0x0220, 0x019F, + 0x01A0, 0x01A0, 0x01A2, 0x01A2, 0x01A4, 0x01A4, 0x01A6, 0x01A7, + 0x01A7, 0x01A9, 0x01AA, 0x01AB, 0x01AC, 0x01AC, 0x01AE, 0x01AF, + 0x01AF, 0x01B1, 0x01B2, 0x01B3, 0x01B3, 0x01B5, 0x01B5, 0x01B7, + 0x01B8, 0x01B8, 0x01BA, 0x01BB, 0x01BC, 0x01BC, 0x01BE, 0x01F7, + 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C4, 0x01C4, 0x01C4, 0x01C7, + 0x01C7, 0x01C7, 0x01CA, 0x01CA, 0x01CA + }; + + static uint16_t const LatinExtB_lower_mapping[] = { /* first part only */ + 0x0180, 0x0253, 0x0183, 0x0183, 0x0185, 0x0185, 0x0254, 0x0188, + 0x0188, 0x0256, 0x0257, 0x018C, 0x018C, 0x018D, 0x01DD, 0x0259, + 0x025B, 0x0192, 0x0192, 0x0260, 0x0263, 0x0195, 0x0269, 0x0268, + 0x0199, 0x0199, 0x019A, 0x019B, 0x026F, 0x0272, 0x019E, 0x0275, + 0x01A1, 0x01A1, 0x01A3, 0x01A3, 0x01A5, 0x01A5, 0x0280, 0x01A8, + 0x01A8, 0x0283, 0x01AA, 0x01AB, 0x01AD, 0x01AD, 0x0288, 0x01B0, + 0x01B0, 0x028A, 0x028B, 0x01B4, 0x01B4, 0x01B6, 0x01B6, 0x0292, + 0x01B9, 0x01B9, 0x01BA, 0x01BB, 0x01BD, 0x01BD, 0x01BE, 0x01BF, + 0x01C0, 0x01C1, 0x01C2, 0x01C3, 0x01C6, 0x01C6, 0x01C6, 0x01C9, + 0x01C9, 0x01C9, 0x01CC, 0x01CC, 0x01CC + }; + + static uint16_t const Greek_upper_mapping[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0374, 0x0375, 0x0000, 0x0000, + 0x0000, 0x0000, 0x037A, 0x0000, 0x0000, 0x0000, 0x037E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0384, 0x0385, 0x0386, 0x0387, + 0x0388, 0x0389, 0x038A, 0x0000, 0x038C, 0x0000, 0x038E, 0x038F, + 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, + 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x0386, 0x0388, 0x0389, 0x038A, + 0x03B0, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397, + 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F, + 0x03A0, 0x03A1, 0x03A3, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, + 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x038C, 0x038E, 0x038F, 0x0000, + 0x0392, 0x0398, 0x03D2, 0x03D3, 0x03D4, 0x03A6, 0x03A0, 0x03D7, + 0x03D8, 0x03D8, 0x03DA, 0x03DA, 0x03DC, 0x03DC, 0x03DE, 0x03DE, + 0x03E0, 0x03E0, 0x03E2, 0x03E2, 0x03E4, 0x03E4, 0x03E6, 0x03E6, + 0x03E8, 0x03E8, 0x03EA, 0x03EA, 0x03EC, 0x03EC, 0x03EE, 0x03EE, + 0x039A, 0x03A1, 0x03F9, 0x03F3, 0x03F4, 0x0395, 0x03F6, 0x03F7, + 0x03F7, 0x03F9, 0x03FA, 0x03FA, 0x0000, 0x0000, 0x0000, 0x0000 + }; + + static uint16_t const Greek_lower_mapping[] = { + 0x0000, 0x0000, 0x0000, 0x0000, 0x0374, 0x0375, 0x0000, 0x0000, + 0x0000, 0x0000, 0x037A, 0x0000, 0x0000, 0x0000, 0x037E, 0x0000, + 0x0000, 0x0000, 0x0000, 0x0000, 0x0384, 0x0385, 0x03AC, 0x0387, + 0x03AD, 0x03AE, 0x03AF, 0x0000, 0x03CC, 0x0000, 0x03CD, 0x03CE, + 0x0390, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x0000, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, + 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03AC, 0x03AD, 0x03AE, 0x03AF, + 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, + 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF, + 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, + 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000, + 0x03D0, 0x03D1, 0x03D2, 0x03D3, 0x03D4, 0x03D5, 0x03D6, 0x03D7, + 0x03D9, 0x03D9, 0x03DB, 0x03DB, 0x03DD, 0x03DD, 0x03DF, 0x03DF, + 0x03E1, 0x03E1, 0x03E3, 0x03E3, 0x03E5, 0x03E5, 0x03E7, 0x03E7, + 0x03E9, 0x03E9, 0x03EB, 0x03EB, 0x03ED, 0x03ED, 0x03EF, 0x03EF, + 0x03F0, 0x03F1, 0x03F2, 0x03F3, 0x03B8, 0x03F5, 0x03F6, 0x03F8, + 0x03F8, 0x03F2, 0x03FB, 0x03FB, 0x0000, 0x0000, 0x0000, 0x0000 + }; + + static uint16_t const GreekExt_lower_mapping[] = { + 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07, + 0x1F00, 0x1F01, 0x1F02, 0x1F03, 0x1F04, 0x1F05, 0x1F06, 0x1F07, + 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x0000, 0x0000, + 0x1F10, 0x1F11, 0x1F12, 0x1F13, 0x1F14, 0x1F15, 0x0000, 0x0000, + 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27, + 0x1F20, 0x1F21, 0x1F22, 0x1F23, 0x1F24, 0x1F25, 0x1F26, 0x1F27, + 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37, + 0x1F30, 0x1F31, 0x1F32, 0x1F33, 0x1F34, 0x1F35, 0x1F36, 0x1F37, + 0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x0000, 0x0000, + 0x1F40, 0x1F41, 0x1F42, 0x1F43, 0x1F44, 0x1F45, 0x0000, 0x0000, + 0x1F50, 0x1F51, 0x1F52, 0x1F53, 0x1F54, 0x1F55, 0x1F56, 0x1F57, + 0x0000, 0x1F51, 0x0000, 0x1F53, 0x0000, 0x1F55, 0x0000, 0x1F57, + 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67, + 0x1F60, 0x1F61, 0x1F62, 0x1F63, 0x1F64, 0x1F65, 0x1F66, 0x1F67, + 0x1F70, 0x1F71, 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1F76, 0x1F77, + 0x1F78, 0x1F79, 0x1F7A, 0x1F7B, 0x1F7C, 0x1F7D, 0x0000, 0x0000, + 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87, + 0x1F80, 0x1F81, 0x1F82, 0x1F83, 0x1F84, 0x1F85, 0x1F86, 0x1F87, + 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97, + 0x1F90, 0x1F91, 0x1F92, 0x1F93, 0x1F94, 0x1F95, 0x1F96, 0x1F97, + 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7, + 0x1FA0, 0x1FA1, 0x1FA2, 0x1FA3, 0x1FA4, 0x1FA5, 0x1FA6, 0x1FA7, + 0x1FB0, 0x1FB1, 0x1FB2, 0x1FB3, 0x1FB4, 0x0000, 0x1FB6, 0x1FB7, + 0x1FB0, 0x1FB1, 0x1F70, 0x1F71, 0x1FB3, 0x1FBD, 0x1FBE, 0x1FBF, + 0x1FC0, 0x1FC1, 0x1FC2, 0x1FC3, 0x1FC4, 0x0000, 0x1FC6, 0x1FC7, + 0x1F72, 0x1F73, 0x1F74, 0x1F75, 0x1FC3, 0x1FCD, 0x1FCE, 0x1FCF, + 0x1FD0, 0x1FD1, 0x1FD2, 0x1FD3, 0x0000, 0x0000, 0x1FD6, 0x1FD7, + 0x1FD0, 0x1FD1, 0x1F76, 0x1F77, 0x0000, 0x1FDD, 0x1FDE, 0x1FDF, + 0x1FE0, 0x1FE1, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FE5, 0x1FE6, 0x1FE7, + 0x1FE0, 0x1FE1, 0x1F7A, 0x1F7B, 0x1FE5, 0x1FED, 0x1FEE, 0x1FEF, + 0x0000, 0x0000, 0x1FF2, 0x1FF3, 0x1FF4, 0x0000, 0x1FF6, 0x1FF7, + 0x1F78, 0x1F79, 0x1F7C, 0x1F7D, 0x1FF3, 0x1FFD, 0x1FFE, 0x0000 + }; + + static uint16_t const GreekExt_upper_mapping[] = { + 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F, + 0x1F08, 0x1F09, 0x1F0A, 0x1F0B, 0x1F0C, 0x1F0D, 0x1F0E, 0x1F0F, + 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x0000, 0x0000, + 0x1F18, 0x1F19, 0x1F1A, 0x1F1B, 0x1F1C, 0x1F1D, 0x0000, 0x0000, + 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F, + 0x1F28, 0x1F29, 0x1F2A, 0x1F2B, 0x1F2C, 0x1F2D, 0x1F2E, 0x1F2F, + 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F, + 0x1F38, 0x1F39, 0x1F3A, 0x1F3B, 0x1F3C, 0x1F3D, 0x1F3E, 0x1F3F, + 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x0000, 0x0000, + 0x1F48, 0x1F49, 0x1F4A, 0x1F4B, 0x1F4C, 0x1F4D, 0x0000, 0x0000, + 0x1F50, 0x1F59, 0x1F52, 0x1F5B, 0x1F54, 0x1F5D, 0x1F56, 0x1F5F, + 0x0000, 0x1F59, 0x0000, 0x1F5B, 0x0000, 0x1F5D, 0x0000, 0x1F5F, + 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F, + 0x1F68, 0x1F69, 0x1F6A, 0x1F6B, 0x1F6C, 0x1F6D, 0x1F6E, 0x1F6F, + 0x1FBA, 0x1FBB, 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FDA, 0x1FDB, + 0x1FF8, 0x1FF9, 0x1FEA, 0x1FEB, 0x1FFA, 0x1FFB, 0x0000, 0x0000, + 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F, + 0x1F88, 0x1F89, 0x1F8A, 0x1F8B, 0x1F8C, 0x1F8D, 0x1F8E, 0x1F8F, + 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F, + 0x1F98, 0x1F99, 0x1F9A, 0x1F9B, 0x1F9C, 0x1F9D, 0x1F9E, 0x1F9F, + 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF, + 0x1FA8, 0x1FA9, 0x1FAA, 0x1FAB, 0x1FAC, 0x1FAD, 0x1FAE, 0x1FAF, + 0x1FB8, 0x1FB9, 0x1FB2, 0x1FBC, 0x1FB4, 0x0000, 0x1FB6, 0x1FB7, + 0x1FB8, 0x1FB9, 0x1FBA, 0x1FBB, 0x1FBC, 0x1FBD, 0x0399, 0x1FBF, + 0x1FC0, 0x1FC1, 0x1FC2, 0x1FCC, 0x1FC4, 0x0000, 0x1FC6, 0x1FC7, + 0x1FC8, 0x1FC9, 0x1FCA, 0x1FCB, 0x1FCC, 0x1FCD, 0x1FCE, 0x1FCF, + 0x1FD8, 0x1FD9, 0x1FD2, 0x1FD3, 0x0000, 0x0000, 0x1FD6, 0x1FD7, + 0x1FD8, 0x1FD9, 0x1FDA, 0x1FDB, 0x0000, 0x1FDD, 0x1FDE, 0x1FDF, + 0x1FE8, 0x1FE9, 0x1FE2, 0x1FE3, 0x1FE4, 0x1FEC, 0x1FE6, 0x1FE7, + 0x1FE8, 0x1FE9, 0x1FEA, 0x1FEB, 0x1FEC, 0x1FED, 0x1FEE, 0x1FEF, + 0x0000, 0x0000, 0x1FF2, 0x1FFC, 0x1FF4, 0x0000, 0x1FF6, 0x1FF7, + 0x1FF8, 0x1FF9, 0x1FFA, 0x1FFB, 0x1FFC, 0x1FFD, 0x1FFE, 0x0000 + }; + + *lower = code; + *upper = code; + + /* Basic Latin and Latin-1 Supplement, U+0000 to U+00FF */ + if (code <= 0x00ff) { + if (code >= 0x0041 && code <= 0x005a) /* A-Z */ + *lower += 0x20; + else if (code >= 0x0061 && code <= 0x007a) /* a-z */ + *upper -= 0x20; + else if ( (code >= 0x00c0 && code <= 0x00d6) || + (code >= 0x00d8 && code <= 0x00de) ) + *lower += 0x20; + else if ( (code >= 0x00e0 && code <= 0x00f6) || + (code >= 0x00f8 && code <= 0x00fe) ) + *upper -= 0x20; + else if (code == 0x00ff) /* y with diaeresis */ + *upper = 0x0178; + else if (code == 0x00b5) /* micro sign */ + *upper = 0x039c; + return; + } + + /* Latin Extended-A, U+0100 to U+017F */ + if (code >= 0x0100 && code <= 0x017f) { + if ( (code >= 0x0100 && code <= 0x012f) || + (code >= 0x0132 && code <= 0x0137) || + (code >= 0x014a && code <= 0x0177) ) { + *upper = code & ~1; + *lower = code | 1; + } + else if ( (code >= 0x0139 && code <= 0x0148) || + (code >= 0x0179 && code <= 0x017e) ) { + if (code & 1) + *lower += 1; + else + *upper -= 1; + } + else if (code == 0x0130) + *lower = 0x0069; + else if (code == 0x0131) + *upper = 0x0049; + else if (code == 0x0178) + *lower = 0x00ff; + else if (code == 0x017f) + *upper = 0x0053; + return; + } + + /* Latin Extended-B, U+0180 to U+024F */ + if (code >= 0x0180 && code <= 0x024f) { + if (code >= 0x01cd && code <= 0x01dc) { + if (code & 1) + *lower += 1; + else + *upper -= 1; + } + else if ( (code >= 0x01de && code <= 0x01ef) || + (code >= 0x01f4 && code <= 0x01f5) || + (code >= 0x01f8 && code <= 0x021f) || + (code >= 0x0222 && code <= 0x0233) ) { + *lower |= 1; + *upper &= ~1; + } + else if (code >= 0x0180 && code <= 0x01cc) { + *lower = LatinExtB_lower_mapping[code - 0x0180]; + *upper = LatinExtB_upper_mapping[code - 0x0180]; + } + else if (code == 0x01dd) + *upper = 0x018e; + else if (code == 0x01f1 || code == 0x01f2) { + *lower = 0x01f3; + *upper = 0x01f1; + } + else if (code == 0x01f3) + *upper = 0x01f1; + else if (code == 0x01f6) + *lower = 0x0195; + else if (code == 0x01f7) + *lower = 0x01bf; + else if (code == 0x0220) + *lower = 0x019e; + return; + } + + /* IPA Extensions, U+0250 to U+02AF */ + if (code >= 0x0253 && code <= 0x0292) { + *upper = IPAExt_upper_mapping[code - 0x0253]; + } + + /* Combining Diacritical Marks, U+0300 to U+036F */ + if (code == 0x0345) { + *upper = 0x0399; + } + + /* Greek and Coptic, U+0370 to U+03FF */ + if (code >= 0x0370 && code <= 0x03ff) { + *lower = Greek_lower_mapping[code - 0x0370]; + *upper = Greek_upper_mapping[code - 0x0370]; + if (*upper == 0) + *upper = code; + if (*lower == 0) + *lower = code; + } + + /* Cyrillic and Cyrillic Supplementary, U+0400 to U+052F */ + if ( (code >= 0x0400 && code <= 0x04ff) || + (code >= 0x0500 && code <= 0x052f) ) { + if (code >= 0x0400 && code <= 0x040f) + *lower += 0x50; + else if (code >= 0x0410 && code <= 0x042f) + *lower += 0x20; + else if (code >= 0x0430 && code <= 0x044f) + *upper -= 0x20; + else if (code >= 0x0450 && code <= 0x045f) + *upper -= 0x50; + else if ( (code >= 0x0460 && code <= 0x0481) || + (code >= 0x048a && code <= 0x04bf) || + (code >= 0x04d0 && code <= 0x04f5) || + (code >= 0x04f8 && code <= 0x04f9) || + (code >= 0x0500 && code <= 0x050f) ) { + *upper &= ~1; + *lower |= 1; + } + else if (code >= 0x04c1 && code <= 0x04ce) { + if (code & 1) + *lower += 1; + else + *upper -= 1; + } + } + + /* Armenian, U+0530 to U+058F */ + if (code >= 0x0530 && code <= 0x058f) { + if (code >= 0x0531 && code <= 0x0556) + *lower += 0x30; + else if (code >=0x0561 && code <= 0x0586) + *upper -= 0x30; + } + + /* Latin Extended Additional, U+1E00 to U+1EFF */ + if (code >= 0x1e00 && code <= 0x1eff) { + if ( (code >= 0x1e00 && code <= 0x1e95) || + (code >= 0x1ea0 && code <= 0x1ef9) ) { + *upper &= ~1; + *lower |= 1; + } + else if (code == 0x1e9b) + *upper = 0x1e60; + } + + /* Greek Extended, U+1F00 to U+1FFF */ + if (code >= 0x1f00 && code <= 0x1fff) { + *lower = GreekExt_lower_mapping[code - 0x1f00]; + *upper = GreekExt_upper_mapping[code - 0x1f00]; + if (*upper == 0) + *upper = code; + if (*lower == 0) + *lower = code; + } + + /* Letterlike Symbols, U+2100 to U+214F */ + if (code >= 0x2100 && code <= 0x214f) { + switch (code) { + case 0x2126: *lower = 0x03c9; break; + case 0x212a: *lower = 0x006b; break; + case 0x212b: *lower = 0x00e5; break; + } + } + /* Number Forms, U+2150 to U+218F */ + else if (code >= 0x2160 && code <= 0x216f) + *lower += 0x10; + else if (code >= 0x2170 && code <= 0x217f) + *upper -= 0x10; + /* Enclosed Alphanumerics, U+2460 to U+24FF */ + else if (code >= 0x24b6 && code <= 0x24cf) + *lower += 0x1a; + else if (code >= 0x24d0 && code <= 0x24e9) + *upper -= 0x1a; + /* Halfwidth and Fullwidth Forms, U+FF00 to U+FFEF */ + else if (code >= 0xff21 && code <= 0xff3a) + *lower += 0x20; + else if (code >= 0xff41 && code <= 0xff5a) + *upper -= 0x20; + /* Deseret, U+10400 to U+104FF */ + else if (code >= 0x10400 && code <= 0x10427) + *lower += 0x28; + else if (code >= 0x10428 && code <= 0x1044f) + *upper -= 0x28; +} + +static void +XConvertCase(xkb_keysym_t sym, xkb_keysym_t *lower, xkb_keysym_t *upper) +{ + /* Latin 1 keysym */ + if (sym < 0x100) { + UCSConvertCase(sym, lower, upper); + return; + } + + /* Unicode keysym */ + if ((sym & 0xff000000) == 0x01000000) { + UCSConvertCase((sym & 0x00ffffff), lower, upper); + *upper |= 0x01000000; + *lower |= 0x01000000; + return; + } + + /* Legacy keysym */ + + *lower = sym; + *upper = sym; + + switch(sym >> 8) { + case 1: /* Latin 2 */ + /* Assume the KeySym is a legal value (ignore discontinuities) */ + if (sym == XKB_KEY_Aogonek) + *lower = XKB_KEY_aogonek; + else if (sym >= XKB_KEY_Lstroke && sym <= XKB_KEY_Sacute) + *lower += (XKB_KEY_lstroke - XKB_KEY_Lstroke); + else if (sym >= XKB_KEY_Scaron && sym <= XKB_KEY_Zacute) + *lower += (XKB_KEY_scaron - XKB_KEY_Scaron); + else if (sym >= XKB_KEY_Zcaron && sym <= XKB_KEY_Zabovedot) + *lower += (XKB_KEY_zcaron - XKB_KEY_Zcaron); + else if (sym == XKB_KEY_aogonek) + *upper = XKB_KEY_Aogonek; + else if (sym >= XKB_KEY_lstroke && sym <= XKB_KEY_sacute) + *upper -= (XKB_KEY_lstroke - XKB_KEY_Lstroke); + else if (sym >= XKB_KEY_scaron && sym <= XKB_KEY_zacute) + *upper -= (XKB_KEY_scaron - XKB_KEY_Scaron); + else if (sym >= XKB_KEY_zcaron && sym <= XKB_KEY_zabovedot) + *upper -= (XKB_KEY_zcaron - XKB_KEY_Zcaron); + else if (sym >= XKB_KEY_Racute && sym <= XKB_KEY_Tcedilla) + *lower += (XKB_KEY_racute - XKB_KEY_Racute); + else if (sym >= XKB_KEY_racute && sym <= XKB_KEY_tcedilla) + *upper -= (XKB_KEY_racute - XKB_KEY_Racute); + break; + case 2: /* Latin 3 */ + /* Assume the KeySym is a legal value (ignore discontinuities) */ + if (sym >= XKB_KEY_Hstroke && sym <= XKB_KEY_Hcircumflex) + *lower += (XKB_KEY_hstroke - XKB_KEY_Hstroke); + else if (sym >= XKB_KEY_Gbreve && sym <= XKB_KEY_Jcircumflex) + *lower += (XKB_KEY_gbreve - XKB_KEY_Gbreve); + else if (sym >= XKB_KEY_hstroke && sym <= XKB_KEY_hcircumflex) + *upper -= (XKB_KEY_hstroke - XKB_KEY_Hstroke); + else if (sym >= XKB_KEY_gbreve && sym <= XKB_KEY_jcircumflex) + *upper -= (XKB_KEY_gbreve - XKB_KEY_Gbreve); + else if (sym >= XKB_KEY_Cabovedot && sym <= XKB_KEY_Scircumflex) + *lower += (XKB_KEY_cabovedot - XKB_KEY_Cabovedot); + else if (sym >= XKB_KEY_cabovedot && sym <= XKB_KEY_scircumflex) + *upper -= (XKB_KEY_cabovedot - XKB_KEY_Cabovedot); + break; + case 3: /* Latin 4 */ + /* Assume the KeySym is a legal value (ignore discontinuities) */ + if (sym >= XKB_KEY_Rcedilla && sym <= XKB_KEY_Tslash) + *lower += (XKB_KEY_rcedilla - XKB_KEY_Rcedilla); + else if (sym >= XKB_KEY_rcedilla && sym <= XKB_KEY_tslash) + *upper -= (XKB_KEY_rcedilla - XKB_KEY_Rcedilla); + else if (sym == XKB_KEY_ENG) + *lower = XKB_KEY_eng; + else if (sym == XKB_KEY_eng) + *upper = XKB_KEY_ENG; + else if (sym >= XKB_KEY_Amacron && sym <= XKB_KEY_Umacron) + *lower += (XKB_KEY_amacron - XKB_KEY_Amacron); + else if (sym >= XKB_KEY_amacron && sym <= XKB_KEY_umacron) + *upper -= (XKB_KEY_amacron - XKB_KEY_Amacron); + break; + case 6: /* Cyrillic */ + /* Assume the KeySym is a legal value (ignore discontinuities) */ + if (sym >= XKB_KEY_Serbian_DJE && sym <= XKB_KEY_Serbian_DZE) + *lower -= (XKB_KEY_Serbian_DJE - XKB_KEY_Serbian_dje); + else if (sym >= XKB_KEY_Serbian_dje && sym <= XKB_KEY_Serbian_dze) + *upper += (XKB_KEY_Serbian_DJE - XKB_KEY_Serbian_dje); + else if (sym >= XKB_KEY_Cyrillic_YU && sym <= XKB_KEY_Cyrillic_HARDSIGN) + *lower -= (XKB_KEY_Cyrillic_YU - XKB_KEY_Cyrillic_yu); + else if (sym >= XKB_KEY_Cyrillic_yu && sym <= XKB_KEY_Cyrillic_hardsign) + *upper += (XKB_KEY_Cyrillic_YU - XKB_KEY_Cyrillic_yu); + break; + case 7: /* Greek */ + /* Assume the KeySym is a legal value (ignore discontinuities) */ + if (sym >= XKB_KEY_Greek_ALPHAaccent && sym <= XKB_KEY_Greek_OMEGAaccent) + *lower += (XKB_KEY_Greek_alphaaccent - XKB_KEY_Greek_ALPHAaccent); + else if (sym >= XKB_KEY_Greek_alphaaccent && sym <= XKB_KEY_Greek_omegaaccent && + sym != XKB_KEY_Greek_iotaaccentdieresis && + sym != XKB_KEY_Greek_upsilonaccentdieresis) + *upper -= (XKB_KEY_Greek_alphaaccent - XKB_KEY_Greek_ALPHAaccent); + else if (sym >= XKB_KEY_Greek_ALPHA && sym <= XKB_KEY_Greek_OMEGA) + *lower += (XKB_KEY_Greek_alpha - XKB_KEY_Greek_ALPHA); + else if (sym >= XKB_KEY_Greek_alpha && sym <= XKB_KEY_Greek_omega && + sym != XKB_KEY_Greek_finalsmallsigma) + *upper -= (XKB_KEY_Greek_alpha - XKB_KEY_Greek_ALPHA); + break; + case 0x13: /* Latin 9 */ + if (sym == XKB_KEY_OE) + *lower = XKB_KEY_oe; + else if (sym == XKB_KEY_oe) + *upper = XKB_KEY_OE; + else if (sym == XKB_KEY_Ydiaeresis) + *lower = XKB_KEY_ydiaeresis; + break; + } +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.h new file mode 100644 index 0000000..ca2bd5e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/keysym.h @@ -0,0 +1,71 @@ +/* + * Copyright 1985, 1987, 1990, 1998 The Open Group + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the names of the authors or their + * institutions shall not be used in advertising or otherwise to promote the + * sale, use or other dealings in this Software without prior written + * authorization from the authors. + */ + +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef KEYSYM_H +#define KEYSYM_H + +bool +xkb_keysym_is_lower(xkb_keysym_t keysym); + +bool +xkb_keysym_is_upper(xkb_keysym_t keysym); + +bool +xkb_keysym_is_keypad(xkb_keysym_t keysym); + +bool +xkb_keysym_is_modifier(xkb_keysym_t keysym); + +xkb_keysym_t +xkb_keysym_to_upper(xkb_keysym_t ks); + +xkb_keysym_t +xkb_keysym_to_lower(xkb_keysym_t ks); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/ks_tables.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/ks_tables.h new file mode 100644 index 0000000..1010b69 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/ks_tables.h @@ -0,0 +1,7104 @@ + +/** + * This file comes from libxkbcommon and was generated by makekeys.py + * You can always fetch the latest version from: + * https://raw.github.com/xkbcommon/libxkbcommon/master/src/ks_tables.h + */ + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Woverlength-strings" +static const char *keysym_names = + "0\0" + "1\0" + "2\0" + "3\0" + "3270_AltCursor\0" + "3270_Attn\0" + "3270_BackTab\0" + "3270_ChangeScreen\0" + "3270_Copy\0" + "3270_CursorBlink\0" + "3270_CursorSelect\0" + "3270_DeleteWord\0" + "3270_Duplicate\0" + "3270_Enter\0" + "3270_EraseEOF\0" + "3270_EraseInput\0" + "3270_ExSelect\0" + "3270_FieldMark\0" + "3270_Ident\0" + "3270_Jump\0" + "3270_KeyClick\0" + "3270_Left2\0" + "3270_PA1\0" + "3270_PA2\0" + "3270_PA3\0" + "3270_Play\0" + "3270_PrintScreen\0" + "3270_Quit\0" + "3270_Record\0" + "3270_Reset\0" + "3270_Right2\0" + "3270_Rule\0" + "3270_Setup\0" + "3270_Test\0" + "4\0" + "5\0" + "6\0" + "7\0" + "8\0" + "9\0" + "A\0" + "a\0" + "Aacute\0" + "aacute\0" + "Abelowdot\0" + "abelowdot\0" + "abovedot\0" + "Abreve\0" + "abreve\0" + "Abreveacute\0" + "abreveacute\0" + "Abrevebelowdot\0" + "abrevebelowdot\0" + "Abrevegrave\0" + "abrevegrave\0" + "Abrevehook\0" + "abrevehook\0" + "Abrevetilde\0" + "abrevetilde\0" + "AccessX_Enable\0" + "AccessX_Feedback_Enable\0" + "Acircumflex\0" + "acircumflex\0" + "Acircumflexacute\0" + "acircumflexacute\0" + "Acircumflexbelowdot\0" + "acircumflexbelowdot\0" + "Acircumflexgrave\0" + "acircumflexgrave\0" + "Acircumflexhook\0" + "acircumflexhook\0" + "Acircumflextilde\0" + "acircumflextilde\0" + "acute\0" + "Adiaeresis\0" + "adiaeresis\0" + "AE\0" + "ae\0" + "Agrave\0" + "agrave\0" + "Ahook\0" + "ahook\0" + "Alt_L\0" + "Alt_R\0" + "Amacron\0" + "amacron\0" + "ampersand\0" + "Aogonek\0" + "aogonek\0" + "apostrophe\0" + "approxeq\0" + "approximate\0" + "Arabic_0\0" + "Arabic_1\0" + "Arabic_2\0" + "Arabic_3\0" + "Arabic_4\0" + "Arabic_5\0" + "Arabic_6\0" + "Arabic_7\0" + "Arabic_8\0" + "Arabic_9\0" + "Arabic_ain\0" + "Arabic_alef\0" + "Arabic_alefmaksura\0" + "Arabic_beh\0" + "Arabic_comma\0" + "Arabic_dad\0" + "Arabic_dal\0" + "Arabic_damma\0" + "Arabic_dammatan\0" + "Arabic_ddal\0" + "Arabic_farsi_yeh\0" + "Arabic_fatha\0" + "Arabic_fathatan\0" + "Arabic_feh\0" + "Arabic_fullstop\0" + "Arabic_gaf\0" + "Arabic_ghain\0" + "Arabic_ha\0" + "Arabic_hah\0" + "Arabic_hamza\0" + "Arabic_hamza_above\0" + "Arabic_hamza_below\0" + "Arabic_hamzaonalef\0" + "Arabic_hamzaonwaw\0" + "Arabic_hamzaonyeh\0" + "Arabic_hamzaunderalef\0" + "Arabic_heh\0" + "Arabic_heh_doachashmee\0" + "Arabic_heh_goal\0" + "Arabic_jeem\0" + "Arabic_jeh\0" + "Arabic_kaf\0" + "Arabic_kasra\0" + "Arabic_kasratan\0" + "Arabic_keheh\0" + "Arabic_khah\0" + "Arabic_lam\0" + "Arabic_madda_above\0" + "Arabic_maddaonalef\0" + "Arabic_meem\0" + "Arabic_noon\0" + "Arabic_noon_ghunna\0" + "Arabic_peh\0" + "Arabic_percent\0" + "Arabic_qaf\0" + "Arabic_question_mark\0" + "Arabic_ra\0" + "Arabic_rreh\0" + "Arabic_sad\0" + "Arabic_seen\0" + "Arabic_semicolon\0" + "Arabic_shadda\0" + "Arabic_sheen\0" + "Arabic_sukun\0" + "Arabic_superscript_alef\0" + "Arabic_switch\0" + "Arabic_tah\0" + "Arabic_tatweel\0" + "Arabic_tcheh\0" + "Arabic_teh\0" + "Arabic_tehmarbuta\0" + "Arabic_thal\0" + "Arabic_theh\0" + "Arabic_tteh\0" + "Arabic_veh\0" + "Arabic_waw\0" + "Arabic_yeh\0" + "Arabic_yeh_baree\0" + "Arabic_zah\0" + "Arabic_zain\0" + "Aring\0" + "aring\0" + "Armenian_accent\0" + "Armenian_amanak\0" + "Armenian_apostrophe\0" + "Armenian_AT\0" + "Armenian_at\0" + "Armenian_AYB\0" + "Armenian_ayb\0" + "Armenian_BEN\0" + "Armenian_ben\0" + "Armenian_but\0" + "Armenian_CHA\0" + "Armenian_cha\0" + "Armenian_DA\0" + "Armenian_da\0" + "Armenian_DZA\0" + "Armenian_dza\0" + "Armenian_E\0" + "Armenian_e\0" + "Armenian_exclam\0" + "Armenian_FE\0" + "Armenian_fe\0" + "Armenian_full_stop\0" + "Armenian_GHAT\0" + "Armenian_ghat\0" + "Armenian_GIM\0" + "Armenian_gim\0" + "Armenian_HI\0" + "Armenian_hi\0" + "Armenian_HO\0" + "Armenian_ho\0" + "Armenian_hyphen\0" + "Armenian_INI\0" + "Armenian_ini\0" + "Armenian_JE\0" + "Armenian_je\0" + "Armenian_KE\0" + "Armenian_ke\0" + "Armenian_KEN\0" + "Armenian_ken\0" + "Armenian_KHE\0" + "Armenian_khe\0" + "Armenian_ligature_ew\0" + "Armenian_LYUN\0" + "Armenian_lyun\0" + "Armenian_MEN\0" + "Armenian_men\0" + "Armenian_NU\0" + "Armenian_nu\0" + "Armenian_O\0" + "Armenian_o\0" + "Armenian_paruyk\0" + "Armenian_PE\0" + "Armenian_pe\0" + "Armenian_PYUR\0" + "Armenian_pyur\0" + "Armenian_question\0" + "Armenian_RA\0" + "Armenian_ra\0" + "Armenian_RE\0" + "Armenian_re\0" + "Armenian_SE\0" + "Armenian_se\0" + "Armenian_separation_mark\0" + "Armenian_SHA\0" + "Armenian_sha\0" + "Armenian_shesht\0" + "Armenian_TCHE\0" + "Armenian_tche\0" + "Armenian_TO\0" + "Armenian_to\0" + "Armenian_TSA\0" + "Armenian_tsa\0" + "Armenian_TSO\0" + "Armenian_tso\0" + "Armenian_TYUN\0" + "Armenian_tyun\0" + "Armenian_verjaket\0" + "Armenian_VEV\0" + "Armenian_vev\0" + "Armenian_VO\0" + "Armenian_vo\0" + "Armenian_VYUN\0" + "Armenian_vyun\0" + "Armenian_YECH\0" + "Armenian_yech\0" + "Armenian_yentamna\0" + "Armenian_ZA\0" + "Armenian_za\0" + "Armenian_ZHE\0" + "Armenian_zhe\0" + "asciicircum\0" + "asciitilde\0" + "asterisk\0" + "at\0" + "Atilde\0" + "atilde\0" + "AudibleBell_Enable\0" + "B\0" + "b\0" + "Babovedot\0" + "babovedot\0" + "backslash\0" + "BackSpace\0" + "BackTab\0" + "ballotcross\0" + "bar\0" + "because\0" + "Begin\0" + "blank\0" + "block\0" + "botintegral\0" + "botleftparens\0" + "botleftsqbracket\0" + "botleftsummation\0" + "botrightparens\0" + "botrightsqbracket\0" + "botrightsummation\0" + "bott\0" + "botvertsummationconnector\0" + "BounceKeys_Enable\0" + "braceleft\0" + "braceright\0" + "bracketleft\0" + "bracketright\0" + "braille_blank\0" + "braille_dot_1\0" + "braille_dot_10\0" + "braille_dot_2\0" + "braille_dot_3\0" + "braille_dot_4\0" + "braille_dot_5\0" + "braille_dot_6\0" + "braille_dot_7\0" + "braille_dot_8\0" + "braille_dot_9\0" + "braille_dots_1\0" + "braille_dots_12\0" + "braille_dots_123\0" + "braille_dots_1234\0" + "braille_dots_12345\0" + "braille_dots_123456\0" + "braille_dots_1234567\0" + "braille_dots_12345678\0" + "braille_dots_1234568\0" + "braille_dots_123457\0" + "braille_dots_1234578\0" + "braille_dots_123458\0" + "braille_dots_12346\0" + "braille_dots_123467\0" + "braille_dots_1234678\0" + "braille_dots_123468\0" + "braille_dots_12347\0" + "braille_dots_123478\0" + "braille_dots_12348\0" + "braille_dots_1235\0" + "braille_dots_12356\0" + "braille_dots_123567\0" + "braille_dots_1235678\0" + "braille_dots_123568\0" + "braille_dots_12357\0" + "braille_dots_123578\0" + "braille_dots_12358\0" + "braille_dots_1236\0" + "braille_dots_12367\0" + "braille_dots_123678\0" + "braille_dots_12368\0" + "braille_dots_1237\0" + "braille_dots_12378\0" + "braille_dots_1238\0" + "braille_dots_124\0" + "braille_dots_1245\0" + "braille_dots_12456\0" + "braille_dots_124567\0" + "braille_dots_1245678\0" + "braille_dots_124568\0" + "braille_dots_12457\0" + "braille_dots_124578\0" + "braille_dots_12458\0" + "braille_dots_1246\0" + "braille_dots_12467\0" + "braille_dots_124678\0" + "braille_dots_12468\0" + "braille_dots_1247\0" + "braille_dots_12478\0" + "braille_dots_1248\0" + "braille_dots_125\0" + "braille_dots_1256\0" + "braille_dots_12567\0" + "braille_dots_125678\0" + "braille_dots_12568\0" + "braille_dots_1257\0" + "braille_dots_12578\0" + "braille_dots_1258\0" + "braille_dots_126\0" + "braille_dots_1267\0" + "braille_dots_12678\0" + "braille_dots_1268\0" + "braille_dots_127\0" + "braille_dots_1278\0" + "braille_dots_128\0" + "braille_dots_13\0" + "braille_dots_134\0" + "braille_dots_1345\0" + "braille_dots_13456\0" + "braille_dots_134567\0" + "braille_dots_1345678\0" + "braille_dots_134568\0" + "braille_dots_13457\0" + "braille_dots_134578\0" + "braille_dots_13458\0" + "braille_dots_1346\0" + "braille_dots_13467\0" + "braille_dots_134678\0" + "braille_dots_13468\0" + "braille_dots_1347\0" + "braille_dots_13478\0" + "braille_dots_1348\0" + "braille_dots_135\0" + "braille_dots_1356\0" + "braille_dots_13567\0" + "braille_dots_135678\0" + "braille_dots_13568\0" + "braille_dots_1357\0" + "braille_dots_13578\0" + "braille_dots_1358\0" + "braille_dots_136\0" + "braille_dots_1367\0" + "braille_dots_13678\0" + "braille_dots_1368\0" + "braille_dots_137\0" + "braille_dots_1378\0" + "braille_dots_138\0" + "braille_dots_14\0" + "braille_dots_145\0" + "braille_dots_1456\0" + "braille_dots_14567\0" + "braille_dots_145678\0" + "braille_dots_14568\0" + "braille_dots_1457\0" + "braille_dots_14578\0" + "braille_dots_1458\0" + "braille_dots_146\0" + "braille_dots_1467\0" + "braille_dots_14678\0" + "braille_dots_1468\0" + "braille_dots_147\0" + "braille_dots_1478\0" + "braille_dots_148\0" + "braille_dots_15\0" + "braille_dots_156\0" + "braille_dots_1567\0" + "braille_dots_15678\0" + "braille_dots_1568\0" + "braille_dots_157\0" + "braille_dots_1578\0" + "braille_dots_158\0" + "braille_dots_16\0" + "braille_dots_167\0" + "braille_dots_1678\0" + "braille_dots_168\0" + "braille_dots_17\0" + "braille_dots_178\0" + "braille_dots_18\0" + "braille_dots_2\0" + "braille_dots_23\0" + "braille_dots_234\0" + "braille_dots_2345\0" + "braille_dots_23456\0" + "braille_dots_234567\0" + "braille_dots_2345678\0" + "braille_dots_234568\0" + "braille_dots_23457\0" + "braille_dots_234578\0" + "braille_dots_23458\0" + "braille_dots_2346\0" + "braille_dots_23467\0" + "braille_dots_234678\0" + "braille_dots_23468\0" + "braille_dots_2347\0" + "braille_dots_23478\0" + "braille_dots_2348\0" + "braille_dots_235\0" + "braille_dots_2356\0" + "braille_dots_23567\0" + "braille_dots_235678\0" + "braille_dots_23568\0" + "braille_dots_2357\0" + "braille_dots_23578\0" + "braille_dots_2358\0" + "braille_dots_236\0" + "braille_dots_2367\0" + "braille_dots_23678\0" + "braille_dots_2368\0" + "braille_dots_237\0" + "braille_dots_2378\0" + "braille_dots_238\0" + "braille_dots_24\0" + "braille_dots_245\0" + "braille_dots_2456\0" + "braille_dots_24567\0" + "braille_dots_245678\0" + "braille_dots_24568\0" + "braille_dots_2457\0" + "braille_dots_24578\0" + "braille_dots_2458\0" + "braille_dots_246\0" + "braille_dots_2467\0" + "braille_dots_24678\0" + "braille_dots_2468\0" + "braille_dots_247\0" + "braille_dots_2478\0" + "braille_dots_248\0" + "braille_dots_25\0" + "braille_dots_256\0" + "braille_dots_2567\0" + "braille_dots_25678\0" + "braille_dots_2568\0" + "braille_dots_257\0" + "braille_dots_2578\0" + "braille_dots_258\0" + "braille_dots_26\0" + "braille_dots_267\0" + "braille_dots_2678\0" + "braille_dots_268\0" + "braille_dots_27\0" + "braille_dots_278\0" + "braille_dots_28\0" + "braille_dots_3\0" + "braille_dots_34\0" + "braille_dots_345\0" + "braille_dots_3456\0" + "braille_dots_34567\0" + "braille_dots_345678\0" + "braille_dots_34568\0" + "braille_dots_3457\0" + "braille_dots_34578\0" + "braille_dots_3458\0" + "braille_dots_346\0" + "braille_dots_3467\0" + "braille_dots_34678\0" + "braille_dots_3468\0" + "braille_dots_347\0" + "braille_dots_3478\0" + "braille_dots_348\0" + "braille_dots_35\0" + "braille_dots_356\0" + "braille_dots_3567\0" + "braille_dots_35678\0" + "braille_dots_3568\0" + "braille_dots_357\0" + "braille_dots_3578\0" + "braille_dots_358\0" + "braille_dots_36\0" + "braille_dots_367\0" + "braille_dots_3678\0" + "braille_dots_368\0" + "braille_dots_37\0" + "braille_dots_378\0" + "braille_dots_38\0" + "braille_dots_4\0" + "braille_dots_45\0" + "braille_dots_456\0" + "braille_dots_4567\0" + "braille_dots_45678\0" + "braille_dots_4568\0" + "braille_dots_457\0" + "braille_dots_4578\0" + "braille_dots_458\0" + "braille_dots_46\0" + "braille_dots_467\0" + "braille_dots_4678\0" + "braille_dots_468\0" + "braille_dots_47\0" + "braille_dots_478\0" + "braille_dots_48\0" + "braille_dots_5\0" + "braille_dots_56\0" + "braille_dots_567\0" + "braille_dots_5678\0" + "braille_dots_568\0" + "braille_dots_57\0" + "braille_dots_578\0" + "braille_dots_58\0" + "braille_dots_6\0" + "braille_dots_67\0" + "braille_dots_678\0" + "braille_dots_68\0" + "braille_dots_7\0" + "braille_dots_78\0" + "braille_dots_8\0" + "Break\0" + "breve\0" + "brokenbar\0" + "Byelorussian_shortu\0" + "Byelorussian_SHORTU\0" + "C\0" + "c\0" + "c_h\0" + "C_h\0" + "C_H\0" + "Cabovedot\0" + "cabovedot\0" + "Cacute\0" + "cacute\0" + "Cancel\0" + "Caps_Lock\0" + "careof\0" + "caret\0" + "caron\0" + "Ccaron\0" + "ccaron\0" + "Ccedilla\0" + "ccedilla\0" + "Ccircumflex\0" + "ccircumflex\0" + "cedilla\0" + "cent\0" + "ch\0" + "Ch\0" + "CH\0" + "checkerboard\0" + "checkmark\0" + "circle\0" + "Clear\0" + "ClearLine\0" + "club\0" + "Codeinput\0" + "colon\0" + "ColonSign\0" + "comma\0" + "containsas\0" + "Control_L\0" + "Control_R\0" + "copyright\0" + "cr\0" + "crossinglines\0" + "CruzeiroSign\0" + "cuberoot\0" + "currency\0" + "cursor\0" + "Cyrillic_a\0" + "Cyrillic_A\0" + "Cyrillic_be\0" + "Cyrillic_BE\0" + "Cyrillic_che\0" + "Cyrillic_CHE\0" + "Cyrillic_CHE_descender\0" + "Cyrillic_che_descender\0" + "Cyrillic_CHE_vertstroke\0" + "Cyrillic_che_vertstroke\0" + "Cyrillic_de\0" + "Cyrillic_DE\0" + "Cyrillic_dzhe\0" + "Cyrillic_DZHE\0" + "Cyrillic_e\0" + "Cyrillic_E\0" + "Cyrillic_ef\0" + "Cyrillic_EF\0" + "Cyrillic_el\0" + "Cyrillic_EL\0" + "Cyrillic_em\0" + "Cyrillic_EM\0" + "Cyrillic_en\0" + "Cyrillic_EN\0" + "Cyrillic_EN_descender\0" + "Cyrillic_en_descender\0" + "Cyrillic_er\0" + "Cyrillic_ER\0" + "Cyrillic_es\0" + "Cyrillic_ES\0" + "Cyrillic_ghe\0" + "Cyrillic_GHE\0" + "Cyrillic_GHE_bar\0" + "Cyrillic_ghe_bar\0" + "Cyrillic_ha\0" + "Cyrillic_HA\0" + "Cyrillic_HA_descender\0" + "Cyrillic_ha_descender\0" + "Cyrillic_hardsign\0" + "Cyrillic_HARDSIGN\0" + "Cyrillic_i\0" + "Cyrillic_I\0" + "Cyrillic_I_macron\0" + "Cyrillic_i_macron\0" + "Cyrillic_ie\0" + "Cyrillic_IE\0" + "Cyrillic_io\0" + "Cyrillic_IO\0" + "Cyrillic_je\0" + "Cyrillic_JE\0" + "Cyrillic_ka\0" + "Cyrillic_KA\0" + "Cyrillic_KA_descender\0" + "Cyrillic_ka_descender\0" + "Cyrillic_KA_vertstroke\0" + "Cyrillic_ka_vertstroke\0" + "Cyrillic_lje\0" + "Cyrillic_LJE\0" + "Cyrillic_nje\0" + "Cyrillic_NJE\0" + "Cyrillic_o\0" + "Cyrillic_O\0" + "Cyrillic_O_bar\0" + "Cyrillic_o_bar\0" + "Cyrillic_pe\0" + "Cyrillic_PE\0" + "Cyrillic_SCHWA\0" + "Cyrillic_schwa\0" + "Cyrillic_sha\0" + "Cyrillic_SHA\0" + "Cyrillic_shcha\0" + "Cyrillic_SHCHA\0" + "Cyrillic_SHHA\0" + "Cyrillic_shha\0" + "Cyrillic_shorti\0" + "Cyrillic_SHORTI\0" + "Cyrillic_softsign\0" + "Cyrillic_SOFTSIGN\0" + "Cyrillic_te\0" + "Cyrillic_TE\0" + "Cyrillic_tse\0" + "Cyrillic_TSE\0" + "Cyrillic_u\0" + "Cyrillic_U\0" + "Cyrillic_U_macron\0" + "Cyrillic_u_macron\0" + "Cyrillic_U_straight\0" + "Cyrillic_u_straight\0" + "Cyrillic_U_straight_bar\0" + "Cyrillic_u_straight_bar\0" + "Cyrillic_ve\0" + "Cyrillic_VE\0" + "Cyrillic_ya\0" + "Cyrillic_YA\0" + "Cyrillic_yeru\0" + "Cyrillic_YERU\0" + "Cyrillic_yu\0" + "Cyrillic_YU\0" + "Cyrillic_ze\0" + "Cyrillic_ZE\0" + "Cyrillic_zhe\0" + "Cyrillic_ZHE\0" + "Cyrillic_ZHE_descender\0" + "Cyrillic_zhe_descender\0" + "D\0" + "d\0" + "Dabovedot\0" + "dabovedot\0" + "Dacute_accent\0" + "dagger\0" + "Dcaron\0" + "dcaron\0" + "Dcedilla_accent\0" + "Dcircumflex_accent\0" + "Ddiaeresis\0" + "dead_a\0" + "dead_A\0" + "dead_abovecomma\0" + "dead_abovedot\0" + "dead_abovereversedcomma\0" + "dead_abovering\0" + "dead_aboveverticalline\0" + "dead_acute\0" + "dead_belowbreve\0" + "dead_belowcircumflex\0" + "dead_belowcomma\0" + "dead_belowdiaeresis\0" + "dead_belowdot\0" + "dead_belowmacron\0" + "dead_belowring\0" + "dead_belowtilde\0" + "dead_belowverticalline\0" + "dead_breve\0" + "dead_capital_schwa\0" + "dead_caron\0" + "dead_cedilla\0" + "dead_circumflex\0" + "dead_currency\0" + "dead_dasia\0" + "dead_diaeresis\0" + "dead_doubleacute\0" + "dead_doublegrave\0" + "dead_e\0" + "dead_E\0" + "dead_grave\0" + "dead_greek\0" + "dead_hook\0" + "dead_horn\0" + "dead_i\0" + "dead_I\0" + "dead_invertedbreve\0" + "dead_iota\0" + "dead_longsolidusoverlay\0" + "dead_lowline\0" + "dead_macron\0" + "dead_o\0" + "dead_O\0" + "dead_ogonek\0" + "dead_perispomeni\0" + "dead_psili\0" + "dead_semivoiced_sound\0" + "dead_small_schwa\0" + "dead_stroke\0" + "dead_tilde\0" + "dead_u\0" + "dead_U\0" + "dead_voiced_sound\0" + "decimalpoint\0" + "degree\0" + "Delete\0" + "DeleteChar\0" + "DeleteLine\0" + "Dgrave_accent\0" + "diaeresis\0" + "diamond\0" + "digitspace\0" + "dintegral\0" + "division\0" + "dollar\0" + "DongSign\0" + "doubbaselinedot\0" + "doubleacute\0" + "doubledagger\0" + "doublelowquotemark\0" + "Down\0" + "downarrow\0" + "downcaret\0" + "downshoe\0" + "downstile\0" + "downtack\0" + "DRemove\0" + "Dring_accent\0" + "Dstroke\0" + "dstroke\0" + "Dtilde\0" + "E\0" + "e\0" + "Eabovedot\0" + "eabovedot\0" + "Eacute\0" + "eacute\0" + "Ebelowdot\0" + "ebelowdot\0" + "Ecaron\0" + "ecaron\0" + "Ecircumflex\0" + "ecircumflex\0" + "Ecircumflexacute\0" + "ecircumflexacute\0" + "Ecircumflexbelowdot\0" + "ecircumflexbelowdot\0" + "Ecircumflexgrave\0" + "ecircumflexgrave\0" + "Ecircumflexhook\0" + "ecircumflexhook\0" + "Ecircumflextilde\0" + "ecircumflextilde\0" + "EcuSign\0" + "Ediaeresis\0" + "ediaeresis\0" + "Egrave\0" + "egrave\0" + "Ehook\0" + "ehook\0" + "eightsubscript\0" + "eightsuperior\0" + "Eisu_Shift\0" + "Eisu_toggle\0" + "elementof\0" + "ellipsis\0" + "em3space\0" + "em4space\0" + "Emacron\0" + "emacron\0" + "emdash\0" + "emfilledcircle\0" + "emfilledrect\0" + "emopencircle\0" + "emopenrectangle\0" + "emptyset\0" + "emspace\0" + "End\0" + "endash\0" + "enfilledcircbullet\0" + "enfilledsqbullet\0" + "ENG\0" + "eng\0" + "enopencircbullet\0" + "enopensquarebullet\0" + "enspace\0" + "Eogonek\0" + "eogonek\0" + "equal\0" + "Escape\0" + "ETH\0" + "Eth\0" + "eth\0" + "Etilde\0" + "etilde\0" + "EuroSign\0" + "exclam\0" + "exclamdown\0" + "Execute\0" + "Ext16bit_L\0" + "Ext16bit_R\0" + "EZH\0" + "ezh\0" + "F\0" + "f\0" + "F1\0" + "F10\0" + "F11\0" + "F12\0" + "F13\0" + "F14\0" + "F15\0" + "F16\0" + "F17\0" + "F18\0" + "F19\0" + "F2\0" + "F20\0" + "F21\0" + "F22\0" + "F23\0" + "F24\0" + "F25\0" + "F26\0" + "F27\0" + "F28\0" + "F29\0" + "F3\0" + "F30\0" + "F31\0" + "F32\0" + "F33\0" + "F34\0" + "F35\0" + "F4\0" + "F5\0" + "F6\0" + "F7\0" + "F8\0" + "F9\0" + "Fabovedot\0" + "fabovedot\0" + "Farsi_0\0" + "Farsi_1\0" + "Farsi_2\0" + "Farsi_3\0" + "Farsi_4\0" + "Farsi_5\0" + "Farsi_6\0" + "Farsi_7\0" + "Farsi_8\0" + "Farsi_9\0" + "Farsi_yeh\0" + "femalesymbol\0" + "ff\0" + "FFrancSign\0" + "figdash\0" + "filledlefttribullet\0" + "filledrectbullet\0" + "filledrighttribullet\0" + "filledtribulletdown\0" + "filledtribulletup\0" + "Find\0" + "First_Virtual_Screen\0" + "fiveeighths\0" + "fivesixths\0" + "fivesubscript\0" + "fivesuperior\0" + "fourfifths\0" + "foursubscript\0" + "foursuperior\0" + "fourthroot\0" + "function\0" + "G\0" + "g\0" + "Gabovedot\0" + "gabovedot\0" + "Gbreve\0" + "gbreve\0" + "Gcaron\0" + "gcaron\0" + "Gcedilla\0" + "gcedilla\0" + "Gcircumflex\0" + "gcircumflex\0" + "Georgian_an\0" + "Georgian_ban\0" + "Georgian_can\0" + "Georgian_char\0" + "Georgian_chin\0" + "Georgian_cil\0" + "Georgian_don\0" + "Georgian_en\0" + "Georgian_fi\0" + "Georgian_gan\0" + "Georgian_ghan\0" + "Georgian_hae\0" + "Georgian_har\0" + "Georgian_he\0" + "Georgian_hie\0" + "Georgian_hoe\0" + "Georgian_in\0" + "Georgian_jhan\0" + "Georgian_jil\0" + "Georgian_kan\0" + "Georgian_khar\0" + "Georgian_las\0" + "Georgian_man\0" + "Georgian_nar\0" + "Georgian_on\0" + "Georgian_par\0" + "Georgian_phar\0" + "Georgian_qar\0" + "Georgian_rae\0" + "Georgian_san\0" + "Georgian_shin\0" + "Georgian_tan\0" + "Georgian_tar\0" + "Georgian_un\0" + "Georgian_vin\0" + "Georgian_we\0" + "Georgian_xan\0" + "Georgian_zen\0" + "Georgian_zhar\0" + "grave\0" + "greater\0" + "greaterthanequal\0" + "Greek_accentdieresis\0" + "Greek_ALPHA\0" + "Greek_alpha\0" + "Greek_ALPHAaccent\0" + "Greek_alphaaccent\0" + "Greek_BETA\0" + "Greek_beta\0" + "Greek_CHI\0" + "Greek_chi\0" + "Greek_DELTA\0" + "Greek_delta\0" + "Greek_EPSILON\0" + "Greek_epsilon\0" + "Greek_EPSILONaccent\0" + "Greek_epsilonaccent\0" + "Greek_ETA\0" + "Greek_eta\0" + "Greek_ETAaccent\0" + "Greek_etaaccent\0" + "Greek_finalsmallsigma\0" + "Greek_GAMMA\0" + "Greek_gamma\0" + "Greek_horizbar\0" + "Greek_IOTA\0" + "Greek_iota\0" + "Greek_IOTAaccent\0" + "Greek_iotaaccent\0" + "Greek_iotaaccentdieresis\0" + "Greek_IOTAdiaeresis\0" + "Greek_IOTAdieresis\0" + "Greek_iotadieresis\0" + "Greek_KAPPA\0" + "Greek_kappa\0" + "Greek_LAMBDA\0" + "Greek_lambda\0" + "Greek_LAMDA\0" + "Greek_lamda\0" + "Greek_MU\0" + "Greek_mu\0" + "Greek_NU\0" + "Greek_nu\0" + "Greek_OMEGA\0" + "Greek_omega\0" + "Greek_OMEGAaccent\0" + "Greek_omegaaccent\0" + "Greek_OMICRON\0" + "Greek_omicron\0" + "Greek_OMICRONaccent\0" + "Greek_omicronaccent\0" + "Greek_PHI\0" + "Greek_phi\0" + "Greek_PI\0" + "Greek_pi\0" + "Greek_PSI\0" + "Greek_psi\0" + "Greek_RHO\0" + "Greek_rho\0" + "Greek_SIGMA\0" + "Greek_sigma\0" + "Greek_switch\0" + "Greek_TAU\0" + "Greek_tau\0" + "Greek_THETA\0" + "Greek_theta\0" + "Greek_UPSILON\0" + "Greek_upsilon\0" + "Greek_UPSILONaccent\0" + "Greek_upsilonaccent\0" + "Greek_upsilonaccentdieresis\0" + "Greek_UPSILONdieresis\0" + "Greek_upsilondieresis\0" + "Greek_XI\0" + "Greek_xi\0" + "Greek_ZETA\0" + "Greek_zeta\0" + "guilder\0" + "guillemotleft\0" + "guillemotright\0" + "H\0" + "h\0" + "hairspace\0" + "Hangul\0" + "Hangul_A\0" + "Hangul_AE\0" + "Hangul_AraeA\0" + "Hangul_AraeAE\0" + "Hangul_Banja\0" + "Hangul_Cieuc\0" + "Hangul_Codeinput\0" + "Hangul_Dikeud\0" + "Hangul_E\0" + "Hangul_End\0" + "Hangul_EO\0" + "Hangul_EU\0" + "Hangul_Hanja\0" + "Hangul_Hieuh\0" + "Hangul_I\0" + "Hangul_Ieung\0" + "Hangul_J_Cieuc\0" + "Hangul_J_Dikeud\0" + "Hangul_J_Hieuh\0" + "Hangul_J_Ieung\0" + "Hangul_J_Jieuj\0" + "Hangul_J_Khieuq\0" + "Hangul_J_Kiyeog\0" + "Hangul_J_KiyeogSios\0" + "Hangul_J_KkogjiDalrinIeung\0" + "Hangul_J_Mieum\0" + "Hangul_J_Nieun\0" + "Hangul_J_NieunHieuh\0" + "Hangul_J_NieunJieuj\0" + "Hangul_J_PanSios\0" + "Hangul_J_Phieuf\0" + "Hangul_J_Pieub\0" + "Hangul_J_PieubSios\0" + "Hangul_J_Rieul\0" + "Hangul_J_RieulHieuh\0" + "Hangul_J_RieulKiyeog\0" + "Hangul_J_RieulMieum\0" + "Hangul_J_RieulPhieuf\0" + "Hangul_J_RieulPieub\0" + "Hangul_J_RieulSios\0" + "Hangul_J_RieulTieut\0" + "Hangul_J_Sios\0" + "Hangul_J_SsangKiyeog\0" + "Hangul_J_SsangSios\0" + "Hangul_J_Tieut\0" + "Hangul_J_YeorinHieuh\0" + "Hangul_Jamo\0" + "Hangul_Jeonja\0" + "Hangul_Jieuj\0" + "Hangul_Khieuq\0" + "Hangul_Kiyeog\0" + "Hangul_KiyeogSios\0" + "Hangul_KkogjiDalrinIeung\0" + "Hangul_Mieum\0" + "Hangul_MultipleCandidate\0" + "Hangul_Nieun\0" + "Hangul_NieunHieuh\0" + "Hangul_NieunJieuj\0" + "Hangul_O\0" + "Hangul_OE\0" + "Hangul_PanSios\0" + "Hangul_Phieuf\0" + "Hangul_Pieub\0" + "Hangul_PieubSios\0" + "Hangul_PostHanja\0" + "Hangul_PreHanja\0" + "Hangul_PreviousCandidate\0" + "Hangul_Rieul\0" + "Hangul_RieulHieuh\0" + "Hangul_RieulKiyeog\0" + "Hangul_RieulMieum\0" + "Hangul_RieulPhieuf\0" + "Hangul_RieulPieub\0" + "Hangul_RieulSios\0" + "Hangul_RieulTieut\0" + "Hangul_RieulYeorinHieuh\0" + "Hangul_Romaja\0" + "Hangul_SingleCandidate\0" + "Hangul_Sios\0" + "Hangul_Special\0" + "Hangul_SsangDikeud\0" + "Hangul_SsangJieuj\0" + "Hangul_SsangKiyeog\0" + "Hangul_SsangPieub\0" + "Hangul_SsangSios\0" + "Hangul_Start\0" + "Hangul_SunkyeongeumMieum\0" + "Hangul_SunkyeongeumPhieuf\0" + "Hangul_SunkyeongeumPieub\0" + "Hangul_switch\0" + "Hangul_Tieut\0" + "Hangul_U\0" + "Hangul_WA\0" + "Hangul_WAE\0" + "Hangul_WE\0" + "Hangul_WEO\0" + "Hangul_WI\0" + "Hangul_YA\0" + "Hangul_YAE\0" + "Hangul_YE\0" + "Hangul_YEO\0" + "Hangul_YeorinHieuh\0" + "Hangul_YI\0" + "Hangul_YO\0" + "Hangul_YU\0" + "Hankaku\0" + "Hcircumflex\0" + "hcircumflex\0" + "heart\0" + "hebrew_aleph\0" + "hebrew_ayin\0" + "hebrew_bet\0" + "hebrew_beth\0" + "hebrew_chet\0" + "hebrew_dalet\0" + "hebrew_daleth\0" + "hebrew_doublelowline\0" + "hebrew_finalkaph\0" + "hebrew_finalmem\0" + "hebrew_finalnun\0" + "hebrew_finalpe\0" + "hebrew_finalzade\0" + "hebrew_finalzadi\0" + "hebrew_gimel\0" + "hebrew_gimmel\0" + "hebrew_he\0" + "hebrew_het\0" + "hebrew_kaph\0" + "hebrew_kuf\0" + "hebrew_lamed\0" + "hebrew_mem\0" + "hebrew_nun\0" + "hebrew_pe\0" + "hebrew_qoph\0" + "hebrew_resh\0" + "hebrew_samech\0" + "hebrew_samekh\0" + "hebrew_shin\0" + "Hebrew_switch\0" + "hebrew_taf\0" + "hebrew_taw\0" + "hebrew_tet\0" + "hebrew_teth\0" + "hebrew_waw\0" + "hebrew_yod\0" + "hebrew_zade\0" + "hebrew_zadi\0" + "hebrew_zain\0" + "hebrew_zayin\0" + "Help\0" + "Henkan\0" + "Henkan_Mode\0" + "hexagram\0" + "Hiragana\0" + "Hiragana_Katakana\0" + "Home\0" + "horizconnector\0" + "horizlinescan1\0" + "horizlinescan3\0" + "horizlinescan5\0" + "horizlinescan7\0" + "horizlinescan9\0" + "hpBackTab\0" + "hpblock\0" + "hpClearLine\0" + "hpDeleteChar\0" + "hpDeleteLine\0" + "hpguilder\0" + "hpInsertChar\0" + "hpInsertLine\0" + "hpIO\0" + "hpKP_BackTab\0" + "hplira\0" + "hplongminus\0" + "hpModelock1\0" + "hpModelock2\0" + "hpmute_acute\0" + "hpmute_asciicircum\0" + "hpmute_asciitilde\0" + "hpmute_diaeresis\0" + "hpmute_grave\0" + "hpReset\0" + "hpSystem\0" + "hpUser\0" + "hpYdiaeresis\0" + "Hstroke\0" + "hstroke\0" + "ht\0" + "Hyper_L\0" + "Hyper_R\0" + "hyphen\0" + "I\0" + "i\0" + "Iabovedot\0" + "Iacute\0" + "iacute\0" + "Ibelowdot\0" + "ibelowdot\0" + "Ibreve\0" + "ibreve\0" + "Icircumflex\0" + "icircumflex\0" + "identical\0" + "Idiaeresis\0" + "idiaeresis\0" + "idotless\0" + "ifonlyif\0" + "Igrave\0" + "igrave\0" + "Ihook\0" + "ihook\0" + "Imacron\0" + "imacron\0" + "implies\0" + "includedin\0" + "includes\0" + "infinity\0" + "Insert\0" + "InsertChar\0" + "InsertLine\0" + "integral\0" + "intersection\0" + "IO\0" + "Iogonek\0" + "iogonek\0" + "ISO_Center_Object\0" + "ISO_Continuous_Underline\0" + "ISO_Discontinuous_Underline\0" + "ISO_Emphasize\0" + "ISO_Enter\0" + "ISO_Fast_Cursor_Down\0" + "ISO_Fast_Cursor_Left\0" + "ISO_Fast_Cursor_Right\0" + "ISO_Fast_Cursor_Up\0" + "ISO_First_Group\0" + "ISO_First_Group_Lock\0" + "ISO_Group_Latch\0" + "ISO_Group_Lock\0" + "ISO_Group_Shift\0" + "ISO_Last_Group\0" + "ISO_Last_Group_Lock\0" + "ISO_Left_Tab\0" + "ISO_Level2_Latch\0" + "ISO_Level3_Latch\0" + "ISO_Level3_Lock\0" + "ISO_Level3_Shift\0" + "ISO_Level5_Latch\0" + "ISO_Level5_Lock\0" + "ISO_Level5_Shift\0" + "ISO_Lock\0" + "ISO_Move_Line_Down\0" + "ISO_Move_Line_Up\0" + "ISO_Next_Group\0" + "ISO_Next_Group_Lock\0" + "ISO_Partial_Line_Down\0" + "ISO_Partial_Line_Up\0" + "ISO_Partial_Space_Left\0" + "ISO_Partial_Space_Right\0" + "ISO_Prev_Group\0" + "ISO_Prev_Group_Lock\0" + "ISO_Release_Both_Margins\0" + "ISO_Release_Margin_Left\0" + "ISO_Release_Margin_Right\0" + "ISO_Set_Margin_Left\0" + "ISO_Set_Margin_Right\0" + "Itilde\0" + "itilde\0" + "J\0" + "j\0" + "Jcircumflex\0" + "jcircumflex\0" + "jot\0" + "K\0" + "k\0" + "kana_a\0" + "kana_A\0" + "kana_CHI\0" + "kana_closingbracket\0" + "kana_comma\0" + "kana_conjunctive\0" + "kana_e\0" + "kana_E\0" + "kana_FU\0" + "kana_fullstop\0" + "kana_HA\0" + "kana_HE\0" + "kana_HI\0" + "kana_HO\0" + "kana_HU\0" + "kana_i\0" + "kana_I\0" + "kana_KA\0" + "kana_KE\0" + "kana_KI\0" + "kana_KO\0" + "kana_KU\0" + "Kana_Lock\0" + "kana_MA\0" + "kana_ME\0" + "kana_MI\0" + "kana_middledot\0" + "kana_MO\0" + "kana_MU\0" + "kana_N\0" + "kana_NA\0" + "kana_NE\0" + "kana_NI\0" + "kana_NO\0" + "kana_NU\0" + "kana_o\0" + "kana_O\0" + "kana_openingbracket\0" + "kana_RA\0" + "kana_RE\0" + "kana_RI\0" + "kana_RO\0" + "kana_RU\0" + "kana_SA\0" + "kana_SE\0" + "kana_SHI\0" + "Kana_Shift\0" + "kana_SO\0" + "kana_SU\0" + "kana_switch\0" + "kana_TA\0" + "kana_TE\0" + "kana_TI\0" + "kana_TO\0" + "kana_tsu\0" + "kana_TSU\0" + "kana_tu\0" + "kana_TU\0" + "kana_u\0" + "kana_U\0" + "kana_WA\0" + "kana_WO\0" + "kana_ya\0" + "kana_YA\0" + "kana_yo\0" + "kana_YO\0" + "kana_yu\0" + "kana_YU\0" + "Kanji\0" + "Kanji_Bangou\0" + "kappa\0" + "Katakana\0" + "Kcedilla\0" + "kcedilla\0" + "Korean_Won\0" + "KP_0\0" + "KP_1\0" + "KP_2\0" + "KP_3\0" + "KP_4\0" + "KP_5\0" + "KP_6\0" + "KP_7\0" + "KP_8\0" + "KP_9\0" + "KP_Add\0" + "KP_BackTab\0" + "KP_Begin\0" + "KP_Decimal\0" + "KP_Delete\0" + "KP_Divide\0" + "KP_Down\0" + "KP_End\0" + "KP_Enter\0" + "KP_Equal\0" + "KP_F1\0" + "KP_F2\0" + "KP_F3\0" + "KP_F4\0" + "KP_Home\0" + "KP_Insert\0" + "KP_Left\0" + "KP_Multiply\0" + "KP_Next\0" + "KP_Page_Down\0" + "KP_Page_Up\0" + "KP_Prior\0" + "KP_Right\0" + "KP_Separator\0" + "KP_Space\0" + "KP_Subtract\0" + "KP_Tab\0" + "KP_Up\0" + "kra\0" + "L\0" + "l\0" + "L1\0" + "L10\0" + "L2\0" + "L3\0" + "L4\0" + "L5\0" + "L6\0" + "L7\0" + "L8\0" + "L9\0" + "Lacute\0" + "lacute\0" + "Last_Virtual_Screen\0" + "latincross\0" + "Lbelowdot\0" + "lbelowdot\0" + "Lcaron\0" + "lcaron\0" + "Lcedilla\0" + "lcedilla\0" + "Left\0" + "leftanglebracket\0" + "leftarrow\0" + "leftcaret\0" + "leftdoublequotemark\0" + "leftmiddlecurlybrace\0" + "leftopentriangle\0" + "leftpointer\0" + "leftradical\0" + "leftshoe\0" + "leftsinglequotemark\0" + "leftt\0" + "lefttack\0" + "less\0" + "lessthanequal\0" + "lf\0" + "Linefeed\0" + "lira\0" + "LiraSign\0" + "logicaland\0" + "logicalor\0" + "longminus\0" + "lowleftcorner\0" + "lowrightcorner\0" + "Lstroke\0" + "lstroke\0" + "M\0" + "m\0" + "Mabovedot\0" + "mabovedot\0" + "Macedonia_dse\0" + "Macedonia_DSE\0" + "Macedonia_gje\0" + "Macedonia_GJE\0" + "Macedonia_kje\0" + "Macedonia_KJE\0" + "macron\0" + "Mae_Koho\0" + "malesymbol\0" + "maltesecross\0" + "marker\0" + "masculine\0" + "Massyo\0" + "Menu\0" + "Meta_L\0" + "Meta_R\0" + "MillSign\0" + "minus\0" + "minutes\0" + "Mode_switch\0" + "MouseKeys_Accel_Enable\0" + "MouseKeys_Enable\0" + "mu\0" + "Muhenkan\0" + "Multi_key\0" + "MultipleCandidate\0" + "multiply\0" + "musicalflat\0" + "musicalsharp\0" + "mute_acute\0" + "mute_asciicircum\0" + "mute_asciitilde\0" + "mute_diaeresis\0" + "mute_grave\0" + "N\0" + "n\0" + "nabla\0" + "Nacute\0" + "nacute\0" + "NairaSign\0" + "Ncaron\0" + "ncaron\0" + "Ncedilla\0" + "ncedilla\0" + "NewSheqelSign\0" + "Next\0" + "Next_Virtual_Screen\0" + "ninesubscript\0" + "ninesuperior\0" + "nl\0" + "nobreakspace\0" + "NoSymbol\0" + "notapproxeq\0" + "notelementof\0" + "notequal\0" + "notidentical\0" + "notsign\0" + "Ntilde\0" + "ntilde\0" + "Num_Lock\0" + "numbersign\0" + "numerosign\0" + "O\0" + "o\0" + "Oacute\0" + "oacute\0" + "Obarred\0" + "obarred\0" + "Obelowdot\0" + "obelowdot\0" + "Ocaron\0" + "ocaron\0" + "Ocircumflex\0" + "ocircumflex\0" + "Ocircumflexacute\0" + "ocircumflexacute\0" + "Ocircumflexbelowdot\0" + "ocircumflexbelowdot\0" + "Ocircumflexgrave\0" + "ocircumflexgrave\0" + "Ocircumflexhook\0" + "ocircumflexhook\0" + "Ocircumflextilde\0" + "ocircumflextilde\0" + "Odiaeresis\0" + "odiaeresis\0" + "Odoubleacute\0" + "odoubleacute\0" + "OE\0" + "oe\0" + "ogonek\0" + "Ograve\0" + "ograve\0" + "Ohook\0" + "ohook\0" + "Ohorn\0" + "ohorn\0" + "Ohornacute\0" + "ohornacute\0" + "Ohornbelowdot\0" + "ohornbelowdot\0" + "Ohorngrave\0" + "ohorngrave\0" + "Ohornhook\0" + "ohornhook\0" + "Ohorntilde\0" + "ohorntilde\0" + "Omacron\0" + "omacron\0" + "oneeighth\0" + "onefifth\0" + "onehalf\0" + "onequarter\0" + "onesixth\0" + "onesubscript\0" + "onesuperior\0" + "onethird\0" + "Ooblique\0" + "ooblique\0" + "openrectbullet\0" + "openstar\0" + "opentribulletdown\0" + "opentribulletup\0" + "ordfeminine\0" + "osfActivate\0" + "osfAddMode\0" + "osfBackSpace\0" + "osfBackTab\0" + "osfBeginData\0" + "osfBeginLine\0" + "osfCancel\0" + "osfClear\0" + "osfCopy\0" + "osfCut\0" + "osfDelete\0" + "osfDeselectAll\0" + "osfDown\0" + "osfEndData\0" + "osfEndLine\0" + "osfEscape\0" + "osfExtend\0" + "osfHelp\0" + "osfInsert\0" + "osfLeft\0" + "osfMenu\0" + "osfMenuBar\0" + "osfNextField\0" + "osfNextMenu\0" + "osfPageDown\0" + "osfPageLeft\0" + "osfPageRight\0" + "osfPageUp\0" + "osfPaste\0" + "osfPrevField\0" + "osfPrevMenu\0" + "osfPrimaryPaste\0" + "osfQuickPaste\0" + "osfReselect\0" + "osfRestore\0" + "osfRight\0" + "osfSelect\0" + "osfSelectAll\0" + "osfUndo\0" + "osfUp\0" + "Oslash\0" + "oslash\0" + "Otilde\0" + "otilde\0" + "overbar\0" + "Overlay1_Enable\0" + "Overlay2_Enable\0" + "overline\0" + "P\0" + "p\0" + "Pabovedot\0" + "pabovedot\0" + "Page_Down\0" + "Page_Up\0" + "paragraph\0" + "parenleft\0" + "parenright\0" + "partdifferential\0" + "partialderivative\0" + "Pause\0" + "percent\0" + "period\0" + "periodcentered\0" + "permille\0" + "PesetaSign\0" + "phonographcopyright\0" + "plus\0" + "plusminus\0" + "Pointer_Accelerate\0" + "Pointer_Button1\0" + "Pointer_Button2\0" + "Pointer_Button3\0" + "Pointer_Button4\0" + "Pointer_Button5\0" + "Pointer_Button_Dflt\0" + "Pointer_DblClick1\0" + "Pointer_DblClick2\0" + "Pointer_DblClick3\0" + "Pointer_DblClick4\0" + "Pointer_DblClick5\0" + "Pointer_DblClick_Dflt\0" + "Pointer_DfltBtnNext\0" + "Pointer_DfltBtnPrev\0" + "Pointer_Down\0" + "Pointer_DownLeft\0" + "Pointer_DownRight\0" + "Pointer_Drag1\0" + "Pointer_Drag2\0" + "Pointer_Drag3\0" + "Pointer_Drag4\0" + "Pointer_Drag5\0" + "Pointer_Drag_Dflt\0" + "Pointer_EnableKeys\0" + "Pointer_Left\0" + "Pointer_Right\0" + "Pointer_Up\0" + "Pointer_UpLeft\0" + "Pointer_UpRight\0" + "prescription\0" + "Prev_Virtual_Screen\0" + "PreviousCandidate\0" + "Print\0" + "Prior\0" + "prolongedsound\0" + "punctspace\0" + "Q\0" + "q\0" + "quad\0" + "question\0" + "questiondown\0" + "quotedbl\0" + "quoteleft\0" + "quoteright\0" + "R\0" + "r\0" + "R1\0" + "R10\0" + "R11\0" + "R12\0" + "R13\0" + "R14\0" + "R15\0" + "R2\0" + "R3\0" + "R4\0" + "R5\0" + "R6\0" + "R7\0" + "R8\0" + "R9\0" + "Racute\0" + "racute\0" + "radical\0" + "Rcaron\0" + "rcaron\0" + "Rcedilla\0" + "rcedilla\0" + "Redo\0" + "registered\0" + "RepeatKeys_Enable\0" + "Reset\0" + "Return\0" + "Right\0" + "rightanglebracket\0" + "rightarrow\0" + "rightcaret\0" + "rightdoublequotemark\0" + "rightmiddlecurlybrace\0" + "rightmiddlesummation\0" + "rightopentriangle\0" + "rightpointer\0" + "rightshoe\0" + "rightsinglequotemark\0" + "rightt\0" + "righttack\0" + "Romaji\0" + "RupeeSign\0" + "S\0" + "s\0" + "Sabovedot\0" + "sabovedot\0" + "Sacute\0" + "sacute\0" + "Scaron\0" + "scaron\0" + "Scedilla\0" + "scedilla\0" + "SCHWA\0" + "schwa\0" + "Scircumflex\0" + "scircumflex\0" + "script_switch\0" + "Scroll_Lock\0" + "seconds\0" + "section\0" + "Select\0" + "semicolon\0" + "semivoicedsound\0" + "Serbian_dje\0" + "Serbian_DJE\0" + "Serbian_dze\0" + "Serbian_DZE\0" + "Serbian_je\0" + "Serbian_JE\0" + "Serbian_lje\0" + "Serbian_LJE\0" + "Serbian_nje\0" + "Serbian_NJE\0" + "Serbian_tshe\0" + "Serbian_TSHE\0" + "seveneighths\0" + "sevensubscript\0" + "sevensuperior\0" + "Shift_L\0" + "Shift_Lock\0" + "Shift_R\0" + "signaturemark\0" + "signifblank\0" + "similarequal\0" + "SingleCandidate\0" + "singlelowquotemark\0" + "Sinh_a\0" + "Sinh_aa\0" + "Sinh_aa2\0" + "Sinh_ae\0" + "Sinh_ae2\0" + "Sinh_aee\0" + "Sinh_aee2\0" + "Sinh_ai\0" + "Sinh_ai2\0" + "Sinh_al\0" + "Sinh_au\0" + "Sinh_au2\0" + "Sinh_ba\0" + "Sinh_bha\0" + "Sinh_ca\0" + "Sinh_cha\0" + "Sinh_dda\0" + "Sinh_ddha\0" + "Sinh_dha\0" + "Sinh_dhha\0" + "Sinh_e\0" + "Sinh_e2\0" + "Sinh_ee\0" + "Sinh_ee2\0" + "Sinh_fa\0" + "Sinh_ga\0" + "Sinh_gha\0" + "Sinh_h2\0" + "Sinh_ha\0" + "Sinh_i\0" + "Sinh_i2\0" + "Sinh_ii\0" + "Sinh_ii2\0" + "Sinh_ja\0" + "Sinh_jha\0" + "Sinh_jnya\0" + "Sinh_ka\0" + "Sinh_kha\0" + "Sinh_kunddaliya\0" + "Sinh_la\0" + "Sinh_lla\0" + "Sinh_lu\0" + "Sinh_lu2\0" + "Sinh_luu\0" + "Sinh_luu2\0" + "Sinh_ma\0" + "Sinh_mba\0" + "Sinh_na\0" + "Sinh_ndda\0" + "Sinh_ndha\0" + "Sinh_ng\0" + "Sinh_ng2\0" + "Sinh_nga\0" + "Sinh_nja\0" + "Sinh_nna\0" + "Sinh_nya\0" + "Sinh_o\0" + "Sinh_o2\0" + "Sinh_oo\0" + "Sinh_oo2\0" + "Sinh_pa\0" + "Sinh_pha\0" + "Sinh_ra\0" + "Sinh_ri\0" + "Sinh_rii\0" + "Sinh_ru2\0" + "Sinh_ruu2\0" + "Sinh_sa\0" + "Sinh_sha\0" + "Sinh_ssha\0" + "Sinh_tha\0" + "Sinh_thha\0" + "Sinh_tta\0" + "Sinh_ttha\0" + "Sinh_u\0" + "Sinh_u2\0" + "Sinh_uu\0" + "Sinh_uu2\0" + "Sinh_va\0" + "Sinh_ya\0" + "sixsubscript\0" + "sixsuperior\0" + "slash\0" + "SlowKeys_Enable\0" + "soliddiamond\0" + "space\0" + "squareroot\0" + "ssharp\0" + "sterling\0" + "StickyKeys_Enable\0" + "stricteq\0" + "SunAgain\0" + "SunAltGraph\0" + "SunAudioLowerVolume\0" + "SunAudioMute\0" + "SunAudioRaiseVolume\0" + "SunCompose\0" + "SunCopy\0" + "SunCut\0" + "SunF36\0" + "SunF37\0" + "SunFA_Acute\0" + "SunFA_Cedilla\0" + "SunFA_Circum\0" + "SunFA_Diaeresis\0" + "SunFA_Grave\0" + "SunFA_Tilde\0" + "SunFind\0" + "SunFront\0" + "SunOpen\0" + "SunPageDown\0" + "SunPageUp\0" + "SunPaste\0" + "SunPowerSwitch\0" + "SunPowerSwitchShift\0" + "SunPrint_Screen\0" + "SunProps\0" + "SunStop\0" + "SunSys_Req\0" + "SunUndo\0" + "SunVideoDegauss\0" + "SunVideoLowerBrightness\0" + "SunVideoRaiseBrightness\0" + "Super_L\0" + "Super_R\0" + "Sys_Req\0" + "System\0" + "T\0" + "t\0" + "Tab\0" + "Tabovedot\0" + "tabovedot\0" + "Tcaron\0" + "tcaron\0" + "Tcedilla\0" + "tcedilla\0" + "telephone\0" + "telephonerecorder\0" + "Terminate_Server\0" + "Thai_baht\0" + "Thai_bobaimai\0" + "Thai_chochan\0" + "Thai_chochang\0" + "Thai_choching\0" + "Thai_chochoe\0" + "Thai_dochada\0" + "Thai_dodek\0" + "Thai_fofa\0" + "Thai_fofan\0" + "Thai_hohip\0" + "Thai_honokhuk\0" + "Thai_khokhai\0" + "Thai_khokhon\0" + "Thai_khokhuat\0" + "Thai_khokhwai\0" + "Thai_khorakhang\0" + "Thai_kokai\0" + "Thai_lakkhangyao\0" + "Thai_lekchet\0" + "Thai_lekha\0" + "Thai_lekhok\0" + "Thai_lekkao\0" + "Thai_leknung\0" + "Thai_lekpaet\0" + "Thai_leksam\0" + "Thai_leksi\0" + "Thai_leksong\0" + "Thai_leksun\0" + "Thai_lochula\0" + "Thai_loling\0" + "Thai_lu\0" + "Thai_maichattawa\0" + "Thai_maiek\0" + "Thai_maihanakat\0" + "Thai_maihanakat_maitho\0" + "Thai_maitaikhu\0" + "Thai_maitho\0" + "Thai_maitri\0" + "Thai_maiyamok\0" + "Thai_moma\0" + "Thai_ngongu\0" + "Thai_nikhahit\0" + "Thai_nonen\0" + "Thai_nonu\0" + "Thai_oang\0" + "Thai_paiyannoi\0" + "Thai_phinthu\0" + "Thai_phophan\0" + "Thai_phophung\0" + "Thai_phosamphao\0" + "Thai_popla\0" + "Thai_rorua\0" + "Thai_ru\0" + "Thai_saraa\0" + "Thai_saraaa\0" + "Thai_saraae\0" + "Thai_saraaimaimalai\0" + "Thai_saraaimaimuan\0" + "Thai_saraam\0" + "Thai_sarae\0" + "Thai_sarai\0" + "Thai_saraii\0" + "Thai_sarao\0" + "Thai_sarau\0" + "Thai_saraue\0" + "Thai_sarauee\0" + "Thai_sarauu\0" + "Thai_sorusi\0" + "Thai_sosala\0" + "Thai_soso\0" + "Thai_sosua\0" + "Thai_thanthakhat\0" + "Thai_thonangmontho\0" + "Thai_thophuthao\0" + "Thai_thothahan\0" + "Thai_thothan\0" + "Thai_thothong\0" + "Thai_thothung\0" + "Thai_topatak\0" + "Thai_totao\0" + "Thai_wowaen\0" + "Thai_yoyak\0" + "Thai_yoying\0" + "therefore\0" + "thinspace\0" + "THORN\0" + "Thorn\0" + "thorn\0" + "threeeighths\0" + "threefifths\0" + "threequarters\0" + "threesubscript\0" + "threesuperior\0" + "tintegral\0" + "topintegral\0" + "topleftparens\0" + "topleftradical\0" + "topleftsqbracket\0" + "topleftsummation\0" + "toprightparens\0" + "toprightsqbracket\0" + "toprightsummation\0" + "topt\0" + "topvertsummationconnector\0" + "Touroku\0" + "trademark\0" + "trademarkincircle\0" + "Tslash\0" + "tslash\0" + "twofifths\0" + "twosubscript\0" + "twosuperior\0" + "twothirds\0" + "U\0" + "u\0" + "Uacute\0" + "uacute\0" + "Ubelowdot\0" + "ubelowdot\0" + "Ubreve\0" + "ubreve\0" + "Ucircumflex\0" + "ucircumflex\0" + "Udiaeresis\0" + "udiaeresis\0" + "Udoubleacute\0" + "udoubleacute\0" + "Ugrave\0" + "ugrave\0" + "Uhook\0" + "uhook\0" + "Uhorn\0" + "uhorn\0" + "Uhornacute\0" + "uhornacute\0" + "Uhornbelowdot\0" + "uhornbelowdot\0" + "Uhorngrave\0" + "uhorngrave\0" + "Uhornhook\0" + "uhornhook\0" + "Uhorntilde\0" + "uhorntilde\0" + "Ukrainian_ghe_with_upturn\0" + "Ukrainian_GHE_WITH_UPTURN\0" + "Ukrainian_i\0" + "Ukrainian_I\0" + "Ukrainian_ie\0" + "Ukrainian_IE\0" + "Ukrainian_yi\0" + "Ukrainian_YI\0" + "Ukranian_i\0" + "Ukranian_I\0" + "Ukranian_je\0" + "Ukranian_JE\0" + "Ukranian_yi\0" + "Ukranian_YI\0" + "Umacron\0" + "umacron\0" + "underbar\0" + "underscore\0" + "Undo\0" + "union\0" + "Uogonek\0" + "uogonek\0" + "Up\0" + "uparrow\0" + "upcaret\0" + "upleftcorner\0" + "uprightcorner\0" + "upshoe\0" + "upstile\0" + "uptack\0" + "Uring\0" + "uring\0" + "User\0" + "Utilde\0" + "utilde\0" + "V\0" + "v\0" + "variation\0" + "vertbar\0" + "vertconnector\0" + "voicedsound\0" + "VoidSymbol\0" + "vt\0" + "W\0" + "w\0" + "Wacute\0" + "wacute\0" + "Wcircumflex\0" + "wcircumflex\0" + "Wdiaeresis\0" + "wdiaeresis\0" + "Wgrave\0" + "wgrave\0" + "WonSign\0" + "X\0" + "x\0" + "Xabovedot\0" + "xabovedot\0" + "XF86AddFavorite\0" + "XF86ApplicationLeft\0" + "XF86ApplicationRight\0" + "XF86AudioCycleTrack\0" + "XF86AudioForward\0" + "XF86AudioLowerVolume\0" + "XF86AudioMedia\0" + "XF86AudioMicMute\0" + "XF86AudioMute\0" + "XF86AudioNext\0" + "XF86AudioPause\0" + "XF86AudioPlay\0" + "XF86AudioPrev\0" + "XF86AudioRaiseVolume\0" + "XF86AudioRandomPlay\0" + "XF86AudioRecord\0" + "XF86AudioRepeat\0" + "XF86AudioRewind\0" + "XF86AudioStop\0" + "XF86Away\0" + "XF86Back\0" + "XF86BackForward\0" + "XF86Battery\0" + "XF86Blue\0" + "XF86Bluetooth\0" + "XF86Book\0" + "XF86BrightnessAdjust\0" + "XF86Calculater\0" + "XF86Calculator\0" + "XF86Calendar\0" + "XF86CD\0" + "XF86Clear\0" + "XF86ClearGrab\0" + "XF86Close\0" + "XF86Community\0" + "XF86ContrastAdjust\0" + "XF86Copy\0" + "XF86Cut\0" + "XF86CycleAngle\0" + "XF86Display\0" + "XF86Documents\0" + "XF86DOS\0" + "XF86Eject\0" + "XF86Excel\0" + "XF86Explorer\0" + "XF86Favorites\0" + "XF86Finance\0" + "XF86Forward\0" + "XF86FrameBack\0" + "XF86FrameForward\0" + "XF86Game\0" + "XF86Go\0" + "XF86Green\0" + "XF86Hibernate\0" + "XF86History\0" + "XF86HomePage\0" + "XF86HotLinks\0" + "XF86iTouch\0" + "XF86KbdBrightnessDown\0" + "XF86KbdBrightnessUp\0" + "XF86KbdLightOnOff\0" + "XF86Launch0\0" + "XF86Launch1\0" + "XF86Launch2\0" + "XF86Launch3\0" + "XF86Launch4\0" + "XF86Launch5\0" + "XF86Launch6\0" + "XF86Launch7\0" + "XF86Launch8\0" + "XF86Launch9\0" + "XF86LaunchA\0" + "XF86LaunchB\0" + "XF86LaunchC\0" + "XF86LaunchD\0" + "XF86LaunchE\0" + "XF86LaunchF\0" + "XF86LightBulb\0" + "XF86LogGrabInfo\0" + "XF86LogOff\0" + "XF86LogWindowTree\0" + "XF86Mail\0" + "XF86MailForward\0" + "XF86Market\0" + "XF86Meeting\0" + "XF86Memo\0" + "XF86MenuKB\0" + "XF86MenuPB\0" + "XF86Messenger\0" + "XF86ModeLock\0" + "XF86MonBrightnessDown\0" + "XF86MonBrightnessUp\0" + "XF86Music\0" + "XF86MyComputer\0" + "XF86MySites\0" + "XF86New\0" + "XF86News\0" + "XF86Next_VMode\0" + "XF86OfficeHome\0" + "XF86Open\0" + "XF86OpenURL\0" + "XF86Option\0" + "XF86Paste\0" + "XF86Phone\0" + "XF86Pictures\0" + "XF86PowerDown\0" + "XF86PowerOff\0" + "XF86Prev_VMode\0" + "XF86Q\0" + "XF86Red\0" + "XF86Refresh\0" + "XF86Reload\0" + "XF86Reply\0" + "XF86RockerDown\0" + "XF86RockerEnter\0" + "XF86RockerUp\0" + "XF86RotateWindows\0" + "XF86RotationKB\0" + "XF86RotationPB\0" + "XF86Save\0" + "XF86ScreenSaver\0" + "XF86ScrollClick\0" + "XF86ScrollDown\0" + "XF86ScrollUp\0" + "XF86Search\0" + "XF86Select\0" + "XF86Send\0" + "XF86Shop\0" + "XF86Sleep\0" + "XF86Spell\0" + "XF86SplitScreen\0" + "XF86Standby\0" + "XF86Start\0" + "XF86Stop\0" + "XF86Subtitle\0" + "XF86Support\0" + "XF86Suspend\0" + "XF86Switch_VT_1\0" + "XF86Switch_VT_10\0" + "XF86Switch_VT_11\0" + "XF86Switch_VT_12\0" + "XF86Switch_VT_2\0" + "XF86Switch_VT_3\0" + "XF86Switch_VT_4\0" + "XF86Switch_VT_5\0" + "XF86Switch_VT_6\0" + "XF86Switch_VT_7\0" + "XF86Switch_VT_8\0" + "XF86Switch_VT_9\0" + "XF86TaskPane\0" + "XF86Terminal\0" + "XF86Time\0" + "XF86ToDoList\0" + "XF86Tools\0" + "XF86TopMenu\0" + "XF86TouchpadOff\0" + "XF86TouchpadOn\0" + "XF86TouchpadToggle\0" + "XF86Travel\0" + "XF86Ungrab\0" + "XF86User1KB\0" + "XF86User2KB\0" + "XF86UserPB\0" + "XF86UWB\0" + "XF86VendorHome\0" + "XF86Video\0" + "XF86View\0" + "XF86WakeUp\0" + "XF86WebCam\0" + "XF86WheelButton\0" + "XF86WLAN\0" + "XF86Word\0" + "XF86WWW\0" + "XF86Xfer\0" + "XF86Yellow\0" + "XF86ZoomIn\0" + "XF86ZoomOut\0" + "Y\0" + "y\0" + "Yacute\0" + "yacute\0" + "Ybelowdot\0" + "ybelowdot\0" + "Ycircumflex\0" + "ycircumflex\0" + "ydiaeresis\0" + "Ydiaeresis\0" + "yen\0" + "Ygrave\0" + "ygrave\0" + "Yhook\0" + "yhook\0" + "Ytilde\0" + "ytilde\0" + "Z\0" + "z\0" + "Zabovedot\0" + "zabovedot\0" + "Zacute\0" + "zacute\0" + "Zcaron\0" + "zcaron\0" + "Zen_Koho\0" + "Zenkaku\0" + "Zenkaku_Hankaku\0" + "zerosubscript\0" + "zerosuperior\0" + "Zstroke\0" + "zstroke\0" +; +#pragma GCC diagnostic pop + +struct name_keysym { + xkb_keysym_t keysym; + uint32_t offset; +}; + +static const struct name_keysym name_to_keysym[] = { + { 0x00000030, 0 }, /* 0 */ + { 0x00000031, 2 }, /* 1 */ + { 0x00000032, 4 }, /* 2 */ + { 0x00000033, 6 }, /* 3 */ + { 0x0000fd10, 8 }, /* 3270_AltCursor */ + { 0x0000fd0e, 23 }, /* 3270_Attn */ + { 0x0000fd05, 33 }, /* 3270_BackTab */ + { 0x0000fd19, 46 }, /* 3270_ChangeScreen */ + { 0x0000fd15, 64 }, /* 3270_Copy */ + { 0x0000fd0f, 74 }, /* 3270_CursorBlink */ + { 0x0000fd1c, 91 }, /* 3270_CursorSelect */ + { 0x0000fd1a, 109 }, /* 3270_DeleteWord */ + { 0x0000fd01, 125 }, /* 3270_Duplicate */ + { 0x0000fd1e, 140 }, /* 3270_Enter */ + { 0x0000fd06, 151 }, /* 3270_EraseEOF */ + { 0x0000fd07, 165 }, /* 3270_EraseInput */ + { 0x0000fd1b, 181 }, /* 3270_ExSelect */ + { 0x0000fd02, 195 }, /* 3270_FieldMark */ + { 0x0000fd13, 210 }, /* 3270_Ident */ + { 0x0000fd12, 221 }, /* 3270_Jump */ + { 0x0000fd11, 231 }, /* 3270_KeyClick */ + { 0x0000fd04, 245 }, /* 3270_Left2 */ + { 0x0000fd0a, 256 }, /* 3270_PA1 */ + { 0x0000fd0b, 265 }, /* 3270_PA2 */ + { 0x0000fd0c, 274 }, /* 3270_PA3 */ + { 0x0000fd16, 283 }, /* 3270_Play */ + { 0x0000fd1d, 293 }, /* 3270_PrintScreen */ + { 0x0000fd09, 310 }, /* 3270_Quit */ + { 0x0000fd18, 320 }, /* 3270_Record */ + { 0x0000fd08, 332 }, /* 3270_Reset */ + { 0x0000fd03, 343 }, /* 3270_Right2 */ + { 0x0000fd14, 355 }, /* 3270_Rule */ + { 0x0000fd17, 365 }, /* 3270_Setup */ + { 0x0000fd0d, 376 }, /* 3270_Test */ + { 0x00000034, 386 }, /* 4 */ + { 0x00000035, 388 }, /* 5 */ + { 0x00000036, 390 }, /* 6 */ + { 0x00000037, 392 }, /* 7 */ + { 0x00000038, 394 }, /* 8 */ + { 0x00000039, 396 }, /* 9 */ + { 0x00000041, 398 }, /* A */ + { 0x00000061, 400 }, /* a */ + { 0x000000c1, 402 }, /* Aacute */ + { 0x000000e1, 409 }, /* aacute */ + { 0x01001ea0, 416 }, /* Abelowdot */ + { 0x01001ea1, 426 }, /* abelowdot */ + { 0x000001ff, 436 }, /* abovedot */ + { 0x000001c3, 445 }, /* Abreve */ + { 0x000001e3, 452 }, /* abreve */ + { 0x01001eae, 459 }, /* Abreveacute */ + { 0x01001eaf, 471 }, /* abreveacute */ + { 0x01001eb6, 483 }, /* Abrevebelowdot */ + { 0x01001eb7, 498 }, /* abrevebelowdot */ + { 0x01001eb0, 513 }, /* Abrevegrave */ + { 0x01001eb1, 525 }, /* abrevegrave */ + { 0x01001eb2, 537 }, /* Abrevehook */ + { 0x01001eb3, 548 }, /* abrevehook */ + { 0x01001eb4, 559 }, /* Abrevetilde */ + { 0x01001eb5, 571 }, /* abrevetilde */ + { 0x0000fe70, 583 }, /* AccessX_Enable */ + { 0x0000fe71, 598 }, /* AccessX_Feedback_Enable */ + { 0x000000c2, 622 }, /* Acircumflex */ + { 0x000000e2, 634 }, /* acircumflex */ + { 0x01001ea4, 646 }, /* Acircumflexacute */ + { 0x01001ea5, 663 }, /* acircumflexacute */ + { 0x01001eac, 680 }, /* Acircumflexbelowdot */ + { 0x01001ead, 700 }, /* acircumflexbelowdot */ + { 0x01001ea6, 720 }, /* Acircumflexgrave */ + { 0x01001ea7, 737 }, /* acircumflexgrave */ + { 0x01001ea8, 754 }, /* Acircumflexhook */ + { 0x01001ea9, 770 }, /* acircumflexhook */ + { 0x01001eaa, 786 }, /* Acircumflextilde */ + { 0x01001eab, 803 }, /* acircumflextilde */ + { 0x000000b4, 820 }, /* acute */ + { 0x000000c4, 826 }, /* Adiaeresis */ + { 0x000000e4, 837 }, /* adiaeresis */ + { 0x000000c6, 848 }, /* AE */ + { 0x000000e6, 851 }, /* ae */ + { 0x000000c0, 854 }, /* Agrave */ + { 0x000000e0, 861 }, /* agrave */ + { 0x01001ea2, 868 }, /* Ahook */ + { 0x01001ea3, 874 }, /* ahook */ + { 0x0000ffe9, 880 }, /* Alt_L */ + { 0x0000ffea, 886 }, /* Alt_R */ + { 0x000003c0, 892 }, /* Amacron */ + { 0x000003e0, 900 }, /* amacron */ + { 0x00000026, 908 }, /* ampersand */ + { 0x000001a1, 918 }, /* Aogonek */ + { 0x000001b1, 926 }, /* aogonek */ + { 0x00000027, 934 }, /* apostrophe */ + { 0x01002248, 945 }, /* approxeq */ + { 0x000008c8, 954 }, /* approximate */ + { 0x01000660, 966 }, /* Arabic_0 */ + { 0x01000661, 975 }, /* Arabic_1 */ + { 0x01000662, 984 }, /* Arabic_2 */ + { 0x01000663, 993 }, /* Arabic_3 */ + { 0x01000664, 1002 }, /* Arabic_4 */ + { 0x01000665, 1011 }, /* Arabic_5 */ + { 0x01000666, 1020 }, /* Arabic_6 */ + { 0x01000667, 1029 }, /* Arabic_7 */ + { 0x01000668, 1038 }, /* Arabic_8 */ + { 0x01000669, 1047 }, /* Arabic_9 */ + { 0x000005d9, 1056 }, /* Arabic_ain */ + { 0x000005c7, 1067 }, /* Arabic_alef */ + { 0x000005e9, 1079 }, /* Arabic_alefmaksura */ + { 0x000005c8, 1098 }, /* Arabic_beh */ + { 0x000005ac, 1109 }, /* Arabic_comma */ + { 0x000005d6, 1122 }, /* Arabic_dad */ + { 0x000005cf, 1133 }, /* Arabic_dal */ + { 0x000005ef, 1144 }, /* Arabic_damma */ + { 0x000005ec, 1157 }, /* Arabic_dammatan */ + { 0x01000688, 1173 }, /* Arabic_ddal */ + { 0x010006cc, 1185 }, /* Arabic_farsi_yeh */ + { 0x000005ee, 1202 }, /* Arabic_fatha */ + { 0x000005eb, 1215 }, /* Arabic_fathatan */ + { 0x000005e1, 1231 }, /* Arabic_feh */ + { 0x010006d4, 1242 }, /* Arabic_fullstop */ + { 0x010006af, 1258 }, /* Arabic_gaf */ + { 0x000005da, 1269 }, /* Arabic_ghain */ + { 0x000005e7, 1282 }, /* Arabic_ha */ + { 0x000005cd, 1292 }, /* Arabic_hah */ + { 0x000005c1, 1303 }, /* Arabic_hamza */ + { 0x01000654, 1316 }, /* Arabic_hamza_above */ + { 0x01000655, 1335 }, /* Arabic_hamza_below */ + { 0x000005c3, 1354 }, /* Arabic_hamzaonalef */ + { 0x000005c4, 1373 }, /* Arabic_hamzaonwaw */ + { 0x000005c6, 1391 }, /* Arabic_hamzaonyeh */ + { 0x000005c5, 1409 }, /* Arabic_hamzaunderalef */ + { 0x000005e7, 1431 }, /* Arabic_heh */ + { 0x010006be, 1442 }, /* Arabic_heh_doachashmee */ + { 0x010006c1, 1465 }, /* Arabic_heh_goal */ + { 0x000005cc, 1481 }, /* Arabic_jeem */ + { 0x01000698, 1493 }, /* Arabic_jeh */ + { 0x000005e3, 1504 }, /* Arabic_kaf */ + { 0x000005f0, 1515 }, /* Arabic_kasra */ + { 0x000005ed, 1528 }, /* Arabic_kasratan */ + { 0x010006a9, 1544 }, /* Arabic_keheh */ + { 0x000005ce, 1557 }, /* Arabic_khah */ + { 0x000005e4, 1569 }, /* Arabic_lam */ + { 0x01000653, 1580 }, /* Arabic_madda_above */ + { 0x000005c2, 1599 }, /* Arabic_maddaonalef */ + { 0x000005e5, 1618 }, /* Arabic_meem */ + { 0x000005e6, 1630 }, /* Arabic_noon */ + { 0x010006ba, 1642 }, /* Arabic_noon_ghunna */ + { 0x0100067e, 1661 }, /* Arabic_peh */ + { 0x0100066a, 1672 }, /* Arabic_percent */ + { 0x000005e2, 1687 }, /* Arabic_qaf */ + { 0x000005bf, 1698 }, /* Arabic_question_mark */ + { 0x000005d1, 1719 }, /* Arabic_ra */ + { 0x01000691, 1729 }, /* Arabic_rreh */ + { 0x000005d5, 1741 }, /* Arabic_sad */ + { 0x000005d3, 1752 }, /* Arabic_seen */ + { 0x000005bb, 1764 }, /* Arabic_semicolon */ + { 0x000005f1, 1781 }, /* Arabic_shadda */ + { 0x000005d4, 1795 }, /* Arabic_sheen */ + { 0x000005f2, 1808 }, /* Arabic_sukun */ + { 0x01000670, 1821 }, /* Arabic_superscript_alef */ + { 0x0000ff7e, 1845 }, /* Arabic_switch */ + { 0x000005d7, 1859 }, /* Arabic_tah */ + { 0x000005e0, 1870 }, /* Arabic_tatweel */ + { 0x01000686, 1885 }, /* Arabic_tcheh */ + { 0x000005ca, 1898 }, /* Arabic_teh */ + { 0x000005c9, 1909 }, /* Arabic_tehmarbuta */ + { 0x000005d0, 1927 }, /* Arabic_thal */ + { 0x000005cb, 1939 }, /* Arabic_theh */ + { 0x01000679, 1951 }, /* Arabic_tteh */ + { 0x010006a4, 1963 }, /* Arabic_veh */ + { 0x000005e8, 1974 }, /* Arabic_waw */ + { 0x000005ea, 1985 }, /* Arabic_yeh */ + { 0x010006d2, 1996 }, /* Arabic_yeh_baree */ + { 0x000005d8, 2013 }, /* Arabic_zah */ + { 0x000005d2, 2024 }, /* Arabic_zain */ + { 0x000000c5, 2036 }, /* Aring */ + { 0x000000e5, 2042 }, /* aring */ + { 0x0100055b, 2048 }, /* Armenian_accent */ + { 0x0100055c, 2064 }, /* Armenian_amanak */ + { 0x0100055a, 2080 }, /* Armenian_apostrophe */ + { 0x01000538, 2100 }, /* Armenian_AT */ + { 0x01000568, 2112 }, /* Armenian_at */ + { 0x01000531, 2124 }, /* Armenian_AYB */ + { 0x01000561, 2137 }, /* Armenian_ayb */ + { 0x01000532, 2150 }, /* Armenian_BEN */ + { 0x01000562, 2163 }, /* Armenian_ben */ + { 0x0100055d, 2176 }, /* Armenian_but */ + { 0x01000549, 2189 }, /* Armenian_CHA */ + { 0x01000579, 2202 }, /* Armenian_cha */ + { 0x01000534, 2215 }, /* Armenian_DA */ + { 0x01000564, 2227 }, /* Armenian_da */ + { 0x01000541, 2239 }, /* Armenian_DZA */ + { 0x01000571, 2252 }, /* Armenian_dza */ + { 0x01000537, 2265 }, /* Armenian_E */ + { 0x01000567, 2276 }, /* Armenian_e */ + { 0x0100055c, 2287 }, /* Armenian_exclam */ + { 0x01000556, 2303 }, /* Armenian_FE */ + { 0x01000586, 2315 }, /* Armenian_fe */ + { 0x01000589, 2327 }, /* Armenian_full_stop */ + { 0x01000542, 2346 }, /* Armenian_GHAT */ + { 0x01000572, 2360 }, /* Armenian_ghat */ + { 0x01000533, 2374 }, /* Armenian_GIM */ + { 0x01000563, 2387 }, /* Armenian_gim */ + { 0x01000545, 2400 }, /* Armenian_HI */ + { 0x01000575, 2412 }, /* Armenian_hi */ + { 0x01000540, 2424 }, /* Armenian_HO */ + { 0x01000570, 2436 }, /* Armenian_ho */ + { 0x0100058a, 2448 }, /* Armenian_hyphen */ + { 0x0100053b, 2464 }, /* Armenian_INI */ + { 0x0100056b, 2477 }, /* Armenian_ini */ + { 0x0100054b, 2490 }, /* Armenian_JE */ + { 0x0100057b, 2502 }, /* Armenian_je */ + { 0x01000554, 2514 }, /* Armenian_KE */ + { 0x01000584, 2526 }, /* Armenian_ke */ + { 0x0100053f, 2538 }, /* Armenian_KEN */ + { 0x0100056f, 2551 }, /* Armenian_ken */ + { 0x0100053d, 2564 }, /* Armenian_KHE */ + { 0x0100056d, 2577 }, /* Armenian_khe */ + { 0x01000587, 2590 }, /* Armenian_ligature_ew */ + { 0x0100053c, 2611 }, /* Armenian_LYUN */ + { 0x0100056c, 2625 }, /* Armenian_lyun */ + { 0x01000544, 2639 }, /* Armenian_MEN */ + { 0x01000574, 2652 }, /* Armenian_men */ + { 0x01000546, 2665 }, /* Armenian_NU */ + { 0x01000576, 2677 }, /* Armenian_nu */ + { 0x01000555, 2689 }, /* Armenian_O */ + { 0x01000585, 2700 }, /* Armenian_o */ + { 0x0100055e, 2711 }, /* Armenian_paruyk */ + { 0x0100054a, 2727 }, /* Armenian_PE */ + { 0x0100057a, 2739 }, /* Armenian_pe */ + { 0x01000553, 2751 }, /* Armenian_PYUR */ + { 0x01000583, 2765 }, /* Armenian_pyur */ + { 0x0100055e, 2779 }, /* Armenian_question */ + { 0x0100054c, 2797 }, /* Armenian_RA */ + { 0x0100057c, 2809 }, /* Armenian_ra */ + { 0x01000550, 2821 }, /* Armenian_RE */ + { 0x01000580, 2833 }, /* Armenian_re */ + { 0x0100054d, 2845 }, /* Armenian_SE */ + { 0x0100057d, 2857 }, /* Armenian_se */ + { 0x0100055d, 2869 }, /* Armenian_separation_mark */ + { 0x01000547, 2894 }, /* Armenian_SHA */ + { 0x01000577, 2907 }, /* Armenian_sha */ + { 0x0100055b, 2920 }, /* Armenian_shesht */ + { 0x01000543, 2936 }, /* Armenian_TCHE */ + { 0x01000573, 2950 }, /* Armenian_tche */ + { 0x01000539, 2964 }, /* Armenian_TO */ + { 0x01000569, 2976 }, /* Armenian_to */ + { 0x0100053e, 2988 }, /* Armenian_TSA */ + { 0x0100056e, 3001 }, /* Armenian_tsa */ + { 0x01000551, 3014 }, /* Armenian_TSO */ + { 0x01000581, 3027 }, /* Armenian_tso */ + { 0x0100054f, 3040 }, /* Armenian_TYUN */ + { 0x0100057f, 3054 }, /* Armenian_tyun */ + { 0x01000589, 3068 }, /* Armenian_verjaket */ + { 0x0100054e, 3086 }, /* Armenian_VEV */ + { 0x0100057e, 3099 }, /* Armenian_vev */ + { 0x01000548, 3112 }, /* Armenian_VO */ + { 0x01000578, 3124 }, /* Armenian_vo */ + { 0x01000552, 3136 }, /* Armenian_VYUN */ + { 0x01000582, 3150 }, /* Armenian_vyun */ + { 0x01000535, 3164 }, /* Armenian_YECH */ + { 0x01000565, 3178 }, /* Armenian_yech */ + { 0x0100058a, 3192 }, /* Armenian_yentamna */ + { 0x01000536, 3210 }, /* Armenian_ZA */ + { 0x01000566, 3222 }, /* Armenian_za */ + { 0x0100053a, 3234 }, /* Armenian_ZHE */ + { 0x0100056a, 3247 }, /* Armenian_zhe */ + { 0x0000005e, 3260 }, /* asciicircum */ + { 0x0000007e, 3272 }, /* asciitilde */ + { 0x0000002a, 3283 }, /* asterisk */ + { 0x00000040, 3292 }, /* at */ + { 0x000000c3, 3295 }, /* Atilde */ + { 0x000000e3, 3302 }, /* atilde */ + { 0x0000fe7a, 3309 }, /* AudibleBell_Enable */ + { 0x00000042, 3328 }, /* B */ + { 0x00000062, 3330 }, /* b */ + { 0x01001e02, 3332 }, /* Babovedot */ + { 0x01001e03, 3342 }, /* babovedot */ + { 0x0000005c, 3352 }, /* backslash */ + { 0x0000ff08, 3362 }, /* BackSpace */ + { 0x1000ff74, 3372 }, /* BackTab */ + { 0x00000af4, 3380 }, /* ballotcross */ + { 0x0000007c, 3392 }, /* bar */ + { 0x01002235, 3396 }, /* because */ + { 0x0000ff58, 3404 }, /* Begin */ + { 0x000009df, 3410 }, /* blank */ + { 0x100000fc, 3416 }, /* block */ + { 0x000008a5, 3422 }, /* botintegral */ + { 0x000008ac, 3434 }, /* botleftparens */ + { 0x000008a8, 3448 }, /* botleftsqbracket */ + { 0x000008b2, 3465 }, /* botleftsummation */ + { 0x000008ae, 3482 }, /* botrightparens */ + { 0x000008aa, 3497 }, /* botrightsqbracket */ + { 0x000008b6, 3515 }, /* botrightsummation */ + { 0x000009f6, 3533 }, /* bott */ + { 0x000008b4, 3538 }, /* botvertsummationconnector */ + { 0x0000fe74, 3564 }, /* BounceKeys_Enable */ + { 0x0000007b, 3582 }, /* braceleft */ + { 0x0000007d, 3592 }, /* braceright */ + { 0x0000005b, 3603 }, /* bracketleft */ + { 0x0000005d, 3615 }, /* bracketright */ + { 0x01002800, 3628 }, /* braille_blank */ + { 0x0000fff1, 3642 }, /* braille_dot_1 */ + { 0x0000fffa, 3656 }, /* braille_dot_10 */ + { 0x0000fff2, 3671 }, /* braille_dot_2 */ + { 0x0000fff3, 3685 }, /* braille_dot_3 */ + { 0x0000fff4, 3699 }, /* braille_dot_4 */ + { 0x0000fff5, 3713 }, /* braille_dot_5 */ + { 0x0000fff6, 3727 }, /* braille_dot_6 */ + { 0x0000fff7, 3741 }, /* braille_dot_7 */ + { 0x0000fff8, 3755 }, /* braille_dot_8 */ + { 0x0000fff9, 3769 }, /* braille_dot_9 */ + { 0x01002801, 3783 }, /* braille_dots_1 */ + { 0x01002803, 3798 }, /* braille_dots_12 */ + { 0x01002807, 3814 }, /* braille_dots_123 */ + { 0x0100280f, 3831 }, /* braille_dots_1234 */ + { 0x0100281f, 3849 }, /* braille_dots_12345 */ + { 0x0100283f, 3868 }, /* braille_dots_123456 */ + { 0x0100287f, 3888 }, /* braille_dots_1234567 */ + { 0x010028ff, 3909 }, /* braille_dots_12345678 */ + { 0x010028bf, 3931 }, /* braille_dots_1234568 */ + { 0x0100285f, 3952 }, /* braille_dots_123457 */ + { 0x010028df, 3972 }, /* braille_dots_1234578 */ + { 0x0100289f, 3993 }, /* braille_dots_123458 */ + { 0x0100282f, 4013 }, /* braille_dots_12346 */ + { 0x0100286f, 4032 }, /* braille_dots_123467 */ + { 0x010028ef, 4052 }, /* braille_dots_1234678 */ + { 0x010028af, 4073 }, /* braille_dots_123468 */ + { 0x0100284f, 4093 }, /* braille_dots_12347 */ + { 0x010028cf, 4112 }, /* braille_dots_123478 */ + { 0x0100288f, 4132 }, /* braille_dots_12348 */ + { 0x01002817, 4151 }, /* braille_dots_1235 */ + { 0x01002837, 4169 }, /* braille_dots_12356 */ + { 0x01002877, 4188 }, /* braille_dots_123567 */ + { 0x010028f7, 4208 }, /* braille_dots_1235678 */ + { 0x010028b7, 4229 }, /* braille_dots_123568 */ + { 0x01002857, 4249 }, /* braille_dots_12357 */ + { 0x010028d7, 4268 }, /* braille_dots_123578 */ + { 0x01002897, 4288 }, /* braille_dots_12358 */ + { 0x01002827, 4307 }, /* braille_dots_1236 */ + { 0x01002867, 4325 }, /* braille_dots_12367 */ + { 0x010028e7, 4344 }, /* braille_dots_123678 */ + { 0x010028a7, 4364 }, /* braille_dots_12368 */ + { 0x01002847, 4383 }, /* braille_dots_1237 */ + { 0x010028c7, 4401 }, /* braille_dots_12378 */ + { 0x01002887, 4420 }, /* braille_dots_1238 */ + { 0x0100280b, 4438 }, /* braille_dots_124 */ + { 0x0100281b, 4455 }, /* braille_dots_1245 */ + { 0x0100283b, 4473 }, /* braille_dots_12456 */ + { 0x0100287b, 4492 }, /* braille_dots_124567 */ + { 0x010028fb, 4512 }, /* braille_dots_1245678 */ + { 0x010028bb, 4533 }, /* braille_dots_124568 */ + { 0x0100285b, 4553 }, /* braille_dots_12457 */ + { 0x010028db, 4572 }, /* braille_dots_124578 */ + { 0x0100289b, 4592 }, /* braille_dots_12458 */ + { 0x0100282b, 4611 }, /* braille_dots_1246 */ + { 0x0100286b, 4629 }, /* braille_dots_12467 */ + { 0x010028eb, 4648 }, /* braille_dots_124678 */ + { 0x010028ab, 4668 }, /* braille_dots_12468 */ + { 0x0100284b, 4687 }, /* braille_dots_1247 */ + { 0x010028cb, 4705 }, /* braille_dots_12478 */ + { 0x0100288b, 4724 }, /* braille_dots_1248 */ + { 0x01002813, 4742 }, /* braille_dots_125 */ + { 0x01002833, 4759 }, /* braille_dots_1256 */ + { 0x01002873, 4777 }, /* braille_dots_12567 */ + { 0x010028f3, 4796 }, /* braille_dots_125678 */ + { 0x010028b3, 4816 }, /* braille_dots_12568 */ + { 0x01002853, 4835 }, /* braille_dots_1257 */ + { 0x010028d3, 4853 }, /* braille_dots_12578 */ + { 0x01002893, 4872 }, /* braille_dots_1258 */ + { 0x01002823, 4890 }, /* braille_dots_126 */ + { 0x01002863, 4907 }, /* braille_dots_1267 */ + { 0x010028e3, 4925 }, /* braille_dots_12678 */ + { 0x010028a3, 4944 }, /* braille_dots_1268 */ + { 0x01002843, 4962 }, /* braille_dots_127 */ + { 0x010028c3, 4979 }, /* braille_dots_1278 */ + { 0x01002883, 4997 }, /* braille_dots_128 */ + { 0x01002805, 5014 }, /* braille_dots_13 */ + { 0x0100280d, 5030 }, /* braille_dots_134 */ + { 0x0100281d, 5047 }, /* braille_dots_1345 */ + { 0x0100283d, 5065 }, /* braille_dots_13456 */ + { 0x0100287d, 5084 }, /* braille_dots_134567 */ + { 0x010028fd, 5104 }, /* braille_dots_1345678 */ + { 0x010028bd, 5125 }, /* braille_dots_134568 */ + { 0x0100285d, 5145 }, /* braille_dots_13457 */ + { 0x010028dd, 5164 }, /* braille_dots_134578 */ + { 0x0100289d, 5184 }, /* braille_dots_13458 */ + { 0x0100282d, 5203 }, /* braille_dots_1346 */ + { 0x0100286d, 5221 }, /* braille_dots_13467 */ + { 0x010028ed, 5240 }, /* braille_dots_134678 */ + { 0x010028ad, 5260 }, /* braille_dots_13468 */ + { 0x0100284d, 5279 }, /* braille_dots_1347 */ + { 0x010028cd, 5297 }, /* braille_dots_13478 */ + { 0x0100288d, 5316 }, /* braille_dots_1348 */ + { 0x01002815, 5334 }, /* braille_dots_135 */ + { 0x01002835, 5351 }, /* braille_dots_1356 */ + { 0x01002875, 5369 }, /* braille_dots_13567 */ + { 0x010028f5, 5388 }, /* braille_dots_135678 */ + { 0x010028b5, 5408 }, /* braille_dots_13568 */ + { 0x01002855, 5427 }, /* braille_dots_1357 */ + { 0x010028d5, 5445 }, /* braille_dots_13578 */ + { 0x01002895, 5464 }, /* braille_dots_1358 */ + { 0x01002825, 5482 }, /* braille_dots_136 */ + { 0x01002865, 5499 }, /* braille_dots_1367 */ + { 0x010028e5, 5517 }, /* braille_dots_13678 */ + { 0x010028a5, 5536 }, /* braille_dots_1368 */ + { 0x01002845, 5554 }, /* braille_dots_137 */ + { 0x010028c5, 5571 }, /* braille_dots_1378 */ + { 0x01002885, 5589 }, /* braille_dots_138 */ + { 0x01002809, 5606 }, /* braille_dots_14 */ + { 0x01002819, 5622 }, /* braille_dots_145 */ + { 0x01002839, 5639 }, /* braille_dots_1456 */ + { 0x01002879, 5657 }, /* braille_dots_14567 */ + { 0x010028f9, 5676 }, /* braille_dots_145678 */ + { 0x010028b9, 5696 }, /* braille_dots_14568 */ + { 0x01002859, 5715 }, /* braille_dots_1457 */ + { 0x010028d9, 5733 }, /* braille_dots_14578 */ + { 0x01002899, 5752 }, /* braille_dots_1458 */ + { 0x01002829, 5770 }, /* braille_dots_146 */ + { 0x01002869, 5787 }, /* braille_dots_1467 */ + { 0x010028e9, 5805 }, /* braille_dots_14678 */ + { 0x010028a9, 5824 }, /* braille_dots_1468 */ + { 0x01002849, 5842 }, /* braille_dots_147 */ + { 0x010028c9, 5859 }, /* braille_dots_1478 */ + { 0x01002889, 5877 }, /* braille_dots_148 */ + { 0x01002811, 5894 }, /* braille_dots_15 */ + { 0x01002831, 5910 }, /* braille_dots_156 */ + { 0x01002871, 5927 }, /* braille_dots_1567 */ + { 0x010028f1, 5945 }, /* braille_dots_15678 */ + { 0x010028b1, 5964 }, /* braille_dots_1568 */ + { 0x01002851, 5982 }, /* braille_dots_157 */ + { 0x010028d1, 5999 }, /* braille_dots_1578 */ + { 0x01002891, 6017 }, /* braille_dots_158 */ + { 0x01002821, 6034 }, /* braille_dots_16 */ + { 0x01002861, 6050 }, /* braille_dots_167 */ + { 0x010028e1, 6067 }, /* braille_dots_1678 */ + { 0x010028a1, 6085 }, /* braille_dots_168 */ + { 0x01002841, 6102 }, /* braille_dots_17 */ + { 0x010028c1, 6118 }, /* braille_dots_178 */ + { 0x01002881, 6135 }, /* braille_dots_18 */ + { 0x01002802, 6151 }, /* braille_dots_2 */ + { 0x01002806, 6166 }, /* braille_dots_23 */ + { 0x0100280e, 6182 }, /* braille_dots_234 */ + { 0x0100281e, 6199 }, /* braille_dots_2345 */ + { 0x0100283e, 6217 }, /* braille_dots_23456 */ + { 0x0100287e, 6236 }, /* braille_dots_234567 */ + { 0x010028fe, 6256 }, /* braille_dots_2345678 */ + { 0x010028be, 6277 }, /* braille_dots_234568 */ + { 0x0100285e, 6297 }, /* braille_dots_23457 */ + { 0x010028de, 6316 }, /* braille_dots_234578 */ + { 0x0100289e, 6336 }, /* braille_dots_23458 */ + { 0x0100282e, 6355 }, /* braille_dots_2346 */ + { 0x0100286e, 6373 }, /* braille_dots_23467 */ + { 0x010028ee, 6392 }, /* braille_dots_234678 */ + { 0x010028ae, 6412 }, /* braille_dots_23468 */ + { 0x0100284e, 6431 }, /* braille_dots_2347 */ + { 0x010028ce, 6449 }, /* braille_dots_23478 */ + { 0x0100288e, 6468 }, /* braille_dots_2348 */ + { 0x01002816, 6486 }, /* braille_dots_235 */ + { 0x01002836, 6503 }, /* braille_dots_2356 */ + { 0x01002876, 6521 }, /* braille_dots_23567 */ + { 0x010028f6, 6540 }, /* braille_dots_235678 */ + { 0x010028b6, 6560 }, /* braille_dots_23568 */ + { 0x01002856, 6579 }, /* braille_dots_2357 */ + { 0x010028d6, 6597 }, /* braille_dots_23578 */ + { 0x01002896, 6616 }, /* braille_dots_2358 */ + { 0x01002826, 6634 }, /* braille_dots_236 */ + { 0x01002866, 6651 }, /* braille_dots_2367 */ + { 0x010028e6, 6669 }, /* braille_dots_23678 */ + { 0x010028a6, 6688 }, /* braille_dots_2368 */ + { 0x01002846, 6706 }, /* braille_dots_237 */ + { 0x010028c6, 6723 }, /* braille_dots_2378 */ + { 0x01002886, 6741 }, /* braille_dots_238 */ + { 0x0100280a, 6758 }, /* braille_dots_24 */ + { 0x0100281a, 6774 }, /* braille_dots_245 */ + { 0x0100283a, 6791 }, /* braille_dots_2456 */ + { 0x0100287a, 6809 }, /* braille_dots_24567 */ + { 0x010028fa, 6828 }, /* braille_dots_245678 */ + { 0x010028ba, 6848 }, /* braille_dots_24568 */ + { 0x0100285a, 6867 }, /* braille_dots_2457 */ + { 0x010028da, 6885 }, /* braille_dots_24578 */ + { 0x0100289a, 6904 }, /* braille_dots_2458 */ + { 0x0100282a, 6922 }, /* braille_dots_246 */ + { 0x0100286a, 6939 }, /* braille_dots_2467 */ + { 0x010028ea, 6957 }, /* braille_dots_24678 */ + { 0x010028aa, 6976 }, /* braille_dots_2468 */ + { 0x0100284a, 6994 }, /* braille_dots_247 */ + { 0x010028ca, 7011 }, /* braille_dots_2478 */ + { 0x0100288a, 7029 }, /* braille_dots_248 */ + { 0x01002812, 7046 }, /* braille_dots_25 */ + { 0x01002832, 7062 }, /* braille_dots_256 */ + { 0x01002872, 7079 }, /* braille_dots_2567 */ + { 0x010028f2, 7097 }, /* braille_dots_25678 */ + { 0x010028b2, 7116 }, /* braille_dots_2568 */ + { 0x01002852, 7134 }, /* braille_dots_257 */ + { 0x010028d2, 7151 }, /* braille_dots_2578 */ + { 0x01002892, 7169 }, /* braille_dots_258 */ + { 0x01002822, 7186 }, /* braille_dots_26 */ + { 0x01002862, 7202 }, /* braille_dots_267 */ + { 0x010028e2, 7219 }, /* braille_dots_2678 */ + { 0x010028a2, 7237 }, /* braille_dots_268 */ + { 0x01002842, 7254 }, /* braille_dots_27 */ + { 0x010028c2, 7270 }, /* braille_dots_278 */ + { 0x01002882, 7287 }, /* braille_dots_28 */ + { 0x01002804, 7303 }, /* braille_dots_3 */ + { 0x0100280c, 7318 }, /* braille_dots_34 */ + { 0x0100281c, 7334 }, /* braille_dots_345 */ + { 0x0100283c, 7351 }, /* braille_dots_3456 */ + { 0x0100287c, 7369 }, /* braille_dots_34567 */ + { 0x010028fc, 7388 }, /* braille_dots_345678 */ + { 0x010028bc, 7408 }, /* braille_dots_34568 */ + { 0x0100285c, 7427 }, /* braille_dots_3457 */ + { 0x010028dc, 7445 }, /* braille_dots_34578 */ + { 0x0100289c, 7464 }, /* braille_dots_3458 */ + { 0x0100282c, 7482 }, /* braille_dots_346 */ + { 0x0100286c, 7499 }, /* braille_dots_3467 */ + { 0x010028ec, 7517 }, /* braille_dots_34678 */ + { 0x010028ac, 7536 }, /* braille_dots_3468 */ + { 0x0100284c, 7554 }, /* braille_dots_347 */ + { 0x010028cc, 7571 }, /* braille_dots_3478 */ + { 0x0100288c, 7589 }, /* braille_dots_348 */ + { 0x01002814, 7606 }, /* braille_dots_35 */ + { 0x01002834, 7622 }, /* braille_dots_356 */ + { 0x01002874, 7639 }, /* braille_dots_3567 */ + { 0x010028f4, 7657 }, /* braille_dots_35678 */ + { 0x010028b4, 7676 }, /* braille_dots_3568 */ + { 0x01002854, 7694 }, /* braille_dots_357 */ + { 0x010028d4, 7711 }, /* braille_dots_3578 */ + { 0x01002894, 7729 }, /* braille_dots_358 */ + { 0x01002824, 7746 }, /* braille_dots_36 */ + { 0x01002864, 7762 }, /* braille_dots_367 */ + { 0x010028e4, 7779 }, /* braille_dots_3678 */ + { 0x010028a4, 7797 }, /* braille_dots_368 */ + { 0x01002844, 7814 }, /* braille_dots_37 */ + { 0x010028c4, 7830 }, /* braille_dots_378 */ + { 0x01002884, 7847 }, /* braille_dots_38 */ + { 0x01002808, 7863 }, /* braille_dots_4 */ + { 0x01002818, 7878 }, /* braille_dots_45 */ + { 0x01002838, 7894 }, /* braille_dots_456 */ + { 0x01002878, 7911 }, /* braille_dots_4567 */ + { 0x010028f8, 7929 }, /* braille_dots_45678 */ + { 0x010028b8, 7948 }, /* braille_dots_4568 */ + { 0x01002858, 7966 }, /* braille_dots_457 */ + { 0x010028d8, 7983 }, /* braille_dots_4578 */ + { 0x01002898, 8001 }, /* braille_dots_458 */ + { 0x01002828, 8018 }, /* braille_dots_46 */ + { 0x01002868, 8034 }, /* braille_dots_467 */ + { 0x010028e8, 8051 }, /* braille_dots_4678 */ + { 0x010028a8, 8069 }, /* braille_dots_468 */ + { 0x01002848, 8086 }, /* braille_dots_47 */ + { 0x010028c8, 8102 }, /* braille_dots_478 */ + { 0x01002888, 8119 }, /* braille_dots_48 */ + { 0x01002810, 8135 }, /* braille_dots_5 */ + { 0x01002830, 8150 }, /* braille_dots_56 */ + { 0x01002870, 8166 }, /* braille_dots_567 */ + { 0x010028f0, 8183 }, /* braille_dots_5678 */ + { 0x010028b0, 8201 }, /* braille_dots_568 */ + { 0x01002850, 8218 }, /* braille_dots_57 */ + { 0x010028d0, 8234 }, /* braille_dots_578 */ + { 0x01002890, 8251 }, /* braille_dots_58 */ + { 0x01002820, 8267 }, /* braille_dots_6 */ + { 0x01002860, 8282 }, /* braille_dots_67 */ + { 0x010028e0, 8298 }, /* braille_dots_678 */ + { 0x010028a0, 8315 }, /* braille_dots_68 */ + { 0x01002840, 8331 }, /* braille_dots_7 */ + { 0x010028c0, 8346 }, /* braille_dots_78 */ + { 0x01002880, 8362 }, /* braille_dots_8 */ + { 0x0000ff6b, 8377 }, /* Break */ + { 0x000001a2, 8383 }, /* breve */ + { 0x000000a6, 8389 }, /* brokenbar */ + { 0x000006ae, 8399 }, /* Byelorussian_shortu */ + { 0x000006be, 8419 }, /* Byelorussian_SHORTU */ + { 0x00000043, 8439 }, /* C */ + { 0x00000063, 8441 }, /* c */ + { 0x0000fea3, 8443 }, /* c_h */ + { 0x0000fea4, 8447 }, /* C_h */ + { 0x0000fea5, 8451 }, /* C_H */ + { 0x000002c5, 8455 }, /* Cabovedot */ + { 0x000002e5, 8465 }, /* cabovedot */ + { 0x000001c6, 8475 }, /* Cacute */ + { 0x000001e6, 8482 }, /* cacute */ + { 0x0000ff69, 8489 }, /* Cancel */ + { 0x0000ffe5, 8496 }, /* Caps_Lock */ + { 0x00000ab8, 8506 }, /* careof */ + { 0x00000afc, 8513 }, /* caret */ + { 0x000001b7, 8519 }, /* caron */ + { 0x000001c8, 8525 }, /* Ccaron */ + { 0x000001e8, 8532 }, /* ccaron */ + { 0x000000c7, 8539 }, /* Ccedilla */ + { 0x000000e7, 8548 }, /* ccedilla */ + { 0x000002c6, 8557 }, /* Ccircumflex */ + { 0x000002e6, 8569 }, /* ccircumflex */ + { 0x000000b8, 8581 }, /* cedilla */ + { 0x000000a2, 8589 }, /* cent */ + { 0x0000fea0, 8594 }, /* ch */ + { 0x0000fea1, 8597 }, /* Ch */ + { 0x0000fea2, 8600 }, /* CH */ + { 0x000009e1, 8603 }, /* checkerboard */ + { 0x00000af3, 8616 }, /* checkmark */ + { 0x00000bcf, 8626 }, /* circle */ + { 0x0000ff0b, 8633 }, /* Clear */ + { 0x1000ff6f, 8639 }, /* ClearLine */ + { 0x00000aec, 8649 }, /* club */ + { 0x0000ff37, 8654 }, /* Codeinput */ + { 0x0000003a, 8664 }, /* colon */ + { 0x010020a1, 8670 }, /* ColonSign */ + { 0x0000002c, 8680 }, /* comma */ + { 0x0100220b, 8686 }, /* containsas */ + { 0x0000ffe3, 8697 }, /* Control_L */ + { 0x0000ffe4, 8707 }, /* Control_R */ + { 0x000000a9, 8717 }, /* copyright */ + { 0x000009e4, 8727 }, /* cr */ + { 0x000009ee, 8730 }, /* crossinglines */ + { 0x010020a2, 8744 }, /* CruzeiroSign */ + { 0x0100221b, 8757 }, /* cuberoot */ + { 0x000000a4, 8766 }, /* currency */ + { 0x00000aff, 8775 }, /* cursor */ + { 0x000006c1, 8782 }, /* Cyrillic_a */ + { 0x000006e1, 8793 }, /* Cyrillic_A */ + { 0x000006c2, 8804 }, /* Cyrillic_be */ + { 0x000006e2, 8816 }, /* Cyrillic_BE */ + { 0x000006de, 8828 }, /* Cyrillic_che */ + { 0x000006fe, 8841 }, /* Cyrillic_CHE */ + { 0x010004b6, 8854 }, /* Cyrillic_CHE_descender */ + { 0x010004b7, 8877 }, /* Cyrillic_che_descender */ + { 0x010004b8, 8900 }, /* Cyrillic_CHE_vertstroke */ + { 0x010004b9, 8924 }, /* Cyrillic_che_vertstroke */ + { 0x000006c4, 8948 }, /* Cyrillic_de */ + { 0x000006e4, 8960 }, /* Cyrillic_DE */ + { 0x000006af, 8972 }, /* Cyrillic_dzhe */ + { 0x000006bf, 8986 }, /* Cyrillic_DZHE */ + { 0x000006dc, 9000 }, /* Cyrillic_e */ + { 0x000006fc, 9011 }, /* Cyrillic_E */ + { 0x000006c6, 9022 }, /* Cyrillic_ef */ + { 0x000006e6, 9034 }, /* Cyrillic_EF */ + { 0x000006cc, 9046 }, /* Cyrillic_el */ + { 0x000006ec, 9058 }, /* Cyrillic_EL */ + { 0x000006cd, 9070 }, /* Cyrillic_em */ + { 0x000006ed, 9082 }, /* Cyrillic_EM */ + { 0x000006ce, 9094 }, /* Cyrillic_en */ + { 0x000006ee, 9106 }, /* Cyrillic_EN */ + { 0x010004a2, 9118 }, /* Cyrillic_EN_descender */ + { 0x010004a3, 9140 }, /* Cyrillic_en_descender */ + { 0x000006d2, 9162 }, /* Cyrillic_er */ + { 0x000006f2, 9174 }, /* Cyrillic_ER */ + { 0x000006d3, 9186 }, /* Cyrillic_es */ + { 0x000006f3, 9198 }, /* Cyrillic_ES */ + { 0x000006c7, 9210 }, /* Cyrillic_ghe */ + { 0x000006e7, 9223 }, /* Cyrillic_GHE */ + { 0x01000492, 9236 }, /* Cyrillic_GHE_bar */ + { 0x01000493, 9253 }, /* Cyrillic_ghe_bar */ + { 0x000006c8, 9270 }, /* Cyrillic_ha */ + { 0x000006e8, 9282 }, /* Cyrillic_HA */ + { 0x010004b2, 9294 }, /* Cyrillic_HA_descender */ + { 0x010004b3, 9316 }, /* Cyrillic_ha_descender */ + { 0x000006df, 9338 }, /* Cyrillic_hardsign */ + { 0x000006ff, 9356 }, /* Cyrillic_HARDSIGN */ + { 0x000006c9, 9374 }, /* Cyrillic_i */ + { 0x000006e9, 9385 }, /* Cyrillic_I */ + { 0x010004e2, 9396 }, /* Cyrillic_I_macron */ + { 0x010004e3, 9414 }, /* Cyrillic_i_macron */ + { 0x000006c5, 9432 }, /* Cyrillic_ie */ + { 0x000006e5, 9444 }, /* Cyrillic_IE */ + { 0x000006a3, 9456 }, /* Cyrillic_io */ + { 0x000006b3, 9468 }, /* Cyrillic_IO */ + { 0x000006a8, 9480 }, /* Cyrillic_je */ + { 0x000006b8, 9492 }, /* Cyrillic_JE */ + { 0x000006cb, 9504 }, /* Cyrillic_ka */ + { 0x000006eb, 9516 }, /* Cyrillic_KA */ + { 0x0100049a, 9528 }, /* Cyrillic_KA_descender */ + { 0x0100049b, 9550 }, /* Cyrillic_ka_descender */ + { 0x0100049c, 9572 }, /* Cyrillic_KA_vertstroke */ + { 0x0100049d, 9595 }, /* Cyrillic_ka_vertstroke */ + { 0x000006a9, 9618 }, /* Cyrillic_lje */ + { 0x000006b9, 9631 }, /* Cyrillic_LJE */ + { 0x000006aa, 9644 }, /* Cyrillic_nje */ + { 0x000006ba, 9657 }, /* Cyrillic_NJE */ + { 0x000006cf, 9670 }, /* Cyrillic_o */ + { 0x000006ef, 9681 }, /* Cyrillic_O */ + { 0x010004e8, 9692 }, /* Cyrillic_O_bar */ + { 0x010004e9, 9707 }, /* Cyrillic_o_bar */ + { 0x000006d0, 9722 }, /* Cyrillic_pe */ + { 0x000006f0, 9734 }, /* Cyrillic_PE */ + { 0x010004d8, 9746 }, /* Cyrillic_SCHWA */ + { 0x010004d9, 9761 }, /* Cyrillic_schwa */ + { 0x000006db, 9776 }, /* Cyrillic_sha */ + { 0x000006fb, 9789 }, /* Cyrillic_SHA */ + { 0x000006dd, 9802 }, /* Cyrillic_shcha */ + { 0x000006fd, 9817 }, /* Cyrillic_SHCHA */ + { 0x010004ba, 9832 }, /* Cyrillic_SHHA */ + { 0x010004bb, 9846 }, /* Cyrillic_shha */ + { 0x000006ca, 9860 }, /* Cyrillic_shorti */ + { 0x000006ea, 9876 }, /* Cyrillic_SHORTI */ + { 0x000006d8, 9892 }, /* Cyrillic_softsign */ + { 0x000006f8, 9910 }, /* Cyrillic_SOFTSIGN */ + { 0x000006d4, 9928 }, /* Cyrillic_te */ + { 0x000006f4, 9940 }, /* Cyrillic_TE */ + { 0x000006c3, 9952 }, /* Cyrillic_tse */ + { 0x000006e3, 9965 }, /* Cyrillic_TSE */ + { 0x000006d5, 9978 }, /* Cyrillic_u */ + { 0x000006f5, 9989 }, /* Cyrillic_U */ + { 0x010004ee, 10000 }, /* Cyrillic_U_macron */ + { 0x010004ef, 10018 }, /* Cyrillic_u_macron */ + { 0x010004ae, 10036 }, /* Cyrillic_U_straight */ + { 0x010004af, 10056 }, /* Cyrillic_u_straight */ + { 0x010004b0, 10076 }, /* Cyrillic_U_straight_bar */ + { 0x010004b1, 10100 }, /* Cyrillic_u_straight_bar */ + { 0x000006d7, 10124 }, /* Cyrillic_ve */ + { 0x000006f7, 10136 }, /* Cyrillic_VE */ + { 0x000006d1, 10148 }, /* Cyrillic_ya */ + { 0x000006f1, 10160 }, /* Cyrillic_YA */ + { 0x000006d9, 10172 }, /* Cyrillic_yeru */ + { 0x000006f9, 10186 }, /* Cyrillic_YERU */ + { 0x000006c0, 10200 }, /* Cyrillic_yu */ + { 0x000006e0, 10212 }, /* Cyrillic_YU */ + { 0x000006da, 10224 }, /* Cyrillic_ze */ + { 0x000006fa, 10236 }, /* Cyrillic_ZE */ + { 0x000006d6, 10248 }, /* Cyrillic_zhe */ + { 0x000006f6, 10261 }, /* Cyrillic_ZHE */ + { 0x01000496, 10274 }, /* Cyrillic_ZHE_descender */ + { 0x01000497, 10297 }, /* Cyrillic_zhe_descender */ + { 0x00000044, 10320 }, /* D */ + { 0x00000064, 10322 }, /* d */ + { 0x01001e0a, 10324 }, /* Dabovedot */ + { 0x01001e0b, 10334 }, /* dabovedot */ + { 0x1000fe27, 10344 }, /* Dacute_accent */ + { 0x00000af1, 10358 }, /* dagger */ + { 0x000001cf, 10365 }, /* Dcaron */ + { 0x000001ef, 10372 }, /* dcaron */ + { 0x1000fe2c, 10379 }, /* Dcedilla_accent */ + { 0x1000fe5e, 10395 }, /* Dcircumflex_accent */ + { 0x1000fe22, 10414 }, /* Ddiaeresis */ + { 0x0000fe80, 10425 }, /* dead_a */ + { 0x0000fe81, 10432 }, /* dead_A */ + { 0x0000fe64, 10439 }, /* dead_abovecomma */ + { 0x0000fe56, 10455 }, /* dead_abovedot */ + { 0x0000fe65, 10469 }, /* dead_abovereversedcomma */ + { 0x0000fe58, 10493 }, /* dead_abovering */ + { 0x0000fe91, 10508 }, /* dead_aboveverticalline */ + { 0x0000fe51, 10531 }, /* dead_acute */ + { 0x0000fe6b, 10542 }, /* dead_belowbreve */ + { 0x0000fe69, 10558 }, /* dead_belowcircumflex */ + { 0x0000fe6e, 10579 }, /* dead_belowcomma */ + { 0x0000fe6c, 10595 }, /* dead_belowdiaeresis */ + { 0x0000fe60, 10615 }, /* dead_belowdot */ + { 0x0000fe68, 10629 }, /* dead_belowmacron */ + { 0x0000fe67, 10646 }, /* dead_belowring */ + { 0x0000fe6a, 10661 }, /* dead_belowtilde */ + { 0x0000fe92, 10677 }, /* dead_belowverticalline */ + { 0x0000fe55, 10700 }, /* dead_breve */ + { 0x0000fe8b, 10711 }, /* dead_capital_schwa */ + { 0x0000fe5a, 10730 }, /* dead_caron */ + { 0x0000fe5b, 10741 }, /* dead_cedilla */ + { 0x0000fe52, 10754 }, /* dead_circumflex */ + { 0x0000fe6f, 10770 }, /* dead_currency */ + { 0x0000fe65, 10784 }, /* dead_dasia */ + { 0x0000fe57, 10795 }, /* dead_diaeresis */ + { 0x0000fe59, 10810 }, /* dead_doubleacute */ + { 0x0000fe66, 10827 }, /* dead_doublegrave */ + { 0x0000fe82, 10844 }, /* dead_e */ + { 0x0000fe83, 10851 }, /* dead_E */ + { 0x0000fe50, 10858 }, /* dead_grave */ + { 0x0000fe8c, 10869 }, /* dead_greek */ + { 0x0000fe61, 10880 }, /* dead_hook */ + { 0x0000fe62, 10890 }, /* dead_horn */ + { 0x0000fe84, 10900 }, /* dead_i */ + { 0x0000fe85, 10907 }, /* dead_I */ + { 0x0000fe6d, 10914 }, /* dead_invertedbreve */ + { 0x0000fe5d, 10933 }, /* dead_iota */ + { 0x0000fe93, 10943 }, /* dead_longsolidusoverlay */ + { 0x0000fe90, 10967 }, /* dead_lowline */ + { 0x0000fe54, 10980 }, /* dead_macron */ + { 0x0000fe86, 10992 }, /* dead_o */ + { 0x0000fe87, 10999 }, /* dead_O */ + { 0x0000fe5c, 11006 }, /* dead_ogonek */ + { 0x0000fe53, 11018 }, /* dead_perispomeni */ + { 0x0000fe64, 11035 }, /* dead_psili */ + { 0x0000fe5f, 11046 }, /* dead_semivoiced_sound */ + { 0x0000fe8a, 11068 }, /* dead_small_schwa */ + { 0x0000fe63, 11085 }, /* dead_stroke */ + { 0x0000fe53, 11097 }, /* dead_tilde */ + { 0x0000fe88, 11108 }, /* dead_u */ + { 0x0000fe89, 11115 }, /* dead_U */ + { 0x0000fe5e, 11122 }, /* dead_voiced_sound */ + { 0x00000abd, 11140 }, /* decimalpoint */ + { 0x000000b0, 11153 }, /* degree */ + { 0x0000ffff, 11160 }, /* Delete */ + { 0x1000ff73, 11167 }, /* DeleteChar */ + { 0x1000ff71, 11178 }, /* DeleteLine */ + { 0x1000fe60, 11189 }, /* Dgrave_accent */ + { 0x000000a8, 11203 }, /* diaeresis */ + { 0x00000aed, 11213 }, /* diamond */ + { 0x00000aa5, 11221 }, /* digitspace */ + { 0x0100222c, 11232 }, /* dintegral */ + { 0x000000f7, 11242 }, /* division */ + { 0x00000024, 11251 }, /* dollar */ + { 0x010020ab, 11258 }, /* DongSign */ + { 0x00000aaf, 11267 }, /* doubbaselinedot */ + { 0x000001bd, 11283 }, /* doubleacute */ + { 0x00000af2, 11295 }, /* doubledagger */ + { 0x00000afe, 11308 }, /* doublelowquotemark */ + { 0x0000ff54, 11327 }, /* Down */ + { 0x000008fe, 11332 }, /* downarrow */ + { 0x00000ba8, 11342 }, /* downcaret */ + { 0x00000bd6, 11352 }, /* downshoe */ + { 0x00000bc4, 11361 }, /* downstile */ + { 0x00000bc2, 11371 }, /* downtack */ + { 0x1000ff00, 11380 }, /* DRemove */ + { 0x1000feb0, 11388 }, /* Dring_accent */ + { 0x000001d0, 11401 }, /* Dstroke */ + { 0x000001f0, 11409 }, /* dstroke */ + { 0x1000fe7e, 11417 }, /* Dtilde */ + { 0x00000045, 11424 }, /* E */ + { 0x00000065, 11426 }, /* e */ + { 0x000003cc, 11428 }, /* Eabovedot */ + { 0x000003ec, 11438 }, /* eabovedot */ + { 0x000000c9, 11448 }, /* Eacute */ + { 0x000000e9, 11455 }, /* eacute */ + { 0x01001eb8, 11462 }, /* Ebelowdot */ + { 0x01001eb9, 11472 }, /* ebelowdot */ + { 0x000001cc, 11482 }, /* Ecaron */ + { 0x000001ec, 11489 }, /* ecaron */ + { 0x000000ca, 11496 }, /* Ecircumflex */ + { 0x000000ea, 11508 }, /* ecircumflex */ + { 0x01001ebe, 11520 }, /* Ecircumflexacute */ + { 0x01001ebf, 11537 }, /* ecircumflexacute */ + { 0x01001ec6, 11554 }, /* Ecircumflexbelowdot */ + { 0x01001ec7, 11574 }, /* ecircumflexbelowdot */ + { 0x01001ec0, 11594 }, /* Ecircumflexgrave */ + { 0x01001ec1, 11611 }, /* ecircumflexgrave */ + { 0x01001ec2, 11628 }, /* Ecircumflexhook */ + { 0x01001ec3, 11644 }, /* ecircumflexhook */ + { 0x01001ec4, 11660 }, /* Ecircumflextilde */ + { 0x01001ec5, 11677 }, /* ecircumflextilde */ + { 0x010020a0, 11694 }, /* EcuSign */ + { 0x000000cb, 11702 }, /* Ediaeresis */ + { 0x000000eb, 11713 }, /* ediaeresis */ + { 0x000000c8, 11724 }, /* Egrave */ + { 0x000000e8, 11731 }, /* egrave */ + { 0x01001eba, 11738 }, /* Ehook */ + { 0x01001ebb, 11744 }, /* ehook */ + { 0x01002088, 11750 }, /* eightsubscript */ + { 0x01002078, 11765 }, /* eightsuperior */ + { 0x0000ff2f, 11779 }, /* Eisu_Shift */ + { 0x0000ff30, 11790 }, /* Eisu_toggle */ + { 0x01002208, 11802 }, /* elementof */ + { 0x00000aae, 11812 }, /* ellipsis */ + { 0x00000aa3, 11821 }, /* em3space */ + { 0x00000aa4, 11830 }, /* em4space */ + { 0x000003aa, 11839 }, /* Emacron */ + { 0x000003ba, 11847 }, /* emacron */ + { 0x00000aa9, 11855 }, /* emdash */ + { 0x00000ade, 11862 }, /* emfilledcircle */ + { 0x00000adf, 11877 }, /* emfilledrect */ + { 0x00000ace, 11890 }, /* emopencircle */ + { 0x00000acf, 11903 }, /* emopenrectangle */ + { 0x01002205, 11919 }, /* emptyset */ + { 0x00000aa1, 11928 }, /* emspace */ + { 0x0000ff57, 11936 }, /* End */ + { 0x00000aaa, 11940 }, /* endash */ + { 0x00000ae6, 11947 }, /* enfilledcircbullet */ + { 0x00000ae7, 11966 }, /* enfilledsqbullet */ + { 0x000003bd, 11983 }, /* ENG */ + { 0x000003bf, 11987 }, /* eng */ + { 0x00000ae0, 11991 }, /* enopencircbullet */ + { 0x00000ae1, 12008 }, /* enopensquarebullet */ + { 0x00000aa2, 12027 }, /* enspace */ + { 0x000001ca, 12035 }, /* Eogonek */ + { 0x000001ea, 12043 }, /* eogonek */ + { 0x0000003d, 12051 }, /* equal */ + { 0x0000ff1b, 12057 }, /* Escape */ + { 0x000000d0, 12064 }, /* ETH */ + { 0x000000d0, 12068 }, /* Eth */ + { 0x000000f0, 12072 }, /* eth */ + { 0x01001ebc, 12076 }, /* Etilde */ + { 0x01001ebd, 12083 }, /* etilde */ + { 0x000020ac, 12090 }, /* EuroSign */ + { 0x00000021, 12099 }, /* exclam */ + { 0x000000a1, 12106 }, /* exclamdown */ + { 0x0000ff62, 12117 }, /* Execute */ + { 0x1000ff76, 12125 }, /* Ext16bit_L */ + { 0x1000ff77, 12136 }, /* Ext16bit_R */ + { 0x010001b7, 12147 }, /* EZH */ + { 0x01000292, 12151 }, /* ezh */ + { 0x00000046, 12155 }, /* F */ + { 0x00000066, 12157 }, /* f */ + { 0x0000ffbe, 12159 }, /* F1 */ + { 0x0000ffc7, 12162 }, /* F10 */ + { 0x0000ffc8, 12166 }, /* F11 */ + { 0x0000ffc9, 12170 }, /* F12 */ + { 0x0000ffca, 12174 }, /* F13 */ + { 0x0000ffcb, 12178 }, /* F14 */ + { 0x0000ffcc, 12182 }, /* F15 */ + { 0x0000ffcd, 12186 }, /* F16 */ + { 0x0000ffce, 12190 }, /* F17 */ + { 0x0000ffcf, 12194 }, /* F18 */ + { 0x0000ffd0, 12198 }, /* F19 */ + { 0x0000ffbf, 12202 }, /* F2 */ + { 0x0000ffd1, 12205 }, /* F20 */ + { 0x0000ffd2, 12209 }, /* F21 */ + { 0x0000ffd3, 12213 }, /* F22 */ + { 0x0000ffd4, 12217 }, /* F23 */ + { 0x0000ffd5, 12221 }, /* F24 */ + { 0x0000ffd6, 12225 }, /* F25 */ + { 0x0000ffd7, 12229 }, /* F26 */ + { 0x0000ffd8, 12233 }, /* F27 */ + { 0x0000ffd9, 12237 }, /* F28 */ + { 0x0000ffda, 12241 }, /* F29 */ + { 0x0000ffc0, 12245 }, /* F3 */ + { 0x0000ffdb, 12248 }, /* F30 */ + { 0x0000ffdc, 12252 }, /* F31 */ + { 0x0000ffdd, 12256 }, /* F32 */ + { 0x0000ffde, 12260 }, /* F33 */ + { 0x0000ffdf, 12264 }, /* F34 */ + { 0x0000ffe0, 12268 }, /* F35 */ + { 0x0000ffc1, 12272 }, /* F4 */ + { 0x0000ffc2, 12275 }, /* F5 */ + { 0x0000ffc3, 12278 }, /* F6 */ + { 0x0000ffc4, 12281 }, /* F7 */ + { 0x0000ffc5, 12284 }, /* F8 */ + { 0x0000ffc6, 12287 }, /* F9 */ + { 0x01001e1e, 12290 }, /* Fabovedot */ + { 0x01001e1f, 12300 }, /* fabovedot */ + { 0x010006f0, 12310 }, /* Farsi_0 */ + { 0x010006f1, 12318 }, /* Farsi_1 */ + { 0x010006f2, 12326 }, /* Farsi_2 */ + { 0x010006f3, 12334 }, /* Farsi_3 */ + { 0x010006f4, 12342 }, /* Farsi_4 */ + { 0x010006f5, 12350 }, /* Farsi_5 */ + { 0x010006f6, 12358 }, /* Farsi_6 */ + { 0x010006f7, 12366 }, /* Farsi_7 */ + { 0x010006f8, 12374 }, /* Farsi_8 */ + { 0x010006f9, 12382 }, /* Farsi_9 */ + { 0x010006cc, 12390 }, /* Farsi_yeh */ + { 0x00000af8, 12400 }, /* femalesymbol */ + { 0x000009e3, 12413 }, /* ff */ + { 0x010020a3, 12416 }, /* FFrancSign */ + { 0x00000abb, 12427 }, /* figdash */ + { 0x00000adc, 12435 }, /* filledlefttribullet */ + { 0x00000adb, 12455 }, /* filledrectbullet */ + { 0x00000add, 12472 }, /* filledrighttribullet */ + { 0x00000ae9, 12493 }, /* filledtribulletdown */ + { 0x00000ae8, 12513 }, /* filledtribulletup */ + { 0x0000ff68, 12531 }, /* Find */ + { 0x0000fed0, 12536 }, /* First_Virtual_Screen */ + { 0x00000ac5, 12557 }, /* fiveeighths */ + { 0x00000ab7, 12569 }, /* fivesixths */ + { 0x01002085, 12580 }, /* fivesubscript */ + { 0x01002075, 12594 }, /* fivesuperior */ + { 0x00000ab5, 12607 }, /* fourfifths */ + { 0x01002084, 12618 }, /* foursubscript */ + { 0x01002074, 12632 }, /* foursuperior */ + { 0x0100221c, 12645 }, /* fourthroot */ + { 0x000008f6, 12656 }, /* function */ + { 0x00000047, 12665 }, /* G */ + { 0x00000067, 12667 }, /* g */ + { 0x000002d5, 12669 }, /* Gabovedot */ + { 0x000002f5, 12679 }, /* gabovedot */ + { 0x000002ab, 12689 }, /* Gbreve */ + { 0x000002bb, 12696 }, /* gbreve */ + { 0x010001e6, 12703 }, /* Gcaron */ + { 0x010001e7, 12710 }, /* gcaron */ + { 0x000003ab, 12717 }, /* Gcedilla */ + { 0x000003bb, 12726 }, /* gcedilla */ + { 0x000002d8, 12735 }, /* Gcircumflex */ + { 0x000002f8, 12747 }, /* gcircumflex */ + { 0x010010d0, 12759 }, /* Georgian_an */ + { 0x010010d1, 12771 }, /* Georgian_ban */ + { 0x010010ea, 12784 }, /* Georgian_can */ + { 0x010010ed, 12797 }, /* Georgian_char */ + { 0x010010e9, 12811 }, /* Georgian_chin */ + { 0x010010ec, 12825 }, /* Georgian_cil */ + { 0x010010d3, 12838 }, /* Georgian_don */ + { 0x010010d4, 12851 }, /* Georgian_en */ + { 0x010010f6, 12863 }, /* Georgian_fi */ + { 0x010010d2, 12875 }, /* Georgian_gan */ + { 0x010010e6, 12888 }, /* Georgian_ghan */ + { 0x010010f0, 12902 }, /* Georgian_hae */ + { 0x010010f4, 12915 }, /* Georgian_har */ + { 0x010010f1, 12928 }, /* Georgian_he */ + { 0x010010f2, 12940 }, /* Georgian_hie */ + { 0x010010f5, 12953 }, /* Georgian_hoe */ + { 0x010010d8, 12966 }, /* Georgian_in */ + { 0x010010ef, 12978 }, /* Georgian_jhan */ + { 0x010010eb, 12992 }, /* Georgian_jil */ + { 0x010010d9, 13005 }, /* Georgian_kan */ + { 0x010010e5, 13018 }, /* Georgian_khar */ + { 0x010010da, 13032 }, /* Georgian_las */ + { 0x010010db, 13045 }, /* Georgian_man */ + { 0x010010dc, 13058 }, /* Georgian_nar */ + { 0x010010dd, 13071 }, /* Georgian_on */ + { 0x010010de, 13083 }, /* Georgian_par */ + { 0x010010e4, 13096 }, /* Georgian_phar */ + { 0x010010e7, 13110 }, /* Georgian_qar */ + { 0x010010e0, 13123 }, /* Georgian_rae */ + { 0x010010e1, 13136 }, /* Georgian_san */ + { 0x010010e8, 13149 }, /* Georgian_shin */ + { 0x010010d7, 13163 }, /* Georgian_tan */ + { 0x010010e2, 13176 }, /* Georgian_tar */ + { 0x010010e3, 13189 }, /* Georgian_un */ + { 0x010010d5, 13201 }, /* Georgian_vin */ + { 0x010010f3, 13214 }, /* Georgian_we */ + { 0x010010ee, 13226 }, /* Georgian_xan */ + { 0x010010d6, 13239 }, /* Georgian_zen */ + { 0x010010df, 13252 }, /* Georgian_zhar */ + { 0x00000060, 13266 }, /* grave */ + { 0x0000003e, 13272 }, /* greater */ + { 0x000008be, 13280 }, /* greaterthanequal */ + { 0x000007ae, 13297 }, /* Greek_accentdieresis */ + { 0x000007c1, 13318 }, /* Greek_ALPHA */ + { 0x000007e1, 13330 }, /* Greek_alpha */ + { 0x000007a1, 13342 }, /* Greek_ALPHAaccent */ + { 0x000007b1, 13360 }, /* Greek_alphaaccent */ + { 0x000007c2, 13378 }, /* Greek_BETA */ + { 0x000007e2, 13389 }, /* Greek_beta */ + { 0x000007d7, 13400 }, /* Greek_CHI */ + { 0x000007f7, 13410 }, /* Greek_chi */ + { 0x000007c4, 13420 }, /* Greek_DELTA */ + { 0x000007e4, 13432 }, /* Greek_delta */ + { 0x000007c5, 13444 }, /* Greek_EPSILON */ + { 0x000007e5, 13458 }, /* Greek_epsilon */ + { 0x000007a2, 13472 }, /* Greek_EPSILONaccent */ + { 0x000007b2, 13492 }, /* Greek_epsilonaccent */ + { 0x000007c7, 13512 }, /* Greek_ETA */ + { 0x000007e7, 13522 }, /* Greek_eta */ + { 0x000007a3, 13532 }, /* Greek_ETAaccent */ + { 0x000007b3, 13548 }, /* Greek_etaaccent */ + { 0x000007f3, 13564 }, /* Greek_finalsmallsigma */ + { 0x000007c3, 13586 }, /* Greek_GAMMA */ + { 0x000007e3, 13598 }, /* Greek_gamma */ + { 0x000007af, 13610 }, /* Greek_horizbar */ + { 0x000007c9, 13625 }, /* Greek_IOTA */ + { 0x000007e9, 13636 }, /* Greek_iota */ + { 0x000007a4, 13647 }, /* Greek_IOTAaccent */ + { 0x000007b4, 13664 }, /* Greek_iotaaccent */ + { 0x000007b6, 13681 }, /* Greek_iotaaccentdieresis */ + { 0x000007a5, 13706 }, /* Greek_IOTAdiaeresis */ + { 0x000007a5, 13726 }, /* Greek_IOTAdieresis */ + { 0x000007b5, 13745 }, /* Greek_iotadieresis */ + { 0x000007ca, 13764 }, /* Greek_KAPPA */ + { 0x000007ea, 13776 }, /* Greek_kappa */ + { 0x000007cb, 13788 }, /* Greek_LAMBDA */ + { 0x000007eb, 13801 }, /* Greek_lambda */ + { 0x000007cb, 13814 }, /* Greek_LAMDA */ + { 0x000007eb, 13826 }, /* Greek_lamda */ + { 0x000007cc, 13838 }, /* Greek_MU */ + { 0x000007ec, 13847 }, /* Greek_mu */ + { 0x000007cd, 13856 }, /* Greek_NU */ + { 0x000007ed, 13865 }, /* Greek_nu */ + { 0x000007d9, 13874 }, /* Greek_OMEGA */ + { 0x000007f9, 13886 }, /* Greek_omega */ + { 0x000007ab, 13898 }, /* Greek_OMEGAaccent */ + { 0x000007bb, 13916 }, /* Greek_omegaaccent */ + { 0x000007cf, 13934 }, /* Greek_OMICRON */ + { 0x000007ef, 13948 }, /* Greek_omicron */ + { 0x000007a7, 13962 }, /* Greek_OMICRONaccent */ + { 0x000007b7, 13982 }, /* Greek_omicronaccent */ + { 0x000007d6, 14002 }, /* Greek_PHI */ + { 0x000007f6, 14012 }, /* Greek_phi */ + { 0x000007d0, 14022 }, /* Greek_PI */ + { 0x000007f0, 14031 }, /* Greek_pi */ + { 0x000007d8, 14040 }, /* Greek_PSI */ + { 0x000007f8, 14050 }, /* Greek_psi */ + { 0x000007d1, 14060 }, /* Greek_RHO */ + { 0x000007f1, 14070 }, /* Greek_rho */ + { 0x000007d2, 14080 }, /* Greek_SIGMA */ + { 0x000007f2, 14092 }, /* Greek_sigma */ + { 0x0000ff7e, 14104 }, /* Greek_switch */ + { 0x000007d4, 14117 }, /* Greek_TAU */ + { 0x000007f4, 14127 }, /* Greek_tau */ + { 0x000007c8, 14137 }, /* Greek_THETA */ + { 0x000007e8, 14149 }, /* Greek_theta */ + { 0x000007d5, 14161 }, /* Greek_UPSILON */ + { 0x000007f5, 14175 }, /* Greek_upsilon */ + { 0x000007a8, 14189 }, /* Greek_UPSILONaccent */ + { 0x000007b8, 14209 }, /* Greek_upsilonaccent */ + { 0x000007ba, 14229 }, /* Greek_upsilonaccentdieresis */ + { 0x000007a9, 14257 }, /* Greek_UPSILONdieresis */ + { 0x000007b9, 14279 }, /* Greek_upsilondieresis */ + { 0x000007ce, 14301 }, /* Greek_XI */ + { 0x000007ee, 14310 }, /* Greek_xi */ + { 0x000007c6, 14319 }, /* Greek_ZETA */ + { 0x000007e6, 14330 }, /* Greek_zeta */ + { 0x100000be, 14341 }, /* guilder */ + { 0x000000ab, 14349 }, /* guillemotleft */ + { 0x000000bb, 14363 }, /* guillemotright */ + { 0x00000048, 14378 }, /* H */ + { 0x00000068, 14380 }, /* h */ + { 0x00000aa8, 14382 }, /* hairspace */ + { 0x0000ff31, 14392 }, /* Hangul */ + { 0x00000ebf, 14399 }, /* Hangul_A */ + { 0x00000ec0, 14408 }, /* Hangul_AE */ + { 0x00000ef6, 14418 }, /* Hangul_AraeA */ + { 0x00000ef7, 14431 }, /* Hangul_AraeAE */ + { 0x0000ff39, 14445 }, /* Hangul_Banja */ + { 0x00000eba, 14458 }, /* Hangul_Cieuc */ + { 0x0000ff37, 14471 }, /* Hangul_Codeinput */ + { 0x00000ea7, 14488 }, /* Hangul_Dikeud */ + { 0x00000ec4, 14502 }, /* Hangul_E */ + { 0x0000ff33, 14511 }, /* Hangul_End */ + { 0x00000ec3, 14522 }, /* Hangul_EO */ + { 0x00000ed1, 14532 }, /* Hangul_EU */ + { 0x0000ff34, 14542 }, /* Hangul_Hanja */ + { 0x00000ebe, 14555 }, /* Hangul_Hieuh */ + { 0x00000ed3, 14568 }, /* Hangul_I */ + { 0x00000eb7, 14577 }, /* Hangul_Ieung */ + { 0x00000eea, 14590 }, /* Hangul_J_Cieuc */ + { 0x00000eda, 14605 }, /* Hangul_J_Dikeud */ + { 0x00000eee, 14621 }, /* Hangul_J_Hieuh */ + { 0x00000ee8, 14636 }, /* Hangul_J_Ieung */ + { 0x00000ee9, 14651 }, /* Hangul_J_Jieuj */ + { 0x00000eeb, 14666 }, /* Hangul_J_Khieuq */ + { 0x00000ed4, 14682 }, /* Hangul_J_Kiyeog */ + { 0x00000ed6, 14698 }, /* Hangul_J_KiyeogSios */ + { 0x00000ef9, 14718 }, /* Hangul_J_KkogjiDalrinIeung */ + { 0x00000ee3, 14745 }, /* Hangul_J_Mieum */ + { 0x00000ed7, 14760 }, /* Hangul_J_Nieun */ + { 0x00000ed9, 14775 }, /* Hangul_J_NieunHieuh */ + { 0x00000ed8, 14795 }, /* Hangul_J_NieunJieuj */ + { 0x00000ef8, 14815 }, /* Hangul_J_PanSios */ + { 0x00000eed, 14832 }, /* Hangul_J_Phieuf */ + { 0x00000ee4, 14848 }, /* Hangul_J_Pieub */ + { 0x00000ee5, 14863 }, /* Hangul_J_PieubSios */ + { 0x00000edb, 14882 }, /* Hangul_J_Rieul */ + { 0x00000ee2, 14897 }, /* Hangul_J_RieulHieuh */ + { 0x00000edc, 14917 }, /* Hangul_J_RieulKiyeog */ + { 0x00000edd, 14938 }, /* Hangul_J_RieulMieum */ + { 0x00000ee1, 14958 }, /* Hangul_J_RieulPhieuf */ + { 0x00000ede, 14979 }, /* Hangul_J_RieulPieub */ + { 0x00000edf, 14999 }, /* Hangul_J_RieulSios */ + { 0x00000ee0, 15018 }, /* Hangul_J_RieulTieut */ + { 0x00000ee6, 15038 }, /* Hangul_J_Sios */ + { 0x00000ed5, 15052 }, /* Hangul_J_SsangKiyeog */ + { 0x00000ee7, 15073 }, /* Hangul_J_SsangSios */ + { 0x00000eec, 15092 }, /* Hangul_J_Tieut */ + { 0x00000efa, 15107 }, /* Hangul_J_YeorinHieuh */ + { 0x0000ff35, 15128 }, /* Hangul_Jamo */ + { 0x0000ff38, 15140 }, /* Hangul_Jeonja */ + { 0x00000eb8, 15154 }, /* Hangul_Jieuj */ + { 0x00000ebb, 15167 }, /* Hangul_Khieuq */ + { 0x00000ea1, 15181 }, /* Hangul_Kiyeog */ + { 0x00000ea3, 15195 }, /* Hangul_KiyeogSios */ + { 0x00000ef3, 15213 }, /* Hangul_KkogjiDalrinIeung */ + { 0x00000eb1, 15238 }, /* Hangul_Mieum */ + { 0x0000ff3d, 15251 }, /* Hangul_MultipleCandidate */ + { 0x00000ea4, 15276 }, /* Hangul_Nieun */ + { 0x00000ea6, 15289 }, /* Hangul_NieunHieuh */ + { 0x00000ea5, 15307 }, /* Hangul_NieunJieuj */ + { 0x00000ec7, 15325 }, /* Hangul_O */ + { 0x00000eca, 15334 }, /* Hangul_OE */ + { 0x00000ef2, 15344 }, /* Hangul_PanSios */ + { 0x00000ebd, 15359 }, /* Hangul_Phieuf */ + { 0x00000eb2, 15373 }, /* Hangul_Pieub */ + { 0x00000eb4, 15386 }, /* Hangul_PieubSios */ + { 0x0000ff3b, 15403 }, /* Hangul_PostHanja */ + { 0x0000ff3a, 15420 }, /* Hangul_PreHanja */ + { 0x0000ff3e, 15436 }, /* Hangul_PreviousCandidate */ + { 0x00000ea9, 15461 }, /* Hangul_Rieul */ + { 0x00000eb0, 15474 }, /* Hangul_RieulHieuh */ + { 0x00000eaa, 15492 }, /* Hangul_RieulKiyeog */ + { 0x00000eab, 15511 }, /* Hangul_RieulMieum */ + { 0x00000eaf, 15529 }, /* Hangul_RieulPhieuf */ + { 0x00000eac, 15548 }, /* Hangul_RieulPieub */ + { 0x00000ead, 15566 }, /* Hangul_RieulSios */ + { 0x00000eae, 15583 }, /* Hangul_RieulTieut */ + { 0x00000eef, 15601 }, /* Hangul_RieulYeorinHieuh */ + { 0x0000ff36, 15625 }, /* Hangul_Romaja */ + { 0x0000ff3c, 15639 }, /* Hangul_SingleCandidate */ + { 0x00000eb5, 15662 }, /* Hangul_Sios */ + { 0x0000ff3f, 15674 }, /* Hangul_Special */ + { 0x00000ea8, 15689 }, /* Hangul_SsangDikeud */ + { 0x00000eb9, 15708 }, /* Hangul_SsangJieuj */ + { 0x00000ea2, 15726 }, /* Hangul_SsangKiyeog */ + { 0x00000eb3, 15745 }, /* Hangul_SsangPieub */ + { 0x00000eb6, 15763 }, /* Hangul_SsangSios */ + { 0x0000ff32, 15780 }, /* Hangul_Start */ + { 0x00000ef0, 15793 }, /* Hangul_SunkyeongeumMieum */ + { 0x00000ef4, 15818 }, /* Hangul_SunkyeongeumPhieuf */ + { 0x00000ef1, 15844 }, /* Hangul_SunkyeongeumPieub */ + { 0x0000ff7e, 15869 }, /* Hangul_switch */ + { 0x00000ebc, 15883 }, /* Hangul_Tieut */ + { 0x00000ecc, 15896 }, /* Hangul_U */ + { 0x00000ec8, 15905 }, /* Hangul_WA */ + { 0x00000ec9, 15915 }, /* Hangul_WAE */ + { 0x00000ece, 15926 }, /* Hangul_WE */ + { 0x00000ecd, 15936 }, /* Hangul_WEO */ + { 0x00000ecf, 15947 }, /* Hangul_WI */ + { 0x00000ec1, 15957 }, /* Hangul_YA */ + { 0x00000ec2, 15967 }, /* Hangul_YAE */ + { 0x00000ec6, 15978 }, /* Hangul_YE */ + { 0x00000ec5, 15988 }, /* Hangul_YEO */ + { 0x00000ef5, 15999 }, /* Hangul_YeorinHieuh */ + { 0x00000ed2, 16018 }, /* Hangul_YI */ + { 0x00000ecb, 16028 }, /* Hangul_YO */ + { 0x00000ed0, 16038 }, /* Hangul_YU */ + { 0x0000ff29, 16048 }, /* Hankaku */ + { 0x000002a6, 16056 }, /* Hcircumflex */ + { 0x000002b6, 16068 }, /* hcircumflex */ + { 0x00000aee, 16080 }, /* heart */ + { 0x00000ce0, 16086 }, /* hebrew_aleph */ + { 0x00000cf2, 16099 }, /* hebrew_ayin */ + { 0x00000ce1, 16111 }, /* hebrew_bet */ + { 0x00000ce1, 16122 }, /* hebrew_beth */ + { 0x00000ce7, 16134 }, /* hebrew_chet */ + { 0x00000ce3, 16146 }, /* hebrew_dalet */ + { 0x00000ce3, 16159 }, /* hebrew_daleth */ + { 0x00000cdf, 16173 }, /* hebrew_doublelowline */ + { 0x00000cea, 16194 }, /* hebrew_finalkaph */ + { 0x00000ced, 16211 }, /* hebrew_finalmem */ + { 0x00000cef, 16227 }, /* hebrew_finalnun */ + { 0x00000cf3, 16243 }, /* hebrew_finalpe */ + { 0x00000cf5, 16258 }, /* hebrew_finalzade */ + { 0x00000cf5, 16275 }, /* hebrew_finalzadi */ + { 0x00000ce2, 16292 }, /* hebrew_gimel */ + { 0x00000ce2, 16305 }, /* hebrew_gimmel */ + { 0x00000ce4, 16319 }, /* hebrew_he */ + { 0x00000ce7, 16329 }, /* hebrew_het */ + { 0x00000ceb, 16340 }, /* hebrew_kaph */ + { 0x00000cf7, 16352 }, /* hebrew_kuf */ + { 0x00000cec, 16363 }, /* hebrew_lamed */ + { 0x00000cee, 16376 }, /* hebrew_mem */ + { 0x00000cf0, 16387 }, /* hebrew_nun */ + { 0x00000cf4, 16398 }, /* hebrew_pe */ + { 0x00000cf7, 16408 }, /* hebrew_qoph */ + { 0x00000cf8, 16420 }, /* hebrew_resh */ + { 0x00000cf1, 16432 }, /* hebrew_samech */ + { 0x00000cf1, 16446 }, /* hebrew_samekh */ + { 0x00000cf9, 16460 }, /* hebrew_shin */ + { 0x0000ff7e, 16472 }, /* Hebrew_switch */ + { 0x00000cfa, 16486 }, /* hebrew_taf */ + { 0x00000cfa, 16497 }, /* hebrew_taw */ + { 0x00000ce8, 16508 }, /* hebrew_tet */ + { 0x00000ce8, 16519 }, /* hebrew_teth */ + { 0x00000ce5, 16531 }, /* hebrew_waw */ + { 0x00000ce9, 16542 }, /* hebrew_yod */ + { 0x00000cf6, 16553 }, /* hebrew_zade */ + { 0x00000cf6, 16565 }, /* hebrew_zadi */ + { 0x00000ce6, 16577 }, /* hebrew_zain */ + { 0x00000ce6, 16589 }, /* hebrew_zayin */ + { 0x0000ff6a, 16602 }, /* Help */ + { 0x0000ff23, 16607 }, /* Henkan */ + { 0x0000ff23, 16614 }, /* Henkan_Mode */ + { 0x00000ada, 16626 }, /* hexagram */ + { 0x0000ff25, 16635 }, /* Hiragana */ + { 0x0000ff27, 16644 }, /* Hiragana_Katakana */ + { 0x0000ff50, 16662 }, /* Home */ + { 0x000008a3, 16667 }, /* horizconnector */ + { 0x000009ef, 16682 }, /* horizlinescan1 */ + { 0x000009f0, 16697 }, /* horizlinescan3 */ + { 0x000009f1, 16712 }, /* horizlinescan5 */ + { 0x000009f2, 16727 }, /* horizlinescan7 */ + { 0x000009f3, 16742 }, /* horizlinescan9 */ + { 0x1000ff74, 16757 }, /* hpBackTab */ + { 0x100000fc, 16767 }, /* hpblock */ + { 0x1000ff6f, 16775 }, /* hpClearLine */ + { 0x1000ff73, 16787 }, /* hpDeleteChar */ + { 0x1000ff71, 16800 }, /* hpDeleteLine */ + { 0x100000be, 16813 }, /* hpguilder */ + { 0x1000ff72, 16823 }, /* hpInsertChar */ + { 0x1000ff70, 16836 }, /* hpInsertLine */ + { 0x100000ee, 16849 }, /* hpIO */ + { 0x1000ff75, 16854 }, /* hpKP_BackTab */ + { 0x100000af, 16867 }, /* hplira */ + { 0x100000f6, 16874 }, /* hplongminus */ + { 0x1000ff48, 16886 }, /* hpModelock1 */ + { 0x1000ff49, 16898 }, /* hpModelock2 */ + { 0x100000a8, 16910 }, /* hpmute_acute */ + { 0x100000aa, 16923 }, /* hpmute_asciicircum */ + { 0x100000ac, 16942 }, /* hpmute_asciitilde */ + { 0x100000ab, 16960 }, /* hpmute_diaeresis */ + { 0x100000a9, 16977 }, /* hpmute_grave */ + { 0x1000ff6c, 16990 }, /* hpReset */ + { 0x1000ff6d, 16998 }, /* hpSystem */ + { 0x1000ff6e, 17007 }, /* hpUser */ + { 0x100000ee, 17014 }, /* hpYdiaeresis */ + { 0x000002a1, 17027 }, /* Hstroke */ + { 0x000002b1, 17035 }, /* hstroke */ + { 0x000009e2, 17043 }, /* ht */ + { 0x0000ffed, 17046 }, /* Hyper_L */ + { 0x0000ffee, 17054 }, /* Hyper_R */ + { 0x000000ad, 17062 }, /* hyphen */ + { 0x00000049, 17069 }, /* I */ + { 0x00000069, 17071 }, /* i */ + { 0x000002a9, 17073 }, /* Iabovedot */ + { 0x000000cd, 17083 }, /* Iacute */ + { 0x000000ed, 17090 }, /* iacute */ + { 0x01001eca, 17097 }, /* Ibelowdot */ + { 0x01001ecb, 17107 }, /* ibelowdot */ + { 0x0100012c, 17117 }, /* Ibreve */ + { 0x0100012d, 17124 }, /* ibreve */ + { 0x000000ce, 17131 }, /* Icircumflex */ + { 0x000000ee, 17143 }, /* icircumflex */ + { 0x000008cf, 17155 }, /* identical */ + { 0x000000cf, 17165 }, /* Idiaeresis */ + { 0x000000ef, 17176 }, /* idiaeresis */ + { 0x000002b9, 17187 }, /* idotless */ + { 0x000008cd, 17196 }, /* ifonlyif */ + { 0x000000cc, 17205 }, /* Igrave */ + { 0x000000ec, 17212 }, /* igrave */ + { 0x01001ec8, 17219 }, /* Ihook */ + { 0x01001ec9, 17225 }, /* ihook */ + { 0x000003cf, 17231 }, /* Imacron */ + { 0x000003ef, 17239 }, /* imacron */ + { 0x000008ce, 17247 }, /* implies */ + { 0x000008da, 17255 }, /* includedin */ + { 0x000008db, 17266 }, /* includes */ + { 0x000008c2, 17275 }, /* infinity */ + { 0x0000ff63, 17284 }, /* Insert */ + { 0x1000ff72, 17291 }, /* InsertChar */ + { 0x1000ff70, 17302 }, /* InsertLine */ + { 0x000008bf, 17313 }, /* integral */ + { 0x000008dc, 17322 }, /* intersection */ + { 0x100000ee, 17335 }, /* IO */ + { 0x000003c7, 17338 }, /* Iogonek */ + { 0x000003e7, 17346 }, /* iogonek */ + { 0x0000fe33, 17354 }, /* ISO_Center_Object */ + { 0x0000fe30, 17372 }, /* ISO_Continuous_Underline */ + { 0x0000fe31, 17397 }, /* ISO_Discontinuous_Underline */ + { 0x0000fe32, 17425 }, /* ISO_Emphasize */ + { 0x0000fe34, 17439 }, /* ISO_Enter */ + { 0x0000fe2f, 17449 }, /* ISO_Fast_Cursor_Down */ + { 0x0000fe2c, 17470 }, /* ISO_Fast_Cursor_Left */ + { 0x0000fe2d, 17491 }, /* ISO_Fast_Cursor_Right */ + { 0x0000fe2e, 17513 }, /* ISO_Fast_Cursor_Up */ + { 0x0000fe0c, 17532 }, /* ISO_First_Group */ + { 0x0000fe0d, 17548 }, /* ISO_First_Group_Lock */ + { 0x0000fe06, 17569 }, /* ISO_Group_Latch */ + { 0x0000fe07, 17585 }, /* ISO_Group_Lock */ + { 0x0000ff7e, 17600 }, /* ISO_Group_Shift */ + { 0x0000fe0e, 17616 }, /* ISO_Last_Group */ + { 0x0000fe0f, 17631 }, /* ISO_Last_Group_Lock */ + { 0x0000fe20, 17651 }, /* ISO_Left_Tab */ + { 0x0000fe02, 17664 }, /* ISO_Level2_Latch */ + { 0x0000fe04, 17681 }, /* ISO_Level3_Latch */ + { 0x0000fe05, 17698 }, /* ISO_Level3_Lock */ + { 0x0000fe03, 17714 }, /* ISO_Level3_Shift */ + { 0x0000fe12, 17731 }, /* ISO_Level5_Latch */ + { 0x0000fe13, 17748 }, /* ISO_Level5_Lock */ + { 0x0000fe11, 17764 }, /* ISO_Level5_Shift */ + { 0x0000fe01, 17781 }, /* ISO_Lock */ + { 0x0000fe22, 17790 }, /* ISO_Move_Line_Down */ + { 0x0000fe21, 17809 }, /* ISO_Move_Line_Up */ + { 0x0000fe08, 17826 }, /* ISO_Next_Group */ + { 0x0000fe09, 17841 }, /* ISO_Next_Group_Lock */ + { 0x0000fe24, 17861 }, /* ISO_Partial_Line_Down */ + { 0x0000fe23, 17883 }, /* ISO_Partial_Line_Up */ + { 0x0000fe25, 17903 }, /* ISO_Partial_Space_Left */ + { 0x0000fe26, 17926 }, /* ISO_Partial_Space_Right */ + { 0x0000fe0a, 17950 }, /* ISO_Prev_Group */ + { 0x0000fe0b, 17965 }, /* ISO_Prev_Group_Lock */ + { 0x0000fe2b, 17985 }, /* ISO_Release_Both_Margins */ + { 0x0000fe29, 18010 }, /* ISO_Release_Margin_Left */ + { 0x0000fe2a, 18034 }, /* ISO_Release_Margin_Right */ + { 0x0000fe27, 18059 }, /* ISO_Set_Margin_Left */ + { 0x0000fe28, 18079 }, /* ISO_Set_Margin_Right */ + { 0x000003a5, 18100 }, /* Itilde */ + { 0x000003b5, 18107 }, /* itilde */ + { 0x0000004a, 18114 }, /* J */ + { 0x0000006a, 18116 }, /* j */ + { 0x000002ac, 18118 }, /* Jcircumflex */ + { 0x000002bc, 18130 }, /* jcircumflex */ + { 0x00000bca, 18142 }, /* jot */ + { 0x0000004b, 18146 }, /* K */ + { 0x0000006b, 18148 }, /* k */ + { 0x000004a7, 18150 }, /* kana_a */ + { 0x000004b1, 18157 }, /* kana_A */ + { 0x000004c1, 18164 }, /* kana_CHI */ + { 0x000004a3, 18173 }, /* kana_closingbracket */ + { 0x000004a4, 18193 }, /* kana_comma */ + { 0x000004a5, 18204 }, /* kana_conjunctive */ + { 0x000004aa, 18221 }, /* kana_e */ + { 0x000004b4, 18228 }, /* kana_E */ + { 0x000004cc, 18235 }, /* kana_FU */ + { 0x000004a1, 18243 }, /* kana_fullstop */ + { 0x000004ca, 18257 }, /* kana_HA */ + { 0x000004cd, 18265 }, /* kana_HE */ + { 0x000004cb, 18273 }, /* kana_HI */ + { 0x000004ce, 18281 }, /* kana_HO */ + { 0x000004cc, 18289 }, /* kana_HU */ + { 0x000004a8, 18297 }, /* kana_i */ + { 0x000004b2, 18304 }, /* kana_I */ + { 0x000004b6, 18311 }, /* kana_KA */ + { 0x000004b9, 18319 }, /* kana_KE */ + { 0x000004b7, 18327 }, /* kana_KI */ + { 0x000004ba, 18335 }, /* kana_KO */ + { 0x000004b8, 18343 }, /* kana_KU */ + { 0x0000ff2d, 18351 }, /* Kana_Lock */ + { 0x000004cf, 18361 }, /* kana_MA */ + { 0x000004d2, 18369 }, /* kana_ME */ + { 0x000004d0, 18377 }, /* kana_MI */ + { 0x000004a5, 18385 }, /* kana_middledot */ + { 0x000004d3, 18400 }, /* kana_MO */ + { 0x000004d1, 18408 }, /* kana_MU */ + { 0x000004dd, 18416 }, /* kana_N */ + { 0x000004c5, 18423 }, /* kana_NA */ + { 0x000004c8, 18431 }, /* kana_NE */ + { 0x000004c6, 18439 }, /* kana_NI */ + { 0x000004c9, 18447 }, /* kana_NO */ + { 0x000004c7, 18455 }, /* kana_NU */ + { 0x000004ab, 18463 }, /* kana_o */ + { 0x000004b5, 18470 }, /* kana_O */ + { 0x000004a2, 18477 }, /* kana_openingbracket */ + { 0x000004d7, 18497 }, /* kana_RA */ + { 0x000004da, 18505 }, /* kana_RE */ + { 0x000004d8, 18513 }, /* kana_RI */ + { 0x000004db, 18521 }, /* kana_RO */ + { 0x000004d9, 18529 }, /* kana_RU */ + { 0x000004bb, 18537 }, /* kana_SA */ + { 0x000004be, 18545 }, /* kana_SE */ + { 0x000004bc, 18553 }, /* kana_SHI */ + { 0x0000ff2e, 18562 }, /* Kana_Shift */ + { 0x000004bf, 18573 }, /* kana_SO */ + { 0x000004bd, 18581 }, /* kana_SU */ + { 0x0000ff7e, 18589 }, /* kana_switch */ + { 0x000004c0, 18601 }, /* kana_TA */ + { 0x000004c3, 18609 }, /* kana_TE */ + { 0x000004c1, 18617 }, /* kana_TI */ + { 0x000004c4, 18625 }, /* kana_TO */ + { 0x000004af, 18633 }, /* kana_tsu */ + { 0x000004c2, 18642 }, /* kana_TSU */ + { 0x000004af, 18651 }, /* kana_tu */ + { 0x000004c2, 18659 }, /* kana_TU */ + { 0x000004a9, 18667 }, /* kana_u */ + { 0x000004b3, 18674 }, /* kana_U */ + { 0x000004dc, 18681 }, /* kana_WA */ + { 0x000004a6, 18689 }, /* kana_WO */ + { 0x000004ac, 18697 }, /* kana_ya */ + { 0x000004d4, 18705 }, /* kana_YA */ + { 0x000004ae, 18713 }, /* kana_yo */ + { 0x000004d6, 18721 }, /* kana_YO */ + { 0x000004ad, 18729 }, /* kana_yu */ + { 0x000004d5, 18737 }, /* kana_YU */ + { 0x0000ff21, 18745 }, /* Kanji */ + { 0x0000ff37, 18751 }, /* Kanji_Bangou */ + { 0x000003a2, 18764 }, /* kappa */ + { 0x0000ff26, 18770 }, /* Katakana */ + { 0x000003d3, 18779 }, /* Kcedilla */ + { 0x000003f3, 18788 }, /* kcedilla */ + { 0x00000eff, 18797 }, /* Korean_Won */ + { 0x0000ffb0, 18808 }, /* KP_0 */ + { 0x0000ffb1, 18813 }, /* KP_1 */ + { 0x0000ffb2, 18818 }, /* KP_2 */ + { 0x0000ffb3, 18823 }, /* KP_3 */ + { 0x0000ffb4, 18828 }, /* KP_4 */ + { 0x0000ffb5, 18833 }, /* KP_5 */ + { 0x0000ffb6, 18838 }, /* KP_6 */ + { 0x0000ffb7, 18843 }, /* KP_7 */ + { 0x0000ffb8, 18848 }, /* KP_8 */ + { 0x0000ffb9, 18853 }, /* KP_9 */ + { 0x0000ffab, 18858 }, /* KP_Add */ + { 0x1000ff75, 18865 }, /* KP_BackTab */ + { 0x0000ff9d, 18876 }, /* KP_Begin */ + { 0x0000ffae, 18885 }, /* KP_Decimal */ + { 0x0000ff9f, 18896 }, /* KP_Delete */ + { 0x0000ffaf, 18906 }, /* KP_Divide */ + { 0x0000ff99, 18916 }, /* KP_Down */ + { 0x0000ff9c, 18924 }, /* KP_End */ + { 0x0000ff8d, 18931 }, /* KP_Enter */ + { 0x0000ffbd, 18940 }, /* KP_Equal */ + { 0x0000ff91, 18949 }, /* KP_F1 */ + { 0x0000ff92, 18955 }, /* KP_F2 */ + { 0x0000ff93, 18961 }, /* KP_F3 */ + { 0x0000ff94, 18967 }, /* KP_F4 */ + { 0x0000ff95, 18973 }, /* KP_Home */ + { 0x0000ff9e, 18981 }, /* KP_Insert */ + { 0x0000ff96, 18991 }, /* KP_Left */ + { 0x0000ffaa, 18999 }, /* KP_Multiply */ + { 0x0000ff9b, 19011 }, /* KP_Next */ + { 0x0000ff9b, 19019 }, /* KP_Page_Down */ + { 0x0000ff9a, 19032 }, /* KP_Page_Up */ + { 0x0000ff9a, 19043 }, /* KP_Prior */ + { 0x0000ff98, 19052 }, /* KP_Right */ + { 0x0000ffac, 19061 }, /* KP_Separator */ + { 0x0000ff80, 19074 }, /* KP_Space */ + { 0x0000ffad, 19083 }, /* KP_Subtract */ + { 0x0000ff89, 19095 }, /* KP_Tab */ + { 0x0000ff97, 19102 }, /* KP_Up */ + { 0x000003a2, 19108 }, /* kra */ + { 0x0000004c, 19112 }, /* L */ + { 0x0000006c, 19114 }, /* l */ + { 0x0000ffc8, 19116 }, /* L1 */ + { 0x0000ffd1, 19119 }, /* L10 */ + { 0x0000ffc9, 19123 }, /* L2 */ + { 0x0000ffca, 19126 }, /* L3 */ + { 0x0000ffcb, 19129 }, /* L4 */ + { 0x0000ffcc, 19132 }, /* L5 */ + { 0x0000ffcd, 19135 }, /* L6 */ + { 0x0000ffce, 19138 }, /* L7 */ + { 0x0000ffcf, 19141 }, /* L8 */ + { 0x0000ffd0, 19144 }, /* L9 */ + { 0x000001c5, 19147 }, /* Lacute */ + { 0x000001e5, 19154 }, /* lacute */ + { 0x0000fed4, 19161 }, /* Last_Virtual_Screen */ + { 0x00000ad9, 19181 }, /* latincross */ + { 0x01001e36, 19192 }, /* Lbelowdot */ + { 0x01001e37, 19202 }, /* lbelowdot */ + { 0x000001a5, 19212 }, /* Lcaron */ + { 0x000001b5, 19219 }, /* lcaron */ + { 0x000003a6, 19226 }, /* Lcedilla */ + { 0x000003b6, 19235 }, /* lcedilla */ + { 0x0000ff51, 19244 }, /* Left */ + { 0x00000abc, 19249 }, /* leftanglebracket */ + { 0x000008fb, 19266 }, /* leftarrow */ + { 0x00000ba3, 19276 }, /* leftcaret */ + { 0x00000ad2, 19286 }, /* leftdoublequotemark */ + { 0x000008af, 19306 }, /* leftmiddlecurlybrace */ + { 0x00000acc, 19327 }, /* leftopentriangle */ + { 0x00000aea, 19344 }, /* leftpointer */ + { 0x000008a1, 19356 }, /* leftradical */ + { 0x00000bda, 19368 }, /* leftshoe */ + { 0x00000ad0, 19377 }, /* leftsinglequotemark */ + { 0x000009f4, 19397 }, /* leftt */ + { 0x00000bdc, 19403 }, /* lefttack */ + { 0x0000003c, 19412 }, /* less */ + { 0x000008bc, 19417 }, /* lessthanequal */ + { 0x000009e5, 19431 }, /* lf */ + { 0x0000ff0a, 19434 }, /* Linefeed */ + { 0x100000af, 19443 }, /* lira */ + { 0x010020a4, 19448 }, /* LiraSign */ + { 0x000008de, 19457 }, /* logicaland */ + { 0x000008df, 19468 }, /* logicalor */ + { 0x100000f6, 19478 }, /* longminus */ + { 0x000009ed, 19488 }, /* lowleftcorner */ + { 0x000009ea, 19502 }, /* lowrightcorner */ + { 0x000001a3, 19517 }, /* Lstroke */ + { 0x000001b3, 19525 }, /* lstroke */ + { 0x0000004d, 19533 }, /* M */ + { 0x0000006d, 19535 }, /* m */ + { 0x01001e40, 19537 }, /* Mabovedot */ + { 0x01001e41, 19547 }, /* mabovedot */ + { 0x000006a5, 19557 }, /* Macedonia_dse */ + { 0x000006b5, 19571 }, /* Macedonia_DSE */ + { 0x000006a2, 19585 }, /* Macedonia_gje */ + { 0x000006b2, 19599 }, /* Macedonia_GJE */ + { 0x000006ac, 19613 }, /* Macedonia_kje */ + { 0x000006bc, 19627 }, /* Macedonia_KJE */ + { 0x000000af, 19641 }, /* macron */ + { 0x0000ff3e, 19648 }, /* Mae_Koho */ + { 0x00000af7, 19657 }, /* malesymbol */ + { 0x00000af0, 19668 }, /* maltesecross */ + { 0x00000abf, 19681 }, /* marker */ + { 0x000000ba, 19688 }, /* masculine */ + { 0x0000ff2c, 19698 }, /* Massyo */ + { 0x0000ff67, 19705 }, /* Menu */ + { 0x0000ffe7, 19710 }, /* Meta_L */ + { 0x0000ffe8, 19717 }, /* Meta_R */ + { 0x010020a5, 19724 }, /* MillSign */ + { 0x0000002d, 19733 }, /* minus */ + { 0x00000ad6, 19739 }, /* minutes */ + { 0x0000ff7e, 19747 }, /* Mode_switch */ + { 0x0000fe77, 19759 }, /* MouseKeys_Accel_Enable */ + { 0x0000fe76, 19782 }, /* MouseKeys_Enable */ + { 0x000000b5, 19799 }, /* mu */ + { 0x0000ff22, 19802 }, /* Muhenkan */ + { 0x0000ff20, 19811 }, /* Multi_key */ + { 0x0000ff3d, 19821 }, /* MultipleCandidate */ + { 0x000000d7, 19839 }, /* multiply */ + { 0x00000af6, 19848 }, /* musicalflat */ + { 0x00000af5, 19860 }, /* musicalsharp */ + { 0x100000a8, 19873 }, /* mute_acute */ + { 0x100000aa, 19884 }, /* mute_asciicircum */ + { 0x100000ac, 19901 }, /* mute_asciitilde */ + { 0x100000ab, 19917 }, /* mute_diaeresis */ + { 0x100000a9, 19932 }, /* mute_grave */ + { 0x0000004e, 19943 }, /* N */ + { 0x0000006e, 19945 }, /* n */ + { 0x000008c5, 19947 }, /* nabla */ + { 0x000001d1, 19953 }, /* Nacute */ + { 0x000001f1, 19960 }, /* nacute */ + { 0x010020a6, 19967 }, /* NairaSign */ + { 0x000001d2, 19977 }, /* Ncaron */ + { 0x000001f2, 19984 }, /* ncaron */ + { 0x000003d1, 19991 }, /* Ncedilla */ + { 0x000003f1, 20000 }, /* ncedilla */ + { 0x010020aa, 20009 }, /* NewSheqelSign */ + { 0x0000ff56, 20023 }, /* Next */ + { 0x0000fed2, 20028 }, /* Next_Virtual_Screen */ + { 0x01002089, 20048 }, /* ninesubscript */ + { 0x01002079, 20062 }, /* ninesuperior */ + { 0x000009e8, 20075 }, /* nl */ + { 0x000000a0, 20078 }, /* nobreakspace */ + { 0x00000000, 20091 }, /* NoSymbol */ + { 0x01002247, 20100 }, /* notapproxeq */ + { 0x01002209, 20112 }, /* notelementof */ + { 0x000008bd, 20125 }, /* notequal */ + { 0x01002262, 20134 }, /* notidentical */ + { 0x000000ac, 20147 }, /* notsign */ + { 0x000000d1, 20155 }, /* Ntilde */ + { 0x000000f1, 20162 }, /* ntilde */ + { 0x0000ff7f, 20169 }, /* Num_Lock */ + { 0x00000023, 20178 }, /* numbersign */ + { 0x000006b0, 20189 }, /* numerosign */ + { 0x0000004f, 20200 }, /* O */ + { 0x0000006f, 20202 }, /* o */ + { 0x000000d3, 20204 }, /* Oacute */ + { 0x000000f3, 20211 }, /* oacute */ + { 0x0100019f, 20218 }, /* Obarred */ + { 0x01000275, 20226 }, /* obarred */ + { 0x01001ecc, 20234 }, /* Obelowdot */ + { 0x01001ecd, 20244 }, /* obelowdot */ + { 0x010001d1, 20254 }, /* Ocaron */ + { 0x010001d2, 20261 }, /* ocaron */ + { 0x000000d4, 20268 }, /* Ocircumflex */ + { 0x000000f4, 20280 }, /* ocircumflex */ + { 0x01001ed0, 20292 }, /* Ocircumflexacute */ + { 0x01001ed1, 20309 }, /* ocircumflexacute */ + { 0x01001ed8, 20326 }, /* Ocircumflexbelowdot */ + { 0x01001ed9, 20346 }, /* ocircumflexbelowdot */ + { 0x01001ed2, 20366 }, /* Ocircumflexgrave */ + { 0x01001ed3, 20383 }, /* ocircumflexgrave */ + { 0x01001ed4, 20400 }, /* Ocircumflexhook */ + { 0x01001ed5, 20416 }, /* ocircumflexhook */ + { 0x01001ed6, 20432 }, /* Ocircumflextilde */ + { 0x01001ed7, 20449 }, /* ocircumflextilde */ + { 0x000000d6, 20466 }, /* Odiaeresis */ + { 0x000000f6, 20477 }, /* odiaeresis */ + { 0x000001d5, 20488 }, /* Odoubleacute */ + { 0x000001f5, 20501 }, /* odoubleacute */ + { 0x000013bc, 20514 }, /* OE */ + { 0x000013bd, 20517 }, /* oe */ + { 0x000001b2, 20520 }, /* ogonek */ + { 0x000000d2, 20527 }, /* Ograve */ + { 0x000000f2, 20534 }, /* ograve */ + { 0x01001ece, 20541 }, /* Ohook */ + { 0x01001ecf, 20547 }, /* ohook */ + { 0x010001a0, 20553 }, /* Ohorn */ + { 0x010001a1, 20559 }, /* ohorn */ + { 0x01001eda, 20565 }, /* Ohornacute */ + { 0x01001edb, 20576 }, /* ohornacute */ + { 0x01001ee2, 20587 }, /* Ohornbelowdot */ + { 0x01001ee3, 20601 }, /* ohornbelowdot */ + { 0x01001edc, 20615 }, /* Ohorngrave */ + { 0x01001edd, 20626 }, /* ohorngrave */ + { 0x01001ede, 20637 }, /* Ohornhook */ + { 0x01001edf, 20647 }, /* ohornhook */ + { 0x01001ee0, 20657 }, /* Ohorntilde */ + { 0x01001ee1, 20668 }, /* ohorntilde */ + { 0x000003d2, 20679 }, /* Omacron */ + { 0x000003f2, 20687 }, /* omacron */ + { 0x00000ac3, 20695 }, /* oneeighth */ + { 0x00000ab2, 20705 }, /* onefifth */ + { 0x000000bd, 20714 }, /* onehalf */ + { 0x000000bc, 20722 }, /* onequarter */ + { 0x00000ab6, 20733 }, /* onesixth */ + { 0x01002081, 20742 }, /* onesubscript */ + { 0x000000b9, 20755 }, /* onesuperior */ + { 0x00000ab0, 20767 }, /* onethird */ + { 0x000000d8, 20776 }, /* Ooblique */ + { 0x000000f8, 20785 }, /* ooblique */ + { 0x00000ae2, 20794 }, /* openrectbullet */ + { 0x00000ae5, 20809 }, /* openstar */ + { 0x00000ae4, 20818 }, /* opentribulletdown */ + { 0x00000ae3, 20836 }, /* opentribulletup */ + { 0x000000aa, 20852 }, /* ordfeminine */ + { 0x1004ff44, 20864 }, /* osfActivate */ + { 0x1004ff31, 20876 }, /* osfAddMode */ + { 0x1004ff08, 20887 }, /* osfBackSpace */ + { 0x1004ff07, 20900 }, /* osfBackTab */ + { 0x1004ff5a, 20911 }, /* osfBeginData */ + { 0x1004ff58, 20924 }, /* osfBeginLine */ + { 0x1004ff69, 20937 }, /* osfCancel */ + { 0x1004ff0b, 20947 }, /* osfClear */ + { 0x1004ff02, 20956 }, /* osfCopy */ + { 0x1004ff03, 20964 }, /* osfCut */ + { 0x1004ffff, 20971 }, /* osfDelete */ + { 0x1004ff72, 20981 }, /* osfDeselectAll */ + { 0x1004ff54, 20996 }, /* osfDown */ + { 0x1004ff59, 21004 }, /* osfEndData */ + { 0x1004ff57, 21015 }, /* osfEndLine */ + { 0x1004ff1b, 21026 }, /* osfEscape */ + { 0x1004ff74, 21036 }, /* osfExtend */ + { 0x1004ff6a, 21046 }, /* osfHelp */ + { 0x1004ff63, 21054 }, /* osfInsert */ + { 0x1004ff51, 21064 }, /* osfLeft */ + { 0x1004ff67, 21072 }, /* osfMenu */ + { 0x1004ff45, 21080 }, /* osfMenuBar */ + { 0x1004ff5e, 21091 }, /* osfNextField */ + { 0x1004ff5c, 21104 }, /* osfNextMenu */ + { 0x1004ff42, 21116 }, /* osfPageDown */ + { 0x1004ff40, 21128 }, /* osfPageLeft */ + { 0x1004ff43, 21140 }, /* osfPageRight */ + { 0x1004ff41, 21153 }, /* osfPageUp */ + { 0x1004ff04, 21163 }, /* osfPaste */ + { 0x1004ff5d, 21172 }, /* osfPrevField */ + { 0x1004ff5b, 21185 }, /* osfPrevMenu */ + { 0x1004ff32, 21197 }, /* osfPrimaryPaste */ + { 0x1004ff33, 21213 }, /* osfQuickPaste */ + { 0x1004ff73, 21227 }, /* osfReselect */ + { 0x1004ff78, 21239 }, /* osfRestore */ + { 0x1004ff53, 21250 }, /* osfRight */ + { 0x1004ff60, 21259 }, /* osfSelect */ + { 0x1004ff71, 21269 }, /* osfSelectAll */ + { 0x1004ff65, 21282 }, /* osfUndo */ + { 0x1004ff52, 21290 }, /* osfUp */ + { 0x000000d8, 21296 }, /* Oslash */ + { 0x000000f8, 21303 }, /* oslash */ + { 0x000000d5, 21310 }, /* Otilde */ + { 0x000000f5, 21317 }, /* otilde */ + { 0x00000bc0, 21324 }, /* overbar */ + { 0x0000fe78, 21332 }, /* Overlay1_Enable */ + { 0x0000fe79, 21348 }, /* Overlay2_Enable */ + { 0x0000047e, 21364 }, /* overline */ + { 0x00000050, 21373 }, /* P */ + { 0x00000070, 21375 }, /* p */ + { 0x01001e56, 21377 }, /* Pabovedot */ + { 0x01001e57, 21387 }, /* pabovedot */ + { 0x0000ff56, 21397 }, /* Page_Down */ + { 0x0000ff55, 21407 }, /* Page_Up */ + { 0x000000b6, 21415 }, /* paragraph */ + { 0x00000028, 21425 }, /* parenleft */ + { 0x00000029, 21435 }, /* parenright */ + { 0x01002202, 21446 }, /* partdifferential */ + { 0x000008ef, 21463 }, /* partialderivative */ + { 0x0000ff13, 21481 }, /* Pause */ + { 0x00000025, 21487 }, /* percent */ + { 0x0000002e, 21495 }, /* period */ + { 0x000000b7, 21502 }, /* periodcentered */ + { 0x00000ad5, 21517 }, /* permille */ + { 0x010020a7, 21526 }, /* PesetaSign */ + { 0x00000afb, 21537 }, /* phonographcopyright */ + { 0x0000002b, 21557 }, /* plus */ + { 0x000000b1, 21562 }, /* plusminus */ + { 0x0000fefa, 21572 }, /* Pointer_Accelerate */ + { 0x0000fee9, 21591 }, /* Pointer_Button1 */ + { 0x0000feea, 21607 }, /* Pointer_Button2 */ + { 0x0000feeb, 21623 }, /* Pointer_Button3 */ + { 0x0000feec, 21639 }, /* Pointer_Button4 */ + { 0x0000feed, 21655 }, /* Pointer_Button5 */ + { 0x0000fee8, 21671 }, /* Pointer_Button_Dflt */ + { 0x0000feef, 21691 }, /* Pointer_DblClick1 */ + { 0x0000fef0, 21709 }, /* Pointer_DblClick2 */ + { 0x0000fef1, 21727 }, /* Pointer_DblClick3 */ + { 0x0000fef2, 21745 }, /* Pointer_DblClick4 */ + { 0x0000fef3, 21763 }, /* Pointer_DblClick5 */ + { 0x0000feee, 21781 }, /* Pointer_DblClick_Dflt */ + { 0x0000fefb, 21803 }, /* Pointer_DfltBtnNext */ + { 0x0000fefc, 21823 }, /* Pointer_DfltBtnPrev */ + { 0x0000fee3, 21843 }, /* Pointer_Down */ + { 0x0000fee6, 21856 }, /* Pointer_DownLeft */ + { 0x0000fee7, 21873 }, /* Pointer_DownRight */ + { 0x0000fef5, 21891 }, /* Pointer_Drag1 */ + { 0x0000fef6, 21905 }, /* Pointer_Drag2 */ + { 0x0000fef7, 21919 }, /* Pointer_Drag3 */ + { 0x0000fef8, 21933 }, /* Pointer_Drag4 */ + { 0x0000fefd, 21947 }, /* Pointer_Drag5 */ + { 0x0000fef4, 21961 }, /* Pointer_Drag_Dflt */ + { 0x0000fef9, 21979 }, /* Pointer_EnableKeys */ + { 0x0000fee0, 21998 }, /* Pointer_Left */ + { 0x0000fee1, 22011 }, /* Pointer_Right */ + { 0x0000fee2, 22025 }, /* Pointer_Up */ + { 0x0000fee4, 22036 }, /* Pointer_UpLeft */ + { 0x0000fee5, 22051 }, /* Pointer_UpRight */ + { 0x00000ad4, 22067 }, /* prescription */ + { 0x0000fed1, 22080 }, /* Prev_Virtual_Screen */ + { 0x0000ff3e, 22100 }, /* PreviousCandidate */ + { 0x0000ff61, 22118 }, /* Print */ + { 0x0000ff55, 22124 }, /* Prior */ + { 0x000004b0, 22130 }, /* prolongedsound */ + { 0x00000aa6, 22145 }, /* punctspace */ + { 0x00000051, 22156 }, /* Q */ + { 0x00000071, 22158 }, /* q */ + { 0x00000bcc, 22160 }, /* quad */ + { 0x0000003f, 22165 }, /* question */ + { 0x000000bf, 22174 }, /* questiondown */ + { 0x00000022, 22187 }, /* quotedbl */ + { 0x00000060, 22196 }, /* quoteleft */ + { 0x00000027, 22206 }, /* quoteright */ + { 0x00000052, 22217 }, /* R */ + { 0x00000072, 22219 }, /* r */ + { 0x0000ffd2, 22221 }, /* R1 */ + { 0x0000ffdb, 22224 }, /* R10 */ + { 0x0000ffdc, 22228 }, /* R11 */ + { 0x0000ffdd, 22232 }, /* R12 */ + { 0x0000ffde, 22236 }, /* R13 */ + { 0x0000ffdf, 22240 }, /* R14 */ + { 0x0000ffe0, 22244 }, /* R15 */ + { 0x0000ffd3, 22248 }, /* R2 */ + { 0x0000ffd4, 22251 }, /* R3 */ + { 0x0000ffd5, 22254 }, /* R4 */ + { 0x0000ffd6, 22257 }, /* R5 */ + { 0x0000ffd7, 22260 }, /* R6 */ + { 0x0000ffd8, 22263 }, /* R7 */ + { 0x0000ffd9, 22266 }, /* R8 */ + { 0x0000ffda, 22269 }, /* R9 */ + { 0x000001c0, 22272 }, /* Racute */ + { 0x000001e0, 22279 }, /* racute */ + { 0x000008d6, 22286 }, /* radical */ + { 0x000001d8, 22294 }, /* Rcaron */ + { 0x000001f8, 22301 }, /* rcaron */ + { 0x000003a3, 22308 }, /* Rcedilla */ + { 0x000003b3, 22317 }, /* rcedilla */ + { 0x0000ff66, 22326 }, /* Redo */ + { 0x000000ae, 22331 }, /* registered */ + { 0x0000fe72, 22342 }, /* RepeatKeys_Enable */ + { 0x1000ff6c, 22360 }, /* Reset */ + { 0x0000ff0d, 22366 }, /* Return */ + { 0x0000ff53, 22373 }, /* Right */ + { 0x00000abe, 22379 }, /* rightanglebracket */ + { 0x000008fd, 22397 }, /* rightarrow */ + { 0x00000ba6, 22408 }, /* rightcaret */ + { 0x00000ad3, 22419 }, /* rightdoublequotemark */ + { 0x000008b0, 22440 }, /* rightmiddlecurlybrace */ + { 0x000008b7, 22462 }, /* rightmiddlesummation */ + { 0x00000acd, 22483 }, /* rightopentriangle */ + { 0x00000aeb, 22501 }, /* rightpointer */ + { 0x00000bd8, 22514 }, /* rightshoe */ + { 0x00000ad1, 22524 }, /* rightsinglequotemark */ + { 0x000009f5, 22545 }, /* rightt */ + { 0x00000bfc, 22552 }, /* righttack */ + { 0x0000ff24, 22562 }, /* Romaji */ + { 0x010020a8, 22569 }, /* RupeeSign */ + { 0x00000053, 22579 }, /* S */ + { 0x00000073, 22581 }, /* s */ + { 0x01001e60, 22583 }, /* Sabovedot */ + { 0x01001e61, 22593 }, /* sabovedot */ + { 0x000001a6, 22603 }, /* Sacute */ + { 0x000001b6, 22610 }, /* sacute */ + { 0x000001a9, 22617 }, /* Scaron */ + { 0x000001b9, 22624 }, /* scaron */ + { 0x000001aa, 22631 }, /* Scedilla */ + { 0x000001ba, 22640 }, /* scedilla */ + { 0x0100018f, 22649 }, /* SCHWA */ + { 0x01000259, 22655 }, /* schwa */ + { 0x000002de, 22661 }, /* Scircumflex */ + { 0x000002fe, 22673 }, /* scircumflex */ + { 0x0000ff7e, 22685 }, /* script_switch */ + { 0x0000ff14, 22699 }, /* Scroll_Lock */ + { 0x00000ad7, 22711 }, /* seconds */ + { 0x000000a7, 22719 }, /* section */ + { 0x0000ff60, 22727 }, /* Select */ + { 0x0000003b, 22734 }, /* semicolon */ + { 0x000004df, 22744 }, /* semivoicedsound */ + { 0x000006a1, 22760 }, /* Serbian_dje */ + { 0x000006b1, 22772 }, /* Serbian_DJE */ + { 0x000006af, 22784 }, /* Serbian_dze */ + { 0x000006bf, 22796 }, /* Serbian_DZE */ + { 0x000006a8, 22808 }, /* Serbian_je */ + { 0x000006b8, 22819 }, /* Serbian_JE */ + { 0x000006a9, 22830 }, /* Serbian_lje */ + { 0x000006b9, 22842 }, /* Serbian_LJE */ + { 0x000006aa, 22854 }, /* Serbian_nje */ + { 0x000006ba, 22866 }, /* Serbian_NJE */ + { 0x000006ab, 22878 }, /* Serbian_tshe */ + { 0x000006bb, 22891 }, /* Serbian_TSHE */ + { 0x00000ac6, 22904 }, /* seveneighths */ + { 0x01002087, 22917 }, /* sevensubscript */ + { 0x01002077, 22932 }, /* sevensuperior */ + { 0x0000ffe1, 22946 }, /* Shift_L */ + { 0x0000ffe6, 22954 }, /* Shift_Lock */ + { 0x0000ffe2, 22965 }, /* Shift_R */ + { 0x00000aca, 22973 }, /* signaturemark */ + { 0x00000aac, 22987 }, /* signifblank */ + { 0x000008c9, 22999 }, /* similarequal */ + { 0x0000ff3c, 23012 }, /* SingleCandidate */ + { 0x00000afd, 23028 }, /* singlelowquotemark */ + { 0x01000d85, 23047 }, /* Sinh_a */ + { 0x01000d86, 23054 }, /* Sinh_aa */ + { 0x01000dcf, 23062 }, /* Sinh_aa2 */ + { 0x01000d87, 23071 }, /* Sinh_ae */ + { 0x01000dd0, 23079 }, /* Sinh_ae2 */ + { 0x01000d88, 23088 }, /* Sinh_aee */ + { 0x01000dd1, 23097 }, /* Sinh_aee2 */ + { 0x01000d93, 23107 }, /* Sinh_ai */ + { 0x01000ddb, 23115 }, /* Sinh_ai2 */ + { 0x01000dca, 23124 }, /* Sinh_al */ + { 0x01000d96, 23132 }, /* Sinh_au */ + { 0x01000dde, 23140 }, /* Sinh_au2 */ + { 0x01000db6, 23149 }, /* Sinh_ba */ + { 0x01000db7, 23157 }, /* Sinh_bha */ + { 0x01000da0, 23166 }, /* Sinh_ca */ + { 0x01000da1, 23174 }, /* Sinh_cha */ + { 0x01000da9, 23183 }, /* Sinh_dda */ + { 0x01000daa, 23192 }, /* Sinh_ddha */ + { 0x01000daf, 23202 }, /* Sinh_dha */ + { 0x01000db0, 23211 }, /* Sinh_dhha */ + { 0x01000d91, 23221 }, /* Sinh_e */ + { 0x01000dd9, 23228 }, /* Sinh_e2 */ + { 0x01000d92, 23236 }, /* Sinh_ee */ + { 0x01000dda, 23244 }, /* Sinh_ee2 */ + { 0x01000dc6, 23253 }, /* Sinh_fa */ + { 0x01000d9c, 23261 }, /* Sinh_ga */ + { 0x01000d9d, 23269 }, /* Sinh_gha */ + { 0x01000d83, 23278 }, /* Sinh_h2 */ + { 0x01000dc4, 23286 }, /* Sinh_ha */ + { 0x01000d89, 23294 }, /* Sinh_i */ + { 0x01000dd2, 23301 }, /* Sinh_i2 */ + { 0x01000d8a, 23309 }, /* Sinh_ii */ + { 0x01000dd3, 23317 }, /* Sinh_ii2 */ + { 0x01000da2, 23326 }, /* Sinh_ja */ + { 0x01000da3, 23334 }, /* Sinh_jha */ + { 0x01000da5, 23343 }, /* Sinh_jnya */ + { 0x01000d9a, 23353 }, /* Sinh_ka */ + { 0x01000d9b, 23361 }, /* Sinh_kha */ + { 0x01000df4, 23370 }, /* Sinh_kunddaliya */ + { 0x01000dbd, 23386 }, /* Sinh_la */ + { 0x01000dc5, 23394 }, /* Sinh_lla */ + { 0x01000d8f, 23403 }, /* Sinh_lu */ + { 0x01000ddf, 23411 }, /* Sinh_lu2 */ + { 0x01000d90, 23420 }, /* Sinh_luu */ + { 0x01000df3, 23429 }, /* Sinh_luu2 */ + { 0x01000db8, 23439 }, /* Sinh_ma */ + { 0x01000db9, 23447 }, /* Sinh_mba */ + { 0x01000db1, 23456 }, /* Sinh_na */ + { 0x01000dac, 23464 }, /* Sinh_ndda */ + { 0x01000db3, 23474 }, /* Sinh_ndha */ + { 0x01000d82, 23484 }, /* Sinh_ng */ + { 0x01000d9e, 23492 }, /* Sinh_ng2 */ + { 0x01000d9f, 23501 }, /* Sinh_nga */ + { 0x01000da6, 23510 }, /* Sinh_nja */ + { 0x01000dab, 23519 }, /* Sinh_nna */ + { 0x01000da4, 23528 }, /* Sinh_nya */ + { 0x01000d94, 23537 }, /* Sinh_o */ + { 0x01000ddc, 23544 }, /* Sinh_o2 */ + { 0x01000d95, 23552 }, /* Sinh_oo */ + { 0x01000ddd, 23560 }, /* Sinh_oo2 */ + { 0x01000db4, 23569 }, /* Sinh_pa */ + { 0x01000db5, 23577 }, /* Sinh_pha */ + { 0x01000dbb, 23586 }, /* Sinh_ra */ + { 0x01000d8d, 23594 }, /* Sinh_ri */ + { 0x01000d8e, 23602 }, /* Sinh_rii */ + { 0x01000dd8, 23611 }, /* Sinh_ru2 */ + { 0x01000df2, 23620 }, /* Sinh_ruu2 */ + { 0x01000dc3, 23630 }, /* Sinh_sa */ + { 0x01000dc1, 23638 }, /* Sinh_sha */ + { 0x01000dc2, 23647 }, /* Sinh_ssha */ + { 0x01000dad, 23657 }, /* Sinh_tha */ + { 0x01000dae, 23666 }, /* Sinh_thha */ + { 0x01000da7, 23676 }, /* Sinh_tta */ + { 0x01000da8, 23685 }, /* Sinh_ttha */ + { 0x01000d8b, 23695 }, /* Sinh_u */ + { 0x01000dd4, 23702 }, /* Sinh_u2 */ + { 0x01000d8c, 23710 }, /* Sinh_uu */ + { 0x01000dd6, 23718 }, /* Sinh_uu2 */ + { 0x01000dc0, 23727 }, /* Sinh_va */ + { 0x01000dba, 23735 }, /* Sinh_ya */ + { 0x01002086, 23743 }, /* sixsubscript */ + { 0x01002076, 23756 }, /* sixsuperior */ + { 0x0000002f, 23768 }, /* slash */ + { 0x0000fe73, 23774 }, /* SlowKeys_Enable */ + { 0x000009e0, 23790 }, /* soliddiamond */ + { 0x00000020, 23803 }, /* space */ + { 0x0100221a, 23809 }, /* squareroot */ + { 0x000000df, 23820 }, /* ssharp */ + { 0x000000a3, 23827 }, /* sterling */ + { 0x0000fe75, 23836 }, /* StickyKeys_Enable */ + { 0x01002263, 23854 }, /* stricteq */ + { 0x0000ff66, 23863 }, /* SunAgain */ + { 0x0000ff7e, 23872 }, /* SunAltGraph */ + { 0x1005ff77, 23884 }, /* SunAudioLowerVolume */ + { 0x1005ff78, 23904 }, /* SunAudioMute */ + { 0x1005ff79, 23917 }, /* SunAudioRaiseVolume */ + { 0x0000ff20, 23937 }, /* SunCompose */ + { 0x1005ff72, 23948 }, /* SunCopy */ + { 0x1005ff75, 23956 }, /* SunCut */ + { 0x1005ff10, 23963 }, /* SunF36 */ + { 0x1005ff11, 23970 }, /* SunF37 */ + { 0x1005ff03, 23977 }, /* SunFA_Acute */ + { 0x1005ff05, 23989 }, /* SunFA_Cedilla */ + { 0x1005ff01, 24003 }, /* SunFA_Circum */ + { 0x1005ff04, 24016 }, /* SunFA_Diaeresis */ + { 0x1005ff00, 24032 }, /* SunFA_Grave */ + { 0x1005ff02, 24044 }, /* SunFA_Tilde */ + { 0x0000ff68, 24056 }, /* SunFind */ + { 0x1005ff71, 24064 }, /* SunFront */ + { 0x1005ff73, 24073 }, /* SunOpen */ + { 0x0000ff56, 24081 }, /* SunPageDown */ + { 0x0000ff55, 24093 }, /* SunPageUp */ + { 0x1005ff74, 24103 }, /* SunPaste */ + { 0x1005ff76, 24112 }, /* SunPowerSwitch */ + { 0x1005ff7d, 24127 }, /* SunPowerSwitchShift */ + { 0x0000ff61, 24147 }, /* SunPrint_Screen */ + { 0x1005ff70, 24163 }, /* SunProps */ + { 0x0000ff69, 24172 }, /* SunStop */ + { 0x1005ff60, 24180 }, /* SunSys_Req */ + { 0x0000ff65, 24191 }, /* SunUndo */ + { 0x1005ff7a, 24199 }, /* SunVideoDegauss */ + { 0x1005ff7b, 24215 }, /* SunVideoLowerBrightness */ + { 0x1005ff7c, 24239 }, /* SunVideoRaiseBrightness */ + { 0x0000ffeb, 24263 }, /* Super_L */ + { 0x0000ffec, 24271 }, /* Super_R */ + { 0x0000ff15, 24279 }, /* Sys_Req */ + { 0x1000ff6d, 24287 }, /* System */ + { 0x00000054, 24294 }, /* T */ + { 0x00000074, 24296 }, /* t */ + { 0x0000ff09, 24298 }, /* Tab */ + { 0x01001e6a, 24302 }, /* Tabovedot */ + { 0x01001e6b, 24312 }, /* tabovedot */ + { 0x000001ab, 24322 }, /* Tcaron */ + { 0x000001bb, 24329 }, /* tcaron */ + { 0x000001de, 24336 }, /* Tcedilla */ + { 0x000001fe, 24345 }, /* tcedilla */ + { 0x00000af9, 24354 }, /* telephone */ + { 0x00000afa, 24364 }, /* telephonerecorder */ + { 0x0000fed5, 24382 }, /* Terminate_Server */ + { 0x00000ddf, 24399 }, /* Thai_baht */ + { 0x00000dba, 24409 }, /* Thai_bobaimai */ + { 0x00000da8, 24423 }, /* Thai_chochan */ + { 0x00000daa, 24436 }, /* Thai_chochang */ + { 0x00000da9, 24450 }, /* Thai_choching */ + { 0x00000dac, 24464 }, /* Thai_chochoe */ + { 0x00000dae, 24477 }, /* Thai_dochada */ + { 0x00000db4, 24490 }, /* Thai_dodek */ + { 0x00000dbd, 24501 }, /* Thai_fofa */ + { 0x00000dbf, 24511 }, /* Thai_fofan */ + { 0x00000dcb, 24522 }, /* Thai_hohip */ + { 0x00000dce, 24533 }, /* Thai_honokhuk */ + { 0x00000da2, 24547 }, /* Thai_khokhai */ + { 0x00000da5, 24560 }, /* Thai_khokhon */ + { 0x00000da3, 24573 }, /* Thai_khokhuat */ + { 0x00000da4, 24587 }, /* Thai_khokhwai */ + { 0x00000da6, 24601 }, /* Thai_khorakhang */ + { 0x00000da1, 24617 }, /* Thai_kokai */ + { 0x00000de5, 24628 }, /* Thai_lakkhangyao */ + { 0x00000df7, 24645 }, /* Thai_lekchet */ + { 0x00000df5, 24658 }, /* Thai_lekha */ + { 0x00000df6, 24669 }, /* Thai_lekhok */ + { 0x00000df9, 24681 }, /* Thai_lekkao */ + { 0x00000df1, 24693 }, /* Thai_leknung */ + { 0x00000df8, 24706 }, /* Thai_lekpaet */ + { 0x00000df3, 24719 }, /* Thai_leksam */ + { 0x00000df4, 24731 }, /* Thai_leksi */ + { 0x00000df2, 24742 }, /* Thai_leksong */ + { 0x00000df0, 24755 }, /* Thai_leksun */ + { 0x00000dcc, 24767 }, /* Thai_lochula */ + { 0x00000dc5, 24780 }, /* Thai_loling */ + { 0x00000dc6, 24792 }, /* Thai_lu */ + { 0x00000deb, 24800 }, /* Thai_maichattawa */ + { 0x00000de8, 24817 }, /* Thai_maiek */ + { 0x00000dd1, 24828 }, /* Thai_maihanakat */ + { 0x00000dde, 24844 }, /* Thai_maihanakat_maitho */ + { 0x00000de7, 24867 }, /* Thai_maitaikhu */ + { 0x00000de9, 24882 }, /* Thai_maitho */ + { 0x00000dea, 24894 }, /* Thai_maitri */ + { 0x00000de6, 24906 }, /* Thai_maiyamok */ + { 0x00000dc1, 24920 }, /* Thai_moma */ + { 0x00000da7, 24930 }, /* Thai_ngongu */ + { 0x00000ded, 24942 }, /* Thai_nikhahit */ + { 0x00000db3, 24956 }, /* Thai_nonen */ + { 0x00000db9, 24967 }, /* Thai_nonu */ + { 0x00000dcd, 24977 }, /* Thai_oang */ + { 0x00000dcf, 24987 }, /* Thai_paiyannoi */ + { 0x00000dda, 25002 }, /* Thai_phinthu */ + { 0x00000dbe, 25015 }, /* Thai_phophan */ + { 0x00000dbc, 25028 }, /* Thai_phophung */ + { 0x00000dc0, 25042 }, /* Thai_phosamphao */ + { 0x00000dbb, 25058 }, /* Thai_popla */ + { 0x00000dc3, 25069 }, /* Thai_rorua */ + { 0x00000dc4, 25080 }, /* Thai_ru */ + { 0x00000dd0, 25088 }, /* Thai_saraa */ + { 0x00000dd2, 25099 }, /* Thai_saraaa */ + { 0x00000de1, 25111 }, /* Thai_saraae */ + { 0x00000de4, 25123 }, /* Thai_saraaimaimalai */ + { 0x00000de3, 25143 }, /* Thai_saraaimaimuan */ + { 0x00000dd3, 25162 }, /* Thai_saraam */ + { 0x00000de0, 25174 }, /* Thai_sarae */ + { 0x00000dd4, 25185 }, /* Thai_sarai */ + { 0x00000dd5, 25196 }, /* Thai_saraii */ + { 0x00000de2, 25208 }, /* Thai_sarao */ + { 0x00000dd8, 25219 }, /* Thai_sarau */ + { 0x00000dd6, 25230 }, /* Thai_saraue */ + { 0x00000dd7, 25242 }, /* Thai_sarauee */ + { 0x00000dd9, 25255 }, /* Thai_sarauu */ + { 0x00000dc9, 25267 }, /* Thai_sorusi */ + { 0x00000dc8, 25279 }, /* Thai_sosala */ + { 0x00000dab, 25291 }, /* Thai_soso */ + { 0x00000dca, 25301 }, /* Thai_sosua */ + { 0x00000dec, 25312 }, /* Thai_thanthakhat */ + { 0x00000db1, 25329 }, /* Thai_thonangmontho */ + { 0x00000db2, 25348 }, /* Thai_thophuthao */ + { 0x00000db7, 25364 }, /* Thai_thothahan */ + { 0x00000db0, 25379 }, /* Thai_thothan */ + { 0x00000db8, 25392 }, /* Thai_thothong */ + { 0x00000db6, 25406 }, /* Thai_thothung */ + { 0x00000daf, 25420 }, /* Thai_topatak */ + { 0x00000db5, 25433 }, /* Thai_totao */ + { 0x00000dc7, 25444 }, /* Thai_wowaen */ + { 0x00000dc2, 25456 }, /* Thai_yoyak */ + { 0x00000dad, 25467 }, /* Thai_yoying */ + { 0x000008c0, 25479 }, /* therefore */ + { 0x00000aa7, 25489 }, /* thinspace */ + { 0x000000de, 25499 }, /* THORN */ + { 0x000000de, 25505 }, /* Thorn */ + { 0x000000fe, 25511 }, /* thorn */ + { 0x00000ac4, 25517 }, /* threeeighths */ + { 0x00000ab4, 25530 }, /* threefifths */ + { 0x000000be, 25542 }, /* threequarters */ + { 0x01002083, 25556 }, /* threesubscript */ + { 0x000000b3, 25571 }, /* threesuperior */ + { 0x0100222d, 25585 }, /* tintegral */ + { 0x000008a4, 25595 }, /* topintegral */ + { 0x000008ab, 25607 }, /* topleftparens */ + { 0x000008a2, 25621 }, /* topleftradical */ + { 0x000008a7, 25636 }, /* topleftsqbracket */ + { 0x000008b1, 25653 }, /* topleftsummation */ + { 0x000008ad, 25670 }, /* toprightparens */ + { 0x000008a9, 25685 }, /* toprightsqbracket */ + { 0x000008b5, 25703 }, /* toprightsummation */ + { 0x000009f7, 25721 }, /* topt */ + { 0x000008b3, 25726 }, /* topvertsummationconnector */ + { 0x0000ff2b, 25752 }, /* Touroku */ + { 0x00000ac9, 25760 }, /* trademark */ + { 0x00000acb, 25770 }, /* trademarkincircle */ + { 0x000003ac, 25788 }, /* Tslash */ + { 0x000003bc, 25795 }, /* tslash */ + { 0x00000ab3, 25802 }, /* twofifths */ + { 0x01002082, 25812 }, /* twosubscript */ + { 0x000000b2, 25825 }, /* twosuperior */ + { 0x00000ab1, 25837 }, /* twothirds */ + { 0x00000055, 25847 }, /* U */ + { 0x00000075, 25849 }, /* u */ + { 0x000000da, 25851 }, /* Uacute */ + { 0x000000fa, 25858 }, /* uacute */ + { 0x01001ee4, 25865 }, /* Ubelowdot */ + { 0x01001ee5, 25875 }, /* ubelowdot */ + { 0x000002dd, 25885 }, /* Ubreve */ + { 0x000002fd, 25892 }, /* ubreve */ + { 0x000000db, 25899 }, /* Ucircumflex */ + { 0x000000fb, 25911 }, /* ucircumflex */ + { 0x000000dc, 25923 }, /* Udiaeresis */ + { 0x000000fc, 25934 }, /* udiaeresis */ + { 0x000001db, 25945 }, /* Udoubleacute */ + { 0x000001fb, 25958 }, /* udoubleacute */ + { 0x000000d9, 25971 }, /* Ugrave */ + { 0x000000f9, 25978 }, /* ugrave */ + { 0x01001ee6, 25985 }, /* Uhook */ + { 0x01001ee7, 25991 }, /* uhook */ + { 0x010001af, 25997 }, /* Uhorn */ + { 0x010001b0, 26003 }, /* uhorn */ + { 0x01001ee8, 26009 }, /* Uhornacute */ + { 0x01001ee9, 26020 }, /* uhornacute */ + { 0x01001ef0, 26031 }, /* Uhornbelowdot */ + { 0x01001ef1, 26045 }, /* uhornbelowdot */ + { 0x01001eea, 26059 }, /* Uhorngrave */ + { 0x01001eeb, 26070 }, /* uhorngrave */ + { 0x01001eec, 26081 }, /* Uhornhook */ + { 0x01001eed, 26091 }, /* uhornhook */ + { 0x01001eee, 26101 }, /* Uhorntilde */ + { 0x01001eef, 26112 }, /* uhorntilde */ + { 0x000006ad, 26123 }, /* Ukrainian_ghe_with_upturn */ + { 0x000006bd, 26149 }, /* Ukrainian_GHE_WITH_UPTURN */ + { 0x000006a6, 26175 }, /* Ukrainian_i */ + { 0x000006b6, 26187 }, /* Ukrainian_I */ + { 0x000006a4, 26199 }, /* Ukrainian_ie */ + { 0x000006b4, 26212 }, /* Ukrainian_IE */ + { 0x000006a7, 26225 }, /* Ukrainian_yi */ + { 0x000006b7, 26238 }, /* Ukrainian_YI */ + { 0x000006a6, 26251 }, /* Ukranian_i */ + { 0x000006b6, 26262 }, /* Ukranian_I */ + { 0x000006a4, 26273 }, /* Ukranian_je */ + { 0x000006b4, 26285 }, /* Ukranian_JE */ + { 0x000006a7, 26297 }, /* Ukranian_yi */ + { 0x000006b7, 26309 }, /* Ukranian_YI */ + { 0x000003de, 26321 }, /* Umacron */ + { 0x000003fe, 26329 }, /* umacron */ + { 0x00000bc6, 26337 }, /* underbar */ + { 0x0000005f, 26346 }, /* underscore */ + { 0x0000ff65, 26357 }, /* Undo */ + { 0x000008dd, 26362 }, /* union */ + { 0x000003d9, 26368 }, /* Uogonek */ + { 0x000003f9, 26376 }, /* uogonek */ + { 0x0000ff52, 26384 }, /* Up */ + { 0x000008fc, 26387 }, /* uparrow */ + { 0x00000ba9, 26395 }, /* upcaret */ + { 0x000009ec, 26403 }, /* upleftcorner */ + { 0x000009eb, 26416 }, /* uprightcorner */ + { 0x00000bc3, 26430 }, /* upshoe */ + { 0x00000bd3, 26437 }, /* upstile */ + { 0x00000bce, 26445 }, /* uptack */ + { 0x000001d9, 26452 }, /* Uring */ + { 0x000001f9, 26458 }, /* uring */ + { 0x1000ff6e, 26464 }, /* User */ + { 0x000003dd, 26469 }, /* Utilde */ + { 0x000003fd, 26476 }, /* utilde */ + { 0x00000056, 26483 }, /* V */ + { 0x00000076, 26485 }, /* v */ + { 0x000008c1, 26487 }, /* variation */ + { 0x000009f8, 26497 }, /* vertbar */ + { 0x000008a6, 26505 }, /* vertconnector */ + { 0x000004de, 26519 }, /* voicedsound */ + { 0x00ffffff, 26531 }, /* VoidSymbol */ + { 0x000009e9, 26542 }, /* vt */ + { 0x00000057, 26545 }, /* W */ + { 0x00000077, 26547 }, /* w */ + { 0x01001e82, 26549 }, /* Wacute */ + { 0x01001e83, 26556 }, /* wacute */ + { 0x01000174, 26563 }, /* Wcircumflex */ + { 0x01000175, 26575 }, /* wcircumflex */ + { 0x01001e84, 26587 }, /* Wdiaeresis */ + { 0x01001e85, 26598 }, /* wdiaeresis */ + { 0x01001e80, 26609 }, /* Wgrave */ + { 0x01001e81, 26616 }, /* wgrave */ + { 0x010020a9, 26623 }, /* WonSign */ + { 0x00000058, 26631 }, /* X */ + { 0x00000078, 26633 }, /* x */ + { 0x01001e8a, 26635 }, /* Xabovedot */ + { 0x01001e8b, 26645 }, /* xabovedot */ + { 0x1008ff39, 26655 }, /* XF86AddFavorite */ + { 0x1008ff50, 26671 }, /* XF86ApplicationLeft */ + { 0x1008ff51, 26691 }, /* XF86ApplicationRight */ + { 0x1008ff9b, 26712 }, /* XF86AudioCycleTrack */ + { 0x1008ff97, 26732 }, /* XF86AudioForward */ + { 0x1008ff11, 26749 }, /* XF86AudioLowerVolume */ + { 0x1008ff32, 26770 }, /* XF86AudioMedia */ + { 0x1008ffb2, 26785 }, /* XF86AudioMicMute */ + { 0x1008ff12, 26802 }, /* XF86AudioMute */ + { 0x1008ff17, 26816 }, /* XF86AudioNext */ + { 0x1008ff31, 26830 }, /* XF86AudioPause */ + { 0x1008ff14, 26845 }, /* XF86AudioPlay */ + { 0x1008ff16, 26859 }, /* XF86AudioPrev */ + { 0x1008ff13, 26873 }, /* XF86AudioRaiseVolume */ + { 0x1008ff99, 26894 }, /* XF86AudioRandomPlay */ + { 0x1008ff1c, 26914 }, /* XF86AudioRecord */ + { 0x1008ff98, 26930 }, /* XF86AudioRepeat */ + { 0x1008ff3e, 26946 }, /* XF86AudioRewind */ + { 0x1008ff15, 26962 }, /* XF86AudioStop */ + { 0x1008ff8d, 26976 }, /* XF86Away */ + { 0x1008ff26, 26985 }, /* XF86Back */ + { 0x1008ff3f, 26994 }, /* XF86BackForward */ + { 0x1008ff93, 27010 }, /* XF86Battery */ + { 0x1008ffa6, 27022 }, /* XF86Blue */ + { 0x1008ff94, 27031 }, /* XF86Bluetooth */ + { 0x1008ff52, 27045 }, /* XF86Book */ + { 0x1008ff3b, 27054 }, /* XF86BrightnessAdjust */ + { 0x1008ff54, 27075 }, /* XF86Calculater */ + { 0x1008ff1d, 27090 }, /* XF86Calculator */ + { 0x1008ff20, 27105 }, /* XF86Calendar */ + { 0x1008ff53, 27118 }, /* XF86CD */ + { 0x1008ff55, 27125 }, /* XF86Clear */ + { 0x1008fe21, 27135 }, /* XF86ClearGrab */ + { 0x1008ff56, 27149 }, /* XF86Close */ + { 0x1008ff3d, 27159 }, /* XF86Community */ + { 0x1008ff22, 27173 }, /* XF86ContrastAdjust */ + { 0x1008ff57, 27192 }, /* XF86Copy */ + { 0x1008ff58, 27201 }, /* XF86Cut */ + { 0x1008ff9c, 27209 }, /* XF86CycleAngle */ + { 0x1008ff59, 27224 }, /* XF86Display */ + { 0x1008ff5b, 27236 }, /* XF86Documents */ + { 0x1008ff5a, 27250 }, /* XF86DOS */ + { 0x1008ff2c, 27258 }, /* XF86Eject */ + { 0x1008ff5c, 27268 }, /* XF86Excel */ + { 0x1008ff5d, 27278 }, /* XF86Explorer */ + { 0x1008ff30, 27291 }, /* XF86Favorites */ + { 0x1008ff3c, 27305 }, /* XF86Finance */ + { 0x1008ff27, 27317 }, /* XF86Forward */ + { 0x1008ff9d, 27329 }, /* XF86FrameBack */ + { 0x1008ff9e, 27343 }, /* XF86FrameForward */ + { 0x1008ff5e, 27360 }, /* XF86Game */ + { 0x1008ff5f, 27369 }, /* XF86Go */ + { 0x1008ffa4, 27376 }, /* XF86Green */ + { 0x1008ffa8, 27386 }, /* XF86Hibernate */ + { 0x1008ff37, 27400 }, /* XF86History */ + { 0x1008ff18, 27412 }, /* XF86HomePage */ + { 0x1008ff3a, 27425 }, /* XF86HotLinks */ + { 0x1008ff60, 27438 }, /* XF86iTouch */ + { 0x1008ff06, 27449 }, /* XF86KbdBrightnessDown */ + { 0x1008ff05, 27471 }, /* XF86KbdBrightnessUp */ + { 0x1008ff04, 27491 }, /* XF86KbdLightOnOff */ + { 0x1008ff40, 27509 }, /* XF86Launch0 */ + { 0x1008ff41, 27521 }, /* XF86Launch1 */ + { 0x1008ff42, 27533 }, /* XF86Launch2 */ + { 0x1008ff43, 27545 }, /* XF86Launch3 */ + { 0x1008ff44, 27557 }, /* XF86Launch4 */ + { 0x1008ff45, 27569 }, /* XF86Launch5 */ + { 0x1008ff46, 27581 }, /* XF86Launch6 */ + { 0x1008ff47, 27593 }, /* XF86Launch7 */ + { 0x1008ff48, 27605 }, /* XF86Launch8 */ + { 0x1008ff49, 27617 }, /* XF86Launch9 */ + { 0x1008ff4a, 27629 }, /* XF86LaunchA */ + { 0x1008ff4b, 27641 }, /* XF86LaunchB */ + { 0x1008ff4c, 27653 }, /* XF86LaunchC */ + { 0x1008ff4d, 27665 }, /* XF86LaunchD */ + { 0x1008ff4e, 27677 }, /* XF86LaunchE */ + { 0x1008ff4f, 27689 }, /* XF86LaunchF */ + { 0x1008ff35, 27701 }, /* XF86LightBulb */ + { 0x1008fe25, 27715 }, /* XF86LogGrabInfo */ + { 0x1008ff61, 27731 }, /* XF86LogOff */ + { 0x1008fe24, 27742 }, /* XF86LogWindowTree */ + { 0x1008ff19, 27760 }, /* XF86Mail */ + { 0x1008ff90, 27769 }, /* XF86MailForward */ + { 0x1008ff62, 27785 }, /* XF86Market */ + { 0x1008ff63, 27796 }, /* XF86Meeting */ + { 0x1008ff1e, 27808 }, /* XF86Memo */ + { 0x1008ff65, 27817 }, /* XF86MenuKB */ + { 0x1008ff66, 27828 }, /* XF86MenuPB */ + { 0x1008ff8e, 27839 }, /* XF86Messenger */ + { 0x1008ff01, 27853 }, /* XF86ModeLock */ + { 0x1008ff03, 27866 }, /* XF86MonBrightnessDown */ + { 0x1008ff02, 27888 }, /* XF86MonBrightnessUp */ + { 0x1008ff92, 27908 }, /* XF86Music */ + { 0x1008ff33, 27918 }, /* XF86MyComputer */ + { 0x1008ff67, 27933 }, /* XF86MySites */ + { 0x1008ff68, 27945 }, /* XF86New */ + { 0x1008ff69, 27953 }, /* XF86News */ + { 0x1008fe22, 27962 }, /* XF86Next_VMode */ + { 0x1008ff6a, 27977 }, /* XF86OfficeHome */ + { 0x1008ff6b, 27992 }, /* XF86Open */ + { 0x1008ff38, 28001 }, /* XF86OpenURL */ + { 0x1008ff6c, 28013 }, /* XF86Option */ + { 0x1008ff6d, 28024 }, /* XF86Paste */ + { 0x1008ff6e, 28034 }, /* XF86Phone */ + { 0x1008ff91, 28044 }, /* XF86Pictures */ + { 0x1008ff21, 28057 }, /* XF86PowerDown */ + { 0x1008ff2a, 28071 }, /* XF86PowerOff */ + { 0x1008fe23, 28084 }, /* XF86Prev_VMode */ + { 0x1008ff70, 28099 }, /* XF86Q */ + { 0x1008ffa3, 28105 }, /* XF86Red */ + { 0x1008ff29, 28113 }, /* XF86Refresh */ + { 0x1008ff73, 28125 }, /* XF86Reload */ + { 0x1008ff72, 28136 }, /* XF86Reply */ + { 0x1008ff24, 28146 }, /* XF86RockerDown */ + { 0x1008ff25, 28161 }, /* XF86RockerEnter */ + { 0x1008ff23, 28177 }, /* XF86RockerUp */ + { 0x1008ff74, 28190 }, /* XF86RotateWindows */ + { 0x1008ff76, 28208 }, /* XF86RotationKB */ + { 0x1008ff75, 28223 }, /* XF86RotationPB */ + { 0x1008ff77, 28238 }, /* XF86Save */ + { 0x1008ff2d, 28247 }, /* XF86ScreenSaver */ + { 0x1008ff7a, 28263 }, /* XF86ScrollClick */ + { 0x1008ff79, 28279 }, /* XF86ScrollDown */ + { 0x1008ff78, 28294 }, /* XF86ScrollUp */ + { 0x1008ff1b, 28307 }, /* XF86Search */ + { 0x1008ffa0, 28318 }, /* XF86Select */ + { 0x1008ff7b, 28329 }, /* XF86Send */ + { 0x1008ff36, 28338 }, /* XF86Shop */ + { 0x1008ff2f, 28347 }, /* XF86Sleep */ + { 0x1008ff7c, 28357 }, /* XF86Spell */ + { 0x1008ff7d, 28367 }, /* XF86SplitScreen */ + { 0x1008ff10, 28383 }, /* XF86Standby */ + { 0x1008ff1a, 28395 }, /* XF86Start */ + { 0x1008ff28, 28405 }, /* XF86Stop */ + { 0x1008ff9a, 28414 }, /* XF86Subtitle */ + { 0x1008ff7e, 28427 }, /* XF86Support */ + { 0x1008ffa7, 28439 }, /* XF86Suspend */ + { 0x1008fe01, 28451 }, /* XF86Switch_VT_1 */ + { 0x1008fe0a, 28467 }, /* XF86Switch_VT_10 */ + { 0x1008fe0b, 28484 }, /* XF86Switch_VT_11 */ + { 0x1008fe0c, 28501 }, /* XF86Switch_VT_12 */ + { 0x1008fe02, 28518 }, /* XF86Switch_VT_2 */ + { 0x1008fe03, 28534 }, /* XF86Switch_VT_3 */ + { 0x1008fe04, 28550 }, /* XF86Switch_VT_4 */ + { 0x1008fe05, 28566 }, /* XF86Switch_VT_5 */ + { 0x1008fe06, 28582 }, /* XF86Switch_VT_6 */ + { 0x1008fe07, 28598 }, /* XF86Switch_VT_7 */ + { 0x1008fe08, 28614 }, /* XF86Switch_VT_8 */ + { 0x1008fe09, 28630 }, /* XF86Switch_VT_9 */ + { 0x1008ff7f, 28646 }, /* XF86TaskPane */ + { 0x1008ff80, 28659 }, /* XF86Terminal */ + { 0x1008ff9f, 28672 }, /* XF86Time */ + { 0x1008ff1f, 28681 }, /* XF86ToDoList */ + { 0x1008ff81, 28694 }, /* XF86Tools */ + { 0x1008ffa2, 28704 }, /* XF86TopMenu */ + { 0x1008ffb1, 28716 }, /* XF86TouchpadOff */ + { 0x1008ffb0, 28732 }, /* XF86TouchpadOn */ + { 0x1008ffa9, 28747 }, /* XF86TouchpadToggle */ + { 0x1008ff82, 28766 }, /* XF86Travel */ + { 0x1008fe20, 28777 }, /* XF86Ungrab */ + { 0x1008ff85, 28788 }, /* XF86User1KB */ + { 0x1008ff86, 28800 }, /* XF86User2KB */ + { 0x1008ff84, 28812 }, /* XF86UserPB */ + { 0x1008ff96, 28823 }, /* XF86UWB */ + { 0x1008ff34, 28831 }, /* XF86VendorHome */ + { 0x1008ff87, 28846 }, /* XF86Video */ + { 0x1008ffa1, 28856 }, /* XF86View */ + { 0x1008ff2b, 28865 }, /* XF86WakeUp */ + { 0x1008ff8f, 28876 }, /* XF86WebCam */ + { 0x1008ff88, 28887 }, /* XF86WheelButton */ + { 0x1008ff95, 28903 }, /* XF86WLAN */ + { 0x1008ff89, 28912 }, /* XF86Word */ + { 0x1008ff2e, 28921 }, /* XF86WWW */ + { 0x1008ff8a, 28929 }, /* XF86Xfer */ + { 0x1008ffa5, 28938 }, /* XF86Yellow */ + { 0x1008ff8b, 28949 }, /* XF86ZoomIn */ + { 0x1008ff8c, 28960 }, /* XF86ZoomOut */ + { 0x00000059, 28972 }, /* Y */ + { 0x00000079, 28974 }, /* y */ + { 0x000000dd, 28976 }, /* Yacute */ + { 0x000000fd, 28983 }, /* yacute */ + { 0x01001ef4, 28990 }, /* Ybelowdot */ + { 0x01001ef5, 29000 }, /* ybelowdot */ + { 0x01000176, 29010 }, /* Ycircumflex */ + { 0x01000177, 29022 }, /* ycircumflex */ + { 0x000000ff, 29034 }, /* ydiaeresis */ + { 0x000013be, 29045 }, /* Ydiaeresis */ + { 0x000000a5, 29056 }, /* yen */ + { 0x01001ef2, 29060 }, /* Ygrave */ + { 0x01001ef3, 29067 }, /* ygrave */ + { 0x01001ef6, 29074 }, /* Yhook */ + { 0x01001ef7, 29080 }, /* yhook */ + { 0x01001ef8, 29086 }, /* Ytilde */ + { 0x01001ef9, 29093 }, /* ytilde */ + { 0x0000005a, 29100 }, /* Z */ + { 0x0000007a, 29102 }, /* z */ + { 0x000001af, 29104 }, /* Zabovedot */ + { 0x000001bf, 29114 }, /* zabovedot */ + { 0x000001ac, 29124 }, /* Zacute */ + { 0x000001bc, 29131 }, /* zacute */ + { 0x000001ae, 29138 }, /* Zcaron */ + { 0x000001be, 29145 }, /* zcaron */ + { 0x0000ff3d, 29152 }, /* Zen_Koho */ + { 0x0000ff28, 29161 }, /* Zenkaku */ + { 0x0000ff2a, 29169 }, /* Zenkaku_Hankaku */ + { 0x01002080, 29185 }, /* zerosubscript */ + { 0x01002070, 29199 }, /* zerosuperior */ + { 0x010001b5, 29212 }, /* Zstroke */ + { 0x010001b6, 29220 }, /* zstroke */ +}; + +static const struct name_keysym keysym_to_name[] = { + { 0x00000000, 20091 }, /* NoSymbol */ + { 0x00000020, 23803 }, /* space */ + { 0x00000021, 12099 }, /* exclam */ + { 0x00000022, 22187 }, /* quotedbl */ + { 0x00000023, 20178 }, /* numbersign */ + { 0x00000024, 11251 }, /* dollar */ + { 0x00000025, 21487 }, /* percent */ + { 0x00000026, 908 }, /* ampersand */ + { 0x00000027, 934 }, /* apostrophe */ + { 0x00000028, 21425 }, /* parenleft */ + { 0x00000029, 21435 }, /* parenright */ + { 0x0000002a, 3283 }, /* asterisk */ + { 0x0000002b, 21557 }, /* plus */ + { 0x0000002c, 8680 }, /* comma */ + { 0x0000002d, 19733 }, /* minus */ + { 0x0000002e, 21495 }, /* period */ + { 0x0000002f, 23768 }, /* slash */ + { 0x00000030, 0 }, /* 0 */ + { 0x00000031, 2 }, /* 1 */ + { 0x00000032, 4 }, /* 2 */ + { 0x00000033, 6 }, /* 3 */ + { 0x00000034, 386 }, /* 4 */ + { 0x00000035, 388 }, /* 5 */ + { 0x00000036, 390 }, /* 6 */ + { 0x00000037, 392 }, /* 7 */ + { 0x00000038, 394 }, /* 8 */ + { 0x00000039, 396 }, /* 9 */ + { 0x0000003a, 8664 }, /* colon */ + { 0x0000003b, 22734 }, /* semicolon */ + { 0x0000003c, 19412 }, /* less */ + { 0x0000003d, 12051 }, /* equal */ + { 0x0000003e, 13272 }, /* greater */ + { 0x0000003f, 22165 }, /* question */ + { 0x00000040, 3292 }, /* at */ + { 0x00000041, 398 }, /* A */ + { 0x00000042, 3328 }, /* B */ + { 0x00000043, 8439 }, /* C */ + { 0x00000044, 10320 }, /* D */ + { 0x00000045, 11424 }, /* E */ + { 0x00000046, 12155 }, /* F */ + { 0x00000047, 12665 }, /* G */ + { 0x00000048, 14378 }, /* H */ + { 0x00000049, 17069 }, /* I */ + { 0x0000004a, 18114 }, /* J */ + { 0x0000004b, 18146 }, /* K */ + { 0x0000004c, 19112 }, /* L */ + { 0x0000004d, 19533 }, /* M */ + { 0x0000004e, 19943 }, /* N */ + { 0x0000004f, 20200 }, /* O */ + { 0x00000050, 21373 }, /* P */ + { 0x00000051, 22156 }, /* Q */ + { 0x00000052, 22217 }, /* R */ + { 0x00000053, 22579 }, /* S */ + { 0x00000054, 24294 }, /* T */ + { 0x00000055, 25847 }, /* U */ + { 0x00000056, 26483 }, /* V */ + { 0x00000057, 26545 }, /* W */ + { 0x00000058, 26631 }, /* X */ + { 0x00000059, 28972 }, /* Y */ + { 0x0000005a, 29100 }, /* Z */ + { 0x0000005b, 3603 }, /* bracketleft */ + { 0x0000005c, 3352 }, /* backslash */ + { 0x0000005d, 3615 }, /* bracketright */ + { 0x0000005e, 3260 }, /* asciicircum */ + { 0x0000005f, 26346 }, /* underscore */ + { 0x00000060, 13266 }, /* grave */ + { 0x00000061, 400 }, /* a */ + { 0x00000062, 3330 }, /* b */ + { 0x00000063, 8441 }, /* c */ + { 0x00000064, 10322 }, /* d */ + { 0x00000065, 11426 }, /* e */ + { 0x00000066, 12157 }, /* f */ + { 0x00000067, 12667 }, /* g */ + { 0x00000068, 14380 }, /* h */ + { 0x00000069, 17071 }, /* i */ + { 0x0000006a, 18116 }, /* j */ + { 0x0000006b, 18148 }, /* k */ + { 0x0000006c, 19114 }, /* l */ + { 0x0000006d, 19535 }, /* m */ + { 0x0000006e, 19945 }, /* n */ + { 0x0000006f, 20202 }, /* o */ + { 0x00000070, 21375 }, /* p */ + { 0x00000071, 22158 }, /* q */ + { 0x00000072, 22219 }, /* r */ + { 0x00000073, 22581 }, /* s */ + { 0x00000074, 24296 }, /* t */ + { 0x00000075, 25849 }, /* u */ + { 0x00000076, 26485 }, /* v */ + { 0x00000077, 26547 }, /* w */ + { 0x00000078, 26633 }, /* x */ + { 0x00000079, 28974 }, /* y */ + { 0x0000007a, 29102 }, /* z */ + { 0x0000007b, 3582 }, /* braceleft */ + { 0x0000007c, 3392 }, /* bar */ + { 0x0000007d, 3592 }, /* braceright */ + { 0x0000007e, 3272 }, /* asciitilde */ + { 0x000000a0, 20078 }, /* nobreakspace */ + { 0x000000a1, 12106 }, /* exclamdown */ + { 0x000000a2, 8589 }, /* cent */ + { 0x000000a3, 23827 }, /* sterling */ + { 0x000000a4, 8766 }, /* currency */ + { 0x000000a5, 29056 }, /* yen */ + { 0x000000a6, 8389 }, /* brokenbar */ + { 0x000000a7, 22719 }, /* section */ + { 0x000000a8, 11203 }, /* diaeresis */ + { 0x000000a9, 8717 }, /* copyright */ + { 0x000000aa, 20852 }, /* ordfeminine */ + { 0x000000ab, 14349 }, /* guillemotleft */ + { 0x000000ac, 20147 }, /* notsign */ + { 0x000000ad, 17062 }, /* hyphen */ + { 0x000000ae, 22331 }, /* registered */ + { 0x000000af, 19641 }, /* macron */ + { 0x000000b0, 11153 }, /* degree */ + { 0x000000b1, 21562 }, /* plusminus */ + { 0x000000b2, 25825 }, /* twosuperior */ + { 0x000000b3, 25571 }, /* threesuperior */ + { 0x000000b4, 820 }, /* acute */ + { 0x000000b5, 19799 }, /* mu */ + { 0x000000b6, 21415 }, /* paragraph */ + { 0x000000b7, 21502 }, /* periodcentered */ + { 0x000000b8, 8581 }, /* cedilla */ + { 0x000000b9, 20755 }, /* onesuperior */ + { 0x000000ba, 19688 }, /* masculine */ + { 0x000000bb, 14363 }, /* guillemotright */ + { 0x000000bc, 20722 }, /* onequarter */ + { 0x000000bd, 20714 }, /* onehalf */ + { 0x000000be, 25542 }, /* threequarters */ + { 0x000000bf, 22174 }, /* questiondown */ + { 0x000000c0, 854 }, /* Agrave */ + { 0x000000c1, 402 }, /* Aacute */ + { 0x000000c2, 622 }, /* Acircumflex */ + { 0x000000c3, 3295 }, /* Atilde */ + { 0x000000c4, 826 }, /* Adiaeresis */ + { 0x000000c5, 2036 }, /* Aring */ + { 0x000000c6, 848 }, /* AE */ + { 0x000000c7, 8539 }, /* Ccedilla */ + { 0x000000c8, 11724 }, /* Egrave */ + { 0x000000c9, 11448 }, /* Eacute */ + { 0x000000ca, 11496 }, /* Ecircumflex */ + { 0x000000cb, 11702 }, /* Ediaeresis */ + { 0x000000cc, 17205 }, /* Igrave */ + { 0x000000cd, 17083 }, /* Iacute */ + { 0x000000ce, 17131 }, /* Icircumflex */ + { 0x000000cf, 17165 }, /* Idiaeresis */ + { 0x000000d0, 12064 }, /* ETH */ + { 0x000000d1, 20155 }, /* Ntilde */ + { 0x000000d2, 20527 }, /* Ograve */ + { 0x000000d3, 20204 }, /* Oacute */ + { 0x000000d4, 20268 }, /* Ocircumflex */ + { 0x000000d5, 21310 }, /* Otilde */ + { 0x000000d6, 20466 }, /* Odiaeresis */ + { 0x000000d7, 19839 }, /* multiply */ + { 0x000000d8, 21296 }, /* Oslash */ + { 0x000000d9, 25971 }, /* Ugrave */ + { 0x000000da, 25851 }, /* Uacute */ + { 0x000000db, 25899 }, /* Ucircumflex */ + { 0x000000dc, 25923 }, /* Udiaeresis */ + { 0x000000dd, 28976 }, /* Yacute */ + { 0x000000de, 25499 }, /* THORN */ + { 0x000000df, 23820 }, /* ssharp */ + { 0x000000e0, 861 }, /* agrave */ + { 0x000000e1, 409 }, /* aacute */ + { 0x000000e2, 634 }, /* acircumflex */ + { 0x000000e3, 3302 }, /* atilde */ + { 0x000000e4, 837 }, /* adiaeresis */ + { 0x000000e5, 2042 }, /* aring */ + { 0x000000e6, 851 }, /* ae */ + { 0x000000e7, 8548 }, /* ccedilla */ + { 0x000000e8, 11731 }, /* egrave */ + { 0x000000e9, 11455 }, /* eacute */ + { 0x000000ea, 11508 }, /* ecircumflex */ + { 0x000000eb, 11713 }, /* ediaeresis */ + { 0x000000ec, 17212 }, /* igrave */ + { 0x000000ed, 17090 }, /* iacute */ + { 0x000000ee, 17143 }, /* icircumflex */ + { 0x000000ef, 17176 }, /* idiaeresis */ + { 0x000000f0, 12072 }, /* eth */ + { 0x000000f1, 20162 }, /* ntilde */ + { 0x000000f2, 20534 }, /* ograve */ + { 0x000000f3, 20211 }, /* oacute */ + { 0x000000f4, 20280 }, /* ocircumflex */ + { 0x000000f5, 21317 }, /* otilde */ + { 0x000000f6, 20477 }, /* odiaeresis */ + { 0x000000f7, 11242 }, /* division */ + { 0x000000f8, 21303 }, /* oslash */ + { 0x000000f9, 25978 }, /* ugrave */ + { 0x000000fa, 25858 }, /* uacute */ + { 0x000000fb, 25911 }, /* ucircumflex */ + { 0x000000fc, 25934 }, /* udiaeresis */ + { 0x000000fd, 28983 }, /* yacute */ + { 0x000000fe, 25511 }, /* thorn */ + { 0x000000ff, 29034 }, /* ydiaeresis */ + { 0x000001a1, 918 }, /* Aogonek */ + { 0x000001a2, 8383 }, /* breve */ + { 0x000001a3, 19517 }, /* Lstroke */ + { 0x000001a5, 19212 }, /* Lcaron */ + { 0x000001a6, 22603 }, /* Sacute */ + { 0x000001a9, 22617 }, /* Scaron */ + { 0x000001aa, 22631 }, /* Scedilla */ + { 0x000001ab, 24322 }, /* Tcaron */ + { 0x000001ac, 29124 }, /* Zacute */ + { 0x000001ae, 29138 }, /* Zcaron */ + { 0x000001af, 29104 }, /* Zabovedot */ + { 0x000001b1, 926 }, /* aogonek */ + { 0x000001b2, 20520 }, /* ogonek */ + { 0x000001b3, 19525 }, /* lstroke */ + { 0x000001b5, 19219 }, /* lcaron */ + { 0x000001b6, 22610 }, /* sacute */ + { 0x000001b7, 8519 }, /* caron */ + { 0x000001b9, 22624 }, /* scaron */ + { 0x000001ba, 22640 }, /* scedilla */ + { 0x000001bb, 24329 }, /* tcaron */ + { 0x000001bc, 29131 }, /* zacute */ + { 0x000001bd, 11283 }, /* doubleacute */ + { 0x000001be, 29145 }, /* zcaron */ + { 0x000001bf, 29114 }, /* zabovedot */ + { 0x000001c0, 22272 }, /* Racute */ + { 0x000001c3, 445 }, /* Abreve */ + { 0x000001c5, 19147 }, /* Lacute */ + { 0x000001c6, 8475 }, /* Cacute */ + { 0x000001c8, 8525 }, /* Ccaron */ + { 0x000001ca, 12035 }, /* Eogonek */ + { 0x000001cc, 11482 }, /* Ecaron */ + { 0x000001cf, 10365 }, /* Dcaron */ + { 0x000001d0, 11401 }, /* Dstroke */ + { 0x000001d1, 19953 }, /* Nacute */ + { 0x000001d2, 19977 }, /* Ncaron */ + { 0x000001d5, 20488 }, /* Odoubleacute */ + { 0x000001d8, 22294 }, /* Rcaron */ + { 0x000001d9, 26452 }, /* Uring */ + { 0x000001db, 25945 }, /* Udoubleacute */ + { 0x000001de, 24336 }, /* Tcedilla */ + { 0x000001e0, 22279 }, /* racute */ + { 0x000001e3, 452 }, /* abreve */ + { 0x000001e5, 19154 }, /* lacute */ + { 0x000001e6, 8482 }, /* cacute */ + { 0x000001e8, 8532 }, /* ccaron */ + { 0x000001ea, 12043 }, /* eogonek */ + { 0x000001ec, 11489 }, /* ecaron */ + { 0x000001ef, 10372 }, /* dcaron */ + { 0x000001f0, 11409 }, /* dstroke */ + { 0x000001f1, 19960 }, /* nacute */ + { 0x000001f2, 19984 }, /* ncaron */ + { 0x000001f5, 20501 }, /* odoubleacute */ + { 0x000001f8, 22301 }, /* rcaron */ + { 0x000001f9, 26458 }, /* uring */ + { 0x000001fb, 25958 }, /* udoubleacute */ + { 0x000001fe, 24345 }, /* tcedilla */ + { 0x000001ff, 436 }, /* abovedot */ + { 0x000002a1, 17027 }, /* Hstroke */ + { 0x000002a6, 16056 }, /* Hcircumflex */ + { 0x000002a9, 17073 }, /* Iabovedot */ + { 0x000002ab, 12689 }, /* Gbreve */ + { 0x000002ac, 18118 }, /* Jcircumflex */ + { 0x000002b1, 17035 }, /* hstroke */ + { 0x000002b6, 16068 }, /* hcircumflex */ + { 0x000002b9, 17187 }, /* idotless */ + { 0x000002bb, 12696 }, /* gbreve */ + { 0x000002bc, 18130 }, /* jcircumflex */ + { 0x000002c5, 8455 }, /* Cabovedot */ + { 0x000002c6, 8557 }, /* Ccircumflex */ + { 0x000002d5, 12669 }, /* Gabovedot */ + { 0x000002d8, 12735 }, /* Gcircumflex */ + { 0x000002dd, 25885 }, /* Ubreve */ + { 0x000002de, 22661 }, /* Scircumflex */ + { 0x000002e5, 8465 }, /* cabovedot */ + { 0x000002e6, 8569 }, /* ccircumflex */ + { 0x000002f5, 12679 }, /* gabovedot */ + { 0x000002f8, 12747 }, /* gcircumflex */ + { 0x000002fd, 25892 }, /* ubreve */ + { 0x000002fe, 22673 }, /* scircumflex */ + { 0x000003a2, 19108 }, /* kra */ + { 0x000003a3, 22308 }, /* Rcedilla */ + { 0x000003a5, 18100 }, /* Itilde */ + { 0x000003a6, 19226 }, /* Lcedilla */ + { 0x000003aa, 11839 }, /* Emacron */ + { 0x000003ab, 12717 }, /* Gcedilla */ + { 0x000003ac, 25788 }, /* Tslash */ + { 0x000003b3, 22317 }, /* rcedilla */ + { 0x000003b5, 18107 }, /* itilde */ + { 0x000003b6, 19235 }, /* lcedilla */ + { 0x000003ba, 11847 }, /* emacron */ + { 0x000003bb, 12726 }, /* gcedilla */ + { 0x000003bc, 25795 }, /* tslash */ + { 0x000003bd, 11983 }, /* ENG */ + { 0x000003bf, 11987 }, /* eng */ + { 0x000003c0, 892 }, /* Amacron */ + { 0x000003c7, 17338 }, /* Iogonek */ + { 0x000003cc, 11428 }, /* Eabovedot */ + { 0x000003cf, 17231 }, /* Imacron */ + { 0x000003d1, 19991 }, /* Ncedilla */ + { 0x000003d2, 20679 }, /* Omacron */ + { 0x000003d3, 18779 }, /* Kcedilla */ + { 0x000003d9, 26368 }, /* Uogonek */ + { 0x000003dd, 26469 }, /* Utilde */ + { 0x000003de, 26321 }, /* Umacron */ + { 0x000003e0, 900 }, /* amacron */ + { 0x000003e7, 17346 }, /* iogonek */ + { 0x000003ec, 11438 }, /* eabovedot */ + { 0x000003ef, 17239 }, /* imacron */ + { 0x000003f1, 20000 }, /* ncedilla */ + { 0x000003f2, 20687 }, /* omacron */ + { 0x000003f3, 18788 }, /* kcedilla */ + { 0x000003f9, 26376 }, /* uogonek */ + { 0x000003fd, 26476 }, /* utilde */ + { 0x000003fe, 26329 }, /* umacron */ + { 0x0000047e, 21364 }, /* overline */ + { 0x000004a1, 18243 }, /* kana_fullstop */ + { 0x000004a2, 18477 }, /* kana_openingbracket */ + { 0x000004a3, 18173 }, /* kana_closingbracket */ + { 0x000004a4, 18193 }, /* kana_comma */ + { 0x000004a5, 18204 }, /* kana_conjunctive */ + { 0x000004a6, 18689 }, /* kana_WO */ + { 0x000004a7, 18150 }, /* kana_a */ + { 0x000004a8, 18297 }, /* kana_i */ + { 0x000004a9, 18667 }, /* kana_u */ + { 0x000004aa, 18221 }, /* kana_e */ + { 0x000004ab, 18463 }, /* kana_o */ + { 0x000004ac, 18697 }, /* kana_ya */ + { 0x000004ad, 18729 }, /* kana_yu */ + { 0x000004ae, 18713 }, /* kana_yo */ + { 0x000004af, 18633 }, /* kana_tsu */ + { 0x000004b0, 22130 }, /* prolongedsound */ + { 0x000004b1, 18157 }, /* kana_A */ + { 0x000004b2, 18304 }, /* kana_I */ + { 0x000004b3, 18674 }, /* kana_U */ + { 0x000004b4, 18228 }, /* kana_E */ + { 0x000004b5, 18470 }, /* kana_O */ + { 0x000004b6, 18311 }, /* kana_KA */ + { 0x000004b7, 18327 }, /* kana_KI */ + { 0x000004b8, 18343 }, /* kana_KU */ + { 0x000004b9, 18319 }, /* kana_KE */ + { 0x000004ba, 18335 }, /* kana_KO */ + { 0x000004bb, 18537 }, /* kana_SA */ + { 0x000004bc, 18553 }, /* kana_SHI */ + { 0x000004bd, 18581 }, /* kana_SU */ + { 0x000004be, 18545 }, /* kana_SE */ + { 0x000004bf, 18573 }, /* kana_SO */ + { 0x000004c0, 18601 }, /* kana_TA */ + { 0x000004c1, 18164 }, /* kana_CHI */ + { 0x000004c2, 18642 }, /* kana_TSU */ + { 0x000004c3, 18609 }, /* kana_TE */ + { 0x000004c4, 18625 }, /* kana_TO */ + { 0x000004c5, 18423 }, /* kana_NA */ + { 0x000004c6, 18439 }, /* kana_NI */ + { 0x000004c7, 18455 }, /* kana_NU */ + { 0x000004c8, 18431 }, /* kana_NE */ + { 0x000004c9, 18447 }, /* kana_NO */ + { 0x000004ca, 18257 }, /* kana_HA */ + { 0x000004cb, 18273 }, /* kana_HI */ + { 0x000004cc, 18235 }, /* kana_FU */ + { 0x000004cd, 18265 }, /* kana_HE */ + { 0x000004ce, 18281 }, /* kana_HO */ + { 0x000004cf, 18361 }, /* kana_MA */ + { 0x000004d0, 18377 }, /* kana_MI */ + { 0x000004d1, 18408 }, /* kana_MU */ + { 0x000004d2, 18369 }, /* kana_ME */ + { 0x000004d3, 18400 }, /* kana_MO */ + { 0x000004d4, 18705 }, /* kana_YA */ + { 0x000004d5, 18737 }, /* kana_YU */ + { 0x000004d6, 18721 }, /* kana_YO */ + { 0x000004d7, 18497 }, /* kana_RA */ + { 0x000004d8, 18513 }, /* kana_RI */ + { 0x000004d9, 18529 }, /* kana_RU */ + { 0x000004da, 18505 }, /* kana_RE */ + { 0x000004db, 18521 }, /* kana_RO */ + { 0x000004dc, 18681 }, /* kana_WA */ + { 0x000004dd, 18416 }, /* kana_N */ + { 0x000004de, 26519 }, /* voicedsound */ + { 0x000004df, 22744 }, /* semivoicedsound */ + { 0x000005ac, 1109 }, /* Arabic_comma */ + { 0x000005bb, 1764 }, /* Arabic_semicolon */ + { 0x000005bf, 1698 }, /* Arabic_question_mark */ + { 0x000005c1, 1303 }, /* Arabic_hamza */ + { 0x000005c2, 1599 }, /* Arabic_maddaonalef */ + { 0x000005c3, 1354 }, /* Arabic_hamzaonalef */ + { 0x000005c4, 1373 }, /* Arabic_hamzaonwaw */ + { 0x000005c5, 1409 }, /* Arabic_hamzaunderalef */ + { 0x000005c6, 1391 }, /* Arabic_hamzaonyeh */ + { 0x000005c7, 1067 }, /* Arabic_alef */ + { 0x000005c8, 1098 }, /* Arabic_beh */ + { 0x000005c9, 1909 }, /* Arabic_tehmarbuta */ + { 0x000005ca, 1898 }, /* Arabic_teh */ + { 0x000005cb, 1939 }, /* Arabic_theh */ + { 0x000005cc, 1481 }, /* Arabic_jeem */ + { 0x000005cd, 1292 }, /* Arabic_hah */ + { 0x000005ce, 1557 }, /* Arabic_khah */ + { 0x000005cf, 1133 }, /* Arabic_dal */ + { 0x000005d0, 1927 }, /* Arabic_thal */ + { 0x000005d1, 1719 }, /* Arabic_ra */ + { 0x000005d2, 2024 }, /* Arabic_zain */ + { 0x000005d3, 1752 }, /* Arabic_seen */ + { 0x000005d4, 1795 }, /* Arabic_sheen */ + { 0x000005d5, 1741 }, /* Arabic_sad */ + { 0x000005d6, 1122 }, /* Arabic_dad */ + { 0x000005d7, 1859 }, /* Arabic_tah */ + { 0x000005d8, 2013 }, /* Arabic_zah */ + { 0x000005d9, 1056 }, /* Arabic_ain */ + { 0x000005da, 1269 }, /* Arabic_ghain */ + { 0x000005e0, 1870 }, /* Arabic_tatweel */ + { 0x000005e1, 1231 }, /* Arabic_feh */ + { 0x000005e2, 1687 }, /* Arabic_qaf */ + { 0x000005e3, 1504 }, /* Arabic_kaf */ + { 0x000005e4, 1569 }, /* Arabic_lam */ + { 0x000005e5, 1618 }, /* Arabic_meem */ + { 0x000005e6, 1630 }, /* Arabic_noon */ + { 0x000005e7, 1282 }, /* Arabic_ha */ + { 0x000005e8, 1974 }, /* Arabic_waw */ + { 0x000005e9, 1079 }, /* Arabic_alefmaksura */ + { 0x000005ea, 1985 }, /* Arabic_yeh */ + { 0x000005eb, 1215 }, /* Arabic_fathatan */ + { 0x000005ec, 1157 }, /* Arabic_dammatan */ + { 0x000005ed, 1528 }, /* Arabic_kasratan */ + { 0x000005ee, 1202 }, /* Arabic_fatha */ + { 0x000005ef, 1144 }, /* Arabic_damma */ + { 0x000005f0, 1515 }, /* Arabic_kasra */ + { 0x000005f1, 1781 }, /* Arabic_shadda */ + { 0x000005f2, 1808 }, /* Arabic_sukun */ + { 0x000006a1, 22760 }, /* Serbian_dje */ + { 0x000006a2, 19585 }, /* Macedonia_gje */ + { 0x000006a3, 9456 }, /* Cyrillic_io */ + { 0x000006a4, 26199 }, /* Ukrainian_ie */ + { 0x000006a5, 19557 }, /* Macedonia_dse */ + { 0x000006a6, 26175 }, /* Ukrainian_i */ + { 0x000006a7, 26225 }, /* Ukrainian_yi */ + { 0x000006a8, 9480 }, /* Cyrillic_je */ + { 0x000006a9, 9618 }, /* Cyrillic_lje */ + { 0x000006aa, 9644 }, /* Cyrillic_nje */ + { 0x000006ab, 22878 }, /* Serbian_tshe */ + { 0x000006ac, 19613 }, /* Macedonia_kje */ + { 0x000006ad, 26123 }, /* Ukrainian_ghe_with_upturn */ + { 0x000006ae, 8399 }, /* Byelorussian_shortu */ + { 0x000006af, 8972 }, /* Cyrillic_dzhe */ + { 0x000006b0, 20189 }, /* numerosign */ + { 0x000006b1, 22772 }, /* Serbian_DJE */ + { 0x000006b2, 19599 }, /* Macedonia_GJE */ + { 0x000006b3, 9468 }, /* Cyrillic_IO */ + { 0x000006b4, 26212 }, /* Ukrainian_IE */ + { 0x000006b5, 19571 }, /* Macedonia_DSE */ + { 0x000006b6, 26187 }, /* Ukrainian_I */ + { 0x000006b7, 26238 }, /* Ukrainian_YI */ + { 0x000006b8, 9492 }, /* Cyrillic_JE */ + { 0x000006b9, 9631 }, /* Cyrillic_LJE */ + { 0x000006ba, 9657 }, /* Cyrillic_NJE */ + { 0x000006bb, 22891 }, /* Serbian_TSHE */ + { 0x000006bc, 19627 }, /* Macedonia_KJE */ + { 0x000006bd, 26149 }, /* Ukrainian_GHE_WITH_UPTURN */ + { 0x000006be, 8419 }, /* Byelorussian_SHORTU */ + { 0x000006bf, 8986 }, /* Cyrillic_DZHE */ + { 0x000006c0, 10200 }, /* Cyrillic_yu */ + { 0x000006c1, 8782 }, /* Cyrillic_a */ + { 0x000006c2, 8804 }, /* Cyrillic_be */ + { 0x000006c3, 9952 }, /* Cyrillic_tse */ + { 0x000006c4, 8948 }, /* Cyrillic_de */ + { 0x000006c5, 9432 }, /* Cyrillic_ie */ + { 0x000006c6, 9022 }, /* Cyrillic_ef */ + { 0x000006c7, 9210 }, /* Cyrillic_ghe */ + { 0x000006c8, 9270 }, /* Cyrillic_ha */ + { 0x000006c9, 9374 }, /* Cyrillic_i */ + { 0x000006ca, 9860 }, /* Cyrillic_shorti */ + { 0x000006cb, 9504 }, /* Cyrillic_ka */ + { 0x000006cc, 9046 }, /* Cyrillic_el */ + { 0x000006cd, 9070 }, /* Cyrillic_em */ + { 0x000006ce, 9094 }, /* Cyrillic_en */ + { 0x000006cf, 9670 }, /* Cyrillic_o */ + { 0x000006d0, 9722 }, /* Cyrillic_pe */ + { 0x000006d1, 10148 }, /* Cyrillic_ya */ + { 0x000006d2, 9162 }, /* Cyrillic_er */ + { 0x000006d3, 9186 }, /* Cyrillic_es */ + { 0x000006d4, 9928 }, /* Cyrillic_te */ + { 0x000006d5, 9978 }, /* Cyrillic_u */ + { 0x000006d6, 10248 }, /* Cyrillic_zhe */ + { 0x000006d7, 10124 }, /* Cyrillic_ve */ + { 0x000006d8, 9892 }, /* Cyrillic_softsign */ + { 0x000006d9, 10172 }, /* Cyrillic_yeru */ + { 0x000006da, 10224 }, /* Cyrillic_ze */ + { 0x000006db, 9776 }, /* Cyrillic_sha */ + { 0x000006dc, 9000 }, /* Cyrillic_e */ + { 0x000006dd, 9802 }, /* Cyrillic_shcha */ + { 0x000006de, 8828 }, /* Cyrillic_che */ + { 0x000006df, 9338 }, /* Cyrillic_hardsign */ + { 0x000006e0, 10212 }, /* Cyrillic_YU */ + { 0x000006e1, 8793 }, /* Cyrillic_A */ + { 0x000006e2, 8816 }, /* Cyrillic_BE */ + { 0x000006e3, 9965 }, /* Cyrillic_TSE */ + { 0x000006e4, 8960 }, /* Cyrillic_DE */ + { 0x000006e5, 9444 }, /* Cyrillic_IE */ + { 0x000006e6, 9034 }, /* Cyrillic_EF */ + { 0x000006e7, 9223 }, /* Cyrillic_GHE */ + { 0x000006e8, 9282 }, /* Cyrillic_HA */ + { 0x000006e9, 9385 }, /* Cyrillic_I */ + { 0x000006ea, 9876 }, /* Cyrillic_SHORTI */ + { 0x000006eb, 9516 }, /* Cyrillic_KA */ + { 0x000006ec, 9058 }, /* Cyrillic_EL */ + { 0x000006ed, 9082 }, /* Cyrillic_EM */ + { 0x000006ee, 9106 }, /* Cyrillic_EN */ + { 0x000006ef, 9681 }, /* Cyrillic_O */ + { 0x000006f0, 9734 }, /* Cyrillic_PE */ + { 0x000006f1, 10160 }, /* Cyrillic_YA */ + { 0x000006f2, 9174 }, /* Cyrillic_ER */ + { 0x000006f3, 9198 }, /* Cyrillic_ES */ + { 0x000006f4, 9940 }, /* Cyrillic_TE */ + { 0x000006f5, 9989 }, /* Cyrillic_U */ + { 0x000006f6, 10261 }, /* Cyrillic_ZHE */ + { 0x000006f7, 10136 }, /* Cyrillic_VE */ + { 0x000006f8, 9910 }, /* Cyrillic_SOFTSIGN */ + { 0x000006f9, 10186 }, /* Cyrillic_YERU */ + { 0x000006fa, 10236 }, /* Cyrillic_ZE */ + { 0x000006fb, 9789 }, /* Cyrillic_SHA */ + { 0x000006fc, 9011 }, /* Cyrillic_E */ + { 0x000006fd, 9817 }, /* Cyrillic_SHCHA */ + { 0x000006fe, 8841 }, /* Cyrillic_CHE */ + { 0x000006ff, 9356 }, /* Cyrillic_HARDSIGN */ + { 0x000007a1, 13342 }, /* Greek_ALPHAaccent */ + { 0x000007a2, 13472 }, /* Greek_EPSILONaccent */ + { 0x000007a3, 13532 }, /* Greek_ETAaccent */ + { 0x000007a4, 13647 }, /* Greek_IOTAaccent */ + { 0x000007a5, 13726 }, /* Greek_IOTAdieresis */ + { 0x000007a7, 13962 }, /* Greek_OMICRONaccent */ + { 0x000007a8, 14189 }, /* Greek_UPSILONaccent */ + { 0x000007a9, 14257 }, /* Greek_UPSILONdieresis */ + { 0x000007ab, 13898 }, /* Greek_OMEGAaccent */ + { 0x000007ae, 13297 }, /* Greek_accentdieresis */ + { 0x000007af, 13610 }, /* Greek_horizbar */ + { 0x000007b1, 13360 }, /* Greek_alphaaccent */ + { 0x000007b2, 13492 }, /* Greek_epsilonaccent */ + { 0x000007b3, 13548 }, /* Greek_etaaccent */ + { 0x000007b4, 13664 }, /* Greek_iotaaccent */ + { 0x000007b5, 13745 }, /* Greek_iotadieresis */ + { 0x000007b6, 13681 }, /* Greek_iotaaccentdieresis */ + { 0x000007b7, 13982 }, /* Greek_omicronaccent */ + { 0x000007b8, 14209 }, /* Greek_upsilonaccent */ + { 0x000007b9, 14279 }, /* Greek_upsilondieresis */ + { 0x000007ba, 14229 }, /* Greek_upsilonaccentdieresis */ + { 0x000007bb, 13916 }, /* Greek_omegaaccent */ + { 0x000007c1, 13318 }, /* Greek_ALPHA */ + { 0x000007c2, 13378 }, /* Greek_BETA */ + { 0x000007c3, 13586 }, /* Greek_GAMMA */ + { 0x000007c4, 13420 }, /* Greek_DELTA */ + { 0x000007c5, 13444 }, /* Greek_EPSILON */ + { 0x000007c6, 14319 }, /* Greek_ZETA */ + { 0x000007c7, 13512 }, /* Greek_ETA */ + { 0x000007c8, 14137 }, /* Greek_THETA */ + { 0x000007c9, 13625 }, /* Greek_IOTA */ + { 0x000007ca, 13764 }, /* Greek_KAPPA */ + { 0x000007cb, 13814 }, /* Greek_LAMDA */ + { 0x000007cc, 13838 }, /* Greek_MU */ + { 0x000007cd, 13856 }, /* Greek_NU */ + { 0x000007ce, 14301 }, /* Greek_XI */ + { 0x000007cf, 13934 }, /* Greek_OMICRON */ + { 0x000007d0, 14022 }, /* Greek_PI */ + { 0x000007d1, 14060 }, /* Greek_RHO */ + { 0x000007d2, 14080 }, /* Greek_SIGMA */ + { 0x000007d4, 14117 }, /* Greek_TAU */ + { 0x000007d5, 14161 }, /* Greek_UPSILON */ + { 0x000007d6, 14002 }, /* Greek_PHI */ + { 0x000007d7, 13400 }, /* Greek_CHI */ + { 0x000007d8, 14040 }, /* Greek_PSI */ + { 0x000007d9, 13874 }, /* Greek_OMEGA */ + { 0x000007e1, 13330 }, /* Greek_alpha */ + { 0x000007e2, 13389 }, /* Greek_beta */ + { 0x000007e3, 13598 }, /* Greek_gamma */ + { 0x000007e4, 13432 }, /* Greek_delta */ + { 0x000007e5, 13458 }, /* Greek_epsilon */ + { 0x000007e6, 14330 }, /* Greek_zeta */ + { 0x000007e7, 13522 }, /* Greek_eta */ + { 0x000007e8, 14149 }, /* Greek_theta */ + { 0x000007e9, 13636 }, /* Greek_iota */ + { 0x000007ea, 13776 }, /* Greek_kappa */ + { 0x000007eb, 13826 }, /* Greek_lamda */ + { 0x000007ec, 13847 }, /* Greek_mu */ + { 0x000007ed, 13865 }, /* Greek_nu */ + { 0x000007ee, 14310 }, /* Greek_xi */ + { 0x000007ef, 13948 }, /* Greek_omicron */ + { 0x000007f0, 14031 }, /* Greek_pi */ + { 0x000007f1, 14070 }, /* Greek_rho */ + { 0x000007f2, 14092 }, /* Greek_sigma */ + { 0x000007f3, 13564 }, /* Greek_finalsmallsigma */ + { 0x000007f4, 14127 }, /* Greek_tau */ + { 0x000007f5, 14175 }, /* Greek_upsilon */ + { 0x000007f6, 14012 }, /* Greek_phi */ + { 0x000007f7, 13410 }, /* Greek_chi */ + { 0x000007f8, 14050 }, /* Greek_psi */ + { 0x000007f9, 13886 }, /* Greek_omega */ + { 0x000008a1, 19356 }, /* leftradical */ + { 0x000008a2, 25621 }, /* topleftradical */ + { 0x000008a3, 16667 }, /* horizconnector */ + { 0x000008a4, 25595 }, /* topintegral */ + { 0x000008a5, 3422 }, /* botintegral */ + { 0x000008a6, 26505 }, /* vertconnector */ + { 0x000008a7, 25636 }, /* topleftsqbracket */ + { 0x000008a8, 3448 }, /* botleftsqbracket */ + { 0x000008a9, 25685 }, /* toprightsqbracket */ + { 0x000008aa, 3497 }, /* botrightsqbracket */ + { 0x000008ab, 25607 }, /* topleftparens */ + { 0x000008ac, 3434 }, /* botleftparens */ + { 0x000008ad, 25670 }, /* toprightparens */ + { 0x000008ae, 3482 }, /* botrightparens */ + { 0x000008af, 19306 }, /* leftmiddlecurlybrace */ + { 0x000008b0, 22440 }, /* rightmiddlecurlybrace */ + { 0x000008b1, 25653 }, /* topleftsummation */ + { 0x000008b2, 3465 }, /* botleftsummation */ + { 0x000008b3, 25726 }, /* topvertsummationconnector */ + { 0x000008b4, 3538 }, /* botvertsummationconnector */ + { 0x000008b5, 25703 }, /* toprightsummation */ + { 0x000008b6, 3515 }, /* botrightsummation */ + { 0x000008b7, 22462 }, /* rightmiddlesummation */ + { 0x000008bc, 19417 }, /* lessthanequal */ + { 0x000008bd, 20125 }, /* notequal */ + { 0x000008be, 13280 }, /* greaterthanequal */ + { 0x000008bf, 17313 }, /* integral */ + { 0x000008c0, 25479 }, /* therefore */ + { 0x000008c1, 26487 }, /* variation */ + { 0x000008c2, 17275 }, /* infinity */ + { 0x000008c5, 19947 }, /* nabla */ + { 0x000008c8, 954 }, /* approximate */ + { 0x000008c9, 22999 }, /* similarequal */ + { 0x000008cd, 17196 }, /* ifonlyif */ + { 0x000008ce, 17247 }, /* implies */ + { 0x000008cf, 17155 }, /* identical */ + { 0x000008d6, 22286 }, /* radical */ + { 0x000008da, 17255 }, /* includedin */ + { 0x000008db, 17266 }, /* includes */ + { 0x000008dc, 17322 }, /* intersection */ + { 0x000008dd, 26362 }, /* union */ + { 0x000008de, 19457 }, /* logicaland */ + { 0x000008df, 19468 }, /* logicalor */ + { 0x000008ef, 21463 }, /* partialderivative */ + { 0x000008f6, 12656 }, /* function */ + { 0x000008fb, 19266 }, /* leftarrow */ + { 0x000008fc, 26387 }, /* uparrow */ + { 0x000008fd, 22397 }, /* rightarrow */ + { 0x000008fe, 11332 }, /* downarrow */ + { 0x000009df, 3410 }, /* blank */ + { 0x000009e0, 23790 }, /* soliddiamond */ + { 0x000009e1, 8603 }, /* checkerboard */ + { 0x000009e2, 17043 }, /* ht */ + { 0x000009e3, 12413 }, /* ff */ + { 0x000009e4, 8727 }, /* cr */ + { 0x000009e5, 19431 }, /* lf */ + { 0x000009e8, 20075 }, /* nl */ + { 0x000009e9, 26542 }, /* vt */ + { 0x000009ea, 19502 }, /* lowrightcorner */ + { 0x000009eb, 26416 }, /* uprightcorner */ + { 0x000009ec, 26403 }, /* upleftcorner */ + { 0x000009ed, 19488 }, /* lowleftcorner */ + { 0x000009ee, 8730 }, /* crossinglines */ + { 0x000009ef, 16682 }, /* horizlinescan1 */ + { 0x000009f0, 16697 }, /* horizlinescan3 */ + { 0x000009f1, 16712 }, /* horizlinescan5 */ + { 0x000009f2, 16727 }, /* horizlinescan7 */ + { 0x000009f3, 16742 }, /* horizlinescan9 */ + { 0x000009f4, 19397 }, /* leftt */ + { 0x000009f5, 22545 }, /* rightt */ + { 0x000009f6, 3533 }, /* bott */ + { 0x000009f7, 25721 }, /* topt */ + { 0x000009f8, 26497 }, /* vertbar */ + { 0x00000aa1, 11928 }, /* emspace */ + { 0x00000aa2, 12027 }, /* enspace */ + { 0x00000aa3, 11821 }, /* em3space */ + { 0x00000aa4, 11830 }, /* em4space */ + { 0x00000aa5, 11221 }, /* digitspace */ + { 0x00000aa6, 22145 }, /* punctspace */ + { 0x00000aa7, 25489 }, /* thinspace */ + { 0x00000aa8, 14382 }, /* hairspace */ + { 0x00000aa9, 11855 }, /* emdash */ + { 0x00000aaa, 11940 }, /* endash */ + { 0x00000aac, 22987 }, /* signifblank */ + { 0x00000aae, 11812 }, /* ellipsis */ + { 0x00000aaf, 11267 }, /* doubbaselinedot */ + { 0x00000ab0, 20767 }, /* onethird */ + { 0x00000ab1, 25837 }, /* twothirds */ + { 0x00000ab2, 20705 }, /* onefifth */ + { 0x00000ab3, 25802 }, /* twofifths */ + { 0x00000ab4, 25530 }, /* threefifths */ + { 0x00000ab5, 12607 }, /* fourfifths */ + { 0x00000ab6, 20733 }, /* onesixth */ + { 0x00000ab7, 12569 }, /* fivesixths */ + { 0x00000ab8, 8506 }, /* careof */ + { 0x00000abb, 12427 }, /* figdash */ + { 0x00000abc, 19249 }, /* leftanglebracket */ + { 0x00000abd, 11140 }, /* decimalpoint */ + { 0x00000abe, 22379 }, /* rightanglebracket */ + { 0x00000abf, 19681 }, /* marker */ + { 0x00000ac3, 20695 }, /* oneeighth */ + { 0x00000ac4, 25517 }, /* threeeighths */ + { 0x00000ac5, 12557 }, /* fiveeighths */ + { 0x00000ac6, 22904 }, /* seveneighths */ + { 0x00000ac9, 25760 }, /* trademark */ + { 0x00000aca, 22973 }, /* signaturemark */ + { 0x00000acb, 25770 }, /* trademarkincircle */ + { 0x00000acc, 19327 }, /* leftopentriangle */ + { 0x00000acd, 22483 }, /* rightopentriangle */ + { 0x00000ace, 11890 }, /* emopencircle */ + { 0x00000acf, 11903 }, /* emopenrectangle */ + { 0x00000ad0, 19377 }, /* leftsinglequotemark */ + { 0x00000ad1, 22524 }, /* rightsinglequotemark */ + { 0x00000ad2, 19286 }, /* leftdoublequotemark */ + { 0x00000ad3, 22419 }, /* rightdoublequotemark */ + { 0x00000ad4, 22067 }, /* prescription */ + { 0x00000ad5, 21517 }, /* permille */ + { 0x00000ad6, 19739 }, /* minutes */ + { 0x00000ad7, 22711 }, /* seconds */ + { 0x00000ad9, 19181 }, /* latincross */ + { 0x00000ada, 16626 }, /* hexagram */ + { 0x00000adb, 12455 }, /* filledrectbullet */ + { 0x00000adc, 12435 }, /* filledlefttribullet */ + { 0x00000add, 12472 }, /* filledrighttribullet */ + { 0x00000ade, 11862 }, /* emfilledcircle */ + { 0x00000adf, 11877 }, /* emfilledrect */ + { 0x00000ae0, 11991 }, /* enopencircbullet */ + { 0x00000ae1, 12008 }, /* enopensquarebullet */ + { 0x00000ae2, 20794 }, /* openrectbullet */ + { 0x00000ae3, 20836 }, /* opentribulletup */ + { 0x00000ae4, 20818 }, /* opentribulletdown */ + { 0x00000ae5, 20809 }, /* openstar */ + { 0x00000ae6, 11947 }, /* enfilledcircbullet */ + { 0x00000ae7, 11966 }, /* enfilledsqbullet */ + { 0x00000ae8, 12513 }, /* filledtribulletup */ + { 0x00000ae9, 12493 }, /* filledtribulletdown */ + { 0x00000aea, 19344 }, /* leftpointer */ + { 0x00000aeb, 22501 }, /* rightpointer */ + { 0x00000aec, 8649 }, /* club */ + { 0x00000aed, 11213 }, /* diamond */ + { 0x00000aee, 16080 }, /* heart */ + { 0x00000af0, 19668 }, /* maltesecross */ + { 0x00000af1, 10358 }, /* dagger */ + { 0x00000af2, 11295 }, /* doubledagger */ + { 0x00000af3, 8616 }, /* checkmark */ + { 0x00000af4, 3380 }, /* ballotcross */ + { 0x00000af5, 19860 }, /* musicalsharp */ + { 0x00000af6, 19848 }, /* musicalflat */ + { 0x00000af7, 19657 }, /* malesymbol */ + { 0x00000af8, 12400 }, /* femalesymbol */ + { 0x00000af9, 24354 }, /* telephone */ + { 0x00000afa, 24364 }, /* telephonerecorder */ + { 0x00000afb, 21537 }, /* phonographcopyright */ + { 0x00000afc, 8513 }, /* caret */ + { 0x00000afd, 23028 }, /* singlelowquotemark */ + { 0x00000afe, 11308 }, /* doublelowquotemark */ + { 0x00000aff, 8775 }, /* cursor */ + { 0x00000ba3, 19276 }, /* leftcaret */ + { 0x00000ba6, 22408 }, /* rightcaret */ + { 0x00000ba8, 11342 }, /* downcaret */ + { 0x00000ba9, 26395 }, /* upcaret */ + { 0x00000bc0, 21324 }, /* overbar */ + { 0x00000bc2, 11371 }, /* downtack */ + { 0x00000bc3, 26430 }, /* upshoe */ + { 0x00000bc4, 11361 }, /* downstile */ + { 0x00000bc6, 26337 }, /* underbar */ + { 0x00000bca, 18142 }, /* jot */ + { 0x00000bcc, 22160 }, /* quad */ + { 0x00000bce, 26445 }, /* uptack */ + { 0x00000bcf, 8626 }, /* circle */ + { 0x00000bd3, 26437 }, /* upstile */ + { 0x00000bd6, 11352 }, /* downshoe */ + { 0x00000bd8, 22514 }, /* rightshoe */ + { 0x00000bda, 19368 }, /* leftshoe */ + { 0x00000bdc, 19403 }, /* lefttack */ + { 0x00000bfc, 22552 }, /* righttack */ + { 0x00000cdf, 16173 }, /* hebrew_doublelowline */ + { 0x00000ce0, 16086 }, /* hebrew_aleph */ + { 0x00000ce1, 16111 }, /* hebrew_bet */ + { 0x00000ce2, 16292 }, /* hebrew_gimel */ + { 0x00000ce3, 16146 }, /* hebrew_dalet */ + { 0x00000ce4, 16319 }, /* hebrew_he */ + { 0x00000ce5, 16531 }, /* hebrew_waw */ + { 0x00000ce6, 16577 }, /* hebrew_zain */ + { 0x00000ce7, 16134 }, /* hebrew_chet */ + { 0x00000ce8, 16508 }, /* hebrew_tet */ + { 0x00000ce9, 16542 }, /* hebrew_yod */ + { 0x00000cea, 16194 }, /* hebrew_finalkaph */ + { 0x00000ceb, 16340 }, /* hebrew_kaph */ + { 0x00000cec, 16363 }, /* hebrew_lamed */ + { 0x00000ced, 16211 }, /* hebrew_finalmem */ + { 0x00000cee, 16376 }, /* hebrew_mem */ + { 0x00000cef, 16227 }, /* hebrew_finalnun */ + { 0x00000cf0, 16387 }, /* hebrew_nun */ + { 0x00000cf1, 16432 }, /* hebrew_samech */ + { 0x00000cf2, 16099 }, /* hebrew_ayin */ + { 0x00000cf3, 16243 }, /* hebrew_finalpe */ + { 0x00000cf4, 16398 }, /* hebrew_pe */ + { 0x00000cf5, 16258 }, /* hebrew_finalzade */ + { 0x00000cf6, 16553 }, /* hebrew_zade */ + { 0x00000cf7, 16408 }, /* hebrew_qoph */ + { 0x00000cf8, 16420 }, /* hebrew_resh */ + { 0x00000cf9, 16460 }, /* hebrew_shin */ + { 0x00000cfa, 16497 }, /* hebrew_taw */ + { 0x00000da1, 24617 }, /* Thai_kokai */ + { 0x00000da2, 24547 }, /* Thai_khokhai */ + { 0x00000da3, 24573 }, /* Thai_khokhuat */ + { 0x00000da4, 24587 }, /* Thai_khokhwai */ + { 0x00000da5, 24560 }, /* Thai_khokhon */ + { 0x00000da6, 24601 }, /* Thai_khorakhang */ + { 0x00000da7, 24930 }, /* Thai_ngongu */ + { 0x00000da8, 24423 }, /* Thai_chochan */ + { 0x00000da9, 24450 }, /* Thai_choching */ + { 0x00000daa, 24436 }, /* Thai_chochang */ + { 0x00000dab, 25291 }, /* Thai_soso */ + { 0x00000dac, 24464 }, /* Thai_chochoe */ + { 0x00000dad, 25467 }, /* Thai_yoying */ + { 0x00000dae, 24477 }, /* Thai_dochada */ + { 0x00000daf, 25420 }, /* Thai_topatak */ + { 0x00000db0, 25379 }, /* Thai_thothan */ + { 0x00000db1, 25329 }, /* Thai_thonangmontho */ + { 0x00000db2, 25348 }, /* Thai_thophuthao */ + { 0x00000db3, 24956 }, /* Thai_nonen */ + { 0x00000db4, 24490 }, /* Thai_dodek */ + { 0x00000db5, 25433 }, /* Thai_totao */ + { 0x00000db6, 25406 }, /* Thai_thothung */ + { 0x00000db7, 25364 }, /* Thai_thothahan */ + { 0x00000db8, 25392 }, /* Thai_thothong */ + { 0x00000db9, 24967 }, /* Thai_nonu */ + { 0x00000dba, 24409 }, /* Thai_bobaimai */ + { 0x00000dbb, 25058 }, /* Thai_popla */ + { 0x00000dbc, 25028 }, /* Thai_phophung */ + { 0x00000dbd, 24501 }, /* Thai_fofa */ + { 0x00000dbe, 25015 }, /* Thai_phophan */ + { 0x00000dbf, 24511 }, /* Thai_fofan */ + { 0x00000dc0, 25042 }, /* Thai_phosamphao */ + { 0x00000dc1, 24920 }, /* Thai_moma */ + { 0x00000dc2, 25456 }, /* Thai_yoyak */ + { 0x00000dc3, 25069 }, /* Thai_rorua */ + { 0x00000dc4, 25080 }, /* Thai_ru */ + { 0x00000dc5, 24780 }, /* Thai_loling */ + { 0x00000dc6, 24792 }, /* Thai_lu */ + { 0x00000dc7, 25444 }, /* Thai_wowaen */ + { 0x00000dc8, 25279 }, /* Thai_sosala */ + { 0x00000dc9, 25267 }, /* Thai_sorusi */ + { 0x00000dca, 25301 }, /* Thai_sosua */ + { 0x00000dcb, 24522 }, /* Thai_hohip */ + { 0x00000dcc, 24767 }, /* Thai_lochula */ + { 0x00000dcd, 24977 }, /* Thai_oang */ + { 0x00000dce, 24533 }, /* Thai_honokhuk */ + { 0x00000dcf, 24987 }, /* Thai_paiyannoi */ + { 0x00000dd0, 25088 }, /* Thai_saraa */ + { 0x00000dd1, 24828 }, /* Thai_maihanakat */ + { 0x00000dd2, 25099 }, /* Thai_saraaa */ + { 0x00000dd3, 25162 }, /* Thai_saraam */ + { 0x00000dd4, 25185 }, /* Thai_sarai */ + { 0x00000dd5, 25196 }, /* Thai_saraii */ + { 0x00000dd6, 25230 }, /* Thai_saraue */ + { 0x00000dd7, 25242 }, /* Thai_sarauee */ + { 0x00000dd8, 25219 }, /* Thai_sarau */ + { 0x00000dd9, 25255 }, /* Thai_sarauu */ + { 0x00000dda, 25002 }, /* Thai_phinthu */ + { 0x00000dde, 24844 }, /* Thai_maihanakat_maitho */ + { 0x00000ddf, 24399 }, /* Thai_baht */ + { 0x00000de0, 25174 }, /* Thai_sarae */ + { 0x00000de1, 25111 }, /* Thai_saraae */ + { 0x00000de2, 25208 }, /* Thai_sarao */ + { 0x00000de3, 25143 }, /* Thai_saraaimaimuan */ + { 0x00000de4, 25123 }, /* Thai_saraaimaimalai */ + { 0x00000de5, 24628 }, /* Thai_lakkhangyao */ + { 0x00000de6, 24906 }, /* Thai_maiyamok */ + { 0x00000de7, 24867 }, /* Thai_maitaikhu */ + { 0x00000de8, 24817 }, /* Thai_maiek */ + { 0x00000de9, 24882 }, /* Thai_maitho */ + { 0x00000dea, 24894 }, /* Thai_maitri */ + { 0x00000deb, 24800 }, /* Thai_maichattawa */ + { 0x00000dec, 25312 }, /* Thai_thanthakhat */ + { 0x00000ded, 24942 }, /* Thai_nikhahit */ + { 0x00000df0, 24755 }, /* Thai_leksun */ + { 0x00000df1, 24693 }, /* Thai_leknung */ + { 0x00000df2, 24742 }, /* Thai_leksong */ + { 0x00000df3, 24719 }, /* Thai_leksam */ + { 0x00000df4, 24731 }, /* Thai_leksi */ + { 0x00000df5, 24658 }, /* Thai_lekha */ + { 0x00000df6, 24669 }, /* Thai_lekhok */ + { 0x00000df7, 24645 }, /* Thai_lekchet */ + { 0x00000df8, 24706 }, /* Thai_lekpaet */ + { 0x00000df9, 24681 }, /* Thai_lekkao */ + { 0x00000ea1, 15181 }, /* Hangul_Kiyeog */ + { 0x00000ea2, 15726 }, /* Hangul_SsangKiyeog */ + { 0x00000ea3, 15195 }, /* Hangul_KiyeogSios */ + { 0x00000ea4, 15276 }, /* Hangul_Nieun */ + { 0x00000ea5, 15307 }, /* Hangul_NieunJieuj */ + { 0x00000ea6, 15289 }, /* Hangul_NieunHieuh */ + { 0x00000ea7, 14488 }, /* Hangul_Dikeud */ + { 0x00000ea8, 15689 }, /* Hangul_SsangDikeud */ + { 0x00000ea9, 15461 }, /* Hangul_Rieul */ + { 0x00000eaa, 15492 }, /* Hangul_RieulKiyeog */ + { 0x00000eab, 15511 }, /* Hangul_RieulMieum */ + { 0x00000eac, 15548 }, /* Hangul_RieulPieub */ + { 0x00000ead, 15566 }, /* Hangul_RieulSios */ + { 0x00000eae, 15583 }, /* Hangul_RieulTieut */ + { 0x00000eaf, 15529 }, /* Hangul_RieulPhieuf */ + { 0x00000eb0, 15474 }, /* Hangul_RieulHieuh */ + { 0x00000eb1, 15238 }, /* Hangul_Mieum */ + { 0x00000eb2, 15373 }, /* Hangul_Pieub */ + { 0x00000eb3, 15745 }, /* Hangul_SsangPieub */ + { 0x00000eb4, 15386 }, /* Hangul_PieubSios */ + { 0x00000eb5, 15662 }, /* Hangul_Sios */ + { 0x00000eb6, 15763 }, /* Hangul_SsangSios */ + { 0x00000eb7, 14577 }, /* Hangul_Ieung */ + { 0x00000eb8, 15154 }, /* Hangul_Jieuj */ + { 0x00000eb9, 15708 }, /* Hangul_SsangJieuj */ + { 0x00000eba, 14458 }, /* Hangul_Cieuc */ + { 0x00000ebb, 15167 }, /* Hangul_Khieuq */ + { 0x00000ebc, 15883 }, /* Hangul_Tieut */ + { 0x00000ebd, 15359 }, /* Hangul_Phieuf */ + { 0x00000ebe, 14555 }, /* Hangul_Hieuh */ + { 0x00000ebf, 14399 }, /* Hangul_A */ + { 0x00000ec0, 14408 }, /* Hangul_AE */ + { 0x00000ec1, 15957 }, /* Hangul_YA */ + { 0x00000ec2, 15967 }, /* Hangul_YAE */ + { 0x00000ec3, 14522 }, /* Hangul_EO */ + { 0x00000ec4, 14502 }, /* Hangul_E */ + { 0x00000ec5, 15988 }, /* Hangul_YEO */ + { 0x00000ec6, 15978 }, /* Hangul_YE */ + { 0x00000ec7, 15325 }, /* Hangul_O */ + { 0x00000ec8, 15905 }, /* Hangul_WA */ + { 0x00000ec9, 15915 }, /* Hangul_WAE */ + { 0x00000eca, 15334 }, /* Hangul_OE */ + { 0x00000ecb, 16028 }, /* Hangul_YO */ + { 0x00000ecc, 15896 }, /* Hangul_U */ + { 0x00000ecd, 15936 }, /* Hangul_WEO */ + { 0x00000ece, 15926 }, /* Hangul_WE */ + { 0x00000ecf, 15947 }, /* Hangul_WI */ + { 0x00000ed0, 16038 }, /* Hangul_YU */ + { 0x00000ed1, 14532 }, /* Hangul_EU */ + { 0x00000ed2, 16018 }, /* Hangul_YI */ + { 0x00000ed3, 14568 }, /* Hangul_I */ + { 0x00000ed4, 14682 }, /* Hangul_J_Kiyeog */ + { 0x00000ed5, 15052 }, /* Hangul_J_SsangKiyeog */ + { 0x00000ed6, 14698 }, /* Hangul_J_KiyeogSios */ + { 0x00000ed7, 14760 }, /* Hangul_J_Nieun */ + { 0x00000ed8, 14795 }, /* Hangul_J_NieunJieuj */ + { 0x00000ed9, 14775 }, /* Hangul_J_NieunHieuh */ + { 0x00000eda, 14605 }, /* Hangul_J_Dikeud */ + { 0x00000edb, 14882 }, /* Hangul_J_Rieul */ + { 0x00000edc, 14917 }, /* Hangul_J_RieulKiyeog */ + { 0x00000edd, 14938 }, /* Hangul_J_RieulMieum */ + { 0x00000ede, 14979 }, /* Hangul_J_RieulPieub */ + { 0x00000edf, 14999 }, /* Hangul_J_RieulSios */ + { 0x00000ee0, 15018 }, /* Hangul_J_RieulTieut */ + { 0x00000ee1, 14958 }, /* Hangul_J_RieulPhieuf */ + { 0x00000ee2, 14897 }, /* Hangul_J_RieulHieuh */ + { 0x00000ee3, 14745 }, /* Hangul_J_Mieum */ + { 0x00000ee4, 14848 }, /* Hangul_J_Pieub */ + { 0x00000ee5, 14863 }, /* Hangul_J_PieubSios */ + { 0x00000ee6, 15038 }, /* Hangul_J_Sios */ + { 0x00000ee7, 15073 }, /* Hangul_J_SsangSios */ + { 0x00000ee8, 14636 }, /* Hangul_J_Ieung */ + { 0x00000ee9, 14651 }, /* Hangul_J_Jieuj */ + { 0x00000eea, 14590 }, /* Hangul_J_Cieuc */ + { 0x00000eeb, 14666 }, /* Hangul_J_Khieuq */ + { 0x00000eec, 15092 }, /* Hangul_J_Tieut */ + { 0x00000eed, 14832 }, /* Hangul_J_Phieuf */ + { 0x00000eee, 14621 }, /* Hangul_J_Hieuh */ + { 0x00000eef, 15601 }, /* Hangul_RieulYeorinHieuh */ + { 0x00000ef0, 15793 }, /* Hangul_SunkyeongeumMieum */ + { 0x00000ef1, 15844 }, /* Hangul_SunkyeongeumPieub */ + { 0x00000ef2, 15344 }, /* Hangul_PanSios */ + { 0x00000ef3, 15213 }, /* Hangul_KkogjiDalrinIeung */ + { 0x00000ef4, 15818 }, /* Hangul_SunkyeongeumPhieuf */ + { 0x00000ef5, 15999 }, /* Hangul_YeorinHieuh */ + { 0x00000ef6, 14418 }, /* Hangul_AraeA */ + { 0x00000ef7, 14431 }, /* Hangul_AraeAE */ + { 0x00000ef8, 14815 }, /* Hangul_J_PanSios */ + { 0x00000ef9, 14718 }, /* Hangul_J_KkogjiDalrinIeung */ + { 0x00000efa, 15107 }, /* Hangul_J_YeorinHieuh */ + { 0x00000eff, 18797 }, /* Korean_Won */ + { 0x000013bc, 20514 }, /* OE */ + { 0x000013bd, 20517 }, /* oe */ + { 0x000013be, 29045 }, /* Ydiaeresis */ + { 0x000020ac, 12090 }, /* EuroSign */ + { 0x0000fd01, 125 }, /* 3270_Duplicate */ + { 0x0000fd02, 195 }, /* 3270_FieldMark */ + { 0x0000fd03, 343 }, /* 3270_Right2 */ + { 0x0000fd04, 245 }, /* 3270_Left2 */ + { 0x0000fd05, 33 }, /* 3270_BackTab */ + { 0x0000fd06, 151 }, /* 3270_EraseEOF */ + { 0x0000fd07, 165 }, /* 3270_EraseInput */ + { 0x0000fd08, 332 }, /* 3270_Reset */ + { 0x0000fd09, 310 }, /* 3270_Quit */ + { 0x0000fd0a, 256 }, /* 3270_PA1 */ + { 0x0000fd0b, 265 }, /* 3270_PA2 */ + { 0x0000fd0c, 274 }, /* 3270_PA3 */ + { 0x0000fd0d, 376 }, /* 3270_Test */ + { 0x0000fd0e, 23 }, /* 3270_Attn */ + { 0x0000fd0f, 74 }, /* 3270_CursorBlink */ + { 0x0000fd10, 8 }, /* 3270_AltCursor */ + { 0x0000fd11, 231 }, /* 3270_KeyClick */ + { 0x0000fd12, 221 }, /* 3270_Jump */ + { 0x0000fd13, 210 }, /* 3270_Ident */ + { 0x0000fd14, 355 }, /* 3270_Rule */ + { 0x0000fd15, 64 }, /* 3270_Copy */ + { 0x0000fd16, 283 }, /* 3270_Play */ + { 0x0000fd17, 365 }, /* 3270_Setup */ + { 0x0000fd18, 320 }, /* 3270_Record */ + { 0x0000fd19, 46 }, /* 3270_ChangeScreen */ + { 0x0000fd1a, 109 }, /* 3270_DeleteWord */ + { 0x0000fd1b, 181 }, /* 3270_ExSelect */ + { 0x0000fd1c, 91 }, /* 3270_CursorSelect */ + { 0x0000fd1d, 293 }, /* 3270_PrintScreen */ + { 0x0000fd1e, 140 }, /* 3270_Enter */ + { 0x0000fe01, 17781 }, /* ISO_Lock */ + { 0x0000fe02, 17664 }, /* ISO_Level2_Latch */ + { 0x0000fe03, 17714 }, /* ISO_Level3_Shift */ + { 0x0000fe04, 17681 }, /* ISO_Level3_Latch */ + { 0x0000fe05, 17698 }, /* ISO_Level3_Lock */ + { 0x0000fe06, 17569 }, /* ISO_Group_Latch */ + { 0x0000fe07, 17585 }, /* ISO_Group_Lock */ + { 0x0000fe08, 17826 }, /* ISO_Next_Group */ + { 0x0000fe09, 17841 }, /* ISO_Next_Group_Lock */ + { 0x0000fe0a, 17950 }, /* ISO_Prev_Group */ + { 0x0000fe0b, 17965 }, /* ISO_Prev_Group_Lock */ + { 0x0000fe0c, 17532 }, /* ISO_First_Group */ + { 0x0000fe0d, 17548 }, /* ISO_First_Group_Lock */ + { 0x0000fe0e, 17616 }, /* ISO_Last_Group */ + { 0x0000fe0f, 17631 }, /* ISO_Last_Group_Lock */ + { 0x0000fe11, 17764 }, /* ISO_Level5_Shift */ + { 0x0000fe12, 17731 }, /* ISO_Level5_Latch */ + { 0x0000fe13, 17748 }, /* ISO_Level5_Lock */ + { 0x0000fe20, 17651 }, /* ISO_Left_Tab */ + { 0x0000fe21, 17809 }, /* ISO_Move_Line_Up */ + { 0x0000fe22, 17790 }, /* ISO_Move_Line_Down */ + { 0x0000fe23, 17883 }, /* ISO_Partial_Line_Up */ + { 0x0000fe24, 17861 }, /* ISO_Partial_Line_Down */ + { 0x0000fe25, 17903 }, /* ISO_Partial_Space_Left */ + { 0x0000fe26, 17926 }, /* ISO_Partial_Space_Right */ + { 0x0000fe27, 18059 }, /* ISO_Set_Margin_Left */ + { 0x0000fe28, 18079 }, /* ISO_Set_Margin_Right */ + { 0x0000fe29, 18010 }, /* ISO_Release_Margin_Left */ + { 0x0000fe2a, 18034 }, /* ISO_Release_Margin_Right */ + { 0x0000fe2b, 17985 }, /* ISO_Release_Both_Margins */ + { 0x0000fe2c, 17470 }, /* ISO_Fast_Cursor_Left */ + { 0x0000fe2d, 17491 }, /* ISO_Fast_Cursor_Right */ + { 0x0000fe2e, 17513 }, /* ISO_Fast_Cursor_Up */ + { 0x0000fe2f, 17449 }, /* ISO_Fast_Cursor_Down */ + { 0x0000fe30, 17372 }, /* ISO_Continuous_Underline */ + { 0x0000fe31, 17397 }, /* ISO_Discontinuous_Underline */ + { 0x0000fe32, 17425 }, /* ISO_Emphasize */ + { 0x0000fe33, 17354 }, /* ISO_Center_Object */ + { 0x0000fe34, 17439 }, /* ISO_Enter */ + { 0x0000fe50, 10858 }, /* dead_grave */ + { 0x0000fe51, 10531 }, /* dead_acute */ + { 0x0000fe52, 10754 }, /* dead_circumflex */ + { 0x0000fe53, 11097 }, /* dead_tilde */ + { 0x0000fe54, 10980 }, /* dead_macron */ + { 0x0000fe55, 10700 }, /* dead_breve */ + { 0x0000fe56, 10455 }, /* dead_abovedot */ + { 0x0000fe57, 10795 }, /* dead_diaeresis */ + { 0x0000fe58, 10493 }, /* dead_abovering */ + { 0x0000fe59, 10810 }, /* dead_doubleacute */ + { 0x0000fe5a, 10730 }, /* dead_caron */ + { 0x0000fe5b, 10741 }, /* dead_cedilla */ + { 0x0000fe5c, 11006 }, /* dead_ogonek */ + { 0x0000fe5d, 10933 }, /* dead_iota */ + { 0x0000fe5e, 11122 }, /* dead_voiced_sound */ + { 0x0000fe5f, 11046 }, /* dead_semivoiced_sound */ + { 0x0000fe60, 10615 }, /* dead_belowdot */ + { 0x0000fe61, 10880 }, /* dead_hook */ + { 0x0000fe62, 10890 }, /* dead_horn */ + { 0x0000fe63, 11085 }, /* dead_stroke */ + { 0x0000fe64, 10439 }, /* dead_abovecomma */ + { 0x0000fe65, 10469 }, /* dead_abovereversedcomma */ + { 0x0000fe66, 10827 }, /* dead_doublegrave */ + { 0x0000fe67, 10646 }, /* dead_belowring */ + { 0x0000fe68, 10629 }, /* dead_belowmacron */ + { 0x0000fe69, 10558 }, /* dead_belowcircumflex */ + { 0x0000fe6a, 10661 }, /* dead_belowtilde */ + { 0x0000fe6b, 10542 }, /* dead_belowbreve */ + { 0x0000fe6c, 10595 }, /* dead_belowdiaeresis */ + { 0x0000fe6d, 10914 }, /* dead_invertedbreve */ + { 0x0000fe6e, 10579 }, /* dead_belowcomma */ + { 0x0000fe6f, 10770 }, /* dead_currency */ + { 0x0000fe70, 583 }, /* AccessX_Enable */ + { 0x0000fe71, 598 }, /* AccessX_Feedback_Enable */ + { 0x0000fe72, 22342 }, /* RepeatKeys_Enable */ + { 0x0000fe73, 23774 }, /* SlowKeys_Enable */ + { 0x0000fe74, 3564 }, /* BounceKeys_Enable */ + { 0x0000fe75, 23836 }, /* StickyKeys_Enable */ + { 0x0000fe76, 19782 }, /* MouseKeys_Enable */ + { 0x0000fe77, 19759 }, /* MouseKeys_Accel_Enable */ + { 0x0000fe78, 21332 }, /* Overlay1_Enable */ + { 0x0000fe79, 21348 }, /* Overlay2_Enable */ + { 0x0000fe7a, 3309 }, /* AudibleBell_Enable */ + { 0x0000fe80, 10425 }, /* dead_a */ + { 0x0000fe81, 10432 }, /* dead_A */ + { 0x0000fe82, 10844 }, /* dead_e */ + { 0x0000fe83, 10851 }, /* dead_E */ + { 0x0000fe84, 10900 }, /* dead_i */ + { 0x0000fe85, 10907 }, /* dead_I */ + { 0x0000fe86, 10992 }, /* dead_o */ + { 0x0000fe87, 10999 }, /* dead_O */ + { 0x0000fe88, 11108 }, /* dead_u */ + { 0x0000fe89, 11115 }, /* dead_U */ + { 0x0000fe8a, 11068 }, /* dead_small_schwa */ + { 0x0000fe8b, 10711 }, /* dead_capital_schwa */ + { 0x0000fe8c, 10869 }, /* dead_greek */ + { 0x0000fe90, 10967 }, /* dead_lowline */ + { 0x0000fe91, 10508 }, /* dead_aboveverticalline */ + { 0x0000fe92, 10677 }, /* dead_belowverticalline */ + { 0x0000fe93, 10943 }, /* dead_longsolidusoverlay */ + { 0x0000fea0, 8594 }, /* ch */ + { 0x0000fea1, 8597 }, /* Ch */ + { 0x0000fea2, 8600 }, /* CH */ + { 0x0000fea3, 8443 }, /* c_h */ + { 0x0000fea4, 8447 }, /* C_h */ + { 0x0000fea5, 8451 }, /* C_H */ + { 0x0000fed0, 12536 }, /* First_Virtual_Screen */ + { 0x0000fed1, 22080 }, /* Prev_Virtual_Screen */ + { 0x0000fed2, 20028 }, /* Next_Virtual_Screen */ + { 0x0000fed4, 19161 }, /* Last_Virtual_Screen */ + { 0x0000fed5, 24382 }, /* Terminate_Server */ + { 0x0000fee0, 21998 }, /* Pointer_Left */ + { 0x0000fee1, 22011 }, /* Pointer_Right */ + { 0x0000fee2, 22025 }, /* Pointer_Up */ + { 0x0000fee3, 21843 }, /* Pointer_Down */ + { 0x0000fee4, 22036 }, /* Pointer_UpLeft */ + { 0x0000fee5, 22051 }, /* Pointer_UpRight */ + { 0x0000fee6, 21856 }, /* Pointer_DownLeft */ + { 0x0000fee7, 21873 }, /* Pointer_DownRight */ + { 0x0000fee8, 21671 }, /* Pointer_Button_Dflt */ + { 0x0000fee9, 21591 }, /* Pointer_Button1 */ + { 0x0000feea, 21607 }, /* Pointer_Button2 */ + { 0x0000feeb, 21623 }, /* Pointer_Button3 */ + { 0x0000feec, 21639 }, /* Pointer_Button4 */ + { 0x0000feed, 21655 }, /* Pointer_Button5 */ + { 0x0000feee, 21781 }, /* Pointer_DblClick_Dflt */ + { 0x0000feef, 21691 }, /* Pointer_DblClick1 */ + { 0x0000fef0, 21709 }, /* Pointer_DblClick2 */ + { 0x0000fef1, 21727 }, /* Pointer_DblClick3 */ + { 0x0000fef2, 21745 }, /* Pointer_DblClick4 */ + { 0x0000fef3, 21763 }, /* Pointer_DblClick5 */ + { 0x0000fef4, 21961 }, /* Pointer_Drag_Dflt */ + { 0x0000fef5, 21891 }, /* Pointer_Drag1 */ + { 0x0000fef6, 21905 }, /* Pointer_Drag2 */ + { 0x0000fef7, 21919 }, /* Pointer_Drag3 */ + { 0x0000fef8, 21933 }, /* Pointer_Drag4 */ + { 0x0000fef9, 21979 }, /* Pointer_EnableKeys */ + { 0x0000fefa, 21572 }, /* Pointer_Accelerate */ + { 0x0000fefb, 21803 }, /* Pointer_DfltBtnNext */ + { 0x0000fefc, 21823 }, /* Pointer_DfltBtnPrev */ + { 0x0000fefd, 21947 }, /* Pointer_Drag5 */ + { 0x0000ff08, 3362 }, /* BackSpace */ + { 0x0000ff09, 24298 }, /* Tab */ + { 0x0000ff0a, 19434 }, /* Linefeed */ + { 0x0000ff0b, 8633 }, /* Clear */ + { 0x0000ff0d, 22366 }, /* Return */ + { 0x0000ff13, 21481 }, /* Pause */ + { 0x0000ff14, 22699 }, /* Scroll_Lock */ + { 0x0000ff15, 24279 }, /* Sys_Req */ + { 0x0000ff1b, 12057 }, /* Escape */ + { 0x0000ff20, 19811 }, /* Multi_key */ + { 0x0000ff21, 18745 }, /* Kanji */ + { 0x0000ff22, 19802 }, /* Muhenkan */ + { 0x0000ff23, 16614 }, /* Henkan_Mode */ + { 0x0000ff24, 22562 }, /* Romaji */ + { 0x0000ff25, 16635 }, /* Hiragana */ + { 0x0000ff26, 18770 }, /* Katakana */ + { 0x0000ff27, 16644 }, /* Hiragana_Katakana */ + { 0x0000ff28, 29161 }, /* Zenkaku */ + { 0x0000ff29, 16048 }, /* Hankaku */ + { 0x0000ff2a, 29169 }, /* Zenkaku_Hankaku */ + { 0x0000ff2b, 25752 }, /* Touroku */ + { 0x0000ff2c, 19698 }, /* Massyo */ + { 0x0000ff2d, 18351 }, /* Kana_Lock */ + { 0x0000ff2e, 18562 }, /* Kana_Shift */ + { 0x0000ff2f, 11779 }, /* Eisu_Shift */ + { 0x0000ff30, 11790 }, /* Eisu_toggle */ + { 0x0000ff31, 14392 }, /* Hangul */ + { 0x0000ff32, 15780 }, /* Hangul_Start */ + { 0x0000ff33, 14511 }, /* Hangul_End */ + { 0x0000ff34, 14542 }, /* Hangul_Hanja */ + { 0x0000ff35, 15128 }, /* Hangul_Jamo */ + { 0x0000ff36, 15625 }, /* Hangul_Romaja */ + { 0x0000ff37, 8654 }, /* Codeinput */ + { 0x0000ff38, 15140 }, /* Hangul_Jeonja */ + { 0x0000ff39, 14445 }, /* Hangul_Banja */ + { 0x0000ff3a, 15420 }, /* Hangul_PreHanja */ + { 0x0000ff3b, 15403 }, /* Hangul_PostHanja */ + { 0x0000ff3c, 23012 }, /* SingleCandidate */ + { 0x0000ff3d, 19821 }, /* MultipleCandidate */ + { 0x0000ff3e, 22100 }, /* PreviousCandidate */ + { 0x0000ff3f, 15674 }, /* Hangul_Special */ + { 0x0000ff50, 16662 }, /* Home */ + { 0x0000ff51, 19244 }, /* Left */ + { 0x0000ff52, 26384 }, /* Up */ + { 0x0000ff53, 22373 }, /* Right */ + { 0x0000ff54, 11327 }, /* Down */ + { 0x0000ff55, 22124 }, /* Prior */ + { 0x0000ff56, 20023 }, /* Next */ + { 0x0000ff57, 11936 }, /* End */ + { 0x0000ff58, 3404 }, /* Begin */ + { 0x0000ff60, 22727 }, /* Select */ + { 0x0000ff61, 22118 }, /* Print */ + { 0x0000ff62, 12117 }, /* Execute */ + { 0x0000ff63, 17284 }, /* Insert */ + { 0x0000ff65, 26357 }, /* Undo */ + { 0x0000ff66, 22326 }, /* Redo */ + { 0x0000ff67, 19705 }, /* Menu */ + { 0x0000ff68, 12531 }, /* Find */ + { 0x0000ff69, 8489 }, /* Cancel */ + { 0x0000ff6a, 16602 }, /* Help */ + { 0x0000ff6b, 8377 }, /* Break */ + { 0x0000ff7e, 19747 }, /* Mode_switch */ + { 0x0000ff7f, 20169 }, /* Num_Lock */ + { 0x0000ff80, 19074 }, /* KP_Space */ + { 0x0000ff89, 19095 }, /* KP_Tab */ + { 0x0000ff8d, 18931 }, /* KP_Enter */ + { 0x0000ff91, 18949 }, /* KP_F1 */ + { 0x0000ff92, 18955 }, /* KP_F2 */ + { 0x0000ff93, 18961 }, /* KP_F3 */ + { 0x0000ff94, 18967 }, /* KP_F4 */ + { 0x0000ff95, 18973 }, /* KP_Home */ + { 0x0000ff96, 18991 }, /* KP_Left */ + { 0x0000ff97, 19102 }, /* KP_Up */ + { 0x0000ff98, 19052 }, /* KP_Right */ + { 0x0000ff99, 18916 }, /* KP_Down */ + { 0x0000ff9a, 19043 }, /* KP_Prior */ + { 0x0000ff9b, 19011 }, /* KP_Next */ + { 0x0000ff9c, 18924 }, /* KP_End */ + { 0x0000ff9d, 18876 }, /* KP_Begin */ + { 0x0000ff9e, 18981 }, /* KP_Insert */ + { 0x0000ff9f, 18896 }, /* KP_Delete */ + { 0x0000ffaa, 18999 }, /* KP_Multiply */ + { 0x0000ffab, 18858 }, /* KP_Add */ + { 0x0000ffac, 19061 }, /* KP_Separator */ + { 0x0000ffad, 19083 }, /* KP_Subtract */ + { 0x0000ffae, 18885 }, /* KP_Decimal */ + { 0x0000ffaf, 18906 }, /* KP_Divide */ + { 0x0000ffb0, 18808 }, /* KP_0 */ + { 0x0000ffb1, 18813 }, /* KP_1 */ + { 0x0000ffb2, 18818 }, /* KP_2 */ + { 0x0000ffb3, 18823 }, /* KP_3 */ + { 0x0000ffb4, 18828 }, /* KP_4 */ + { 0x0000ffb5, 18833 }, /* KP_5 */ + { 0x0000ffb6, 18838 }, /* KP_6 */ + { 0x0000ffb7, 18843 }, /* KP_7 */ + { 0x0000ffb8, 18848 }, /* KP_8 */ + { 0x0000ffb9, 18853 }, /* KP_9 */ + { 0x0000ffbd, 18940 }, /* KP_Equal */ + { 0x0000ffbe, 12159 }, /* F1 */ + { 0x0000ffbf, 12202 }, /* F2 */ + { 0x0000ffc0, 12245 }, /* F3 */ + { 0x0000ffc1, 12272 }, /* F4 */ + { 0x0000ffc2, 12275 }, /* F5 */ + { 0x0000ffc3, 12278 }, /* F6 */ + { 0x0000ffc4, 12281 }, /* F7 */ + { 0x0000ffc5, 12284 }, /* F8 */ + { 0x0000ffc6, 12287 }, /* F9 */ + { 0x0000ffc7, 12162 }, /* F10 */ + { 0x0000ffc8, 12166 }, /* F11 */ + { 0x0000ffc9, 12170 }, /* F12 */ + { 0x0000ffca, 12174 }, /* F13 */ + { 0x0000ffcb, 12178 }, /* F14 */ + { 0x0000ffcc, 12182 }, /* F15 */ + { 0x0000ffcd, 12186 }, /* F16 */ + { 0x0000ffce, 12190 }, /* F17 */ + { 0x0000ffcf, 12194 }, /* F18 */ + { 0x0000ffd0, 12198 }, /* F19 */ + { 0x0000ffd1, 12205 }, /* F20 */ + { 0x0000ffd2, 12209 }, /* F21 */ + { 0x0000ffd3, 12213 }, /* F22 */ + { 0x0000ffd4, 12217 }, /* F23 */ + { 0x0000ffd5, 12221 }, /* F24 */ + { 0x0000ffd6, 12225 }, /* F25 */ + { 0x0000ffd7, 12229 }, /* F26 */ + { 0x0000ffd8, 12233 }, /* F27 */ + { 0x0000ffd9, 12237 }, /* F28 */ + { 0x0000ffda, 12241 }, /* F29 */ + { 0x0000ffdb, 12248 }, /* F30 */ + { 0x0000ffdc, 12252 }, /* F31 */ + { 0x0000ffdd, 12256 }, /* F32 */ + { 0x0000ffde, 12260 }, /* F33 */ + { 0x0000ffdf, 12264 }, /* F34 */ + { 0x0000ffe0, 12268 }, /* F35 */ + { 0x0000ffe1, 22946 }, /* Shift_L */ + { 0x0000ffe2, 22965 }, /* Shift_R */ + { 0x0000ffe3, 8697 }, /* Control_L */ + { 0x0000ffe4, 8707 }, /* Control_R */ + { 0x0000ffe5, 8496 }, /* Caps_Lock */ + { 0x0000ffe6, 22954 }, /* Shift_Lock */ + { 0x0000ffe7, 19710 }, /* Meta_L */ + { 0x0000ffe8, 19717 }, /* Meta_R */ + { 0x0000ffe9, 880 }, /* Alt_L */ + { 0x0000ffea, 886 }, /* Alt_R */ + { 0x0000ffeb, 24263 }, /* Super_L */ + { 0x0000ffec, 24271 }, /* Super_R */ + { 0x0000ffed, 17046 }, /* Hyper_L */ + { 0x0000ffee, 17054 }, /* Hyper_R */ + { 0x0000fff1, 3642 }, /* braille_dot_1 */ + { 0x0000fff2, 3671 }, /* braille_dot_2 */ + { 0x0000fff3, 3685 }, /* braille_dot_3 */ + { 0x0000fff4, 3699 }, /* braille_dot_4 */ + { 0x0000fff5, 3713 }, /* braille_dot_5 */ + { 0x0000fff6, 3727 }, /* braille_dot_6 */ + { 0x0000fff7, 3741 }, /* braille_dot_7 */ + { 0x0000fff8, 3755 }, /* braille_dot_8 */ + { 0x0000fff9, 3769 }, /* braille_dot_9 */ + { 0x0000fffa, 3656 }, /* braille_dot_10 */ + { 0x0000ffff, 11160 }, /* Delete */ + { 0x00ffffff, 26531 }, /* VoidSymbol */ + { 0x0100012c, 17117 }, /* Ibreve */ + { 0x0100012d, 17124 }, /* ibreve */ + { 0x01000174, 26563 }, /* Wcircumflex */ + { 0x01000175, 26575 }, /* wcircumflex */ + { 0x01000176, 29010 }, /* Ycircumflex */ + { 0x01000177, 29022 }, /* ycircumflex */ + { 0x0100018f, 22649 }, /* SCHWA */ + { 0x0100019f, 20218 }, /* Obarred */ + { 0x010001a0, 20553 }, /* Ohorn */ + { 0x010001a1, 20559 }, /* ohorn */ + { 0x010001af, 25997 }, /* Uhorn */ + { 0x010001b0, 26003 }, /* uhorn */ + { 0x010001b5, 29212 }, /* Zstroke */ + { 0x010001b6, 29220 }, /* zstroke */ + { 0x010001b7, 12147 }, /* EZH */ + { 0x010001d1, 20254 }, /* Ocaron */ + { 0x010001d2, 20261 }, /* ocaron */ + { 0x010001e6, 12703 }, /* Gcaron */ + { 0x010001e7, 12710 }, /* gcaron */ + { 0x01000259, 22655 }, /* schwa */ + { 0x01000275, 20226 }, /* obarred */ + { 0x01000292, 12151 }, /* ezh */ + { 0x01000492, 9236 }, /* Cyrillic_GHE_bar */ + { 0x01000493, 9253 }, /* Cyrillic_ghe_bar */ + { 0x01000496, 10274 }, /* Cyrillic_ZHE_descender */ + { 0x01000497, 10297 }, /* Cyrillic_zhe_descender */ + { 0x0100049a, 9528 }, /* Cyrillic_KA_descender */ + { 0x0100049b, 9550 }, /* Cyrillic_ka_descender */ + { 0x0100049c, 9572 }, /* Cyrillic_KA_vertstroke */ + { 0x0100049d, 9595 }, /* Cyrillic_ka_vertstroke */ + { 0x010004a2, 9118 }, /* Cyrillic_EN_descender */ + { 0x010004a3, 9140 }, /* Cyrillic_en_descender */ + { 0x010004ae, 10036 }, /* Cyrillic_U_straight */ + { 0x010004af, 10056 }, /* Cyrillic_u_straight */ + { 0x010004b0, 10076 }, /* Cyrillic_U_straight_bar */ + { 0x010004b1, 10100 }, /* Cyrillic_u_straight_bar */ + { 0x010004b2, 9294 }, /* Cyrillic_HA_descender */ + { 0x010004b3, 9316 }, /* Cyrillic_ha_descender */ + { 0x010004b6, 8854 }, /* Cyrillic_CHE_descender */ + { 0x010004b7, 8877 }, /* Cyrillic_che_descender */ + { 0x010004b8, 8900 }, /* Cyrillic_CHE_vertstroke */ + { 0x010004b9, 8924 }, /* Cyrillic_che_vertstroke */ + { 0x010004ba, 9832 }, /* Cyrillic_SHHA */ + { 0x010004bb, 9846 }, /* Cyrillic_shha */ + { 0x010004d8, 9746 }, /* Cyrillic_SCHWA */ + { 0x010004d9, 9761 }, /* Cyrillic_schwa */ + { 0x010004e2, 9396 }, /* Cyrillic_I_macron */ + { 0x010004e3, 9414 }, /* Cyrillic_i_macron */ + { 0x010004e8, 9692 }, /* Cyrillic_O_bar */ + { 0x010004e9, 9707 }, /* Cyrillic_o_bar */ + { 0x010004ee, 10000 }, /* Cyrillic_U_macron */ + { 0x010004ef, 10018 }, /* Cyrillic_u_macron */ + { 0x01000531, 2124 }, /* Armenian_AYB */ + { 0x01000532, 2150 }, /* Armenian_BEN */ + { 0x01000533, 2374 }, /* Armenian_GIM */ + { 0x01000534, 2215 }, /* Armenian_DA */ + { 0x01000535, 3164 }, /* Armenian_YECH */ + { 0x01000536, 3210 }, /* Armenian_ZA */ + { 0x01000537, 2265 }, /* Armenian_E */ + { 0x01000538, 2100 }, /* Armenian_AT */ + { 0x01000539, 2964 }, /* Armenian_TO */ + { 0x0100053a, 3234 }, /* Armenian_ZHE */ + { 0x0100053b, 2464 }, /* Armenian_INI */ + { 0x0100053c, 2611 }, /* Armenian_LYUN */ + { 0x0100053d, 2564 }, /* Armenian_KHE */ + { 0x0100053e, 2988 }, /* Armenian_TSA */ + { 0x0100053f, 2538 }, /* Armenian_KEN */ + { 0x01000540, 2424 }, /* Armenian_HO */ + { 0x01000541, 2239 }, /* Armenian_DZA */ + { 0x01000542, 2346 }, /* Armenian_GHAT */ + { 0x01000543, 2936 }, /* Armenian_TCHE */ + { 0x01000544, 2639 }, /* Armenian_MEN */ + { 0x01000545, 2400 }, /* Armenian_HI */ + { 0x01000546, 2665 }, /* Armenian_NU */ + { 0x01000547, 2894 }, /* Armenian_SHA */ + { 0x01000548, 3112 }, /* Armenian_VO */ + { 0x01000549, 2189 }, /* Armenian_CHA */ + { 0x0100054a, 2727 }, /* Armenian_PE */ + { 0x0100054b, 2490 }, /* Armenian_JE */ + { 0x0100054c, 2797 }, /* Armenian_RA */ + { 0x0100054d, 2845 }, /* Armenian_SE */ + { 0x0100054e, 3086 }, /* Armenian_VEV */ + { 0x0100054f, 3040 }, /* Armenian_TYUN */ + { 0x01000550, 2821 }, /* Armenian_RE */ + { 0x01000551, 3014 }, /* Armenian_TSO */ + { 0x01000552, 3136 }, /* Armenian_VYUN */ + { 0x01000553, 2751 }, /* Armenian_PYUR */ + { 0x01000554, 2514 }, /* Armenian_KE */ + { 0x01000555, 2689 }, /* Armenian_O */ + { 0x01000556, 2303 }, /* Armenian_FE */ + { 0x0100055a, 2080 }, /* Armenian_apostrophe */ + { 0x0100055b, 2048 }, /* Armenian_accent */ + { 0x0100055c, 2287 }, /* Armenian_exclam */ + { 0x0100055d, 2869 }, /* Armenian_separation_mark */ + { 0x0100055e, 2779 }, /* Armenian_question */ + { 0x01000561, 2137 }, /* Armenian_ayb */ + { 0x01000562, 2163 }, /* Armenian_ben */ + { 0x01000563, 2387 }, /* Armenian_gim */ + { 0x01000564, 2227 }, /* Armenian_da */ + { 0x01000565, 3178 }, /* Armenian_yech */ + { 0x01000566, 3222 }, /* Armenian_za */ + { 0x01000567, 2276 }, /* Armenian_e */ + { 0x01000568, 2112 }, /* Armenian_at */ + { 0x01000569, 2976 }, /* Armenian_to */ + { 0x0100056a, 3247 }, /* Armenian_zhe */ + { 0x0100056b, 2477 }, /* Armenian_ini */ + { 0x0100056c, 2625 }, /* Armenian_lyun */ + { 0x0100056d, 2577 }, /* Armenian_khe */ + { 0x0100056e, 3001 }, /* Armenian_tsa */ + { 0x0100056f, 2551 }, /* Armenian_ken */ + { 0x01000570, 2436 }, /* Armenian_ho */ + { 0x01000571, 2252 }, /* Armenian_dza */ + { 0x01000572, 2360 }, /* Armenian_ghat */ + { 0x01000573, 2950 }, /* Armenian_tche */ + { 0x01000574, 2652 }, /* Armenian_men */ + { 0x01000575, 2412 }, /* Armenian_hi */ + { 0x01000576, 2677 }, /* Armenian_nu */ + { 0x01000577, 2907 }, /* Armenian_sha */ + { 0x01000578, 3124 }, /* Armenian_vo */ + { 0x01000579, 2202 }, /* Armenian_cha */ + { 0x0100057a, 2739 }, /* Armenian_pe */ + { 0x0100057b, 2502 }, /* Armenian_je */ + { 0x0100057c, 2809 }, /* Armenian_ra */ + { 0x0100057d, 2857 }, /* Armenian_se */ + { 0x0100057e, 3099 }, /* Armenian_vev */ + { 0x0100057f, 3054 }, /* Armenian_tyun */ + { 0x01000580, 2833 }, /* Armenian_re */ + { 0x01000581, 3027 }, /* Armenian_tso */ + { 0x01000582, 3150 }, /* Armenian_vyun */ + { 0x01000583, 2765 }, /* Armenian_pyur */ + { 0x01000584, 2526 }, /* Armenian_ke */ + { 0x01000585, 2700 }, /* Armenian_o */ + { 0x01000586, 2315 }, /* Armenian_fe */ + { 0x01000587, 2590 }, /* Armenian_ligature_ew */ + { 0x01000589, 2327 }, /* Armenian_full_stop */ + { 0x0100058a, 2448 }, /* Armenian_hyphen */ + { 0x01000653, 1580 }, /* Arabic_madda_above */ + { 0x01000654, 1316 }, /* Arabic_hamza_above */ + { 0x01000655, 1335 }, /* Arabic_hamza_below */ + { 0x01000660, 966 }, /* Arabic_0 */ + { 0x01000661, 975 }, /* Arabic_1 */ + { 0x01000662, 984 }, /* Arabic_2 */ + { 0x01000663, 993 }, /* Arabic_3 */ + { 0x01000664, 1002 }, /* Arabic_4 */ + { 0x01000665, 1011 }, /* Arabic_5 */ + { 0x01000666, 1020 }, /* Arabic_6 */ + { 0x01000667, 1029 }, /* Arabic_7 */ + { 0x01000668, 1038 }, /* Arabic_8 */ + { 0x01000669, 1047 }, /* Arabic_9 */ + { 0x0100066a, 1672 }, /* Arabic_percent */ + { 0x01000670, 1821 }, /* Arabic_superscript_alef */ + { 0x01000679, 1951 }, /* Arabic_tteh */ + { 0x0100067e, 1661 }, /* Arabic_peh */ + { 0x01000686, 1885 }, /* Arabic_tcheh */ + { 0x01000688, 1173 }, /* Arabic_ddal */ + { 0x01000691, 1729 }, /* Arabic_rreh */ + { 0x01000698, 1493 }, /* Arabic_jeh */ + { 0x010006a4, 1963 }, /* Arabic_veh */ + { 0x010006a9, 1544 }, /* Arabic_keheh */ + { 0x010006af, 1258 }, /* Arabic_gaf */ + { 0x010006ba, 1642 }, /* Arabic_noon_ghunna */ + { 0x010006be, 1442 }, /* Arabic_heh_doachashmee */ + { 0x010006c1, 1465 }, /* Arabic_heh_goal */ + { 0x010006cc, 12390 }, /* Farsi_yeh */ + { 0x010006d2, 1996 }, /* Arabic_yeh_baree */ + { 0x010006d4, 1242 }, /* Arabic_fullstop */ + { 0x010006f0, 12310 }, /* Farsi_0 */ + { 0x010006f1, 12318 }, /* Farsi_1 */ + { 0x010006f2, 12326 }, /* Farsi_2 */ + { 0x010006f3, 12334 }, /* Farsi_3 */ + { 0x010006f4, 12342 }, /* Farsi_4 */ + { 0x010006f5, 12350 }, /* Farsi_5 */ + { 0x010006f6, 12358 }, /* Farsi_6 */ + { 0x010006f7, 12366 }, /* Farsi_7 */ + { 0x010006f8, 12374 }, /* Farsi_8 */ + { 0x010006f9, 12382 }, /* Farsi_9 */ + { 0x01000d82, 23484 }, /* Sinh_ng */ + { 0x01000d83, 23278 }, /* Sinh_h2 */ + { 0x01000d85, 23047 }, /* Sinh_a */ + { 0x01000d86, 23054 }, /* Sinh_aa */ + { 0x01000d87, 23071 }, /* Sinh_ae */ + { 0x01000d88, 23088 }, /* Sinh_aee */ + { 0x01000d89, 23294 }, /* Sinh_i */ + { 0x01000d8a, 23309 }, /* Sinh_ii */ + { 0x01000d8b, 23695 }, /* Sinh_u */ + { 0x01000d8c, 23710 }, /* Sinh_uu */ + { 0x01000d8d, 23594 }, /* Sinh_ri */ + { 0x01000d8e, 23602 }, /* Sinh_rii */ + { 0x01000d8f, 23403 }, /* Sinh_lu */ + { 0x01000d90, 23420 }, /* Sinh_luu */ + { 0x01000d91, 23221 }, /* Sinh_e */ + { 0x01000d92, 23236 }, /* Sinh_ee */ + { 0x01000d93, 23107 }, /* Sinh_ai */ + { 0x01000d94, 23537 }, /* Sinh_o */ + { 0x01000d95, 23552 }, /* Sinh_oo */ + { 0x01000d96, 23132 }, /* Sinh_au */ + { 0x01000d9a, 23353 }, /* Sinh_ka */ + { 0x01000d9b, 23361 }, /* Sinh_kha */ + { 0x01000d9c, 23261 }, /* Sinh_ga */ + { 0x01000d9d, 23269 }, /* Sinh_gha */ + { 0x01000d9e, 23492 }, /* Sinh_ng2 */ + { 0x01000d9f, 23501 }, /* Sinh_nga */ + { 0x01000da0, 23166 }, /* Sinh_ca */ + { 0x01000da1, 23174 }, /* Sinh_cha */ + { 0x01000da2, 23326 }, /* Sinh_ja */ + { 0x01000da3, 23334 }, /* Sinh_jha */ + { 0x01000da4, 23528 }, /* Sinh_nya */ + { 0x01000da5, 23343 }, /* Sinh_jnya */ + { 0x01000da6, 23510 }, /* Sinh_nja */ + { 0x01000da7, 23676 }, /* Sinh_tta */ + { 0x01000da8, 23685 }, /* Sinh_ttha */ + { 0x01000da9, 23183 }, /* Sinh_dda */ + { 0x01000daa, 23192 }, /* Sinh_ddha */ + { 0x01000dab, 23519 }, /* Sinh_nna */ + { 0x01000dac, 23464 }, /* Sinh_ndda */ + { 0x01000dad, 23657 }, /* Sinh_tha */ + { 0x01000dae, 23666 }, /* Sinh_thha */ + { 0x01000daf, 23202 }, /* Sinh_dha */ + { 0x01000db0, 23211 }, /* Sinh_dhha */ + { 0x01000db1, 23456 }, /* Sinh_na */ + { 0x01000db3, 23474 }, /* Sinh_ndha */ + { 0x01000db4, 23569 }, /* Sinh_pa */ + { 0x01000db5, 23577 }, /* Sinh_pha */ + { 0x01000db6, 23149 }, /* Sinh_ba */ + { 0x01000db7, 23157 }, /* Sinh_bha */ + { 0x01000db8, 23439 }, /* Sinh_ma */ + { 0x01000db9, 23447 }, /* Sinh_mba */ + { 0x01000dba, 23735 }, /* Sinh_ya */ + { 0x01000dbb, 23586 }, /* Sinh_ra */ + { 0x01000dbd, 23386 }, /* Sinh_la */ + { 0x01000dc0, 23727 }, /* Sinh_va */ + { 0x01000dc1, 23638 }, /* Sinh_sha */ + { 0x01000dc2, 23647 }, /* Sinh_ssha */ + { 0x01000dc3, 23630 }, /* Sinh_sa */ + { 0x01000dc4, 23286 }, /* Sinh_ha */ + { 0x01000dc5, 23394 }, /* Sinh_lla */ + { 0x01000dc6, 23253 }, /* Sinh_fa */ + { 0x01000dca, 23124 }, /* Sinh_al */ + { 0x01000dcf, 23062 }, /* Sinh_aa2 */ + { 0x01000dd0, 23079 }, /* Sinh_ae2 */ + { 0x01000dd1, 23097 }, /* Sinh_aee2 */ + { 0x01000dd2, 23301 }, /* Sinh_i2 */ + { 0x01000dd3, 23317 }, /* Sinh_ii2 */ + { 0x01000dd4, 23702 }, /* Sinh_u2 */ + { 0x01000dd6, 23718 }, /* Sinh_uu2 */ + { 0x01000dd8, 23611 }, /* Sinh_ru2 */ + { 0x01000dd9, 23228 }, /* Sinh_e2 */ + { 0x01000dda, 23244 }, /* Sinh_ee2 */ + { 0x01000ddb, 23115 }, /* Sinh_ai2 */ + { 0x01000ddc, 23544 }, /* Sinh_o2 */ + { 0x01000ddd, 23560 }, /* Sinh_oo2 */ + { 0x01000dde, 23140 }, /* Sinh_au2 */ + { 0x01000ddf, 23411 }, /* Sinh_lu2 */ + { 0x01000df2, 23620 }, /* Sinh_ruu2 */ + { 0x01000df3, 23429 }, /* Sinh_luu2 */ + { 0x01000df4, 23370 }, /* Sinh_kunddaliya */ + { 0x010010d0, 12759 }, /* Georgian_an */ + { 0x010010d1, 12771 }, /* Georgian_ban */ + { 0x010010d2, 12875 }, /* Georgian_gan */ + { 0x010010d3, 12838 }, /* Georgian_don */ + { 0x010010d4, 12851 }, /* Georgian_en */ + { 0x010010d5, 13201 }, /* Georgian_vin */ + { 0x010010d6, 13239 }, /* Georgian_zen */ + { 0x010010d7, 13163 }, /* Georgian_tan */ + { 0x010010d8, 12966 }, /* Georgian_in */ + { 0x010010d9, 13005 }, /* Georgian_kan */ + { 0x010010da, 13032 }, /* Georgian_las */ + { 0x010010db, 13045 }, /* Georgian_man */ + { 0x010010dc, 13058 }, /* Georgian_nar */ + { 0x010010dd, 13071 }, /* Georgian_on */ + { 0x010010de, 13083 }, /* Georgian_par */ + { 0x010010df, 13252 }, /* Georgian_zhar */ + { 0x010010e0, 13123 }, /* Georgian_rae */ + { 0x010010e1, 13136 }, /* Georgian_san */ + { 0x010010e2, 13176 }, /* Georgian_tar */ + { 0x010010e3, 13189 }, /* Georgian_un */ + { 0x010010e4, 13096 }, /* Georgian_phar */ + { 0x010010e5, 13018 }, /* Georgian_khar */ + { 0x010010e6, 12888 }, /* Georgian_ghan */ + { 0x010010e7, 13110 }, /* Georgian_qar */ + { 0x010010e8, 13149 }, /* Georgian_shin */ + { 0x010010e9, 12811 }, /* Georgian_chin */ + { 0x010010ea, 12784 }, /* Georgian_can */ + { 0x010010eb, 12992 }, /* Georgian_jil */ + { 0x010010ec, 12825 }, /* Georgian_cil */ + { 0x010010ed, 12797 }, /* Georgian_char */ + { 0x010010ee, 13226 }, /* Georgian_xan */ + { 0x010010ef, 12978 }, /* Georgian_jhan */ + { 0x010010f0, 12902 }, /* Georgian_hae */ + { 0x010010f1, 12928 }, /* Georgian_he */ + { 0x010010f2, 12940 }, /* Georgian_hie */ + { 0x010010f3, 13214 }, /* Georgian_we */ + { 0x010010f4, 12915 }, /* Georgian_har */ + { 0x010010f5, 12953 }, /* Georgian_hoe */ + { 0x010010f6, 12863 }, /* Georgian_fi */ + { 0x01001e02, 3332 }, /* Babovedot */ + { 0x01001e03, 3342 }, /* babovedot */ + { 0x01001e0a, 10324 }, /* Dabovedot */ + { 0x01001e0b, 10334 }, /* dabovedot */ + { 0x01001e1e, 12290 }, /* Fabovedot */ + { 0x01001e1f, 12300 }, /* fabovedot */ + { 0x01001e36, 19192 }, /* Lbelowdot */ + { 0x01001e37, 19202 }, /* lbelowdot */ + { 0x01001e40, 19537 }, /* Mabovedot */ + { 0x01001e41, 19547 }, /* mabovedot */ + { 0x01001e56, 21377 }, /* Pabovedot */ + { 0x01001e57, 21387 }, /* pabovedot */ + { 0x01001e60, 22583 }, /* Sabovedot */ + { 0x01001e61, 22593 }, /* sabovedot */ + { 0x01001e6a, 24302 }, /* Tabovedot */ + { 0x01001e6b, 24312 }, /* tabovedot */ + { 0x01001e80, 26609 }, /* Wgrave */ + { 0x01001e81, 26616 }, /* wgrave */ + { 0x01001e82, 26549 }, /* Wacute */ + { 0x01001e83, 26556 }, /* wacute */ + { 0x01001e84, 26587 }, /* Wdiaeresis */ + { 0x01001e85, 26598 }, /* wdiaeresis */ + { 0x01001e8a, 26635 }, /* Xabovedot */ + { 0x01001e8b, 26645 }, /* xabovedot */ + { 0x01001ea0, 416 }, /* Abelowdot */ + { 0x01001ea1, 426 }, /* abelowdot */ + { 0x01001ea2, 868 }, /* Ahook */ + { 0x01001ea3, 874 }, /* ahook */ + { 0x01001ea4, 646 }, /* Acircumflexacute */ + { 0x01001ea5, 663 }, /* acircumflexacute */ + { 0x01001ea6, 720 }, /* Acircumflexgrave */ + { 0x01001ea7, 737 }, /* acircumflexgrave */ + { 0x01001ea8, 754 }, /* Acircumflexhook */ + { 0x01001ea9, 770 }, /* acircumflexhook */ + { 0x01001eaa, 786 }, /* Acircumflextilde */ + { 0x01001eab, 803 }, /* acircumflextilde */ + { 0x01001eac, 680 }, /* Acircumflexbelowdot */ + { 0x01001ead, 700 }, /* acircumflexbelowdot */ + { 0x01001eae, 459 }, /* Abreveacute */ + { 0x01001eaf, 471 }, /* abreveacute */ + { 0x01001eb0, 513 }, /* Abrevegrave */ + { 0x01001eb1, 525 }, /* abrevegrave */ + { 0x01001eb2, 537 }, /* Abrevehook */ + { 0x01001eb3, 548 }, /* abrevehook */ + { 0x01001eb4, 559 }, /* Abrevetilde */ + { 0x01001eb5, 571 }, /* abrevetilde */ + { 0x01001eb6, 483 }, /* Abrevebelowdot */ + { 0x01001eb7, 498 }, /* abrevebelowdot */ + { 0x01001eb8, 11462 }, /* Ebelowdot */ + { 0x01001eb9, 11472 }, /* ebelowdot */ + { 0x01001eba, 11738 }, /* Ehook */ + { 0x01001ebb, 11744 }, /* ehook */ + { 0x01001ebc, 12076 }, /* Etilde */ + { 0x01001ebd, 12083 }, /* etilde */ + { 0x01001ebe, 11520 }, /* Ecircumflexacute */ + { 0x01001ebf, 11537 }, /* ecircumflexacute */ + { 0x01001ec0, 11594 }, /* Ecircumflexgrave */ + { 0x01001ec1, 11611 }, /* ecircumflexgrave */ + { 0x01001ec2, 11628 }, /* Ecircumflexhook */ + { 0x01001ec3, 11644 }, /* ecircumflexhook */ + { 0x01001ec4, 11660 }, /* Ecircumflextilde */ + { 0x01001ec5, 11677 }, /* ecircumflextilde */ + { 0x01001ec6, 11554 }, /* Ecircumflexbelowdot */ + { 0x01001ec7, 11574 }, /* ecircumflexbelowdot */ + { 0x01001ec8, 17219 }, /* Ihook */ + { 0x01001ec9, 17225 }, /* ihook */ + { 0x01001eca, 17097 }, /* Ibelowdot */ + { 0x01001ecb, 17107 }, /* ibelowdot */ + { 0x01001ecc, 20234 }, /* Obelowdot */ + { 0x01001ecd, 20244 }, /* obelowdot */ + { 0x01001ece, 20541 }, /* Ohook */ + { 0x01001ecf, 20547 }, /* ohook */ + { 0x01001ed0, 20292 }, /* Ocircumflexacute */ + { 0x01001ed1, 20309 }, /* ocircumflexacute */ + { 0x01001ed2, 20366 }, /* Ocircumflexgrave */ + { 0x01001ed3, 20383 }, /* ocircumflexgrave */ + { 0x01001ed4, 20400 }, /* Ocircumflexhook */ + { 0x01001ed5, 20416 }, /* ocircumflexhook */ + { 0x01001ed6, 20432 }, /* Ocircumflextilde */ + { 0x01001ed7, 20449 }, /* ocircumflextilde */ + { 0x01001ed8, 20326 }, /* Ocircumflexbelowdot */ + { 0x01001ed9, 20346 }, /* ocircumflexbelowdot */ + { 0x01001eda, 20565 }, /* Ohornacute */ + { 0x01001edb, 20576 }, /* ohornacute */ + { 0x01001edc, 20615 }, /* Ohorngrave */ + { 0x01001edd, 20626 }, /* ohorngrave */ + { 0x01001ede, 20637 }, /* Ohornhook */ + { 0x01001edf, 20647 }, /* ohornhook */ + { 0x01001ee0, 20657 }, /* Ohorntilde */ + { 0x01001ee1, 20668 }, /* ohorntilde */ + { 0x01001ee2, 20587 }, /* Ohornbelowdot */ + { 0x01001ee3, 20601 }, /* ohornbelowdot */ + { 0x01001ee4, 25865 }, /* Ubelowdot */ + { 0x01001ee5, 25875 }, /* ubelowdot */ + { 0x01001ee6, 25985 }, /* Uhook */ + { 0x01001ee7, 25991 }, /* uhook */ + { 0x01001ee8, 26009 }, /* Uhornacute */ + { 0x01001ee9, 26020 }, /* uhornacute */ + { 0x01001eea, 26059 }, /* Uhorngrave */ + { 0x01001eeb, 26070 }, /* uhorngrave */ + { 0x01001eec, 26081 }, /* Uhornhook */ + { 0x01001eed, 26091 }, /* uhornhook */ + { 0x01001eee, 26101 }, /* Uhorntilde */ + { 0x01001eef, 26112 }, /* uhorntilde */ + { 0x01001ef0, 26031 }, /* Uhornbelowdot */ + { 0x01001ef1, 26045 }, /* uhornbelowdot */ + { 0x01001ef2, 29060 }, /* Ygrave */ + { 0x01001ef3, 29067 }, /* ygrave */ + { 0x01001ef4, 28990 }, /* Ybelowdot */ + { 0x01001ef5, 29000 }, /* ybelowdot */ + { 0x01001ef6, 29074 }, /* Yhook */ + { 0x01001ef7, 29080 }, /* yhook */ + { 0x01001ef8, 29086 }, /* Ytilde */ + { 0x01001ef9, 29093 }, /* ytilde */ + { 0x01002070, 29199 }, /* zerosuperior */ + { 0x01002074, 12632 }, /* foursuperior */ + { 0x01002075, 12594 }, /* fivesuperior */ + { 0x01002076, 23756 }, /* sixsuperior */ + { 0x01002077, 22932 }, /* sevensuperior */ + { 0x01002078, 11765 }, /* eightsuperior */ + { 0x01002079, 20062 }, /* ninesuperior */ + { 0x01002080, 29185 }, /* zerosubscript */ + { 0x01002081, 20742 }, /* onesubscript */ + { 0x01002082, 25812 }, /* twosubscript */ + { 0x01002083, 25556 }, /* threesubscript */ + { 0x01002084, 12618 }, /* foursubscript */ + { 0x01002085, 12580 }, /* fivesubscript */ + { 0x01002086, 23743 }, /* sixsubscript */ + { 0x01002087, 22917 }, /* sevensubscript */ + { 0x01002088, 11750 }, /* eightsubscript */ + { 0x01002089, 20048 }, /* ninesubscript */ + { 0x010020a0, 11694 }, /* EcuSign */ + { 0x010020a1, 8670 }, /* ColonSign */ + { 0x010020a2, 8744 }, /* CruzeiroSign */ + { 0x010020a3, 12416 }, /* FFrancSign */ + { 0x010020a4, 19448 }, /* LiraSign */ + { 0x010020a5, 19724 }, /* MillSign */ + { 0x010020a6, 19967 }, /* NairaSign */ + { 0x010020a7, 21526 }, /* PesetaSign */ + { 0x010020a8, 22569 }, /* RupeeSign */ + { 0x010020a9, 26623 }, /* WonSign */ + { 0x010020aa, 20009 }, /* NewSheqelSign */ + { 0x010020ab, 11258 }, /* DongSign */ + { 0x01002202, 21446 }, /* partdifferential */ + { 0x01002205, 11919 }, /* emptyset */ + { 0x01002208, 11802 }, /* elementof */ + { 0x01002209, 20112 }, /* notelementof */ + { 0x0100220b, 8686 }, /* containsas */ + { 0x0100221a, 23809 }, /* squareroot */ + { 0x0100221b, 8757 }, /* cuberoot */ + { 0x0100221c, 12645 }, /* fourthroot */ + { 0x0100222c, 11232 }, /* dintegral */ + { 0x0100222d, 25585 }, /* tintegral */ + { 0x01002235, 3396 }, /* because */ + { 0x01002247, 20100 }, /* notapproxeq */ + { 0x01002248, 945 }, /* approxeq */ + { 0x01002262, 20134 }, /* notidentical */ + { 0x01002263, 23854 }, /* stricteq */ + { 0x01002800, 3628 }, /* braille_blank */ + { 0x01002801, 3783 }, /* braille_dots_1 */ + { 0x01002802, 6151 }, /* braille_dots_2 */ + { 0x01002803, 3798 }, /* braille_dots_12 */ + { 0x01002804, 7303 }, /* braille_dots_3 */ + { 0x01002805, 5014 }, /* braille_dots_13 */ + { 0x01002806, 6166 }, /* braille_dots_23 */ + { 0x01002807, 3814 }, /* braille_dots_123 */ + { 0x01002808, 7863 }, /* braille_dots_4 */ + { 0x01002809, 5606 }, /* braille_dots_14 */ + { 0x0100280a, 6758 }, /* braille_dots_24 */ + { 0x0100280b, 4438 }, /* braille_dots_124 */ + { 0x0100280c, 7318 }, /* braille_dots_34 */ + { 0x0100280d, 5030 }, /* braille_dots_134 */ + { 0x0100280e, 6182 }, /* braille_dots_234 */ + { 0x0100280f, 3831 }, /* braille_dots_1234 */ + { 0x01002810, 8135 }, /* braille_dots_5 */ + { 0x01002811, 5894 }, /* braille_dots_15 */ + { 0x01002812, 7046 }, /* braille_dots_25 */ + { 0x01002813, 4742 }, /* braille_dots_125 */ + { 0x01002814, 7606 }, /* braille_dots_35 */ + { 0x01002815, 5334 }, /* braille_dots_135 */ + { 0x01002816, 6486 }, /* braille_dots_235 */ + { 0x01002817, 4151 }, /* braille_dots_1235 */ + { 0x01002818, 7878 }, /* braille_dots_45 */ + { 0x01002819, 5622 }, /* braille_dots_145 */ + { 0x0100281a, 6774 }, /* braille_dots_245 */ + { 0x0100281b, 4455 }, /* braille_dots_1245 */ + { 0x0100281c, 7334 }, /* braille_dots_345 */ + { 0x0100281d, 5047 }, /* braille_dots_1345 */ + { 0x0100281e, 6199 }, /* braille_dots_2345 */ + { 0x0100281f, 3849 }, /* braille_dots_12345 */ + { 0x01002820, 8267 }, /* braille_dots_6 */ + { 0x01002821, 6034 }, /* braille_dots_16 */ + { 0x01002822, 7186 }, /* braille_dots_26 */ + { 0x01002823, 4890 }, /* braille_dots_126 */ + { 0x01002824, 7746 }, /* braille_dots_36 */ + { 0x01002825, 5482 }, /* braille_dots_136 */ + { 0x01002826, 6634 }, /* braille_dots_236 */ + { 0x01002827, 4307 }, /* braille_dots_1236 */ + { 0x01002828, 8018 }, /* braille_dots_46 */ + { 0x01002829, 5770 }, /* braille_dots_146 */ + { 0x0100282a, 6922 }, /* braille_dots_246 */ + { 0x0100282b, 4611 }, /* braille_dots_1246 */ + { 0x0100282c, 7482 }, /* braille_dots_346 */ + { 0x0100282d, 5203 }, /* braille_dots_1346 */ + { 0x0100282e, 6355 }, /* braille_dots_2346 */ + { 0x0100282f, 4013 }, /* braille_dots_12346 */ + { 0x01002830, 8150 }, /* braille_dots_56 */ + { 0x01002831, 5910 }, /* braille_dots_156 */ + { 0x01002832, 7062 }, /* braille_dots_256 */ + { 0x01002833, 4759 }, /* braille_dots_1256 */ + { 0x01002834, 7622 }, /* braille_dots_356 */ + { 0x01002835, 5351 }, /* braille_dots_1356 */ + { 0x01002836, 6503 }, /* braille_dots_2356 */ + { 0x01002837, 4169 }, /* braille_dots_12356 */ + { 0x01002838, 7894 }, /* braille_dots_456 */ + { 0x01002839, 5639 }, /* braille_dots_1456 */ + { 0x0100283a, 6791 }, /* braille_dots_2456 */ + { 0x0100283b, 4473 }, /* braille_dots_12456 */ + { 0x0100283c, 7351 }, /* braille_dots_3456 */ + { 0x0100283d, 5065 }, /* braille_dots_13456 */ + { 0x0100283e, 6217 }, /* braille_dots_23456 */ + { 0x0100283f, 3868 }, /* braille_dots_123456 */ + { 0x01002840, 8331 }, /* braille_dots_7 */ + { 0x01002841, 6102 }, /* braille_dots_17 */ + { 0x01002842, 7254 }, /* braille_dots_27 */ + { 0x01002843, 4962 }, /* braille_dots_127 */ + { 0x01002844, 7814 }, /* braille_dots_37 */ + { 0x01002845, 5554 }, /* braille_dots_137 */ + { 0x01002846, 6706 }, /* braille_dots_237 */ + { 0x01002847, 4383 }, /* braille_dots_1237 */ + { 0x01002848, 8086 }, /* braille_dots_47 */ + { 0x01002849, 5842 }, /* braille_dots_147 */ + { 0x0100284a, 6994 }, /* braille_dots_247 */ + { 0x0100284b, 4687 }, /* braille_dots_1247 */ + { 0x0100284c, 7554 }, /* braille_dots_347 */ + { 0x0100284d, 5279 }, /* braille_dots_1347 */ + { 0x0100284e, 6431 }, /* braille_dots_2347 */ + { 0x0100284f, 4093 }, /* braille_dots_12347 */ + { 0x01002850, 8218 }, /* braille_dots_57 */ + { 0x01002851, 5982 }, /* braille_dots_157 */ + { 0x01002852, 7134 }, /* braille_dots_257 */ + { 0x01002853, 4835 }, /* braille_dots_1257 */ + { 0x01002854, 7694 }, /* braille_dots_357 */ + { 0x01002855, 5427 }, /* braille_dots_1357 */ + { 0x01002856, 6579 }, /* braille_dots_2357 */ + { 0x01002857, 4249 }, /* braille_dots_12357 */ + { 0x01002858, 7966 }, /* braille_dots_457 */ + { 0x01002859, 5715 }, /* braille_dots_1457 */ + { 0x0100285a, 6867 }, /* braille_dots_2457 */ + { 0x0100285b, 4553 }, /* braille_dots_12457 */ + { 0x0100285c, 7427 }, /* braille_dots_3457 */ + { 0x0100285d, 5145 }, /* braille_dots_13457 */ + { 0x0100285e, 6297 }, /* braille_dots_23457 */ + { 0x0100285f, 3952 }, /* braille_dots_123457 */ + { 0x01002860, 8282 }, /* braille_dots_67 */ + { 0x01002861, 6050 }, /* braille_dots_167 */ + { 0x01002862, 7202 }, /* braille_dots_267 */ + { 0x01002863, 4907 }, /* braille_dots_1267 */ + { 0x01002864, 7762 }, /* braille_dots_367 */ + { 0x01002865, 5499 }, /* braille_dots_1367 */ + { 0x01002866, 6651 }, /* braille_dots_2367 */ + { 0x01002867, 4325 }, /* braille_dots_12367 */ + { 0x01002868, 8034 }, /* braille_dots_467 */ + { 0x01002869, 5787 }, /* braille_dots_1467 */ + { 0x0100286a, 6939 }, /* braille_dots_2467 */ + { 0x0100286b, 4629 }, /* braille_dots_12467 */ + { 0x0100286c, 7499 }, /* braille_dots_3467 */ + { 0x0100286d, 5221 }, /* braille_dots_13467 */ + { 0x0100286e, 6373 }, /* braille_dots_23467 */ + { 0x0100286f, 4032 }, /* braille_dots_123467 */ + { 0x01002870, 8166 }, /* braille_dots_567 */ + { 0x01002871, 5927 }, /* braille_dots_1567 */ + { 0x01002872, 7079 }, /* braille_dots_2567 */ + { 0x01002873, 4777 }, /* braille_dots_12567 */ + { 0x01002874, 7639 }, /* braille_dots_3567 */ + { 0x01002875, 5369 }, /* braille_dots_13567 */ + { 0x01002876, 6521 }, /* braille_dots_23567 */ + { 0x01002877, 4188 }, /* braille_dots_123567 */ + { 0x01002878, 7911 }, /* braille_dots_4567 */ + { 0x01002879, 5657 }, /* braille_dots_14567 */ + { 0x0100287a, 6809 }, /* braille_dots_24567 */ + { 0x0100287b, 4492 }, /* braille_dots_124567 */ + { 0x0100287c, 7369 }, /* braille_dots_34567 */ + { 0x0100287d, 5084 }, /* braille_dots_134567 */ + { 0x0100287e, 6236 }, /* braille_dots_234567 */ + { 0x0100287f, 3888 }, /* braille_dots_1234567 */ + { 0x01002880, 8362 }, /* braille_dots_8 */ + { 0x01002881, 6135 }, /* braille_dots_18 */ + { 0x01002882, 7287 }, /* braille_dots_28 */ + { 0x01002883, 4997 }, /* braille_dots_128 */ + { 0x01002884, 7847 }, /* braille_dots_38 */ + { 0x01002885, 5589 }, /* braille_dots_138 */ + { 0x01002886, 6741 }, /* braille_dots_238 */ + { 0x01002887, 4420 }, /* braille_dots_1238 */ + { 0x01002888, 8119 }, /* braille_dots_48 */ + { 0x01002889, 5877 }, /* braille_dots_148 */ + { 0x0100288a, 7029 }, /* braille_dots_248 */ + { 0x0100288b, 4724 }, /* braille_dots_1248 */ + { 0x0100288c, 7589 }, /* braille_dots_348 */ + { 0x0100288d, 5316 }, /* braille_dots_1348 */ + { 0x0100288e, 6468 }, /* braille_dots_2348 */ + { 0x0100288f, 4132 }, /* braille_dots_12348 */ + { 0x01002890, 8251 }, /* braille_dots_58 */ + { 0x01002891, 6017 }, /* braille_dots_158 */ + { 0x01002892, 7169 }, /* braille_dots_258 */ + { 0x01002893, 4872 }, /* braille_dots_1258 */ + { 0x01002894, 7729 }, /* braille_dots_358 */ + { 0x01002895, 5464 }, /* braille_dots_1358 */ + { 0x01002896, 6616 }, /* braille_dots_2358 */ + { 0x01002897, 4288 }, /* braille_dots_12358 */ + { 0x01002898, 8001 }, /* braille_dots_458 */ + { 0x01002899, 5752 }, /* braille_dots_1458 */ + { 0x0100289a, 6904 }, /* braille_dots_2458 */ + { 0x0100289b, 4592 }, /* braille_dots_12458 */ + { 0x0100289c, 7464 }, /* braille_dots_3458 */ + { 0x0100289d, 5184 }, /* braille_dots_13458 */ + { 0x0100289e, 6336 }, /* braille_dots_23458 */ + { 0x0100289f, 3993 }, /* braille_dots_123458 */ + { 0x010028a0, 8315 }, /* braille_dots_68 */ + { 0x010028a1, 6085 }, /* braille_dots_168 */ + { 0x010028a2, 7237 }, /* braille_dots_268 */ + { 0x010028a3, 4944 }, /* braille_dots_1268 */ + { 0x010028a4, 7797 }, /* braille_dots_368 */ + { 0x010028a5, 5536 }, /* braille_dots_1368 */ + { 0x010028a6, 6688 }, /* braille_dots_2368 */ + { 0x010028a7, 4364 }, /* braille_dots_12368 */ + { 0x010028a8, 8069 }, /* braille_dots_468 */ + { 0x010028a9, 5824 }, /* braille_dots_1468 */ + { 0x010028aa, 6976 }, /* braille_dots_2468 */ + { 0x010028ab, 4668 }, /* braille_dots_12468 */ + { 0x010028ac, 7536 }, /* braille_dots_3468 */ + { 0x010028ad, 5260 }, /* braille_dots_13468 */ + { 0x010028ae, 6412 }, /* braille_dots_23468 */ + { 0x010028af, 4073 }, /* braille_dots_123468 */ + { 0x010028b0, 8201 }, /* braille_dots_568 */ + { 0x010028b1, 5964 }, /* braille_dots_1568 */ + { 0x010028b2, 7116 }, /* braille_dots_2568 */ + { 0x010028b3, 4816 }, /* braille_dots_12568 */ + { 0x010028b4, 7676 }, /* braille_dots_3568 */ + { 0x010028b5, 5408 }, /* braille_dots_13568 */ + { 0x010028b6, 6560 }, /* braille_dots_23568 */ + { 0x010028b7, 4229 }, /* braille_dots_123568 */ + { 0x010028b8, 7948 }, /* braille_dots_4568 */ + { 0x010028b9, 5696 }, /* braille_dots_14568 */ + { 0x010028ba, 6848 }, /* braille_dots_24568 */ + { 0x010028bb, 4533 }, /* braille_dots_124568 */ + { 0x010028bc, 7408 }, /* braille_dots_34568 */ + { 0x010028bd, 5125 }, /* braille_dots_134568 */ + { 0x010028be, 6277 }, /* braille_dots_234568 */ + { 0x010028bf, 3931 }, /* braille_dots_1234568 */ + { 0x010028c0, 8346 }, /* braille_dots_78 */ + { 0x010028c1, 6118 }, /* braille_dots_178 */ + { 0x010028c2, 7270 }, /* braille_dots_278 */ + { 0x010028c3, 4979 }, /* braille_dots_1278 */ + { 0x010028c4, 7830 }, /* braille_dots_378 */ + { 0x010028c5, 5571 }, /* braille_dots_1378 */ + { 0x010028c6, 6723 }, /* braille_dots_2378 */ + { 0x010028c7, 4401 }, /* braille_dots_12378 */ + { 0x010028c8, 8102 }, /* braille_dots_478 */ + { 0x010028c9, 5859 }, /* braille_dots_1478 */ + { 0x010028ca, 7011 }, /* braille_dots_2478 */ + { 0x010028cb, 4705 }, /* braille_dots_12478 */ + { 0x010028cc, 7571 }, /* braille_dots_3478 */ + { 0x010028cd, 5297 }, /* braille_dots_13478 */ + { 0x010028ce, 6449 }, /* braille_dots_23478 */ + { 0x010028cf, 4112 }, /* braille_dots_123478 */ + { 0x010028d0, 8234 }, /* braille_dots_578 */ + { 0x010028d1, 5999 }, /* braille_dots_1578 */ + { 0x010028d2, 7151 }, /* braille_dots_2578 */ + { 0x010028d3, 4853 }, /* braille_dots_12578 */ + { 0x010028d4, 7711 }, /* braille_dots_3578 */ + { 0x010028d5, 5445 }, /* braille_dots_13578 */ + { 0x010028d6, 6597 }, /* braille_dots_23578 */ + { 0x010028d7, 4268 }, /* braille_dots_123578 */ + { 0x010028d8, 7983 }, /* braille_dots_4578 */ + { 0x010028d9, 5733 }, /* braille_dots_14578 */ + { 0x010028da, 6885 }, /* braille_dots_24578 */ + { 0x010028db, 4572 }, /* braille_dots_124578 */ + { 0x010028dc, 7445 }, /* braille_dots_34578 */ + { 0x010028dd, 5164 }, /* braille_dots_134578 */ + { 0x010028de, 6316 }, /* braille_dots_234578 */ + { 0x010028df, 3972 }, /* braille_dots_1234578 */ + { 0x010028e0, 8298 }, /* braille_dots_678 */ + { 0x010028e1, 6067 }, /* braille_dots_1678 */ + { 0x010028e2, 7219 }, /* braille_dots_2678 */ + { 0x010028e3, 4925 }, /* braille_dots_12678 */ + { 0x010028e4, 7779 }, /* braille_dots_3678 */ + { 0x010028e5, 5517 }, /* braille_dots_13678 */ + { 0x010028e6, 6669 }, /* braille_dots_23678 */ + { 0x010028e7, 4344 }, /* braille_dots_123678 */ + { 0x010028e8, 8051 }, /* braille_dots_4678 */ + { 0x010028e9, 5805 }, /* braille_dots_14678 */ + { 0x010028ea, 6957 }, /* braille_dots_24678 */ + { 0x010028eb, 4648 }, /* braille_dots_124678 */ + { 0x010028ec, 7517 }, /* braille_dots_34678 */ + { 0x010028ed, 5240 }, /* braille_dots_134678 */ + { 0x010028ee, 6392 }, /* braille_dots_234678 */ + { 0x010028ef, 4052 }, /* braille_dots_1234678 */ + { 0x010028f0, 8183 }, /* braille_dots_5678 */ + { 0x010028f1, 5945 }, /* braille_dots_15678 */ + { 0x010028f2, 7097 }, /* braille_dots_25678 */ + { 0x010028f3, 4796 }, /* braille_dots_125678 */ + { 0x010028f4, 7657 }, /* braille_dots_35678 */ + { 0x010028f5, 5388 }, /* braille_dots_135678 */ + { 0x010028f6, 6540 }, /* braille_dots_235678 */ + { 0x010028f7, 4208 }, /* braille_dots_1235678 */ + { 0x010028f8, 7929 }, /* braille_dots_45678 */ + { 0x010028f9, 5676 }, /* braille_dots_145678 */ + { 0x010028fa, 6828 }, /* braille_dots_245678 */ + { 0x010028fb, 4512 }, /* braille_dots_1245678 */ + { 0x010028fc, 7388 }, /* braille_dots_345678 */ + { 0x010028fd, 5104 }, /* braille_dots_1345678 */ + { 0x010028fe, 6256 }, /* braille_dots_2345678 */ + { 0x010028ff, 3909 }, /* braille_dots_12345678 */ + { 0x100000a8, 16910 }, /* hpmute_acute */ + { 0x100000a9, 16977 }, /* hpmute_grave */ + { 0x100000aa, 16923 }, /* hpmute_asciicircum */ + { 0x100000ab, 16960 }, /* hpmute_diaeresis */ + { 0x100000ac, 16942 }, /* hpmute_asciitilde */ + { 0x100000af, 16867 }, /* hplira */ + { 0x100000be, 16813 }, /* hpguilder */ + { 0x100000ee, 17014 }, /* hpYdiaeresis */ + { 0x100000f6, 16874 }, /* hplongminus */ + { 0x100000fc, 16767 }, /* hpblock */ + { 0x1000fe22, 10414 }, /* Ddiaeresis */ + { 0x1000fe27, 10344 }, /* Dacute_accent */ + { 0x1000fe2c, 10379 }, /* Dcedilla_accent */ + { 0x1000fe5e, 10395 }, /* Dcircumflex_accent */ + { 0x1000fe60, 11189 }, /* Dgrave_accent */ + { 0x1000fe7e, 11417 }, /* Dtilde */ + { 0x1000feb0, 11388 }, /* Dring_accent */ + { 0x1000ff00, 11380 }, /* DRemove */ + { 0x1000ff48, 16886 }, /* hpModelock1 */ + { 0x1000ff49, 16898 }, /* hpModelock2 */ + { 0x1000ff6c, 16990 }, /* hpReset */ + { 0x1000ff6d, 16998 }, /* hpSystem */ + { 0x1000ff6e, 17007 }, /* hpUser */ + { 0x1000ff6f, 16775 }, /* hpClearLine */ + { 0x1000ff70, 16836 }, /* hpInsertLine */ + { 0x1000ff71, 16800 }, /* hpDeleteLine */ + { 0x1000ff72, 16823 }, /* hpInsertChar */ + { 0x1000ff73, 16787 }, /* hpDeleteChar */ + { 0x1000ff74, 16757 }, /* hpBackTab */ + { 0x1000ff75, 16854 }, /* hpKP_BackTab */ + { 0x1000ff76, 12125 }, /* Ext16bit_L */ + { 0x1000ff77, 12136 }, /* Ext16bit_R */ + { 0x1004ff02, 20956 }, /* osfCopy */ + { 0x1004ff03, 20964 }, /* osfCut */ + { 0x1004ff04, 21163 }, /* osfPaste */ + { 0x1004ff07, 20900 }, /* osfBackTab */ + { 0x1004ff08, 20887 }, /* osfBackSpace */ + { 0x1004ff0b, 20947 }, /* osfClear */ + { 0x1004ff1b, 21026 }, /* osfEscape */ + { 0x1004ff31, 20876 }, /* osfAddMode */ + { 0x1004ff32, 21197 }, /* osfPrimaryPaste */ + { 0x1004ff33, 21213 }, /* osfQuickPaste */ + { 0x1004ff40, 21128 }, /* osfPageLeft */ + { 0x1004ff41, 21153 }, /* osfPageUp */ + { 0x1004ff42, 21116 }, /* osfPageDown */ + { 0x1004ff43, 21140 }, /* osfPageRight */ + { 0x1004ff44, 20864 }, /* osfActivate */ + { 0x1004ff45, 21080 }, /* osfMenuBar */ + { 0x1004ff51, 21064 }, /* osfLeft */ + { 0x1004ff52, 21290 }, /* osfUp */ + { 0x1004ff53, 21250 }, /* osfRight */ + { 0x1004ff54, 20996 }, /* osfDown */ + { 0x1004ff57, 21015 }, /* osfEndLine */ + { 0x1004ff58, 20924 }, /* osfBeginLine */ + { 0x1004ff59, 21004 }, /* osfEndData */ + { 0x1004ff5a, 20911 }, /* osfBeginData */ + { 0x1004ff5b, 21185 }, /* osfPrevMenu */ + { 0x1004ff5c, 21104 }, /* osfNextMenu */ + { 0x1004ff5d, 21172 }, /* osfPrevField */ + { 0x1004ff5e, 21091 }, /* osfNextField */ + { 0x1004ff60, 21259 }, /* osfSelect */ + { 0x1004ff63, 21054 }, /* osfInsert */ + { 0x1004ff65, 21282 }, /* osfUndo */ + { 0x1004ff67, 21072 }, /* osfMenu */ + { 0x1004ff69, 20937 }, /* osfCancel */ + { 0x1004ff6a, 21046 }, /* osfHelp */ + { 0x1004ff71, 21269 }, /* osfSelectAll */ + { 0x1004ff72, 20981 }, /* osfDeselectAll */ + { 0x1004ff73, 21227 }, /* osfReselect */ + { 0x1004ff74, 21036 }, /* osfExtend */ + { 0x1004ff78, 21239 }, /* osfRestore */ + { 0x1004ffff, 20971 }, /* osfDelete */ + { 0x1005ff00, 24032 }, /* SunFA_Grave */ + { 0x1005ff01, 24003 }, /* SunFA_Circum */ + { 0x1005ff02, 24044 }, /* SunFA_Tilde */ + { 0x1005ff03, 23977 }, /* SunFA_Acute */ + { 0x1005ff04, 24016 }, /* SunFA_Diaeresis */ + { 0x1005ff05, 23989 }, /* SunFA_Cedilla */ + { 0x1005ff10, 23963 }, /* SunF36 */ + { 0x1005ff11, 23970 }, /* SunF37 */ + { 0x1005ff60, 24180 }, /* SunSys_Req */ + { 0x1005ff70, 24163 }, /* SunProps */ + { 0x1005ff71, 24064 }, /* SunFront */ + { 0x1005ff72, 23948 }, /* SunCopy */ + { 0x1005ff73, 24073 }, /* SunOpen */ + { 0x1005ff74, 24103 }, /* SunPaste */ + { 0x1005ff75, 23956 }, /* SunCut */ + { 0x1005ff76, 24112 }, /* SunPowerSwitch */ + { 0x1005ff77, 23884 }, /* SunAudioLowerVolume */ + { 0x1005ff78, 23904 }, /* SunAudioMute */ + { 0x1005ff79, 23917 }, /* SunAudioRaiseVolume */ + { 0x1005ff7a, 24199 }, /* SunVideoDegauss */ + { 0x1005ff7b, 24215 }, /* SunVideoLowerBrightness */ + { 0x1005ff7c, 24239 }, /* SunVideoRaiseBrightness */ + { 0x1005ff7d, 24127 }, /* SunPowerSwitchShift */ + { 0x1008fe01, 28451 }, /* XF86Switch_VT_1 */ + { 0x1008fe02, 28518 }, /* XF86Switch_VT_2 */ + { 0x1008fe03, 28534 }, /* XF86Switch_VT_3 */ + { 0x1008fe04, 28550 }, /* XF86Switch_VT_4 */ + { 0x1008fe05, 28566 }, /* XF86Switch_VT_5 */ + { 0x1008fe06, 28582 }, /* XF86Switch_VT_6 */ + { 0x1008fe07, 28598 }, /* XF86Switch_VT_7 */ + { 0x1008fe08, 28614 }, /* XF86Switch_VT_8 */ + { 0x1008fe09, 28630 }, /* XF86Switch_VT_9 */ + { 0x1008fe0a, 28467 }, /* XF86Switch_VT_10 */ + { 0x1008fe0b, 28484 }, /* XF86Switch_VT_11 */ + { 0x1008fe0c, 28501 }, /* XF86Switch_VT_12 */ + { 0x1008fe20, 28777 }, /* XF86Ungrab */ + { 0x1008fe21, 27135 }, /* XF86ClearGrab */ + { 0x1008fe22, 27962 }, /* XF86Next_VMode */ + { 0x1008fe23, 28084 }, /* XF86Prev_VMode */ + { 0x1008fe24, 27742 }, /* XF86LogWindowTree */ + { 0x1008fe25, 27715 }, /* XF86LogGrabInfo */ + { 0x1008ff01, 27853 }, /* XF86ModeLock */ + { 0x1008ff02, 27888 }, /* XF86MonBrightnessUp */ + { 0x1008ff03, 27866 }, /* XF86MonBrightnessDown */ + { 0x1008ff04, 27491 }, /* XF86KbdLightOnOff */ + { 0x1008ff05, 27471 }, /* XF86KbdBrightnessUp */ + { 0x1008ff06, 27449 }, /* XF86KbdBrightnessDown */ + { 0x1008ff10, 28383 }, /* XF86Standby */ + { 0x1008ff11, 26749 }, /* XF86AudioLowerVolume */ + { 0x1008ff12, 26802 }, /* XF86AudioMute */ + { 0x1008ff13, 26873 }, /* XF86AudioRaiseVolume */ + { 0x1008ff14, 26845 }, /* XF86AudioPlay */ + { 0x1008ff15, 26962 }, /* XF86AudioStop */ + { 0x1008ff16, 26859 }, /* XF86AudioPrev */ + { 0x1008ff17, 26816 }, /* XF86AudioNext */ + { 0x1008ff18, 27412 }, /* XF86HomePage */ + { 0x1008ff19, 27760 }, /* XF86Mail */ + { 0x1008ff1a, 28395 }, /* XF86Start */ + { 0x1008ff1b, 28307 }, /* XF86Search */ + { 0x1008ff1c, 26914 }, /* XF86AudioRecord */ + { 0x1008ff1d, 27090 }, /* XF86Calculator */ + { 0x1008ff1e, 27808 }, /* XF86Memo */ + { 0x1008ff1f, 28681 }, /* XF86ToDoList */ + { 0x1008ff20, 27105 }, /* XF86Calendar */ + { 0x1008ff21, 28057 }, /* XF86PowerDown */ + { 0x1008ff22, 27173 }, /* XF86ContrastAdjust */ + { 0x1008ff23, 28177 }, /* XF86RockerUp */ + { 0x1008ff24, 28146 }, /* XF86RockerDown */ + { 0x1008ff25, 28161 }, /* XF86RockerEnter */ + { 0x1008ff26, 26985 }, /* XF86Back */ + { 0x1008ff27, 27317 }, /* XF86Forward */ + { 0x1008ff28, 28405 }, /* XF86Stop */ + { 0x1008ff29, 28113 }, /* XF86Refresh */ + { 0x1008ff2a, 28071 }, /* XF86PowerOff */ + { 0x1008ff2b, 28865 }, /* XF86WakeUp */ + { 0x1008ff2c, 27258 }, /* XF86Eject */ + { 0x1008ff2d, 28247 }, /* XF86ScreenSaver */ + { 0x1008ff2e, 28921 }, /* XF86WWW */ + { 0x1008ff2f, 28347 }, /* XF86Sleep */ + { 0x1008ff30, 27291 }, /* XF86Favorites */ + { 0x1008ff31, 26830 }, /* XF86AudioPause */ + { 0x1008ff32, 26770 }, /* XF86AudioMedia */ + { 0x1008ff33, 27918 }, /* XF86MyComputer */ + { 0x1008ff34, 28831 }, /* XF86VendorHome */ + { 0x1008ff35, 27701 }, /* XF86LightBulb */ + { 0x1008ff36, 28338 }, /* XF86Shop */ + { 0x1008ff37, 27400 }, /* XF86History */ + { 0x1008ff38, 28001 }, /* XF86OpenURL */ + { 0x1008ff39, 26655 }, /* XF86AddFavorite */ + { 0x1008ff3a, 27425 }, /* XF86HotLinks */ + { 0x1008ff3b, 27054 }, /* XF86BrightnessAdjust */ + { 0x1008ff3c, 27305 }, /* XF86Finance */ + { 0x1008ff3d, 27159 }, /* XF86Community */ + { 0x1008ff3e, 26946 }, /* XF86AudioRewind */ + { 0x1008ff3f, 26994 }, /* XF86BackForward */ + { 0x1008ff40, 27509 }, /* XF86Launch0 */ + { 0x1008ff41, 27521 }, /* XF86Launch1 */ + { 0x1008ff42, 27533 }, /* XF86Launch2 */ + { 0x1008ff43, 27545 }, /* XF86Launch3 */ + { 0x1008ff44, 27557 }, /* XF86Launch4 */ + { 0x1008ff45, 27569 }, /* XF86Launch5 */ + { 0x1008ff46, 27581 }, /* XF86Launch6 */ + { 0x1008ff47, 27593 }, /* XF86Launch7 */ + { 0x1008ff48, 27605 }, /* XF86Launch8 */ + { 0x1008ff49, 27617 }, /* XF86Launch9 */ + { 0x1008ff4a, 27629 }, /* XF86LaunchA */ + { 0x1008ff4b, 27641 }, /* XF86LaunchB */ + { 0x1008ff4c, 27653 }, /* XF86LaunchC */ + { 0x1008ff4d, 27665 }, /* XF86LaunchD */ + { 0x1008ff4e, 27677 }, /* XF86LaunchE */ + { 0x1008ff4f, 27689 }, /* XF86LaunchF */ + { 0x1008ff50, 26671 }, /* XF86ApplicationLeft */ + { 0x1008ff51, 26691 }, /* XF86ApplicationRight */ + { 0x1008ff52, 27045 }, /* XF86Book */ + { 0x1008ff53, 27118 }, /* XF86CD */ + { 0x1008ff54, 27075 }, /* XF86Calculater */ + { 0x1008ff55, 27125 }, /* XF86Clear */ + { 0x1008ff56, 27149 }, /* XF86Close */ + { 0x1008ff57, 27192 }, /* XF86Copy */ + { 0x1008ff58, 27201 }, /* XF86Cut */ + { 0x1008ff59, 27224 }, /* XF86Display */ + { 0x1008ff5a, 27250 }, /* XF86DOS */ + { 0x1008ff5b, 27236 }, /* XF86Documents */ + { 0x1008ff5c, 27268 }, /* XF86Excel */ + { 0x1008ff5d, 27278 }, /* XF86Explorer */ + { 0x1008ff5e, 27360 }, /* XF86Game */ + { 0x1008ff5f, 27369 }, /* XF86Go */ + { 0x1008ff60, 27438 }, /* XF86iTouch */ + { 0x1008ff61, 27731 }, /* XF86LogOff */ + { 0x1008ff62, 27785 }, /* XF86Market */ + { 0x1008ff63, 27796 }, /* XF86Meeting */ + { 0x1008ff65, 27817 }, /* XF86MenuKB */ + { 0x1008ff66, 27828 }, /* XF86MenuPB */ + { 0x1008ff67, 27933 }, /* XF86MySites */ + { 0x1008ff68, 27945 }, /* XF86New */ + { 0x1008ff69, 27953 }, /* XF86News */ + { 0x1008ff6a, 27977 }, /* XF86OfficeHome */ + { 0x1008ff6b, 27992 }, /* XF86Open */ + { 0x1008ff6c, 28013 }, /* XF86Option */ + { 0x1008ff6d, 28024 }, /* XF86Paste */ + { 0x1008ff6e, 28034 }, /* XF86Phone */ + { 0x1008ff70, 28099 }, /* XF86Q */ + { 0x1008ff72, 28136 }, /* XF86Reply */ + { 0x1008ff73, 28125 }, /* XF86Reload */ + { 0x1008ff74, 28190 }, /* XF86RotateWindows */ + { 0x1008ff75, 28223 }, /* XF86RotationPB */ + { 0x1008ff76, 28208 }, /* XF86RotationKB */ + { 0x1008ff77, 28238 }, /* XF86Save */ + { 0x1008ff78, 28294 }, /* XF86ScrollUp */ + { 0x1008ff79, 28279 }, /* XF86ScrollDown */ + { 0x1008ff7a, 28263 }, /* XF86ScrollClick */ + { 0x1008ff7b, 28329 }, /* XF86Send */ + { 0x1008ff7c, 28357 }, /* XF86Spell */ + { 0x1008ff7d, 28367 }, /* XF86SplitScreen */ + { 0x1008ff7e, 28427 }, /* XF86Support */ + { 0x1008ff7f, 28646 }, /* XF86TaskPane */ + { 0x1008ff80, 28659 }, /* XF86Terminal */ + { 0x1008ff81, 28694 }, /* XF86Tools */ + { 0x1008ff82, 28766 }, /* XF86Travel */ + { 0x1008ff84, 28812 }, /* XF86UserPB */ + { 0x1008ff85, 28788 }, /* XF86User1KB */ + { 0x1008ff86, 28800 }, /* XF86User2KB */ + { 0x1008ff87, 28846 }, /* XF86Video */ + { 0x1008ff88, 28887 }, /* XF86WheelButton */ + { 0x1008ff89, 28912 }, /* XF86Word */ + { 0x1008ff8a, 28929 }, /* XF86Xfer */ + { 0x1008ff8b, 28949 }, /* XF86ZoomIn */ + { 0x1008ff8c, 28960 }, /* XF86ZoomOut */ + { 0x1008ff8d, 26976 }, /* XF86Away */ + { 0x1008ff8e, 27839 }, /* XF86Messenger */ + { 0x1008ff8f, 28876 }, /* XF86WebCam */ + { 0x1008ff90, 27769 }, /* XF86MailForward */ + { 0x1008ff91, 28044 }, /* XF86Pictures */ + { 0x1008ff92, 27908 }, /* XF86Music */ + { 0x1008ff93, 27010 }, /* XF86Battery */ + { 0x1008ff94, 27031 }, /* XF86Bluetooth */ + { 0x1008ff95, 28903 }, /* XF86WLAN */ + { 0x1008ff96, 28823 }, /* XF86UWB */ + { 0x1008ff97, 26732 }, /* XF86AudioForward */ + { 0x1008ff98, 26930 }, /* XF86AudioRepeat */ + { 0x1008ff99, 26894 }, /* XF86AudioRandomPlay */ + { 0x1008ff9a, 28414 }, /* XF86Subtitle */ + { 0x1008ff9b, 26712 }, /* XF86AudioCycleTrack */ + { 0x1008ff9c, 27209 }, /* XF86CycleAngle */ + { 0x1008ff9d, 27329 }, /* XF86FrameBack */ + { 0x1008ff9e, 27343 }, /* XF86FrameForward */ + { 0x1008ff9f, 28672 }, /* XF86Time */ + { 0x1008ffa0, 28318 }, /* XF86Select */ + { 0x1008ffa1, 28856 }, /* XF86View */ + { 0x1008ffa2, 28704 }, /* XF86TopMenu */ + { 0x1008ffa3, 28105 }, /* XF86Red */ + { 0x1008ffa4, 27376 }, /* XF86Green */ + { 0x1008ffa5, 28938 }, /* XF86Yellow */ + { 0x1008ffa6, 27022 }, /* XF86Blue */ + { 0x1008ffa7, 28439 }, /* XF86Suspend */ + { 0x1008ffa8, 27386 }, /* XF86Hibernate */ + { 0x1008ffa9, 28747 }, /* XF86TouchpadToggle */ + { 0x1008ffb0, 28732 }, /* XF86TouchpadOn */ + { 0x1008ffb1, 28716 }, /* XF86TouchpadOff */ + { 0x1008ffb2, 26785 }, /* XF86AudioMicMute */ +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/scanner-utils.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/scanner-utils.h new file mode 100644 index 0000000..5fdb22a --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/scanner-utils.h @@ -0,0 +1,195 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef XKBCOMP_SCANNER_UTILS_H +#define XKBCOMP_SCANNER_UTILS_H + +/* Point to some substring in the file; used to avoid copying. */ +struct sval { + const char *start; + unsigned int len; +}; +typedef darray(struct sval) darray_sval; + +static inline bool +svaleq(struct sval s1, struct sval s2) +{ + return s1.len == s2.len && memcmp(s1.start, s2.start, s1.len) == 0; +} + +static inline bool +svaleq_prefix(struct sval s1, struct sval s2) +{ + return s1.len <= s2.len && memcmp(s1.start, s2.start, s1.len) == 0; +} + +struct scanner { + const char *s; + size_t pos; + size_t len; + char buf[1024]; + size_t buf_pos; + unsigned line, column; + /* The line/column of the start of the current token. */ + unsigned token_line, token_column; + const char *file_name; + struct xkb_context *ctx; + void *priv; +}; + +#define scanner_log(scanner, level, fmt, ...) \ + xkb_log((scanner)->ctx, (level), 0, \ + "%s:%u:%u: " fmt "\n", \ + (scanner)->file_name, \ + (scanner)->token_line, (scanner)->token_column, ##__VA_ARGS__) + +#define scanner_err(scanner, fmt, ...) \ + scanner_log(scanner, XKB_LOG_LEVEL_ERROR, fmt, ##__VA_ARGS__) + +#define scanner_warn(scanner, fmt, ...) \ + scanner_log(scanner, XKB_LOG_LEVEL_WARNING, fmt, ##__VA_ARGS__) + +static inline void +scanner_init(struct scanner *s, struct xkb_context *ctx, + const char *string, size_t len, const char *file_name, + void *priv) +{ + s->s = string; + s->len = len; + s->pos = 0; + s->line = s->column = 1; + s->token_line = s->token_column = 1; + s->file_name = file_name; + s->ctx = ctx; + s->priv = priv; +} + +static inline char +peek(struct scanner *s) +{ + if (unlikely(s->pos >= s->len)) + return '\0'; + return s->s[s->pos]; +} + +static inline bool +eof(struct scanner *s) +{ + return s->pos >= s->len; +} + +static inline bool +eol(struct scanner *s) +{ + return peek(s) == '\n'; +} + +static inline void +skip_to_eol(struct scanner *s) +{ + const char *nl = memchr(s->s + s->pos, '\n', s->len - s->pos); + const size_t new_pos = nl ? (size_t) (nl - s->s) : s->len; + s->column += new_pos - s->pos; + s->pos = new_pos; +} + +static inline char +next(struct scanner *s) +{ + if (unlikely(eof(s))) + return '\0'; + if (unlikely(eol(s))) { + s->line++; + s->column = 1; + } + else { + s->column++; + } + return s->s[s->pos++]; +} + +static inline bool +chr(struct scanner *s, char ch) +{ + if (likely(peek(s) != ch)) + return false; + s->pos++; s->column++; + return true; +} + +static inline bool +str(struct scanner *s, const char *string, size_t len) +{ + if (s->len - s->pos < len) + return false; + if (memcmp(s->s + s->pos, string, len) != 0) + return false; + s->pos += len; s->column += len; + return true; +} + +#define lit(s, literal) str(s, literal, sizeof(literal) - 1) + +static inline bool +buf_append(struct scanner *s, char ch) +{ + if (s->buf_pos + 1 >= sizeof(s->buf)) + return false; + s->buf[s->buf_pos++] = ch; + return true; +} + +static inline bool +buf_appends(struct scanner *s, const char *str) +{ + int ret; + ret = snprintf(s->buf + s->buf_pos, sizeof(s->buf) - s->buf_pos, "%s", str); + if (ret < 0 || (size_t) ret >= sizeof(s->buf) - s->buf_pos) + return false; + s->buf_pos += ret; + return true; +} + +static inline bool +oct(struct scanner *s, uint8_t *out) +{ + int i; + for (i = 0, *out = 0; peek(s) >= '0' && peek(s) <= '7' && i < 3; i++) + *out = *out * 8 + next(s) - '0'; + return i > 0; +} + +static inline bool +hex(struct scanner *s, uint8_t *out) +{ + int i; + for (i = 0, *out = 0; is_xdigit(peek(s)) && i < 2; i++) { + const char c = next(s); + const char offset = (c >= '0' && c <= '9' ? '0' : + c >= 'a' && c <= 'f' ? 'a' - 10 : 'A' - 10); + *out = *out * 16 + c - offset; + } + return i > 0; +} + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c new file mode 100644 index 0000000..642ed08 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/state.c @@ -0,0 +1,1386 @@ +/************************************************************ + * Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +/* + * This is a bastardised version of xkbActions.c from the X server which + * does not support, for the moment: + * - AccessX sticky/debounce/etc (will come later) + * - pointer keys (may come later) + * - key redirects (unlikely) + * - messages (very unlikely) + */ + +#include "keymap.h" +#include "keysym.h" +#include "utf8.h" + +struct xkb_filter { + union xkb_action action; + const struct xkb_key *key; + uint32_t priv; + bool (*func)(struct xkb_state *state, + struct xkb_filter *filter, + const struct xkb_key *key, + enum xkb_key_direction direction); + int refcnt; +}; + +struct state_components { + /* These may be negative, because of -1 group actions. */ + int32_t base_group; /**< depressed */ + int32_t latched_group; + int32_t locked_group; + xkb_layout_index_t group; /**< effective */ + + xkb_mod_mask_t base_mods; /**< depressed */ + xkb_mod_mask_t latched_mods; + xkb_mod_mask_t locked_mods; + xkb_mod_mask_t mods; /**< effective */ + + xkb_led_mask_t leds; +}; + +struct xkb_state { + /* + * Before updating the state, we keep a copy of just this struct. This + * allows us to report which components of the state have changed. + */ + struct state_components components; + + /* + * At each event, we accumulate all the needed modifications to the base + * modifiers, and apply them at the end. These keep track of this state. + */ + xkb_mod_mask_t set_mods; + xkb_mod_mask_t clear_mods; + + /* + * We mustn't clear a base modifier if there's another depressed key + * which affects it, e.g. given this sequence + * < Left Shift down, Right Shift down, Left Shift Up > + * the modifier should still be set. This keeps the count. + */ + int16_t mod_key_count[XKB_MAX_MODS]; + + int refcnt; + darray(struct xkb_filter) filters; + struct xkb_keymap *keymap; +}; + +static const struct xkb_key_type_entry * +get_entry_for_key_state(struct xkb_state *state, const struct xkb_key *key, + xkb_layout_index_t group) +{ + const struct xkb_key_type *type = key->groups[group].type; + xkb_mod_mask_t active_mods = state->components.mods & type->mods.mask; + + for (unsigned i = 0; i < type->num_entries; i++) { + /* + * If the virtual modifiers are not bound to anything, we're + * supposed to skip the entry (xserver does this with cached + * entry->active field). + */ + if (type->entries[i].mods.mods != 0 && type->entries[i].mods.mask == 0) + continue; + + if (type->entries[i].mods.mask == active_mods) + return &type->entries[i]; + } + + return NULL; +} + +/** + * Returns the level to use for the given key and state, or + * XKB_LEVEL_INVALID. + */ +XKB_EXPORT xkb_level_index_t +xkb_state_key_get_level(struct xkb_state *state, xkb_keycode_t kc, + xkb_layout_index_t layout) +{ + const struct xkb_key *key = XkbKey(state->keymap, kc); + const struct xkb_key_type_entry *entry; + + if (!key || layout >= key->num_groups) + return XKB_LEVEL_INVALID; + + /* If we don't find an explicit match the default is 0. */ + entry = get_entry_for_key_state(state, key, layout); + if (!entry) + return 0; + + return entry->level; +} + +xkb_layout_index_t +XkbWrapGroupIntoRange(int32_t group, + xkb_layout_index_t num_groups, + enum xkb_range_exceed_type out_of_range_group_action, + xkb_layout_index_t out_of_range_group_number) +{ + if (num_groups == 0) + return XKB_LAYOUT_INVALID; + + if (group >= 0 && (xkb_layout_index_t) group < num_groups) + return group; + + switch (out_of_range_group_action) { + case RANGE_REDIRECT: + if (out_of_range_group_number >= num_groups) + return 0; + return out_of_range_group_number; + + case RANGE_SATURATE: + if (group < 0) + return 0; + else + return num_groups - 1; + + case RANGE_WRAP: + default: + /* + * C99 says a negative dividend in a modulo operation always + * gives a negative result. + */ + if (group < 0) + return ((int) num_groups + (group % (int) num_groups)); + else + return group % num_groups; + } +} + +/** + * Returns the layout to use for the given key and state, taking + * wrapping/clamping/etc into account, or XKB_LAYOUT_INVALID. + */ +XKB_EXPORT xkb_layout_index_t +xkb_state_key_get_layout(struct xkb_state *state, xkb_keycode_t kc) +{ + const struct xkb_key *key = XkbKey(state->keymap, kc); + + if (!key) + return XKB_LAYOUT_INVALID; + + return XkbWrapGroupIntoRange(state->components.group, key->num_groups, + key->out_of_range_group_action, + key->out_of_range_group_number); +} + +static const union xkb_action fake = { .type = ACTION_TYPE_NONE }; + +static const union xkb_action * +xkb_key_get_action(struct xkb_state *state, const struct xkb_key *key) +{ + xkb_layout_index_t layout; + xkb_level_index_t level; + + layout = xkb_state_key_get_layout(state, key->keycode); + if (layout == XKB_LAYOUT_INVALID) + return &fake; + + level = xkb_state_key_get_level(state, key->keycode, layout); + if (level == XKB_LEVEL_INVALID) + return &fake; + + return &key->groups[layout].levels[level].action; +} + +static struct xkb_filter * +xkb_filter_new(struct xkb_state *state) +{ + struct xkb_filter *filter = NULL, *iter; + + darray_foreach(iter, state->filters) { + if (iter->func) + continue; + filter = iter; + break; + } + + if (!filter) { + darray_resize0(state->filters, darray_size(state->filters) + 1); + filter = &darray_item(state->filters, darray_size(state->filters) -1); + } + + filter->refcnt = 1; + return filter; +} + +/***====================================================================***/ + +static bool +xkb_filter_group_set_func(struct xkb_state *state, + struct xkb_filter *filter, + const struct xkb_key *key, + enum xkb_key_direction direction) +{ + if (key != filter->key) { + filter->action.group.flags &= ~ACTION_LOCK_CLEAR; + return true; + } + + if (direction == XKB_KEY_DOWN) { + filter->refcnt++; + return false; + } + else if (--filter->refcnt > 0) { + return false; + } + + state->components.base_group = filter->priv; + + if (filter->action.group.flags & ACTION_LOCK_CLEAR) + state->components.locked_group = 0; + + filter->func = NULL; + return true; +} + +static void +xkb_filter_group_set_new(struct xkb_state *state, struct xkb_filter *filter) +{ + filter->priv = state->components.base_group; + if (filter->action.group.flags & ACTION_ABSOLUTE_SWITCH) + state->components.base_group = filter->action.group.group; + else + state->components.base_group += filter->action.group.group; +} + +static bool +xkb_filter_group_lock_func(struct xkb_state *state, + struct xkb_filter *filter, + const struct xkb_key *key, + enum xkb_key_direction direction) +{ + if (key != filter->key) + return true; + + if (direction == XKB_KEY_DOWN) { + filter->refcnt++; + return false; + } + if (--filter->refcnt > 0) + return false; + + filter->func = NULL; + return true; +} + +static void +xkb_filter_group_lock_new(struct xkb_state *state, struct xkb_filter *filter) +{ + if (filter->action.group.flags & ACTION_ABSOLUTE_SWITCH) + state->components.locked_group = filter->action.group.group; + else + state->components.locked_group += filter->action.group.group; +} + +static bool +xkb_filter_mod_set_func(struct xkb_state *state, + struct xkb_filter *filter, + const struct xkb_key *key, + enum xkb_key_direction direction) +{ + if (key != filter->key) { + filter->action.mods.flags &= ~ACTION_LOCK_CLEAR; + return true; + } + + if (direction == XKB_KEY_DOWN) { + filter->refcnt++; + return false; + } + else if (--filter->refcnt > 0) { + return false; + } + + state->clear_mods = filter->action.mods.mods.mask; + if (filter->action.mods.flags & ACTION_LOCK_CLEAR) + state->components.locked_mods &= ~filter->action.mods.mods.mask; + + filter->func = NULL; + return true; +} + +static void +xkb_filter_mod_set_new(struct xkb_state *state, struct xkb_filter *filter) +{ + state->set_mods = filter->action.mods.mods.mask; +} + +static bool +xkb_filter_mod_lock_func(struct xkb_state *state, + struct xkb_filter *filter, + const struct xkb_key *key, + enum xkb_key_direction direction) +{ + if (key != filter->key) + return true; + + if (direction == XKB_KEY_DOWN) { + filter->refcnt++; + return false; + } + if (--filter->refcnt > 0) + return false; + + state->clear_mods |= filter->action.mods.mods.mask; + if (!(filter->action.mods.flags & ACTION_LOCK_NO_UNLOCK)) + state->components.locked_mods &= ~filter->priv; + + filter->func = NULL; + return true; +} + +static void +xkb_filter_mod_lock_new(struct xkb_state *state, struct xkb_filter *filter) +{ + filter->priv = (state->components.locked_mods & + filter->action.mods.mods.mask); + state->set_mods |= filter->action.mods.mods.mask; + if (!(filter->action.mods.flags & ACTION_LOCK_NO_LOCK)) + state->components.locked_mods |= filter->action.mods.mods.mask; +} + +enum xkb_key_latch_state { + NO_LATCH, + LATCH_KEY_DOWN, + LATCH_PENDING, +}; + +static bool +xkb_action_breaks_latch(const union xkb_action *action) +{ + switch (action->type) { + case ACTION_TYPE_NONE: + case ACTION_TYPE_PTR_BUTTON: + case ACTION_TYPE_PTR_LOCK: + case ACTION_TYPE_CTRL_SET: + case ACTION_TYPE_CTRL_LOCK: + case ACTION_TYPE_SWITCH_VT: + case ACTION_TYPE_TERMINATE: + return true; + default: + return false; + } +} + +static bool +xkb_filter_mod_latch_func(struct xkb_state *state, + struct xkb_filter *filter, + const struct xkb_key *key, + enum xkb_key_direction direction) +{ + enum xkb_key_latch_state latch = filter->priv; + + if (direction == XKB_KEY_DOWN && latch == LATCH_PENDING) { + /* If this is a new keypress and we're awaiting our single latched + * keypress, then either break the latch if any random key is pressed, + * or promote it to a lock or plain base set if it's the same + * modifier. */ + const union xkb_action *action = xkb_key_get_action(state, key); + if (action->type == ACTION_TYPE_MOD_LATCH && + action->mods.flags == filter->action.mods.flags && + action->mods.mods.mask == filter->action.mods.mods.mask) { + filter->action = *action; + if (filter->action.mods.flags & ACTION_LATCH_TO_LOCK) { + filter->action.type = ACTION_TYPE_MOD_LOCK; + filter->func = xkb_filter_mod_lock_func; + state->components.locked_mods |= filter->action.mods.mods.mask; + } + else { + filter->action.type = ACTION_TYPE_MOD_SET; + filter->func = xkb_filter_mod_set_func; + state->set_mods = filter->action.mods.mods.mask; + } + filter->key = key; + state->components.latched_mods &= ~filter->action.mods.mods.mask; + /* XXX beep beep! */ + return false; + } + else if (xkb_action_breaks_latch(action)) { + /* XXX: This may be totally broken, we might need to break the + * latch in the next run after this press? */ + state->components.latched_mods &= ~filter->action.mods.mods.mask; + filter->func = NULL; + return true; + } + } + else if (direction == XKB_KEY_UP && key == filter->key) { + /* Our key got released. If we've set it to clear locks, and we + * currently have the same modifiers locked, then release them and + * don't actually latch. Else we've actually hit the latching + * stage, so set PENDING and move our modifier from base to + * latched. */ + if (latch == NO_LATCH || + ((filter->action.mods.flags & ACTION_LOCK_CLEAR) && + (state->components.locked_mods & filter->action.mods.mods.mask) == + filter->action.mods.mods.mask)) { + /* XXX: We might be a bit overenthusiastic about clearing + * mods other filters have set here? */ + if (latch == LATCH_PENDING) + state->components.latched_mods &= + ~filter->action.mods.mods.mask; + else + state->clear_mods = filter->action.mods.mods.mask; + state->components.locked_mods &= ~filter->action.mods.mods.mask; + filter->func = NULL; + } + else { + latch = LATCH_PENDING; + state->clear_mods = filter->action.mods.mods.mask; + state->components.latched_mods |= filter->action.mods.mods.mask; + /* XXX beep beep! */ + } + } + else if (direction == XKB_KEY_DOWN && latch == LATCH_KEY_DOWN) { + /* Someone's pressed another key while we've still got the latching + * key held down, so keep the base modifier state active (from + * xkb_filter_mod_latch_new), but don't trip the latch, just clear + * it as soon as the modifier gets released. */ + latch = NO_LATCH; + } + + filter->priv = latch; + + return true; +} + +static void +xkb_filter_mod_latch_new(struct xkb_state *state, struct xkb_filter *filter) +{ + filter->priv = LATCH_KEY_DOWN; + state->set_mods = filter->action.mods.mods.mask; +} + +static const struct { + void (*new)(struct xkb_state *state, struct xkb_filter *filter); + bool (*func)(struct xkb_state *state, struct xkb_filter *filter, + const struct xkb_key *key, enum xkb_key_direction direction); +} filter_action_funcs[_ACTION_TYPE_NUM_ENTRIES] = { + [ACTION_TYPE_MOD_SET] = { xkb_filter_mod_set_new, + xkb_filter_mod_set_func }, + [ACTION_TYPE_MOD_LATCH] = { xkb_filter_mod_latch_new, + xkb_filter_mod_latch_func }, + [ACTION_TYPE_MOD_LOCK] = { xkb_filter_mod_lock_new, + xkb_filter_mod_lock_func }, + [ACTION_TYPE_GROUP_SET] = { xkb_filter_group_set_new, + xkb_filter_group_set_func }, + [ACTION_TYPE_GROUP_LOCK] = { xkb_filter_group_lock_new, + xkb_filter_group_lock_func }, +}; + +/** + * Applies any relevant filters to the key, first from the list of filters + * that are currently active, then if no filter has claimed the key, possibly + * apply a new filter from the key action. + */ +static void +xkb_filter_apply_all(struct xkb_state *state, + const struct xkb_key *key, + enum xkb_key_direction direction) +{ + struct xkb_filter *filter; + const union xkb_action *action; + bool send = true; + + /* First run through all the currently active filters and see if any of + * them have claimed this event. */ + darray_foreach(filter, state->filters) { + if (!filter->func) + continue; + send = filter->func(state, filter, key, direction) && send; + } + + if (!send || direction == XKB_KEY_UP) + return; + + action = xkb_key_get_action(state, key); + + /* + * It's possible for the keymap to set action->type explicitly, like so: + * interpret XF86_Next_VMode { + * action = Private(type=0x86, data="+VMode"); + * }; + * We don't handle those. + */ + if (action->type >= _ACTION_TYPE_NUM_ENTRIES) + return; + + if (!filter_action_funcs[action->type].new) + return; + + filter = xkb_filter_new(state); + if (!filter) + return; /* WSGO */ + + filter->key = key; + filter->func = filter_action_funcs[action->type].func; + filter->action = *action; + filter_action_funcs[action->type].new(state, filter); +} + +XKB_EXPORT struct xkb_state * +xkb_state_new(struct xkb_keymap *keymap) +{ + struct xkb_state *ret; + + ret = calloc(sizeof(*ret), 1); + if (!ret) + return NULL; + + ret->refcnt = 1; + ret->keymap = xkb_keymap_ref(keymap); + + return ret; +} + +XKB_EXPORT struct xkb_state * +xkb_state_ref(struct xkb_state *state) +{ + state->refcnt++; + return state; +} + +XKB_EXPORT void +xkb_state_unref(struct xkb_state *state) +{ + if (!state || --state->refcnt > 0) + return; + + xkb_keymap_unref(state->keymap); + darray_free(state->filters); + free(state); +} + +XKB_EXPORT struct xkb_keymap * +xkb_state_get_keymap(struct xkb_state *state) +{ + return state->keymap; +} + +/** + * Update the LED state to match the rest of the xkb_state. + */ +static void +xkb_state_led_update_all(struct xkb_state *state) +{ + xkb_led_index_t idx; + const struct xkb_led *led; + + state->components.leds = 0; + + xkb_leds_enumerate(idx, led, state->keymap) { + xkb_mod_mask_t mod_mask = 0; + xkb_layout_mask_t group_mask = 0; + + if (led->which_mods != 0 && led->mods.mask != 0) { + if (led->which_mods & XKB_STATE_MODS_EFFECTIVE) + mod_mask |= state->components.mods; + if (led->which_mods & XKB_STATE_MODS_DEPRESSED) + mod_mask |= state->components.base_mods; + if (led->which_mods & XKB_STATE_MODS_LATCHED) + mod_mask |= state->components.latched_mods; + if (led->which_mods & XKB_STATE_MODS_LOCKED) + mod_mask |= state->components.locked_mods; + + if (led->mods.mask & mod_mask) { + state->components.leds |= (1u << idx); + continue; + } + } + + if (led->which_groups != 0 && led->groups != 0) { + if (led->which_groups & XKB_STATE_LAYOUT_EFFECTIVE) + group_mask |= (1u << state->components.group); + if (led->which_groups & XKB_STATE_LAYOUT_DEPRESSED) + group_mask |= (1u << state->components.base_group); + if (led->which_groups & XKB_STATE_LAYOUT_LATCHED) + group_mask |= (1u << state->components.latched_group); + if (led->which_groups & XKB_STATE_LAYOUT_LOCKED) + group_mask |= (1u << state->components.locked_group); + + if (led->groups & group_mask) { + state->components.leds |= (1u << idx); + continue; + } + } + + if (led->ctrls & state->keymap->enabled_ctrls) { + state->components.leds |= (1u << idx); + continue; + } + } +} + +/** + * Calculates the derived state (effective mods/group and LEDs) from an + * up-to-date xkb_state. + */ +static void +xkb_state_update_derived(struct xkb_state *state) +{ + xkb_layout_index_t wrapped; + + state->components.mods = (state->components.base_mods | + state->components.latched_mods | + state->components.locked_mods); + + /* TODO: Use groups_wrap control instead of always RANGE_WRAP. */ + + wrapped = XkbWrapGroupIntoRange(state->components.locked_group, + state->keymap->num_groups, + RANGE_WRAP, 0); + state->components.locked_group = + (wrapped == XKB_LAYOUT_INVALID ? 0 : wrapped); + + wrapped = XkbWrapGroupIntoRange(state->components.base_group + + state->components.latched_group + + state->components.locked_group, + state->keymap->num_groups, + RANGE_WRAP, 0); + state->components.group = + (wrapped == XKB_LAYOUT_INVALID ? 0 : wrapped); + + xkb_state_led_update_all(state); +} + +static enum xkb_state_component +get_state_component_changes(const struct state_components *a, + const struct state_components *b) +{ + xkb_mod_mask_t mask = 0; + + if (a->group != b->group) + mask |= XKB_STATE_LAYOUT_EFFECTIVE; + if (a->base_group != b->base_group) + mask |= XKB_STATE_LAYOUT_DEPRESSED; + if (a->latched_group != b->latched_group) + mask |= XKB_STATE_LAYOUT_LATCHED; + if (a->locked_group != b->locked_group) + mask |= XKB_STATE_LAYOUT_LOCKED; + if (a->mods != b->mods) + mask |= XKB_STATE_MODS_EFFECTIVE; + if (a->base_mods != b->base_mods) + mask |= XKB_STATE_MODS_DEPRESSED; + if (a->latched_mods != b->latched_mods) + mask |= XKB_STATE_MODS_LATCHED; + if (a->locked_mods != b->locked_mods) + mask |= XKB_STATE_MODS_LOCKED; + if (a->leds != b->leds) + mask |= XKB_STATE_LEDS; + + return mask; +} + +/** + * Given a particular key event, updates the state structure to reflect the + * new modifiers. + */ +XKB_EXPORT enum xkb_state_component +xkb_state_update_key(struct xkb_state *state, xkb_keycode_t kc, + enum xkb_key_direction direction) +{ + xkb_mod_index_t i; + xkb_mod_mask_t bit; + struct state_components prev_components; + const struct xkb_key *key = XkbKey(state->keymap, kc); + + if (!key) + return 0; + + prev_components = state->components; + + state->set_mods = 0; + state->clear_mods = 0; + + xkb_filter_apply_all(state, key, direction); + + for (i = 0, bit = 1; state->set_mods; i++, bit <<= 1) { + if (state->set_mods & bit) { + state->mod_key_count[i]++; + state->components.base_mods |= bit; + state->set_mods &= ~bit; + } + } + + for (i = 0, bit = 1; state->clear_mods; i++, bit <<= 1) { + if (state->clear_mods & bit) { + state->mod_key_count[i]--; + if (state->mod_key_count[i] <= 0) { + state->components.base_mods &= ~bit; + state->mod_key_count[i] = 0; + } + state->clear_mods &= ~bit; + } + } + + xkb_state_update_derived(state); + + return get_state_component_changes(&prev_components, &state->components); +} + +/** + * Updates the state from a set of explicit masks as gained from + * xkb_state_serialize_mods and xkb_state_serialize_groups. As noted in the + * documentation for these functions in xkbcommon.h, this round-trip is + * lossy, and should only be used to update a slave state mirroring the + * master, e.g. in a client/server window system. + */ +XKB_EXPORT enum xkb_state_component +xkb_state_update_mask(struct xkb_state *state, + xkb_mod_mask_t base_mods, + xkb_mod_mask_t latched_mods, + xkb_mod_mask_t locked_mods, + xkb_layout_index_t base_group, + xkb_layout_index_t latched_group, + xkb_layout_index_t locked_group) +{ + struct state_components prev_components; + xkb_mod_mask_t mask; + + prev_components = state->components; + + /* Only include modifiers which exist in the keymap. */ + mask = (xkb_mod_mask_t) ((1ull << xkb_keymap_num_mods(state->keymap)) - 1u); + + state->components.base_mods = base_mods & mask; + state->components.latched_mods = latched_mods & mask; + state->components.locked_mods = locked_mods & mask; + + /* Make sure the mods are fully resolved - since we get arbitrary + * input, they might not be. + * + * It might seem more reasonable to do this only for components.mods + * in xkb_state_update_derived(), rather than for each component + * seperately. That would allow to distinguish between "really" + * depressed mods (would be in MODS_DEPRESSED) and indirectly + * depressed to to a mapping (would only be in MODS_EFFECTIVE). + * However, the traditional behavior of xkb_state_update_key() is that + * if a vmod is depressed, its mappings are depressed with it; so we're + * expected to do the same here. Also, LEDs (usually) look if a real + * mod is locked, not just effective; otherwise it won't be lit. + * + * We OR here because mod_mask_get_effective() drops vmods. */ + state->components.base_mods |= + mod_mask_get_effective(state->keymap, state->components.base_mods); + state->components.latched_mods |= + mod_mask_get_effective(state->keymap, state->components.latched_mods); + state->components.locked_mods |= + mod_mask_get_effective(state->keymap, state->components.locked_mods); + + state->components.base_group = base_group; + state->components.latched_group = latched_group; + state->components.locked_group = locked_group; + + xkb_state_update_derived(state); + + return get_state_component_changes(&prev_components, &state->components); +} + +/** + * Provides the symbols to use for the given key and state. Returns the + * number of symbols pointed to in syms_out. + */ +XKB_EXPORT int +xkb_state_key_get_syms(struct xkb_state *state, xkb_keycode_t kc, + const xkb_keysym_t **syms_out) +{ + xkb_layout_index_t layout; + xkb_level_index_t level; + + layout = xkb_state_key_get_layout(state, kc); + if (layout == XKB_LAYOUT_INVALID) + goto err; + + level = xkb_state_key_get_level(state, kc, layout); + if (level == XKB_LEVEL_INVALID) + goto err; + + return xkb_keymap_key_get_syms_by_level(state->keymap, kc, layout, level, + syms_out); + +err: + *syms_out = NULL; + return 0; +} + +/* + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier + */ +static bool +should_do_caps_transformation(struct xkb_state *state, xkb_keycode_t kc) +{ + xkb_mod_index_t caps = + xkb_keymap_mod_get_index(state->keymap, XKB_MOD_NAME_CAPS); + + return + xkb_state_mod_index_is_active(state, caps, XKB_STATE_MODS_EFFECTIVE) > 0 && + xkb_state_mod_index_is_consumed(state, kc, caps) == 0; +} + +/* + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier + */ +static bool +should_do_ctrl_transformation(struct xkb_state *state, xkb_keycode_t kc) +{ + xkb_mod_index_t ctrl = + xkb_keymap_mod_get_index(state->keymap, XKB_MOD_NAME_CTRL); + + return + xkb_state_mod_index_is_active(state, ctrl, XKB_STATE_MODS_EFFECTIVE) > 0 && + xkb_state_mod_index_is_consumed(state, kc, ctrl) == 0; +} + +/* Verbatim from libX11:src/xkb/XKBBind.c */ +static char +XkbToControl(char ch) +{ + char c = ch; + + if ((c >= '@' && c < '\177') || c == ' ') + c &= 0x1F; + else if (c == '2') + c = '\000'; + else if (c >= '3' && c <= '7') + c -= ('3' - '\033'); + else if (c == '8') + c = '\177'; + else if (c == '/') + c = '_' & 0x1F; + return c; +} + +/** + * Provides either exactly one symbol, or XKB_KEY_NoSymbol. + */ +XKB_EXPORT xkb_keysym_t +xkb_state_key_get_one_sym(struct xkb_state *state, xkb_keycode_t kc) +{ + const xkb_keysym_t *syms; + xkb_keysym_t sym; + int num_syms; + + num_syms = xkb_state_key_get_syms(state, kc, &syms); + if (num_syms != 1) + return XKB_KEY_NoSymbol; + + sym = syms[0]; + + if (should_do_caps_transformation(state, kc)) + sym = xkb_keysym_to_upper(sym); + + return sym; +} + +/* + * The caps and ctrl transformations require some special handling, + * so we cannot simply use xkb_state_get_one_sym() for them. + * In particular, if Control is set, we must try very hard to find + * some layout in which the keysym is ASCII and thus can be (maybe) + * converted to a control character. libX11 allows to disable this + * behavior with the XkbLC_ControlFallback (see XkbSetXlibControls(3)), + * but it is enabled by default, yippee. + */ +static xkb_keysym_t +get_one_sym_for_string(struct xkb_state *state, xkb_keycode_t kc) +{ + xkb_level_index_t level; + xkb_layout_index_t layout, num_layouts; + const xkb_keysym_t *syms; + int nsyms; + xkb_keysym_t sym; + + layout = xkb_state_key_get_layout(state, kc); + num_layouts = xkb_keymap_num_layouts_for_key(state->keymap, kc); + level = xkb_state_key_get_level(state, kc, layout); + if (layout == XKB_LAYOUT_INVALID || num_layouts == 0 || + level == XKB_LEVEL_INVALID) + return XKB_KEY_NoSymbol; + + nsyms = xkb_keymap_key_get_syms_by_level(state->keymap, kc, + layout, level, &syms); + if (nsyms != 1) + return XKB_KEY_NoSymbol; + sym = syms[0]; + + if (should_do_ctrl_transformation(state, kc) && sym > 127u) { + for (xkb_layout_index_t i = 0; i < num_layouts; i++) { + level = xkb_state_key_get_level(state, kc, i); + if (level == XKB_LEVEL_INVALID) + continue; + + nsyms = xkb_keymap_key_get_syms_by_level(state->keymap, kc, + i, level, &syms); + if (nsyms == 1 && syms[0] <= 127u) { + sym = syms[0]; + break; + } + } + } + + if (should_do_caps_transformation(state, kc)) { + sym = xkb_keysym_to_upper(sym); + } + + return sym; +} + +XKB_EXPORT int +xkb_state_key_get_utf8(struct xkb_state *state, xkb_keycode_t kc, + char *buffer, size_t size) +{ + xkb_keysym_t sym; + const xkb_keysym_t *syms; + int nsyms; + int offset; + char tmp[7]; + + sym = get_one_sym_for_string(state, kc); + if (sym != XKB_KEY_NoSymbol) { + nsyms = 1; syms = &sym; + } + else { + nsyms = xkb_state_key_get_syms(state, kc, &syms); + } + + /* Make sure not to truncate in the middle of a UTF-8 sequence. */ + offset = 0; + for (int i = 0; i < nsyms; i++) { + int ret = xkb_keysym_to_utf8(syms[i], tmp, sizeof(tmp)); + if (ret <= 0) + goto err_bad; + + ret--; + if ((size_t) (offset + ret) <= size) + memcpy(buffer + offset, tmp, ret); + offset += ret; + } + + if ((size_t) offset >= size) + goto err_trunc; + buffer[offset] = '\0'; + + if (!is_valid_utf8(buffer, offset)) + goto err_bad; + + if (offset == 1 && (unsigned int) buffer[0] <= 127u && + should_do_ctrl_transformation(state, kc)) + buffer[0] = XkbToControl(buffer[0]); + + return offset; + +err_trunc: + if (size > 0) + buffer[size - 1] = '\0'; + return offset; + +err_bad: + if (size > 0) + buffer[0] = '\0'; + return 0; +} + +XKB_EXPORT uint32_t +xkb_state_key_get_utf32(struct xkb_state *state, xkb_keycode_t kc) +{ + xkb_keysym_t sym; + uint32_t cp; + + sym = get_one_sym_for_string(state, kc); + cp = xkb_keysym_to_utf32(sym); + + if (cp <= 127u && should_do_ctrl_transformation(state, kc)) + cp = (uint32_t) XkbToControl((char) cp); + + return cp; +} + +/** + * Serialises the requested modifier state into an xkb_mod_mask_t, with all + * the same disclaimers as in xkb_state_update_mask. + */ +XKB_EXPORT xkb_mod_mask_t +xkb_state_serialize_mods(struct xkb_state *state, + enum xkb_state_component type) +{ + xkb_mod_mask_t ret = 0; + + if (type & XKB_STATE_MODS_EFFECTIVE) + return state->components.mods; + + if (type & XKB_STATE_MODS_DEPRESSED) + ret |= state->components.base_mods; + if (type & XKB_STATE_MODS_LATCHED) + ret |= state->components.latched_mods; + if (type & XKB_STATE_MODS_LOCKED) + ret |= state->components.locked_mods; + + return ret; +} + +/** + * Serialises the requested group state, with all the same disclaimers as + * in xkb_state_update_mask. + */ +XKB_EXPORT xkb_layout_index_t +xkb_state_serialize_layout(struct xkb_state *state, + enum xkb_state_component type) +{ + xkb_layout_index_t ret = 0; + + if (type & XKB_STATE_LAYOUT_EFFECTIVE) + return state->components.group; + + if (type & XKB_STATE_LAYOUT_DEPRESSED) + ret += state->components.base_group; + if (type & XKB_STATE_LAYOUT_LATCHED) + ret += state->components.latched_group; + if (type & XKB_STATE_LAYOUT_LOCKED) + ret += state->components.locked_group; + + return ret; +} + +/** + * Gets a modifier mask and returns the resolved effective mask; this + * is needed because some modifiers can also map to other modifiers, e.g. + * the "NumLock" modifier usually also sets the "Mod2" modifier. + */ +xkb_mod_mask_t +mod_mask_get_effective(struct xkb_keymap *keymap, xkb_mod_mask_t mods) +{ + const struct xkb_mod *mod; + xkb_mod_index_t i; + xkb_mod_mask_t mask; + + /* The effective mask is only real mods for now. */ + mask = mods & MOD_REAL_MASK_ALL; + + xkb_mods_enumerate(i, mod, &keymap->mods) + if (mods & (1u << i)) + mask |= mod->mapping; + + return mask; +} + +/** + * Returns 1 if the given modifier is active with the specified type(s), 0 if + * not, or -1 if the modifier is invalid. + */ +XKB_EXPORT int +xkb_state_mod_index_is_active(struct xkb_state *state, + xkb_mod_index_t idx, + enum xkb_state_component type) +{ + if (idx >= xkb_keymap_num_mods(state->keymap)) + return -1; + + return !!(xkb_state_serialize_mods(state, type) & (1u << idx)); +} + +/** + * Helper function for xkb_state_mod_indices_are_active and + * xkb_state_mod_names_are_active. + */ +static int +match_mod_masks(struct xkb_state *state, + enum xkb_state_component type, + enum xkb_state_match match, + xkb_mod_mask_t wanted) +{ + xkb_mod_mask_t active = xkb_state_serialize_mods(state, type); + + if (!(match & XKB_STATE_MATCH_NON_EXCLUSIVE) && (active & ~wanted)) + return 0; + + if (match & XKB_STATE_MATCH_ANY) + return !!(active & wanted); + else + return (active & wanted) == wanted; + + return 0; +} + +/** + * Returns 1 if the modifiers are active with the specified type(s), 0 if + * not, or -1 if any of the modifiers are invalid. + */ +XKB_EXPORT int +xkb_state_mod_indices_are_active(struct xkb_state *state, + enum xkb_state_component type, + enum xkb_state_match match, + ...) +{ + va_list ap; + xkb_mod_index_t idx = 0; + xkb_mod_mask_t wanted = 0; + int ret = 0; + xkb_mod_index_t num_mods = xkb_keymap_num_mods(state->keymap); + + va_start(ap, match); + while (1) { + idx = va_arg(ap, xkb_mod_index_t); + if (idx == XKB_MOD_INVALID) + break; + if (idx >= num_mods) { + ret = -1; + break; + } + wanted |= (1u << idx); + } + va_end(ap); + + if (ret == -1) + return ret; + + return match_mod_masks(state, type, match, wanted); +} + +/** + * Returns 1 if the given modifier is active with the specified type(s), 0 if + * not, or -1 if the modifier is invalid. + */ +XKB_EXPORT int +xkb_state_mod_name_is_active(struct xkb_state *state, const char *name, + enum xkb_state_component type) +{ + xkb_mod_index_t idx = xkb_keymap_mod_get_index(state->keymap, name); + + if (idx == XKB_MOD_INVALID) + return -1; + + return xkb_state_mod_index_is_active(state, idx, type); +} + +/** + * Returns 1 if the modifiers are active with the specified type(s), 0 if + * not, or -1 if any of the modifiers are invalid. + */ +XKB_EXPORT ATTR_NULL_SENTINEL int +xkb_state_mod_names_are_active(struct xkb_state *state, + enum xkb_state_component type, + enum xkb_state_match match, + ...) +{ + va_list ap; + xkb_mod_index_t idx = 0; + xkb_mod_mask_t wanted = 0; + int ret = 0; + + va_start(ap, match); + while (1) { + const char *str = va_arg(ap, const char *); + if (str == NULL) + break; + idx = xkb_keymap_mod_get_index(state->keymap, str); + if (idx == XKB_MOD_INVALID) { + ret = -1; + break; + } + wanted |= (1u << idx); + } + va_end(ap); + + if (ret == -1) + return ret; + + return match_mod_masks(state, type, match, wanted); +} + +/** + * Returns 1 if the given group is active with the specified type(s), 0 if + * not, or -1 if the group is invalid. + */ +XKB_EXPORT int +xkb_state_layout_index_is_active(struct xkb_state *state, + xkb_layout_index_t idx, + enum xkb_state_component type) +{ + int ret = 0; + + if (idx >= state->keymap->num_groups) + return -1; + + if (type & XKB_STATE_LAYOUT_EFFECTIVE) + ret |= (state->components.group == idx); + if (type & XKB_STATE_LAYOUT_DEPRESSED) + ret |= (state->components.base_group == (int32_t) idx); + if (type & XKB_STATE_LAYOUT_LATCHED) + ret |= (state->components.latched_group == (int32_t) idx); + if (type & XKB_STATE_LAYOUT_LOCKED) + ret |= (state->components.locked_group == (int32_t) idx); + + return ret; +} + +/** + * Returns 1 if the given modifier is active with the specified type(s), 0 if + * not, or -1 if the modifier is invalid. + */ +XKB_EXPORT int +xkb_state_layout_name_is_active(struct xkb_state *state, const char *name, + enum xkb_state_component type) +{ + xkb_layout_index_t idx = xkb_keymap_layout_get_index(state->keymap, name); + + if (idx == XKB_LAYOUT_INVALID) + return -1; + + return xkb_state_layout_index_is_active(state, idx, type); +} + +/** + * Returns 1 if the given LED is active, 0 if not, or -1 if the LED is invalid. + */ +XKB_EXPORT int +xkb_state_led_index_is_active(struct xkb_state *state, xkb_led_index_t idx) +{ + if (idx >= state->keymap->num_leds || + state->keymap->leds[idx].name == XKB_ATOM_NONE) + return -1; + + return !!(state->components.leds & (1u << idx)); +} + +/** + * Returns 1 if the given LED is active, 0 if not, or -1 if the LED is invalid. + */ +XKB_EXPORT int +xkb_state_led_name_is_active(struct xkb_state *state, const char *name) +{ + xkb_led_index_t idx = xkb_keymap_led_get_index(state->keymap, name); + + if (idx == XKB_LED_INVALID) + return -1; + + return xkb_state_led_index_is_active(state, idx); +} + +static xkb_mod_mask_t +key_get_consumed(struct xkb_state *state, const struct xkb_key *key) +{ + const struct xkb_key_type *type; + const struct xkb_key_type_entry *entry; + xkb_mod_mask_t preserve; + xkb_layout_index_t group; + + group = xkb_state_key_get_layout(state, key->keycode); + if (group == XKB_LAYOUT_INVALID) + return 0; + + type = key->groups[group].type; + + entry = get_entry_for_key_state(state, key, group); + if (entry) + preserve = entry->preserve.mask; + else + preserve = 0; + + return type->mods.mask & ~preserve; +} + +/** + * Tests to see if a modifier is used up by our translation of a + * keycode to keysyms, taking note of the current modifier state and + * the appropriate key type's preserve information, if any. This allows + * the user to mask out the modifier in later processing of the + * modifiers, e.g. when implementing hot keys or accelerators. + * + * See also, for example: + * - XkbTranslateKeyCode(3), mod_rtrn return value, from libX11. + * - gdk_keymap_translate_keyboard_state, consumed_modifiers return value, + * from gtk+. + */ +XKB_EXPORT int +xkb_state_mod_index_is_consumed(struct xkb_state *state, xkb_keycode_t kc, + xkb_mod_index_t idx) +{ + const struct xkb_key *key = XkbKey(state->keymap, kc); + + if (!key || idx >= xkb_keymap_num_mods(state->keymap)) + return -1; + + return !!((1u << idx) & key_get_consumed(state, key)); +} + +/** + * Calculates which modifiers should be consumed during key processing, + * and returns the mask with all these modifiers removed. e.g. if + * given a state of Alt and Shift active for a two-level alphabetic + * key containing plus and equal on the first and second level + * respectively, will return a mask of only Alt, as Shift has been + * consumed by the type handling. + */ +XKB_EXPORT xkb_mod_mask_t +xkb_state_mod_mask_remove_consumed(struct xkb_state *state, xkb_keycode_t kc, + xkb_mod_mask_t mask) +{ + const struct xkb_key *key = XkbKey(state->keymap, kc); + + if (!key) + return 0; + + return mask & ~key_get_consumed(state, key); +} + +XKB_EXPORT xkb_mod_mask_t +xkb_state_key_get_consumed_mods(struct xkb_state *state, xkb_keycode_t kc) +{ + const struct xkb_key *key = XkbKey(state->keymap, kc); + + if (!key) + return 0; + + return key_get_consumed(state, key); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c new file mode 100644 index 0000000..462d919 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/text.c @@ -0,0 +1,345 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#include "keymap.h" +#include "text.h" + +bool +LookupString(const LookupEntry tab[], const char *string, + unsigned int *value_rtrn) +{ + if (!string) + return false; + + for (const LookupEntry *entry = tab; entry->name; entry++) { + if (istreq(entry->name, string)) { + *value_rtrn = entry->value; + return true; + } + } + + return false; +} + +const char * +LookupValue(const LookupEntry tab[], unsigned int value) +{ + for (const LookupEntry *entry = tab; entry->name; entry++) + if (entry->value == value) + return entry->name; + + return NULL; +} + +const LookupEntry ctrlMaskNames[] = { + { "RepeatKeys", CONTROL_REPEAT }, + { "Repeat", CONTROL_REPEAT }, + { "AutoRepeat", CONTROL_REPEAT }, + { "SlowKeys", CONTROL_SLOW }, + { "BounceKeys", CONTROL_DEBOUNCE }, + { "StickyKeys", CONTROL_STICKY }, + { "MouseKeys", CONTROL_MOUSEKEYS }, + { "MouseKeysAccel", CONTROL_MOUSEKEYS_ACCEL }, + { "AccessXKeys", CONTROL_AX }, + { "AccessXTimeout", CONTROL_AX_TIMEOUT }, + { "AccessXFeedback", CONTROL_AX_FEEDBACK }, + { "AudibleBell", CONTROL_BELL }, + { "IgnoreGroupLock", CONTROL_IGNORE_GROUP_LOCK }, + { "all", CONTROL_ALL }, + { "none", 0 }, + { "Overlay1", 0 }, + { "Overlay2", 0 }, + { NULL, 0 } +}; + +const LookupEntry modComponentMaskNames[] = { + { "base", XKB_STATE_MODS_DEPRESSED }, + { "latched", XKB_STATE_MODS_LATCHED }, + { "locked", XKB_STATE_MODS_LOCKED }, + { "effective", XKB_STATE_MODS_EFFECTIVE }, + { "compat", XKB_STATE_MODS_EFFECTIVE }, + { "any", XKB_STATE_MODS_EFFECTIVE }, + { "none", 0 }, + { NULL, 0 } +}; + +const LookupEntry groupComponentMaskNames[] = { + { "base", XKB_STATE_LAYOUT_DEPRESSED }, + { "latched", XKB_STATE_LAYOUT_LATCHED }, + { "locked", XKB_STATE_LAYOUT_LOCKED }, + { "effective", XKB_STATE_LAYOUT_EFFECTIVE }, + { "any", XKB_STATE_LAYOUT_EFFECTIVE }, + { "none", 0 }, + { NULL, 0 } +}; + +const LookupEntry groupMaskNames[] = { + { "Group1", 0x01 }, + { "Group2", 0x02 }, + { "Group3", 0x04 }, + { "Group4", 0x08 }, + { "Group5", 0x10 }, + { "Group6", 0x20 }, + { "Group7", 0x40 }, + { "Group8", 0x80 }, + { "none", 0x00 }, + { "all", 0xff }, + { NULL, 0 } +}; + +const LookupEntry groupNames[] = { + { "Group1", 1 }, + { "Group2", 2 }, + { "Group3", 3 }, + { "Group4", 4 }, + { "Group5", 5 }, + { "Group6", 6 }, + { "Group7", 7 }, + { "Group8", 8 }, + { NULL, 0 } +}; + +const LookupEntry levelNames[] = { + { "Level1", 1 }, + { "Level2", 2 }, + { "Level3", 3 }, + { "Level4", 4 }, + { "Level5", 5 }, + { "Level6", 6 }, + { "Level7", 7 }, + { "Level8", 8 }, + { NULL, 0 } +}; + +const LookupEntry buttonNames[] = { + { "Button1", 1 }, + { "Button2", 2 }, + { "Button3", 3 }, + { "Button4", 4 }, + { "Button5", 5 }, + { "default", 0 }, + { NULL, 0 } +}; + +const LookupEntry useModMapValueNames[] = { + { "LevelOne", 1 }, + { "Level1", 1 }, + { "AnyLevel", 0 }, + { "any", 0 }, + { NULL, 0 } +}; + +const LookupEntry actionTypeNames[] = { + { "NoAction", ACTION_TYPE_NONE }, + { "SetMods", ACTION_TYPE_MOD_SET }, + { "LatchMods", ACTION_TYPE_MOD_LATCH }, + { "LockMods", ACTION_TYPE_MOD_LOCK }, + { "SetGroup", ACTION_TYPE_GROUP_SET }, + { "LatchGroup", ACTION_TYPE_GROUP_LATCH }, + { "LockGroup", ACTION_TYPE_GROUP_LOCK }, + { "MovePtr", ACTION_TYPE_PTR_MOVE }, + { "MovePointer", ACTION_TYPE_PTR_MOVE }, + { "PtrBtn", ACTION_TYPE_PTR_BUTTON }, + { "PointerButton", ACTION_TYPE_PTR_BUTTON }, + { "LockPtrBtn", ACTION_TYPE_PTR_LOCK }, + { "LockPtrButton", ACTION_TYPE_PTR_LOCK }, + { "LockPointerButton", ACTION_TYPE_PTR_LOCK }, + { "LockPointerBtn", ACTION_TYPE_PTR_LOCK }, + { "SetPtrDflt", ACTION_TYPE_PTR_DEFAULT }, + { "SetPointerDefault", ACTION_TYPE_PTR_DEFAULT }, + { "Terminate", ACTION_TYPE_TERMINATE }, + { "TerminateServer", ACTION_TYPE_TERMINATE }, + { "SwitchScreen", ACTION_TYPE_SWITCH_VT }, + { "SetControls", ACTION_TYPE_CTRL_SET }, + { "LockControls", ACTION_TYPE_CTRL_LOCK }, + { "Private", ACTION_TYPE_PRIVATE }, + /* deprecated actions below here - unused */ + { "RedirectKey", ACTION_TYPE_NONE }, + { "Redirect", ACTION_TYPE_NONE }, + { "ISOLock", ACTION_TYPE_NONE }, + { "ActionMessage", ACTION_TYPE_NONE }, + { "MessageAction", ACTION_TYPE_NONE }, + { "Message", ACTION_TYPE_NONE }, + { "DeviceBtn", ACTION_TYPE_NONE }, + { "DevBtn", ACTION_TYPE_NONE }, + { "DevButton", ACTION_TYPE_NONE }, + { "DeviceButton", ACTION_TYPE_NONE }, + { "LockDeviceBtn", ACTION_TYPE_NONE }, + { "LockDevBtn", ACTION_TYPE_NONE }, + { "LockDevButton", ACTION_TYPE_NONE }, + { "LockDeviceButton", ACTION_TYPE_NONE }, + { "DeviceValuator", ACTION_TYPE_NONE }, + { "DevVal", ACTION_TYPE_NONE }, + { "DeviceVal", ACTION_TYPE_NONE }, + { "DevValuator", ACTION_TYPE_NONE }, + { NULL, 0 }, +}; + +const LookupEntry symInterpretMatchMaskNames[] = { + { "NoneOf", MATCH_NONE }, + { "AnyOfOrNone", MATCH_ANY_OR_NONE }, + { "AnyOf", MATCH_ANY }, + { "AllOf", MATCH_ALL }, + { "Exactly", MATCH_EXACTLY }, +}; + +const char * +ModIndexText(struct xkb_context *ctx, const struct xkb_mod_set *mods, + xkb_mod_index_t ndx) +{ + if (ndx == XKB_MOD_INVALID) + return "none"; + + if (ndx >= mods->num_mods) + return NULL; + + return xkb_atom_text(ctx, mods->mods[ndx].name); +} + +const char * +ActionTypeText(enum xkb_action_type type) +{ + const char *name = LookupValue(actionTypeNames, type); + return name ? name : "Private"; +} + +const char * +KeysymText(struct xkb_context *ctx, xkb_keysym_t sym) +{ + char *buffer = xkb_context_get_buffer(ctx, 64); + xkb_keysym_get_name(sym, buffer, 64); + return buffer; +} + +const char * +KeyNameText(struct xkb_context *ctx, xkb_atom_t name) +{ + const char *sname = xkb_atom_text(ctx, name); + size_t len = strlen_safe(sname) + 3; + char *buf = xkb_context_get_buffer(ctx, len); + snprintf(buf, len, "<%s>", strempty(sname)); + return buf; +} + +const char * +SIMatchText(enum xkb_match_operation type) +{ + return LookupValue(symInterpretMatchMaskNames, type); +} + +const char * +ModMaskText(struct xkb_context *ctx, const struct xkb_mod_set *mods, + xkb_mod_mask_t mask) +{ + char buf[1024]; + size_t pos = 0; + xkb_mod_index_t i; + const struct xkb_mod *mod; + + if (mask == 0) + return "none"; + + if (mask == MOD_REAL_MASK_ALL) + return "all"; + + xkb_mods_enumerate(i, mod, mods) { + int ret; + + if (!(mask & (1u << i))) + continue; + + ret = snprintf(buf + pos, sizeof(buf) - pos, "%s%s", + pos == 0 ? "" : "+", + xkb_atom_text(ctx, mod->name)); + if (ret <= 0 || pos + ret >= sizeof(buf)) + break; + else + pos += ret; + } + + return strcpy(xkb_context_get_buffer(ctx, pos + 1), buf); +} + +const char * +LedStateMaskText(struct xkb_context *ctx, enum xkb_state_component mask) +{ + char buf[1024]; + size_t pos = 0; + + if (mask == 0) + return "0"; + + for (unsigned i = 0; mask; i++) { + int ret; + + if (!(mask & (1u << i))) + continue; + + mask &= ~(1u << i); + + ret = snprintf(buf + pos, sizeof(buf) - pos, "%s%s", + pos == 0 ? "" : "+", + LookupValue(modComponentMaskNames, 1u << i)); + if (ret <= 0 || pos + ret >= sizeof(buf)) + break; + else + pos += ret; + } + + return strcpy(xkb_context_get_buffer(ctx, pos + 1), buf); +} + +const char * +ControlMaskText(struct xkb_context *ctx, enum xkb_action_controls mask) +{ + char buf[1024]; + size_t pos = 0; + + if (mask == 0) + return "none"; + + if (mask == CONTROL_ALL) + return "all"; + + for (unsigned i = 0; mask; i++) { + int ret; + + if (!(mask & (1u << i))) + continue; + + mask &= ~(1u << i); + + ret = snprintf(buf + pos, sizeof(buf) - pos, "%s%s", + pos == 0 ? "" : "+", + LookupValue(ctrlMaskNames, 1u << i)); + if (ret <= 0 || pos + ret >= sizeof(buf)) + break; + else + pos += ret; + } + + return strcpy(xkb_context_get_buffer(ctx, pos + 1), buf); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/text.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/text.h new file mode 100644 index 0000000..584dea6 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/text.h @@ -0,0 +1,76 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef TEXT_H +#define TEXT_H + +typedef struct { + const char *name; + unsigned int value; +} LookupEntry; + +bool +LookupString(const LookupEntry tab[], const char *string, + unsigned int *value_rtrn); + +const char * +LookupValue(const LookupEntry tab[], unsigned int value); + +extern const LookupEntry ctrlMaskNames[]; +extern const LookupEntry modComponentMaskNames[]; +extern const LookupEntry groupComponentMaskNames[]; +extern const LookupEntry groupMaskNames[]; +extern const LookupEntry groupNames[]; +extern const LookupEntry levelNames[]; +extern const LookupEntry buttonNames[]; +extern const LookupEntry useModMapValueNames[]; +extern const LookupEntry actionTypeNames[]; +extern const LookupEntry symInterpretMatchMaskNames[]; + +const char * +ModMaskText(struct xkb_context *ctx, const struct xkb_mod_set *mods, + xkb_mod_mask_t mask); + +const char * +ModIndexText(struct xkb_context *ctx, const struct xkb_mod_set *mods, + xkb_mod_index_t ndx); + +const char * +ActionTypeText(enum xkb_action_type type); + +const char * +KeysymText(struct xkb_context *ctx, xkb_keysym_t sym); + +const char * +KeyNameText(struct xkb_context *ctx, xkb_atom_t name); + +const char * +SIMatchText(enum xkb_match_operation type); + +const char * +LedStateMaskText(struct xkb_context *ctx, enum xkb_state_component mask); + +const char * +ControlMaskText(struct xkb_context *ctx, enum xkb_action_controls mask); + +#endif /* TEXT_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c new file mode 100644 index 0000000..11382c8 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.c @@ -0,0 +1,142 @@ +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Rob Bradford + */ + +#include +#include +#include + +#include "utf8.h" + +int +utf32_to_utf8(uint32_t unichar, char *buffer) +{ + int count, shift, length; + uint8_t head; + + if (unichar <= 0x007f) { + buffer[0] = unichar; + buffer[1] = '\0'; + return 2; + } + else if (unichar <= 0x07FF) { + length = 2; + head = 0xc0; + } + else if (unichar <= 0xffff) { + length = 3; + head = 0xe0; + } + else if (unichar <= 0x1fffff) { + length = 4; + head = 0xf0; + } + else if (unichar <= 0x3ffffff) { + length = 5; + head = 0xf8; + } + else { + length = 6; + head = 0xfc; + } + + for (count = length - 1, shift = 0; count > 0; count--, shift += 6) + buffer[count] = 0x80 | ((unichar >> shift) & 0x3f); + + buffer[0] = head | ((unichar >> shift) & 0x3f); + buffer[length] = '\0'; + + return length + 1; +} + +bool +is_valid_utf8(const char *ss, size_t len) +{ + size_t i = 0; + size_t tail_bytes = 0; + const uint8_t *s = (const uint8_t *) ss; + + /* This beauty is from: + * The Unicode Standard Version 6.2 - Core Specification, Table 3.7 + * http://www.unicode.org/versions/Unicode6.2.0/ch03.pdf#G7404 + * We can optimize if needed. */ + while (i < len) + { + if (s[i] <= 0x7F) { + tail_bytes = 0; + } + else if (s[i] >= 0xC2 && s[i] <= 0xDF) { + tail_bytes = 1; + } + else if (s[i] == 0xE0) { + i++; + if (i >= len || !(s[i] >= 0xA0 && s[i] <= 0xBF)) + return false; + tail_bytes = 1; + } + else if (s[i] >= 0xE1 && s[i] <= 0xEC) { + tail_bytes = 2; + } + else if (s[i] == 0xED) { + i++; + if (i >= len || !(s[i] >= 0x80 && s[i] <= 0x9F)) + return false; + tail_bytes = 1; + } + else if (s[i] >= 0xEE && s[i] <= 0xEF) { + tail_bytes = 2; + } + else if (s[i] == 0xF0) { + i++; + if (i >= len || !(s[i] >= 0x90 && s[i] <= 0xBF)) + return false; + tail_bytes = 2; + } + else if (s[i] >= 0xF1 && s[i] <= 0xF3) { + tail_bytes = 3; + } + else if (s[i] == 0xF4) { + i++; + if (i >= len || !(s[i] >= 0x80 && s[i] <= 0x8F)) + return false; + tail_bytes = 2; + } + else { + return false; + } + + i++; + + while (i < len && tail_bytes > 0 && s[i] >= 0x80 && s[i] <= 0xBF) { + i++; + tail_bytes--; + } + + if (tail_bytes != 0) + return false; + } + + return true; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.h new file mode 100644 index 0000000..6371cb5 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/utf8.h @@ -0,0 +1,36 @@ +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Rob Bradford + */ + +#ifndef XKBCOMMON_UTF8_H +#define XKBCOMMON_UTF8_H + +int +utf32_to_utf8(uint32_t unichar, char *buffer); + +bool +is_valid_utf8(const char *ss, size_t len); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c new file mode 100644 index 0000000..a00b04e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.c @@ -0,0 +1,107 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "utils.h" + +#ifdef HAVE_MMAP + +#include +#include +#include +#include +#include + +bool +map_file(FILE *file, const char **string_out, size_t *size_out) +{ + struct stat stat_buf; + const int fd = fileno(file); + char *string; + + /* Make sure to keep the errno on failure! */ + + if (fstat(fd, &stat_buf) != 0) + return false; + + string = mmap(NULL, stat_buf.st_size, PROT_READ, MAP_SHARED, fd, 0); + if (string == MAP_FAILED) + return false; + + *string_out = string; + *size_out = stat_buf.st_size; + return true; +} + +void +unmap_file(const char *str, size_t size) +{ + munmap(UNCONSTIFY(str), size); +} + +#else + +bool +map_file(FILE *file, const char **string_out, size_t *size_out) +{ + long ret; + size_t ret_s; + char *string; + size_t size; + + /* Make sure to keep the errno on failure! */ + + ret = fseek(file, 0, SEEK_END); + if (ret != 0) + return false; + + ret = ftell(file); + if (ret < 0) + return false; + size = (size_t) ret; + + ret = fseek(file, 0, SEEK_SET); + if (ret < 0) + return false; + + string = malloc(size); + if (!string) + return false; + + ret_s = fread(string, 1, size, file); + if (ret_s < size) { + free(string); + return false; + } + + *string_out = string; + *size_out = size; + return true; +} + +void +unmap_file(const char *str, size_t size) +{ + free(UNCONSTIFY(str)); +} + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.h new file mode 100644 index 0000000..508435d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/utils.h @@ -0,0 +1,254 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef UTILS_H +#define UTILS_H 1 + +#include +#include +#include +#include +#include +#include + +#include "darray.h" + +/* + * We sometimes malloc strings and then expose them as const char*'s. This + * macro is used when we free these strings in order to avoid -Wcast-qual + * errors. + */ +#define UNCONSTIFY(const_ptr) ((void *) (uintptr_t) (const_ptr)) + +#define STATIC_ASSERT(expr, message) do { \ + switch (0) { case 0: case (expr): ; } \ +} while (0) + +static inline bool +streq(const char *s1, const char *s2) +{ + return strcmp(s1, s2) == 0; +} + +static inline bool +streq_not_null(const char *s1, const char *s2) +{ + if (!s1 || !s2) + return false; + return streq(s1, s2); +} + +static inline bool +istreq(const char *s1, const char *s2) +{ + return strcasecmp(s1, s2) == 0; +} + +static inline bool +istreq_prefix(const char *s1, const char *s2) +{ + return strncasecmp(s1, s2, strlen(s1)) == 0; +} + +static inline char * +strdup_safe(const char *s) +{ + return s ? strdup(s) : NULL; +} + +static inline size_t +strlen_safe(const char *s) +{ + return s ? strlen(s) : 0; +} + +static inline bool +isempty(const char *s) +{ + return s == NULL || s[0] == '\0'; +} + +static inline const char * +strnull(const char *s) +{ + return s ? s : "(null)"; +} + +static inline const char * +strempty(const char *s) +{ + return s ? s : ""; +} + +static inline void * +memdup(const void *mem, size_t nmemb, size_t size) +{ + void *p = calloc(nmemb, size); + if (p) + memcpy(p, mem, nmemb * size); + return p; +} + +static inline int +min(int misc, int other) +{ + return (misc < other) ? misc : other; +} + +static inline int +max(int misc, int other) +{ + return (misc > other) ? misc : other; +} + +/* ctype.h is locale-dependent and has other oddities. */ +static inline bool +is_space(char ch) +{ + return ch == ' ' || (ch >= '\t' && ch <= '\r'); +} + +static inline bool +is_alpha(char ch) +{ + return (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'); +} + +static inline bool +is_digit(char ch) +{ + return ch >= '0' && ch <= '9'; +} + +static inline bool +is_alnum(char ch) +{ + return is_alpha(ch) || is_digit(ch); +} + +static inline bool +is_xdigit(char ch) +{ + return + (ch >= '0' && ch <= '9') || + (ch >= 'a' && ch <= 'f') || + (ch >= 'A' && ch <= 'F'); +} + +static inline bool +is_graph(char ch) +{ + /* See table in ascii(7). */ + return ch >= '!' && ch <= '~'; +} + +/* + * Return the bit position of the most significant bit. + * Note: this is 1-based! It's more useful this way, and returns 0 when + * mask is all 0s. + */ +static inline unsigned +msb_pos(uint32_t mask) +{ + unsigned pos = 0; + while (mask) { + pos++; + mask >>= 1u; + } + return pos; +} + +bool +map_file(FILE *file, const char **string_out, size_t *size_out); + +void +unmap_file(const char *str, size_t size); + +#define ARRAY_SIZE(arr) ((sizeof(arr) / sizeof(*(arr)))) + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MIN3(a, b, c) MIN(MIN((a), (b)), (c)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#define MAX3(a, b, c) MAX(MAX((a), (b)), (c)) + +/* Round up @a so it's divisible by @b. */ +#define ROUNDUP(a, b) (((a) + (b) - 1) / (b) * (b)) + +#if defined(HAVE_SECURE_GETENV) +# define secure_getenv secure_getenv +#elif defined(HAVE___SECURE_GETENV) +# define secure_getenv __secure_getenv +#else +# define secure_getenv getenv +#endif + +#if defined(HAVE___BUILTIN_EXPECT) +# define likely(x) __builtin_expect(!!(x), 1) +# define unlikely(x) __builtin_expect(!!(x), 0) +#else +# define likely(x) (x) +# define unlikely(x) (x) +#endif + +/* Compiler Attributes */ + +#if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__CYGWIN__) +# define XKB_EXPORT __attribute__((visibility("default"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +# define XKB_EXPORT __global +#else /* not gcc >= 4 and not Sun Studio >= 8 */ +# define XKB_EXPORT +#endif + +#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 203) +# define ATTR_PRINTF(x,y) __attribute__((__format__(__printf__, x, y))) +#else /* not gcc >= 2.3 */ +# define ATTR_PRINTF(x,y) +#endif + +#if (defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 205)) \ + || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) +# define ATTR_NORETURN __attribute__((__noreturn__)) +#else +# define ATTR_NORETURN +#endif /* GNUC */ + +#if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 296) +#define ATTR_MALLOC __attribute__((__malloc__)) +#else +#define ATTR_MALLOC +#endif + +#if defined(__GNUC__) && (__GNUC__ >= 4) +# define ATTR_NULL_SENTINEL __attribute__((__sentinel__)) +#else +# define ATTR_NULL_SENTINEL +#endif /* GNUC >= 4 */ + +#if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 295) +#define ATTR_PACKED __attribute__((__packed__)) +#else +#define ATTR_PACKED +#endif + +#endif /* UTILS_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/keymap.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/keymap.c new file mode 100644 index 0000000..0e7a890 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/keymap.c @@ -0,0 +1,1176 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "x11-priv.h" + +/* + * References for the lonesome traveler: + * Xkb protocol specification: + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html + * The XCB xkb XML protocol file: + * /user/share/xcb/xkb.xml + * The XCB xkb header file: + * /usr/include/xcb/xkb.h + * The old kbproto header files: + * /usr/include/X11/extensions/XKB{,proto,str}.h + * Xlib XKB source code: + * /src/xkb/XKBGetMap.c (and friends) + * X server XKB protocol handling: + * /xkb/xkb.c + * Man pages: + * XkbGetMap(3), XkbGetCompatMap(3), etc. + */ + +/* Constants from /usr/include/X11/extensions/XKB.h */ +/* XkbNumModifiers. */ +#define NUM_REAL_MODS 8u +/* XkbNumVirtualMods. */ +#define NUM_VMODS 16u +/* XkbNoModifier. */ +#define NO_MODIFIER 0xff +/* XkbNumIndicators. */ +#define NUM_INDICATORS 32u +/* XkbAllIndicatorsMask. */ +#define ALL_INDICATORS_MASK 0xffffffff + +/* Some macros. Not very nice but it'd be worse without them. */ + +/* + * We try not to trust the server too much and be paranoid. If we get + * something which we definitely shouldn't, we fail. + */ +#define STRINGIFY(expr) #expr +#define FAIL_UNLESS(expr) do { \ + if (!(expr)) { \ + log_err(keymap->ctx, \ + "x11: failed to get keymap from X server: unmet condition in %s(): %s\n", \ + __func__, STRINGIFY(expr)); \ + goto fail; \ + } \ +} while (0) + +#define FAIL_IF_BAD_REPLY(reply, request_name) do { \ + if (!reply) { \ + log_err(keymap->ctx, \ + "x11: failed to get keymap from X server: %s request failed\n", \ + (request_name)); \ + goto fail; \ + } \ +} while (0) + +#define ALLOC_OR_FAIL(arr, nmemb) do { \ + if ((nmemb) > 0) { \ + (arr) = calloc((nmemb), sizeof(*(arr))); \ + if (!(arr)) \ + goto fail; \ + } \ +} while (0) + + +static xkb_mod_mask_t +translate_mods(uint8_t rmods, uint16_t vmods_low, uint16_t vmods_high) +{ + /* We represent mod masks in a single uint32_t value, with real mods + * first and vmods after (though we don't make these distinctions). */ + return + ((xkb_mod_mask_t) rmods) | + ((xkb_mod_mask_t) vmods_low << 8) | + ((xkb_mod_mask_t) vmods_high << 16); +} + +static enum xkb_action_controls +translate_controls_mask(uint32_t wire) +{ + enum xkb_action_controls ret = 0; + if (wire & XCB_XKB_BOOL_CTRL_REPEAT_KEYS) + ret |= CONTROL_REPEAT; + if (wire & XCB_XKB_BOOL_CTRL_SLOW_KEYS) + ret |= CONTROL_SLOW; + if (wire & XCB_XKB_BOOL_CTRL_BOUNCE_KEYS) + ret |= CONTROL_DEBOUNCE; + if (wire & XCB_XKB_BOOL_CTRL_STICKY_KEYS) + ret |= CONTROL_STICKY; + if (wire & XCB_XKB_BOOL_CTRL_MOUSE_KEYS) + ret |= CONTROL_MOUSEKEYS; + if (wire & XCB_XKB_BOOL_CTRL_MOUSE_KEYS_ACCEL) + ret |= CONTROL_MOUSEKEYS_ACCEL; + if (wire & XCB_XKB_BOOL_CTRL_ACCESS_X_KEYS) + ret |= CONTROL_AX; + if (wire & XCB_XKB_BOOL_CTRL_ACCESS_X_TIMEOUT_MASK) + ret |= CONTROL_AX_TIMEOUT; + if (wire & XCB_XKB_BOOL_CTRL_ACCESS_X_FEEDBACK_MASK) + ret |= CONTROL_AX_FEEDBACK; + if (wire & XCB_XKB_BOOL_CTRL_AUDIBLE_BELL_MASK) + ret |= CONTROL_BELL; + if (wire & XCB_XKB_BOOL_CTRL_IGNORE_GROUP_LOCK_MASK) + ret |= CONTROL_IGNORE_GROUP_LOCK; + /* Some controls are not supported and don't appear here. */ + return ret; +} + +static void +translate_action(union xkb_action *action, const xcb_xkb_action_t *wire) +{ + switch (wire->type) { + case XCB_XKB_SA_TYPE_SET_MODS: + action->type = ACTION_TYPE_MOD_SET; + + action->mods.mods.mods = translate_mods(wire->setmods.realMods, + wire->setmods.vmodsLow, + wire->setmods.vmodsHigh); + action->mods.mods.mask = translate_mods(wire->setmods.mask, 0, 0); + + if (wire->setmods.flags & XCB_XKB_SA_CLEAR_LOCKS) + action->mods.flags |= ACTION_LOCK_CLEAR; + if (wire->setmods.flags & XCB_XKB_SA_LATCH_TO_LOCK) + action->mods.flags |= ACTION_LATCH_TO_LOCK; + if (wire->setmods.flags & XCB_XKB_SA_USE_MOD_MAP_MODS) + action->mods.flags |= ACTION_MODS_LOOKUP_MODMAP; + + break; + case XCB_XKB_SA_TYPE_LATCH_MODS: + action->type = ACTION_TYPE_MOD_LATCH; + + action->mods.mods.mods = translate_mods(wire->latchmods.realMods, + wire->latchmods.vmodsLow, + wire->latchmods.vmodsHigh); + action->mods.mods.mask = translate_mods(wire->latchmods.mask, 0, 0); + + if (wire->latchmods.flags & XCB_XKB_SA_CLEAR_LOCKS) + action->mods.flags |= ACTION_LOCK_CLEAR; + if (wire->latchmods.flags & XCB_XKB_SA_LATCH_TO_LOCK) + action->mods.flags |= ACTION_LATCH_TO_LOCK; + if (wire->latchmods.flags & XCB_XKB_SA_USE_MOD_MAP_MODS) + action->mods.flags |= ACTION_MODS_LOOKUP_MODMAP; + + break; + case XCB_XKB_SA_TYPE_LOCK_MODS: + action->type = ACTION_TYPE_MOD_LOCK; + + action->mods.mods.mods = translate_mods(wire->lockmods.realMods, + wire->lockmods.vmodsLow, + wire->lockmods.vmodsHigh); + action->mods.mods.mask = translate_mods(wire->lockmods.mask, 0, 0); + + if (wire->lockmods.flags & XCB_XKB_SA_ISO_LOCK_FLAG_NO_LOCK) + action->mods.flags |= ACTION_LOCK_NO_LOCK; + if (wire->lockmods.flags & XCB_XKB_SA_ISO_LOCK_FLAG_NO_UNLOCK) + action->mods.flags |= ACTION_LOCK_NO_UNLOCK; + if (wire->lockmods.flags & XCB_XKB_SA_USE_MOD_MAP_MODS) + action->mods.flags |= ACTION_MODS_LOOKUP_MODMAP; + + break; + case XCB_XKB_SA_TYPE_SET_GROUP: + action->type = ACTION_TYPE_GROUP_SET; + + action->group.group = wire->setgroup.group; + + if (wire->setmods.flags & XCB_XKB_SA_CLEAR_LOCKS) + action->group.flags |= ACTION_LOCK_CLEAR; + if (wire->setmods.flags & XCB_XKB_SA_LATCH_TO_LOCK) + action->group.flags |= ACTION_LATCH_TO_LOCK; + if (wire->setmods.flags & XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE) + action->group.flags |= ACTION_ABSOLUTE_SWITCH; + + break; + case XCB_XKB_SA_TYPE_LATCH_GROUP: + action->type = ACTION_TYPE_GROUP_LATCH; + + action->group.group = wire->latchgroup.group; + + if (wire->latchmods.flags & XCB_XKB_SA_CLEAR_LOCKS) + action->group.flags |= ACTION_LOCK_CLEAR; + if (wire->latchmods.flags & XCB_XKB_SA_LATCH_TO_LOCK) + action->group.flags |= ACTION_LATCH_TO_LOCK; + if (wire->latchmods.flags & XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE) + action->group.flags |= ACTION_ABSOLUTE_SWITCH; + + break; + case XCB_XKB_SA_TYPE_LOCK_GROUP: + action->type = ACTION_TYPE_GROUP_LOCK; + + action->group.group = wire->lockgroup.group; + + if (wire->lockgroup.flags & XCB_XKB_SA_ISO_LOCK_FLAG_GROUP_ABSOLUTE) + action->group.flags |= ACTION_ABSOLUTE_SWITCH; + + break; + case XCB_XKB_SA_TYPE_MOVE_PTR: + action->type = ACTION_TYPE_PTR_MOVE; + + action->ptr.x = (wire->moveptr.xLow | (wire->moveptr.xHigh << 8)); + action->ptr.y = (wire->moveptr.yLow | (wire->moveptr.yHigh << 8)); + + if (!(wire->moveptr.flags & XCB_XKB_SA_MOVE_PTR_FLAG_NO_ACCELERATION)) + action->ptr.flags |= ACTION_ACCEL; + if (wire->moveptr.flags & XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_X) + action->ptr.flags |= ACTION_ABSOLUTE_X; + if (wire->moveptr.flags & XCB_XKB_SA_MOVE_PTR_FLAG_MOVE_ABSOLUTE_Y) + action->ptr.flags |= ACTION_ABSOLUTE_Y; + + break; + case XCB_XKB_SA_TYPE_PTR_BTN: + action->type = ACTION_TYPE_PTR_BUTTON; + + action->btn.count = wire->ptrbtn.count; + action->btn.button = wire->ptrbtn.button; + action->btn.flags = 0; + + break; + case XCB_XKB_SA_TYPE_LOCK_PTR_BTN: + action->type = ACTION_TYPE_PTR_LOCK; + + action->btn.button = wire->lockptrbtn.button; + + if (wire->lockptrbtn.flags & XCB_XKB_SA_ISO_LOCK_FLAG_NO_LOCK) + action->btn.flags |= ACTION_LOCK_NO_LOCK; + if (wire->lockptrbtn.flags & XCB_XKB_SA_ISO_LOCK_FLAG_NO_UNLOCK) + action->btn.flags |= ACTION_LOCK_NO_UNLOCK; + + break; + case XCB_XKB_SA_TYPE_SET_PTR_DFLT: + action->type = ACTION_TYPE_PTR_DEFAULT; + + action->dflt.value = wire->setptrdflt.value; + + if (wire->setptrdflt.flags & XCB_XKB_SA_SET_PTR_DFLT_FLAG_DFLT_BTN_ABSOLUTE) + action->dflt.flags |= ACTION_ABSOLUTE_SWITCH; + + break; + case XCB_XKB_SA_TYPE_TERMINATE: + action->type = ACTION_TYPE_TERMINATE; + + break; + case XCB_XKB_SA_TYPE_SWITCH_SCREEN: + action->type = ACTION_TYPE_SWITCH_VT; + + action->screen.screen = wire->switchscreen.newScreen; + + if (!(wire->switchscreen.flags & XCB_XKB_SWITCH_SCREEN_FLAG_APPLICATION)) + action->screen.flags |= ACTION_SAME_SCREEN; + if (wire->switchscreen.flags & XCB_XKB_SWITCH_SCREEN_FLAG_ABSOLUTE) + action->screen.flags |= ACTION_ABSOLUTE_SWITCH; + + break; + case XCB_XKB_SA_TYPE_SET_CONTROLS: + action->type = ACTION_TYPE_CTRL_SET; + { + const uint16_t mask = (wire->setcontrols.boolCtrlsLow | + (wire->setcontrols.boolCtrlsHigh << 8)); + action->ctrls.ctrls = translate_controls_mask(mask); + } + break; + case XCB_XKB_SA_TYPE_LOCK_CONTROLS: + action->type = ACTION_TYPE_CTRL_LOCK; + { + const uint16_t mask = (wire->lockcontrols.boolCtrlsLow | + (wire->lockcontrols.boolCtrlsHigh << 8)); + action->ctrls.ctrls = translate_controls_mask(mask); + } + break; + + case XCB_XKB_SA_TYPE_NO_ACTION: + /* We don't support these. */ + case XCB_XKB_SA_TYPE_ISO_LOCK: + case XCB_XKB_SA_TYPE_REDIRECT_KEY: + case XCB_XKB_SA_TYPE_ACTION_MESSAGE: + case XCB_XKB_SA_TYPE_DEVICE_BTN: + case XCB_XKB_SA_TYPE_LOCK_DEVICE_BTN: + case XCB_XKB_SA_TYPE_DEVICE_VALUATOR: + action->type = ACTION_TYPE_NONE; + break; + + default: + if (wire->type < ACTION_TYPE_PRIVATE) { + action->type = ACTION_TYPE_NONE; + break; + } + + /* Treat high unknown actions as Private actions. */ + action->priv.type = wire->noaction.type; + STATIC_ASSERT(sizeof(action->priv.data) == 7 && + sizeof(wire->noaction.pad0) == 7, + "The private action data must be 7 bytes long!"); + memcpy(action->priv.data, wire->noaction.pad0, 7); + break; + } +} + +static bool +get_types(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + int types_length = xcb_xkb_get_map_map_types_rtrn_length(reply, map); + xcb_xkb_key_type_iterator_t types_iter = + xcb_xkb_get_map_map_types_rtrn_iterator(reply, map); + + FAIL_UNLESS(reply->firstType == 0); + + keymap->num_types = reply->nTypes; + ALLOC_OR_FAIL(keymap->types, keymap->num_types); + + for (int i = 0; i < types_length; i++) { + xcb_xkb_key_type_t *wire_type = types_iter.data; + struct xkb_key_type *type = &keymap->types[i]; + + FAIL_UNLESS(wire_type->numLevels > 0); + + type->mods.mods = translate_mods(wire_type->mods_mods, + wire_type->mods_vmods, 0); + type->mods.mask = translate_mods(wire_type->mods_mask, 0, 0); + type->num_levels = wire_type->numLevels; + + { + int entries_length = xcb_xkb_key_type_map_length(wire_type); + xcb_xkb_kt_map_entry_iterator_t entries_iter = + xcb_xkb_key_type_map_iterator(wire_type); + + type->num_entries = wire_type->nMapEntries; + ALLOC_OR_FAIL(type->entries, type->num_entries); + + for (int j = 0; j < entries_length; j++) { + xcb_xkb_kt_map_entry_t *wire_entry = entries_iter.data; + struct xkb_key_type_entry *entry = &type->entries[j]; + + FAIL_UNLESS(wire_entry->level < type->num_levels); + + entry->level = wire_entry->level; + entry->mods.mods = translate_mods(wire_entry->mods_mods, + wire_entry->mods_vmods, 0); + entry->mods.mask = translate_mods(wire_entry->mods_mask, 0, 0); + + xcb_xkb_kt_map_entry_next(&entries_iter); + } + } + + { + int preserves_length = xcb_xkb_key_type_preserve_length(wire_type); + xcb_xkb_mod_def_iterator_t preserves_iter = + xcb_xkb_key_type_preserve_iterator(wire_type); + + FAIL_UNLESS((unsigned) preserves_length <= type->num_entries); + + for (int j = 0; j < preserves_length; j++) { + xcb_xkb_mod_def_t *wire_preserve = preserves_iter.data; + struct xkb_key_type_entry *entry = &type->entries[j]; + + entry->preserve.mods = translate_mods(wire_preserve->realMods, + wire_preserve->vmods, 0); + entry->preserve.mask = translate_mods(wire_preserve->mask, 0, 0); + + xcb_xkb_mod_def_next(&preserves_iter); + } + } + + xcb_xkb_key_type_next(&types_iter); + } + + return true; + +fail: + return false; +} + +static bool +get_sym_maps(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + int sym_maps_length = xcb_xkb_get_map_map_syms_rtrn_length(reply, map); + xcb_xkb_key_sym_map_iterator_t sym_maps_iter = + xcb_xkb_get_map_map_syms_rtrn_iterator(reply, map); + + FAIL_UNLESS(reply->minKeyCode <= reply->maxKeyCode); + FAIL_UNLESS(reply->firstKeySym >= reply->minKeyCode); + FAIL_UNLESS(reply->firstKeySym + reply->nKeySyms <= reply->maxKeyCode + 1); + + keymap->min_key_code = reply->minKeyCode; + keymap->max_key_code = reply->maxKeyCode; + + ALLOC_OR_FAIL(keymap->keys, keymap->max_key_code + 1); + + for (xkb_keycode_t kc = keymap->min_key_code; kc <= keymap->max_key_code; kc++) + keymap->keys[kc].keycode = kc; + + for (int i = 0; i < sym_maps_length; i++) { + xcb_xkb_key_sym_map_t *wire_sym_map = sym_maps_iter.data; + struct xkb_key *key = &keymap->keys[reply->firstKeySym + i]; + + key->num_groups = wire_sym_map->groupInfo & 0x0f; + FAIL_UNLESS(key->num_groups <= ARRAY_SIZE(wire_sym_map->kt_index)); + ALLOC_OR_FAIL(key->groups, key->num_groups); + + for (unsigned j = 0; j < key->num_groups; j++) { + FAIL_UNLESS(wire_sym_map->kt_index[j] < keymap->num_types); + key->groups[j].type = &keymap->types[wire_sym_map->kt_index[j]]; + + ALLOC_OR_FAIL(key->groups[j].levels, key->groups[j].type->num_levels); + } + + key->out_of_range_group_number = (wire_sym_map->groupInfo & 0x30) >> 4; + + FAIL_UNLESS(key->out_of_range_group_number <= key->num_groups); + + if (wire_sym_map->groupInfo & XCB_XKB_GROUPS_WRAP_CLAMP_INTO_RANGE) + key->out_of_range_group_action = RANGE_SATURATE; + else if (wire_sym_map->groupInfo & XCB_XKB_GROUPS_WRAP_REDIRECT_INTO_RANGE) + key->out_of_range_group_action = RANGE_REDIRECT; + else + key->out_of_range_group_action = RANGE_WRAP; + + { + int syms_length = xcb_xkb_key_sym_map_syms_length(wire_sym_map); + xcb_keysym_t *syms_iter = xcb_xkb_key_sym_map_syms(wire_sym_map); + + FAIL_UNLESS((unsigned) syms_length == wire_sym_map->width * key->num_groups); + + for (int j = 0; j < syms_length; j++) { + xcb_keysym_t wire_keysym = *syms_iter; + const xkb_layout_index_t group = j / wire_sym_map->width; + const xkb_level_index_t level = j % wire_sym_map->width; + + if (level < key->groups[group].type->num_levels && + wire_keysym != XKB_KEY_NoSymbol) { + key->groups[group].levels[level].num_syms = 1; + key->groups[group].levels[level].u.sym = wire_keysym; + } + + syms_iter++; + } + } + + xcb_xkb_key_sym_map_next(&sym_maps_iter); + } + + return true; + +fail: + return false; +} + +static bool +get_actions(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + int acts_count_length = + xcb_xkb_get_map_map_acts_rtrn_count_length(reply, map); + uint8_t *acts_count_iter = xcb_xkb_get_map_map_acts_rtrn_count(map); + xcb_xkb_action_iterator_t acts_iter = + xcb_xkb_get_map_map_acts_rtrn_acts_iterator(reply, map); + xcb_xkb_key_sym_map_iterator_t sym_maps_iter = + xcb_xkb_get_map_map_syms_rtrn_iterator(reply, map); + + FAIL_UNLESS(reply->firstKeyAction == keymap->min_key_code); + FAIL_UNLESS(reply->firstKeyAction + reply->nKeyActions == + keymap->max_key_code + 1); + + for (int i = 0; i < acts_count_length; i++) { + xcb_xkb_key_sym_map_t *wire_sym_map = sym_maps_iter.data; + int syms_length = xcb_xkb_key_sym_map_syms_length(wire_sym_map); + uint8_t wire_count = *acts_count_iter; + struct xkb_key *key = &keymap->keys[reply->firstKeyAction + i]; + + FAIL_UNLESS(wire_count == 0 || wire_count == syms_length); + + for (int j = 0; j < wire_count; j++) { + xcb_xkb_action_t *wire_action = acts_iter.data; + const xkb_layout_index_t group = j / wire_sym_map->width; + const xkb_level_index_t level = j % wire_sym_map->width; + + if (level < key->groups[group].type->num_levels) { + union xkb_action *action = + &key->groups[group].levels[level].action; + + translate_action(action, wire_action); + } + + xcb_xkb_action_next(&acts_iter); + } + + acts_count_iter++; + xcb_xkb_key_sym_map_next(&sym_maps_iter); + } + + return true; + +fail: + return false; +} + +static bool +get_vmods(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + uint8_t *iter = xcb_xkb_get_map_map_vmods_rtrn(map); + + keymap->mods.num_mods = + NUM_REAL_MODS + MIN(msb_pos(reply->virtualMods), NUM_VMODS); + + for (unsigned i = 0; i < NUM_VMODS; i++) { + if (reply->virtualMods & (1u << i)) { + uint8_t wire = *iter; + struct xkb_mod *mod = &keymap->mods.mods[NUM_REAL_MODS + i]; + + mod->type = MOD_VIRT; + mod->mapping = translate_mods(wire, 0, 0); + + iter++; + } + } + + return true; +} + +static bool +get_explicits(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + int length = xcb_xkb_get_map_map_explicit_rtrn_length(reply, map); + xcb_xkb_set_explicit_iterator_t iter = + xcb_xkb_get_map_map_explicit_rtrn_iterator(reply, map); + + for (int i = 0; i < length; i++) { + xcb_xkb_set_explicit_t *wire = iter.data; + struct xkb_key *key; + + FAIL_UNLESS(wire->keycode >= keymap->min_key_code && + wire->keycode <= keymap->max_key_code); + + key = &keymap->keys[wire->keycode]; + + if ((wire->explicit & XCB_XKB_EXPLICIT_KEY_TYPE_1) && + key->num_groups > 0) + key->groups[0].explicit_type = true; + if ((wire->explicit & XCB_XKB_EXPLICIT_KEY_TYPE_2) && + key->num_groups > 1) + key->groups[1].explicit_type = true; + if ((wire->explicit & XCB_XKB_EXPLICIT_KEY_TYPE_3) && + key->num_groups > 2) + key->groups[2].explicit_type = true; + if ((wire->explicit & XCB_XKB_EXPLICIT_KEY_TYPE_4) && + key->num_groups > 3) + key->groups[3].explicit_type = true; + if (wire->explicit & XCB_XKB_EXPLICIT_INTERPRET) + key->explicit |= EXPLICIT_INTERP; + if (wire->explicit & XCB_XKB_EXPLICIT_AUTO_REPEAT) + key->explicit |= EXPLICIT_REPEAT; + if (wire->explicit & XCB_XKB_EXPLICIT_V_MOD_MAP) + key->explicit |= EXPLICIT_VMODMAP; + + xcb_xkb_set_explicit_next(&iter); + } + + return true; + +fail: + return false; +} + +static bool +get_modmaps(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + int length = xcb_xkb_get_map_map_modmap_rtrn_length(reply, map); + xcb_xkb_key_mod_map_iterator_t iter = + xcb_xkb_get_map_map_modmap_rtrn_iterator(reply, map); + + for (int i = 0; i < length; i++) { + xcb_xkb_key_mod_map_t *wire = iter.data; + struct xkb_key *key; + + FAIL_UNLESS(wire->keycode >= keymap->min_key_code && + wire->keycode <= keymap->max_key_code); + + key = &keymap->keys[wire->keycode]; + key->modmap = wire->mods; + + xcb_xkb_key_mod_map_next(&iter); + } + + return true; + +fail: + return false; +} + +static bool +get_vmodmaps(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_map_reply_t *reply, xcb_xkb_get_map_map_t *map) +{ + int length = xcb_xkb_get_map_map_vmodmap_rtrn_length(reply, map); + xcb_xkb_key_v_mod_map_iterator_t iter = + xcb_xkb_get_map_map_vmodmap_rtrn_iterator(reply, map); + + for (int i = 0; i < length; i++) { + xcb_xkb_key_v_mod_map_t *wire = iter.data; + struct xkb_key *key; + + FAIL_UNLESS(wire->keycode >= keymap->min_key_code && + wire->keycode <= keymap->max_key_code); + + key = &keymap->keys[wire->keycode]; + key->vmodmap = translate_mods(0, wire->vmods, 0); + + xcb_xkb_key_v_mod_map_next(&iter); + } + + return true; + +fail: + return false; +} + +static bool +get_map(struct xkb_keymap *keymap, xcb_connection_t *conn, uint16_t device_id) +{ + static const xcb_xkb_map_part_t required_components = + (XCB_XKB_MAP_PART_KEY_TYPES | + XCB_XKB_MAP_PART_KEY_SYMS | + XCB_XKB_MAP_PART_MODIFIER_MAP | + XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS | + XCB_XKB_MAP_PART_KEY_ACTIONS | + XCB_XKB_MAP_PART_VIRTUAL_MODS | + XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP); + + xcb_xkb_get_map_cookie_t cookie = + xcb_xkb_get_map(conn, device_id, required_components, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + xcb_xkb_get_map_reply_t *reply = xcb_xkb_get_map_reply(conn, cookie, NULL); + xcb_xkb_get_map_map_t map; + + FAIL_IF_BAD_REPLY(reply, "XkbGetMap"); + + if ((reply->present & required_components) != required_components) + goto fail; + + xcb_xkb_get_map_map_unpack(xcb_xkb_get_map_map(reply), + reply->nTypes, + reply->nKeySyms, + reply->nKeyActions, + reply->totalActions, + reply->totalKeyBehaviors, + reply->virtualMods, + reply->totalKeyExplicit, + reply->totalModMapKeys, + reply->totalVModMapKeys, + reply->present, + &map); + + if (!get_types(keymap, conn, reply, &map) || + !get_sym_maps(keymap, conn, reply, &map) || + !get_actions(keymap, conn, reply, &map) || + !get_vmods(keymap, conn, reply, &map) || + !get_explicits(keymap, conn, reply, &map) || + !get_modmaps(keymap, conn, reply, &map) || + !get_vmodmaps(keymap, conn, reply, &map)) + goto fail; + + free(reply); + return true; + +fail: + free(reply); + return false; +} + +static bool +get_indicators(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_indicator_map_reply_t *reply) +{ + xcb_xkb_indicator_map_iterator_t iter = + xcb_xkb_get_indicator_map_maps_iterator(reply); + + keymap->num_leds = msb_pos(reply->which); + + for (unsigned i = 0; i < NUM_INDICATORS; i++) { + if (reply->which & (1u << i)) { + xcb_xkb_indicator_map_t *wire = iter.data; + struct xkb_led *led = &keymap->leds[i]; + + if (wire->whichGroups & XCB_XKB_IM_GROUPS_WHICH_USE_BASE) + led->which_groups |= XKB_STATE_LAYOUT_DEPRESSED; + if (wire->whichGroups & XCB_XKB_IM_GROUPS_WHICH_USE_LATCHED) + led->which_groups |= XKB_STATE_LAYOUT_LATCHED; + if (wire->whichGroups & XCB_XKB_IM_GROUPS_WHICH_USE_LOCKED) + led->which_groups |= XKB_STATE_LAYOUT_LOCKED; + if (wire->whichGroups & XCB_XKB_IM_GROUPS_WHICH_USE_EFFECTIVE) + led->which_groups |= XKB_STATE_LAYOUT_EFFECTIVE; + if (wire->whichGroups & XCB_XKB_IM_GROUPS_WHICH_USE_COMPAT) + led->which_groups |= XKB_STATE_LAYOUT_EFFECTIVE; + + led->groups = wire->groups; + + if (wire->whichMods & XCB_XKB_IM_MODS_WHICH_USE_BASE) + led->which_mods |= XKB_STATE_MODS_DEPRESSED; + if (wire->whichMods & XCB_XKB_IM_MODS_WHICH_USE_LATCHED) + led->which_mods |= XKB_STATE_MODS_LATCHED; + if (wire->whichMods & XCB_XKB_IM_MODS_WHICH_USE_LOCKED) + led->which_mods |= XKB_STATE_MODS_LOCKED; + if (wire->whichMods & XCB_XKB_IM_MODS_WHICH_USE_EFFECTIVE) + led->which_mods |= XKB_STATE_MODS_EFFECTIVE; + if (wire->whichMods & XCB_XKB_IM_MODS_WHICH_USE_COMPAT) + led->which_mods |= XKB_STATE_MODS_EFFECTIVE; + + led->mods.mods = translate_mods(wire->realMods, wire->vmods, 0); + led->mods.mask = translate_mods(wire->mods, 0, 0); + + led->ctrls = translate_controls_mask(wire->ctrls); + + xcb_xkb_indicator_map_next(&iter); + } + } + + return true; +} + +static bool +get_indicator_map(struct xkb_keymap *keymap, xcb_connection_t *conn, + uint16_t device_id) +{ + xcb_xkb_get_indicator_map_cookie_t cookie = + xcb_xkb_get_indicator_map(conn, device_id, ALL_INDICATORS_MASK); + xcb_xkb_get_indicator_map_reply_t *reply = + xcb_xkb_get_indicator_map_reply(conn, cookie, NULL); + + FAIL_IF_BAD_REPLY(reply, "XkbGetIndicatorMap"); + + if (!get_indicators(keymap, conn, reply)) + goto fail; + + free(reply); + return true; + +fail: + free(reply); + return false; +} + +static bool +get_sym_interprets(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_compat_map_reply_t *reply) +{ + int length = xcb_xkb_get_compat_map_si_rtrn_length(reply); + xcb_xkb_sym_interpret_iterator_t iter = + xcb_xkb_get_compat_map_si_rtrn_iterator(reply); + + FAIL_UNLESS(reply->firstSIRtrn == 0); + FAIL_UNLESS(reply->nSIRtrn == reply->nTotalSI); + + keymap->num_sym_interprets = reply->nSIRtrn; + ALLOC_OR_FAIL(keymap->sym_interprets, keymap->num_sym_interprets); + + for (int i = 0; i < length; i++) { + xcb_xkb_sym_interpret_t *wire = iter.data; + struct xkb_sym_interpret *sym_interpret = &keymap->sym_interprets[i]; + + sym_interpret->sym = wire->sym; + + switch (wire->match & XCB_XKB_SYM_INTERP_MATCH_OP_MASK) { + case XCB_XKB_SYM_INTERPRET_MATCH_NONE_OF: + sym_interpret->match = MATCH_NONE; + break; + case XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF_OR_NONE: + sym_interpret->match = MATCH_ANY_OR_NONE; + break; + case XCB_XKB_SYM_INTERPRET_MATCH_ANY_OF: + sym_interpret->match = MATCH_ANY; + break; + case XCB_XKB_SYM_INTERPRET_MATCH_ALL_OF: + sym_interpret->match = MATCH_ALL; + break; + case XCB_XKB_SYM_INTERPRET_MATCH_EXACTLY: + sym_interpret->match = MATCH_EXACTLY; + break; + } + + sym_interpret->level_one_only = + (wire->match & XCB_XKB_SYM_INTERP_MATCH_LEVEL_ONE_ONLY); + sym_interpret->mods = wire->mods; + + if (wire->virtualMod == NO_MODIFIER) + sym_interpret->virtual_mod = XKB_MOD_INVALID; + else + sym_interpret->virtual_mod = NUM_REAL_MODS + wire->virtualMod; + + sym_interpret->repeat = (wire->flags & 0x01); + translate_action(&sym_interpret->action, + (xcb_xkb_action_t *) &wire->action); + + xcb_xkb_sym_interpret_next(&iter); + } + + return true; + +fail: + return false; +} + +static bool +get_compat_map(struct xkb_keymap *keymap, xcb_connection_t *conn, + uint16_t device_id) +{ + xcb_xkb_get_compat_map_cookie_t cookie = + xcb_xkb_get_compat_map(conn, device_id, 0, true, 0, 0); + xcb_xkb_get_compat_map_reply_t *reply = + xcb_xkb_get_compat_map_reply(conn, cookie, NULL); + + FAIL_IF_BAD_REPLY(reply, "XkbGetCompatMap"); + + if (!get_sym_interprets(keymap, conn, reply)) + goto fail; + + free(reply); + return true; + +fail: + free(reply); + return false; +} + +static bool +get_type_names(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_names_reply_t *reply, + xcb_xkb_get_names_value_list_t *list) +{ + int key_type_names_length = + xcb_xkb_get_names_value_list_type_names_length(reply, list); + xcb_atom_t *key_type_names_iter = + xcb_xkb_get_names_value_list_type_names(list); + int n_levels_per_type_length = + xcb_xkb_get_names_value_list_n_levels_per_type_length(reply, list); + uint8_t *n_levels_per_type_iter = + xcb_xkb_get_names_value_list_n_levels_per_type(list); + xcb_atom_t *kt_level_names_iter = + xcb_xkb_get_names_value_list_kt_level_names(list); + + FAIL_UNLESS(reply->nTypes == keymap->num_types); + FAIL_UNLESS(key_type_names_length == n_levels_per_type_length); + + for (int i = 0; i < key_type_names_length; i++) { + xcb_atom_t wire_type_name = *key_type_names_iter; + uint8_t wire_num_levels = *n_levels_per_type_iter; + struct xkb_key_type *type = &keymap->types[i]; + + /* Levels must have names. */ + FAIL_UNLESS(type->num_levels == wire_num_levels); + + ALLOC_OR_FAIL(type->level_names, type->num_levels); + + if (!adopt_atom(keymap->ctx, conn, wire_type_name, &type->name)) + goto fail; + + if (!adopt_atoms(keymap->ctx, conn, + kt_level_names_iter, type->level_names, + wire_num_levels)) + goto fail; + + kt_level_names_iter += wire_num_levels; + key_type_names_iter++; + n_levels_per_type_iter++; + } + + return true; + +fail: + return false; +} + +static bool +get_indicator_names(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_names_reply_t *reply, + xcb_xkb_get_names_value_list_t *list) +{ + xcb_atom_t *iter = xcb_xkb_get_names_value_list_indicator_names(list); + + FAIL_UNLESS(msb_pos(reply->indicators) <= keymap->num_leds); + + for (unsigned i = 0; i < NUM_INDICATORS; i++) { + if (reply->indicators & (1u << i)) { + xcb_atom_t wire = *iter; + struct xkb_led *led = &keymap->leds[i]; + + if (!adopt_atom(keymap->ctx, conn, wire, &led->name)) + return false; + + iter++; + } + } + + return true; + +fail: + return false; +} + +static bool +get_vmod_names(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_names_reply_t *reply, + xcb_xkb_get_names_value_list_t *list) +{ + xcb_atom_t *iter = xcb_xkb_get_names_value_list_virtual_mod_names(list); + + /* + * GetMap's reply->virtualMods is always 0xffff. This one really + * tells us which vmods exist (a vmod must have a name), so we fix + * up the size here. + */ + keymap->mods.num_mods = + NUM_REAL_MODS + MIN(msb_pos(reply->virtualMods), NUM_VMODS); + + for (unsigned i = 0; i < NUM_VMODS; i++) { + if (reply->virtualMods & (1u << i)) { + xcb_atom_t wire = *iter; + struct xkb_mod *mod = &keymap->mods.mods[NUM_REAL_MODS + i]; + + if (!adopt_atom(keymap->ctx, conn, wire, &mod->name)) + return false; + + iter++; + } + } + + return true; +} + +static bool +get_group_names(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_names_reply_t *reply, + xcb_xkb_get_names_value_list_t *list) +{ + int length = xcb_xkb_get_names_value_list_groups_length(reply, list); + xcb_atom_t *iter = xcb_xkb_get_names_value_list_groups(list); + + keymap->num_group_names = msb_pos(reply->groupNames); + ALLOC_OR_FAIL(keymap->group_names, keymap->num_group_names); + + if (!adopt_atoms(keymap->ctx, conn, + iter, keymap->group_names, length)) + goto fail; + + return true; + +fail: + return false; +} + +static bool +get_key_names(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_names_reply_t *reply, + xcb_xkb_get_names_value_list_t *list) +{ + int length = xcb_xkb_get_names_value_list_key_names_length(reply, list); + xcb_xkb_key_name_iterator_t iter = + xcb_xkb_get_names_value_list_key_names_iterator(reply, list); + + FAIL_UNLESS(reply->minKeyCode == keymap->min_key_code); + FAIL_UNLESS(reply->maxKeyCode == keymap->max_key_code); + FAIL_UNLESS(reply->firstKey == keymap->min_key_code); + FAIL_UNLESS(reply->firstKey + reply->nKeys - 1U == keymap->max_key_code); + + for (int i = 0; i < length; i++) { + xcb_xkb_key_name_t *wire = iter.data; + xkb_atom_t *key_name = &keymap->keys[reply->firstKey + i].name; + + if (wire->name[0] == '\0') { + *key_name = XKB_ATOM_NONE; + } + else { + *key_name = xkb_atom_intern(keymap->ctx, wire->name, + strnlen(wire->name, + XCB_XKB_CONST_KEY_NAME_LENGTH)); + if (!*key_name) + return false; + } + + xcb_xkb_key_name_next(&iter); + } + + return true; + +fail: + return false; +} + +static bool +get_aliases(struct xkb_keymap *keymap, xcb_connection_t *conn, + xcb_xkb_get_names_reply_t *reply, + xcb_xkb_get_names_value_list_t *list) +{ + int length = xcb_xkb_get_names_value_list_key_aliases_length(reply, list); + xcb_xkb_key_alias_iterator_t iter = + xcb_xkb_get_names_value_list_key_aliases_iterator(reply, list); + + keymap->num_key_aliases = reply->nKeyAliases; + ALLOC_OR_FAIL(keymap->key_aliases, keymap->num_key_aliases); + + for (int i = 0; i < length; i++) { + xcb_xkb_key_alias_t *wire = iter.data; + struct xkb_key_alias *alias = &keymap->key_aliases[i]; + + alias->real = + xkb_atom_intern(keymap->ctx, wire->real, + strnlen(wire->real, XCB_XKB_CONST_KEY_NAME_LENGTH)); + alias->alias = + xkb_atom_intern(keymap->ctx, wire->alias, + strnlen(wire->alias, XCB_XKB_CONST_KEY_NAME_LENGTH)); + if (!alias->real || !alias->alias) + goto fail; + + xcb_xkb_key_alias_next(&iter); + } + + return true; + +fail: + return false; +} + +static bool +get_names(struct xkb_keymap *keymap, xcb_connection_t *conn, + uint16_t device_id) +{ + static const xcb_xkb_name_detail_t wanted = + (XCB_XKB_NAME_DETAIL_KEYCODES | + XCB_XKB_NAME_DETAIL_SYMBOLS | + XCB_XKB_NAME_DETAIL_TYPES | + XCB_XKB_NAME_DETAIL_COMPAT | + XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES | + XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES | + XCB_XKB_NAME_DETAIL_INDICATOR_NAMES | + XCB_XKB_NAME_DETAIL_KEY_NAMES | + XCB_XKB_NAME_DETAIL_KEY_ALIASES | + XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES | + XCB_XKB_NAME_DETAIL_GROUP_NAMES); + static const xcb_xkb_name_detail_t required = + (XCB_XKB_NAME_DETAIL_KEY_TYPE_NAMES | + XCB_XKB_NAME_DETAIL_KT_LEVEL_NAMES | + XCB_XKB_NAME_DETAIL_KEY_NAMES | + XCB_XKB_NAME_DETAIL_VIRTUAL_MOD_NAMES); + + xcb_xkb_get_names_cookie_t cookie = + xcb_xkb_get_names(conn, device_id, wanted); + xcb_xkb_get_names_reply_t *reply = + xcb_xkb_get_names_reply(conn, cookie, NULL); + xcb_xkb_get_names_value_list_t list; + + FAIL_IF_BAD_REPLY(reply, "XkbGetNames"); + + FAIL_UNLESS((reply->which & required) == required); + + xcb_xkb_get_names_value_list_unpack(xcb_xkb_get_names_value_list(reply), + reply->nTypes, + reply->indicators, + reply->virtualMods, + reply->groupNames, + reply->nKeys, + reply->nKeyAliases, + reply->nRadioGroups, + reply->which, + &list); + + if (!get_atom_name(conn, list.keycodesName, &keymap->keycodes_section_name) || + !get_atom_name(conn, list.symbolsName, &keymap->symbols_section_name) || + !get_atom_name(conn, list.typesName, &keymap->types_section_name) || + !get_atom_name(conn, list.compatName, &keymap->compat_section_name) || + !get_type_names(keymap, conn, reply, &list) || + !get_indicator_names(keymap, conn, reply, &list) || + !get_vmod_names(keymap, conn, reply, &list) || + !get_group_names(keymap, conn, reply, &list) || + !get_key_names(keymap, conn, reply, &list) || + !get_aliases(keymap, conn, reply, &list)) + goto fail; + + XkbEscapeMapName(keymap->keycodes_section_name); + XkbEscapeMapName(keymap->symbols_section_name); + XkbEscapeMapName(keymap->types_section_name); + XkbEscapeMapName(keymap->compat_section_name); + + free(reply); + return true; + +fail: + free(reply); + return false; +} + +static bool +get_controls(struct xkb_keymap *keymap, xcb_connection_t *conn, + uint16_t device_id) +{ + xcb_xkb_get_controls_cookie_t cookie = + xcb_xkb_get_controls(conn, device_id); + xcb_xkb_get_controls_reply_t *reply = + xcb_xkb_get_controls_reply(conn, cookie, NULL); + + FAIL_IF_BAD_REPLY(reply, "XkbGetControls"); + FAIL_UNLESS(reply->numGroups > 0 && reply->numGroups <= 4); + + keymap->enabled_ctrls = translate_controls_mask(reply->enabledControls); + keymap->num_groups = reply->numGroups; + + FAIL_UNLESS(keymap->max_key_code < XCB_XKB_CONST_PER_KEY_BIT_ARRAY_SIZE * 8); + + for (xkb_keycode_t i = keymap->min_key_code; i <= keymap->max_key_code; i++) + keymap->keys[i].repeats = (reply->perKeyRepeat[i / 8] & (1 << (i % 8))); + + free(reply); + return true; + +fail: + free(reply); + return false; +} + +XKB_EXPORT struct xkb_keymap * +xkb_x11_keymap_new_from_device(struct xkb_context *ctx, + xcb_connection_t *conn, + int32_t device_id, + enum xkb_keymap_compile_flags flags) +{ + struct xkb_keymap *keymap; + const enum xkb_keymap_format format = XKB_KEYMAP_FORMAT_TEXT_V1; + + if (flags & ~(XKB_KEYMAP_COMPILE_NO_FLAGS)) { + log_err_func(ctx, "unrecognized flags: %#x\n", flags); + return NULL; + } + + if (device_id < 0 || device_id > 255) { + log_err_func(ctx, "illegal device ID: %d\n", device_id); + return NULL; + } + + keymap = xkb_keymap_new(ctx, format, flags); + if (!keymap) + return NULL; + + if (!get_map(keymap, conn, device_id) || + !get_indicator_map(keymap, conn, device_id) || + !get_compat_map(keymap, conn, device_id) || + !get_names(keymap, conn, device_id) || + !get_controls(keymap, conn, device_id)) { + xkb_keymap_unref(keymap); + return NULL; + } + + return keymap; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/state.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/state.c new file mode 100644 index 0000000..da7dcc2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/state.c @@ -0,0 +1,71 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "x11-priv.h" + +static bool +update_initial_state(struct xkb_state *state, xcb_connection_t *conn, + uint16_t device_id) +{ + xcb_xkb_get_state_cookie_t cookie = + xcb_xkb_get_state(conn, device_id); + xcb_xkb_get_state_reply_t *reply = + xcb_xkb_get_state_reply(conn, cookie, NULL); + + if (!reply) + return false; + + xkb_state_update_mask(state, + reply->baseMods, + reply->latchedMods, + reply->lockedMods, + reply->baseGroup, + reply->latchedGroup, + reply->lockedGroup); + + free(reply); + return true; +} + +XKB_EXPORT struct xkb_state * +xkb_x11_state_new_from_device(struct xkb_keymap *keymap, + xcb_connection_t *conn, int32_t device_id) +{ + struct xkb_state *state; + + if (device_id < 0 || device_id > 255) { + log_err_func(keymap->ctx, "illegal device ID: %d", device_id); + return NULL; + } + + state = xkb_state_new(keymap); + if (!state) + return NULL; + + if (!update_initial_state(state, conn, device_id)) { + xkb_state_unref(state); + return NULL; + } + + return state; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/util.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/util.c new file mode 100644 index 0000000..c41f1d6 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/util.c @@ -0,0 +1,217 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "x11-priv.h" + +XKB_EXPORT int +xkb_x11_setup_xkb_extension(xcb_connection_t *conn, + uint16_t major_xkb_version, + uint16_t minor_xkb_version, + enum xkb_x11_setup_xkb_extension_flags flags, + uint16_t *major_xkb_version_out, + uint16_t *minor_xkb_version_out, + uint8_t *base_event_out, + uint8_t *base_error_out) +{ + uint8_t base_event, base_error; + uint16_t server_major, server_minor; + + if (flags & ~(XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS)) { + /* log_err_func(ctx, "unrecognized flags: %#x\n", flags); */ + return 0; + } + + { + const xcb_query_extension_reply_t *reply = + xcb_get_extension_data(conn, &xcb_xkb_id); + if (!reply) { + /* log_err_func(ctx, "failed to query for XKB extension\n"); */ + return 0; + } + + if (!reply->present) { + /* log_err_func(ctx, "failed to start using XKB extension: not available in server\n"); */ + return 0; + } + + base_event = reply->first_event; + base_error = reply->first_error; + } + + { + xcb_generic_error_t *error = NULL; + xcb_xkb_use_extension_cookie_t cookie = + xcb_xkb_use_extension(conn, major_xkb_version, minor_xkb_version); + xcb_xkb_use_extension_reply_t *reply = + xcb_xkb_use_extension_reply(conn, cookie, &error); + + if (!reply) { + /* log_err_func(ctx, */ + /* "failed to start using XKB extension: error code %d\n", */ + /* error ? error->error_code : -1); */ + free(error); + return 0; + } + + if (!reply->supported) { + /* log_err_func(ctx, */ + /* "failed to start using XKB extension: server doesn't support version %d.%d\n", */ + /* major_xkb_version, minor_xkb_version); */ + free(reply); + return 0; + } + + server_major = reply->serverMajor; + server_minor = reply->serverMinor; + + free(reply); + } + + /* + * The XkbUseExtension() in libX11 has a *bunch* of legacy stuff, but + * it doesn't seem like any of it is useful to us. + */ + + if (major_xkb_version_out) + *major_xkb_version_out = server_major; + if (minor_xkb_version_out) + *minor_xkb_version_out = server_minor; + if (base_event_out) + *base_event_out = base_event; + if (base_error_out) + *base_error_out = base_error; + + return 1; +} + +XKB_EXPORT int32_t +xkb_x11_get_core_keyboard_device_id(xcb_connection_t *conn) +{ + int32_t device_id; + xcb_xkb_get_device_info_cookie_t cookie = + xcb_xkb_get_device_info(conn, XCB_XKB_ID_USE_CORE_KBD, + 0, 0, 0, 0, 0, 0); + xcb_xkb_get_device_info_reply_t *reply = + xcb_xkb_get_device_info_reply(conn, cookie, NULL); + + if (!reply) + return -1; + + device_id = reply->deviceID; + free(reply); + return device_id; +} + +bool +get_atom_name(xcb_connection_t *conn, xcb_atom_t atom, char **out) +{ + xcb_get_atom_name_cookie_t cookie; + xcb_get_atom_name_reply_t *reply; + int length; + char *name; + + if (atom == 0) { + *out = NULL; + return true; + } + + cookie = xcb_get_atom_name(conn, atom); + reply = xcb_get_atom_name_reply(conn, cookie, NULL); + if (!reply) + return false; + + length = xcb_get_atom_name_name_length(reply); + name = xcb_get_atom_name_name(reply); + + *out = strndup(name, length); + if (!*out) { + free(reply); + return false; + } + + free(reply); + return true; +} + +bool +adopt_atoms(struct xkb_context *ctx, xcb_connection_t *conn, + const xcb_atom_t *from, xkb_atom_t *to, const size_t count) +{ + enum { SIZE = 128 }; + xcb_get_atom_name_cookie_t cookies[SIZE]; + const size_t num_batches = ROUNDUP(count, SIZE) / SIZE; + + /* Send and collect the atoms in batches of reasonable SIZE. */ + for (size_t batch = 0; batch < num_batches; batch++) { + const size_t start = batch * SIZE; + const size_t stop = min((batch + 1) * SIZE, count); + + /* Send. */ + for (size_t i = start; i < stop; i++) + if (from[i] != XCB_ATOM_NONE) + cookies[i % SIZE] = xcb_get_atom_name(conn, from[i]); + + /* Collect. */ + for (size_t i = start; i < stop; i++) { + xcb_get_atom_name_reply_t *reply; + + if (from[i] == XCB_ATOM_NONE) { + to[i] = XKB_ATOM_NONE; + continue; + } + + reply = xcb_get_atom_name_reply(conn, cookies[i % SIZE], NULL); + if (!reply) + goto err_discard; + + to[i] = xkb_atom_intern(ctx, + xcb_get_atom_name_name(reply), + xcb_get_atom_name_name_length(reply)); + free(reply); + + if (to[i] == XKB_ATOM_NONE) + goto err_discard; + + continue; + + /* + * If we don't discard the uncollected replies, they just + * sit in the XCB queue waiting forever. Sad. + */ +err_discard: + for (size_t j = i + 1; j < stop; j++) + if (from[j] != XCB_ATOM_NONE) + xcb_discard_reply(conn, cookies[j % SIZE].sequence); + return false; + } + } + + return true; +} + +bool +adopt_atom(struct xkb_context *ctx, xcb_connection_t *conn, xcb_atom_t atom, + xkb_atom_t *out) +{ + return adopt_atoms(ctx, conn, &atom, out, 1); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/x11-priv.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/x11-priv.h new file mode 100644 index 0000000..3a19e99 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/x11/x11-priv.h @@ -0,0 +1,54 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _XKBCOMMON_X11_PRIV_H +#define _XKBCOMMON_X11_PRIV_H + +#include + +#include "keymap.h" +#include "xkbcommon/xkbcommon-x11.h" + +/* Get a strdup'd name of an X atom. */ +bool +get_atom_name(xcb_connection_t *conn, xcb_atom_t atom, char **out); + +/* + * Make a xkb_atom_t's from X atoms (prefer to send as many as possible + * at once, to avoid many roundtrips). + * + * TODO: We can make this more flexible, such that @to doesn't have to + * be sequential. Then we can convert most adopt_atom() calls to + * adopt_atoms(). + * Atom caching would also likely be useful for avoiding quite a + * few requests. + */ +bool +adopt_atoms(struct xkb_context *ctx, xcb_connection_t *conn, + const xcb_atom_t *from, xkb_atom_t *to, size_t count); + +bool +adopt_atom(struct xkb_context *ctx, xcb_connection_t *conn, xcb_atom_t atom, + xkb_atom_t *out); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c new file mode 100644 index 0000000..5f1fd65 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.c @@ -0,0 +1,870 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + * Ran Benita + */ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "expr.h" +#include "action.h" + +static const ExprBoolean constTrue = { + .expr = { + .common = { .type = STMT_EXPR, .next = NULL }, + .op = EXPR_VALUE, + .value_type = EXPR_TYPE_BOOLEAN, + }, + .set = true, +}; + +static const ExprBoolean constFalse = { + .expr = { + .common = { .type = STMT_EXPR, .next = NULL }, + .op = EXPR_VALUE, + .value_type = EXPR_TYPE_BOOLEAN, + }, + .set = false, +}; + +enum action_field { + ACTION_FIELD_CLEAR_LOCKS, + ACTION_FIELD_LATCH_TO_LOCK, + ACTION_FIELD_GEN_KEY_EVENT, + ACTION_FIELD_REPORT, + ACTION_FIELD_DEFAULT, + ACTION_FIELD_AFFECT, + ACTION_FIELD_INCREMENT, + ACTION_FIELD_MODIFIERS, + ACTION_FIELD_GROUP, + ACTION_FIELD_X, + ACTION_FIELD_Y, + ACTION_FIELD_ACCEL, + ACTION_FIELD_BUTTON, + ACTION_FIELD_VALUE, + ACTION_FIELD_CONTROLS, + ACTION_FIELD_TYPE, + ACTION_FIELD_COUNT, + ACTION_FIELD_SCREEN, + ACTION_FIELD_SAME, + ACTION_FIELD_DATA, + ACTION_FIELD_DEVICE, + ACTION_FIELD_KEYCODE, + ACTION_FIELD_MODS_TO_CLEAR, +}; + +ActionsInfo * +NewActionsInfo(void) +{ + enum xkb_action_type type; + ActionsInfo *info; + + info = calloc(1, sizeof(*info)); + if (!info) + return NULL; + + for (type = 0; type < _ACTION_TYPE_NUM_ENTRIES; type++) + info->actions[type].type = type; + + /* Apply some "factory defaults". */ + + /* Increment default button. */ + info->actions[ACTION_TYPE_PTR_DEFAULT].dflt.flags = 0; + info->actions[ACTION_TYPE_PTR_DEFAULT].dflt.value = 1; + info->actions[ACTION_TYPE_PTR_MOVE].ptr.flags = ACTION_ACCEL; + info->actions[ACTION_TYPE_SWITCH_VT].screen.flags = ACTION_SAME_SCREEN; + + return info; +} + +void +FreeActionsInfo(ActionsInfo *info) +{ + free(info); +} + +static const LookupEntry fieldStrings[] = { + { "clearLocks", ACTION_FIELD_CLEAR_LOCKS }, + { "latchToLock", ACTION_FIELD_LATCH_TO_LOCK }, + { "genKeyEvent", ACTION_FIELD_GEN_KEY_EVENT }, + { "generateKeyEvent", ACTION_FIELD_GEN_KEY_EVENT }, + { "report", ACTION_FIELD_REPORT }, + { "default", ACTION_FIELD_DEFAULT }, + { "affect", ACTION_FIELD_AFFECT }, + { "increment", ACTION_FIELD_INCREMENT }, + { "modifiers", ACTION_FIELD_MODIFIERS }, + { "mods", ACTION_FIELD_MODIFIERS }, + { "group", ACTION_FIELD_GROUP }, + { "x", ACTION_FIELD_X }, + { "y", ACTION_FIELD_Y }, + { "accel", ACTION_FIELD_ACCEL }, + { "accelerate", ACTION_FIELD_ACCEL }, + { "repeat", ACTION_FIELD_ACCEL }, + { "button", ACTION_FIELD_BUTTON }, + { "value", ACTION_FIELD_VALUE }, + { "controls", ACTION_FIELD_CONTROLS }, + { "ctrls", ACTION_FIELD_CONTROLS }, + { "type", ACTION_FIELD_TYPE }, + { "count", ACTION_FIELD_COUNT }, + { "screen", ACTION_FIELD_SCREEN }, + { "same", ACTION_FIELD_SAME }, + { "sameServer", ACTION_FIELD_SAME }, + { "data", ACTION_FIELD_DATA }, + { "device", ACTION_FIELD_DEVICE }, + { "dev", ACTION_FIELD_DEVICE }, + { "key", ACTION_FIELD_KEYCODE }, + { "keycode", ACTION_FIELD_KEYCODE }, + { "kc", ACTION_FIELD_KEYCODE }, + { "clearmods", ACTION_FIELD_MODS_TO_CLEAR }, + { "clearmodifiers", ACTION_FIELD_MODS_TO_CLEAR }, + { NULL, 0 } +}; + +static bool +stringToAction(const char *str, enum xkb_action_type *type_rtrn) +{ + return LookupString(actionTypeNames, str, type_rtrn); +} + +static bool +stringToField(const char *str, enum action_field *field_rtrn) +{ + return LookupString(fieldStrings, str, field_rtrn); +} + +static const char * +fieldText(enum action_field field) +{ + return LookupValue(fieldStrings, field); +} + +/***====================================================================***/ + +static inline bool +ReportMismatch(struct xkb_context *ctx, enum xkb_action_type action, + enum action_field field, const char *type) +{ + log_err(ctx, + "Value of %s field must be of type %s; " + "Action %s definition ignored\n", + fieldText(field), type, ActionTypeText(action)); + return false; +} + +static inline bool +ReportIllegal(struct xkb_context *ctx, enum xkb_action_type action, + enum action_field field) +{ + log_err(ctx, + "Field %s is not defined for an action of type %s; " + "Action definition ignored\n", + fieldText(field), ActionTypeText(action)); + return false; +} + +static inline bool +ReportActionNotArray(struct xkb_context *ctx, enum xkb_action_type action, + enum action_field field) +{ + log_err(ctx, + "The %s field in the %s action is not an array; " + "Action definition ignored\n", + fieldText(field), ActionTypeText(action)); + return false; +} + +static bool +HandleNoAction(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) + +{ + return true; +} + +static bool +CheckBooleanFlag(struct xkb_context *ctx, enum xkb_action_type action, + enum action_field field, enum xkb_action_flags flag, + const ExprDef *array_ndx, const ExprDef *value, + enum xkb_action_flags *flags_inout) +{ + bool set; + + if (array_ndx) + return ReportActionNotArray(ctx, action, field); + + if (!ExprResolveBoolean(ctx, value, &set)) + return ReportMismatch(ctx, action, field, "boolean"); + + if (set) + *flags_inout |= flag; + else + *flags_inout &= ~flag; + + return true; +} + +static bool +CheckModifierField(struct xkb_context *ctx, const struct xkb_mod_set *mods, + enum xkb_action_type action, const ExprDef *array_ndx, + const ExprDef *value, enum xkb_action_flags *flags_inout, + xkb_mod_mask_t *mods_rtrn) +{ + if (array_ndx) + return ReportActionNotArray(ctx, action, ACTION_FIELD_MODIFIERS); + + if (value->expr.op == EXPR_IDENT) { + const char *valStr; + valStr = xkb_atom_text(ctx, value->ident.ident); + if (valStr && (istreq(valStr, "usemodmapmods") || + istreq(valStr, "modmapmods"))) { + *mods_rtrn = 0; + *flags_inout |= ACTION_MODS_LOOKUP_MODMAP; + return true; + } + } + + if (!ExprResolveModMask(ctx, value, MOD_BOTH, mods, mods_rtrn)) + return ReportMismatch(ctx, action, + ACTION_FIELD_MODIFIERS, "modifier mask"); + + *flags_inout &= ~ACTION_MODS_LOOKUP_MODMAP; + return true; +} + +static const LookupEntry lockWhich[] = { + { "both", 0 }, + { "lock", ACTION_LOCK_NO_UNLOCK }, + { "neither", (ACTION_LOCK_NO_LOCK | ACTION_LOCK_NO_UNLOCK) }, + { "unlock", ACTION_LOCK_NO_LOCK }, + { NULL, 0 } +}; + +static bool +CheckAffectField(struct xkb_context *ctx, enum xkb_action_type action, + const ExprDef *array_ndx, const ExprDef *value, + enum xkb_action_flags *flags_inout) +{ + enum xkb_action_flags flags; + + if (array_ndx) + return ReportActionNotArray(ctx, action, ACTION_FIELD_AFFECT); + + if (!ExprResolveEnum(ctx, value, &flags, lockWhich)) + return ReportMismatch(ctx, action, ACTION_FIELD_AFFECT, + "lock, unlock, both, neither"); + + *flags_inout &= ~(ACTION_LOCK_NO_LOCK | ACTION_LOCK_NO_UNLOCK); + *flags_inout |= flags; + return true; +} + +static bool +HandleSetLatchLockMods(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_mod_action *act = &action->mods; + const enum xkb_action_type type = action->type; + + if (field == ACTION_FIELD_MODIFIERS) + return CheckModifierField(ctx, mods, action->type, array_ndx, value, + &act->flags, &act->mods.mods); + if ((type == ACTION_TYPE_MOD_SET || type == ACTION_TYPE_MOD_LATCH) && + field == ACTION_FIELD_CLEAR_LOCKS) + return CheckBooleanFlag(ctx, action->type, field, + ACTION_LOCK_CLEAR, array_ndx, value, + &act->flags); + if (type == ACTION_TYPE_MOD_LATCH && + field == ACTION_FIELD_LATCH_TO_LOCK) + return CheckBooleanFlag(ctx, action->type, field, + ACTION_LATCH_TO_LOCK, array_ndx, value, + &act->flags); + if (type == ACTION_TYPE_MOD_LOCK && + field == ACTION_FIELD_AFFECT) + return CheckAffectField(ctx, action->type, array_ndx, value, + &act->flags); + + return ReportIllegal(ctx, action->type, field); +} + +static bool +CheckGroupField(struct xkb_context *ctx, enum xkb_action_type action, + const ExprDef *array_ndx, const ExprDef *value, + enum xkb_action_flags *flags_inout, int32_t *group_rtrn) +{ + const ExprDef *spec; + xkb_layout_index_t idx; + enum xkb_action_flags flags = *flags_inout; + + if (array_ndx) + return ReportActionNotArray(ctx, action, ACTION_FIELD_GROUP); + + if (value->expr.op == EXPR_NEGATE || value->expr.op == EXPR_UNARY_PLUS) { + flags &= ~ACTION_ABSOLUTE_SWITCH; + spec = value->unary.child; + } + else { + flags |= ACTION_ABSOLUTE_SWITCH; + spec = value; + } + + if (!ExprResolveGroup(ctx, spec, &idx)) + return ReportMismatch(ctx, action, ACTION_FIELD_GROUP, + "integer (range 1..8)"); + + /* +n, -n are relative, n is absolute. */ + if (value->expr.op == EXPR_NEGATE || value->expr.op == EXPR_UNARY_PLUS) { + *group_rtrn = (int32_t) idx; + if (value->expr.op == EXPR_NEGATE) + *group_rtrn = -*group_rtrn; + } + else { + *group_rtrn = (int32_t) (idx - 1); + } + *flags_inout = flags; + return true; +} + +static bool +HandleSetLatchLockGroup(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_group_action *act = &action->group; + const enum xkb_action_type type = action->type; + + if (field == ACTION_FIELD_GROUP) + return CheckGroupField(ctx, action->type, array_ndx, value, + &act->flags, &act->group); + if ((type == ACTION_TYPE_GROUP_SET || type == ACTION_TYPE_GROUP_LATCH) && + field == ACTION_FIELD_CLEAR_LOCKS) + return CheckBooleanFlag(ctx, action->type, field, + ACTION_LOCK_CLEAR, array_ndx, value, + &act->flags); + if (type == ACTION_TYPE_GROUP_LATCH && + field == ACTION_FIELD_LATCH_TO_LOCK) + return CheckBooleanFlag(ctx, action->type, field, + ACTION_LATCH_TO_LOCK, array_ndx, value, + &act->flags); + + return ReportIllegal(ctx, action->type, field); +} + +static bool +HandleMovePtr(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_pointer_action *act = &action->ptr; + + if (field == ACTION_FIELD_X || field == ACTION_FIELD_Y) { + int val; + const bool absolute = (value->expr.op != EXPR_NEGATE && + value->expr.op != EXPR_UNARY_PLUS); + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (!ExprResolveInteger(ctx, value, &val)) + return ReportMismatch(ctx, action->type, field, "integer"); + + if (val < INT16_MIN || val > INT16_MAX) { + log_err(ctx, + "The %s field in the %s action must be in range %d..%d; " + "Action definition ignored\n", + fieldText(field), ActionTypeText(action->type), + INT16_MIN, INT16_MAX); + return false; + } + + if (field == ACTION_FIELD_X) { + if (absolute) + act->flags |= ACTION_ABSOLUTE_X; + act->x = (int16_t) val; + } + else { + if (absolute) + act->flags |= ACTION_ABSOLUTE_Y; + act->y = (int16_t) val; + } + + return true; + } + else if (field == ACTION_FIELD_ACCEL) { + return CheckBooleanFlag(ctx, action->type, field, + ACTION_ACCEL, array_ndx, value, &act->flags); + } + + return ReportIllegal(ctx, action->type, field); +} + +static bool +HandlePtrBtn(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_pointer_button_action *act = &action->btn; + + if (field == ACTION_FIELD_BUTTON) { + int btn; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (!ExprResolveButton(ctx, value, &btn)) + return ReportMismatch(ctx, action->type, field, + "integer (range 1..5)"); + + if (btn < 0 || btn > 5) { + log_err(ctx, + "Button must specify default or be in the range 1..5; " + "Illegal button value %d ignored\n", btn); + return false; + } + + act->button = btn; + return true; + } + else if (action->type == ACTION_TYPE_PTR_LOCK && + field == ACTION_FIELD_AFFECT) { + return CheckAffectField(ctx, action->type, array_ndx, value, + &act->flags); + } + else if (field == ACTION_FIELD_COUNT) { + int val; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (!ExprResolveInteger(ctx, value, &val)) + return ReportMismatch(ctx, action->type, field, "integer"); + + if (val < 0 || val > 255) { + log_err(ctx, + "The count field must have a value in the range 0..255; " + "Illegal count %d ignored\n", val); + return false; + } + + act->count = (uint8_t) val; + return true; + } + + return ReportIllegal(ctx, action->type, field); +} + +static const LookupEntry ptrDflts[] = { + { "dfltbtn", 1 }, + { "defaultbutton", 1 }, + { "button", 1 }, + { NULL, 0 } +}; + +static bool +HandleSetPtrDflt(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_pointer_default_action *act = &action->dflt; + + if (field == ACTION_FIELD_AFFECT) { + unsigned int val; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (!ExprResolveEnum(ctx, value, &val, ptrDflts)) + return ReportMismatch(ctx, action->type, field, + "pointer component"); + return true; + } + else if (field == ACTION_FIELD_BUTTON || field == ACTION_FIELD_VALUE) { + const ExprDef *button; + int btn; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (value->expr.op == EXPR_NEGATE || + value->expr.op == EXPR_UNARY_PLUS) { + act->flags &= ~ACTION_ABSOLUTE_SWITCH; + button = value->unary.child; + } + else { + act->flags |= ACTION_ABSOLUTE_SWITCH; + button = value; + } + + if (!ExprResolveButton(ctx, button, &btn)) + return ReportMismatch(ctx, action->type, field, + "integer (range 1..5)"); + + if (btn < 0 || btn > 5) { + log_err(ctx, + "New default button value must be in the range 1..5; " + "Illegal default button value %d ignored\n", btn); + return false; + } + if (btn == 0) { + log_err(ctx, + "Cannot set default pointer button to \"default\"; " + "Illegal default button setting ignored\n"); + return false; + } + + act->value = (value->expr.op == EXPR_NEGATE ? -btn: btn); + return true; + } + + return ReportIllegal(ctx, action->type, field); +} + +static bool +HandleSwitchScreen(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_switch_screen_action *act = &action->screen; + + if (field == ACTION_FIELD_SCREEN) { + const ExprDef *scrn; + int val; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (value->expr.op == EXPR_NEGATE || + value->expr.op == EXPR_UNARY_PLUS) { + act->flags &= ~ACTION_ABSOLUTE_SWITCH; + scrn = value->unary.child; + } + else { + act->flags |= ACTION_ABSOLUTE_SWITCH; + scrn = value; + } + + if (!ExprResolveInteger(ctx, scrn, &val)) + return ReportMismatch(ctx, action->type, field, + "integer (0..255)"); + + if (val < 0 || val > 255) { + log_err(ctx, + "Screen index must be in the range 1..255; " + "Illegal screen value %d ignored\n", val); + return false; + } + + act->screen = (value->expr.op == EXPR_NEGATE ? -val : val); + return true; + } + else if (field == ACTION_FIELD_SAME) { + return CheckBooleanFlag(ctx, action->type, field, + ACTION_SAME_SCREEN, array_ndx, value, + &act->flags); + } + + return ReportIllegal(ctx, action->type, field); +} + +static bool +HandleSetLockControls(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_controls_action *act = &action->ctrls; + + if (field == ACTION_FIELD_CONTROLS) { + enum xkb_action_controls mask; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (!ExprResolveMask(ctx, value, &mask, ctrlMaskNames)) + return ReportMismatch(ctx, action->type, field, + "controls mask"); + + act->ctrls = mask; + return true; + } + else if (field == ACTION_FIELD_AFFECT) { + return CheckAffectField(ctx, action->type, array_ndx, value, + &act->flags); + } + + return ReportIllegal(ctx, action->type, field); +} + +static bool +HandlePrivate(struct xkb_context *ctx, const struct xkb_mod_set *mods, + union xkb_action *action, enum action_field field, + const ExprDef *array_ndx, const ExprDef *value) +{ + struct xkb_private_action *act = &action->priv; + + if (field == ACTION_FIELD_TYPE) { + int type; + + if (array_ndx) + return ReportActionNotArray(ctx, action->type, field); + + if (!ExprResolveInteger(ctx, value, &type)) + return ReportMismatch(ctx, ACTION_TYPE_PRIVATE, field, "integer"); + + if (type < 0 || type > 255) { + log_err(ctx, + "Private action type must be in the range 0..255; " + "Illegal type %d ignored\n", type); + return false; + } + + /* + * It's possible for someone to write something like this: + * actions = [ Private(type=3,data[0]=1,data[1]=3,data[2]=3) ] + * where the type refers to some existing action type, e.g. LockMods. + * This assumes that this action's struct is laid out in memory + * exactly as described in the XKB specification and libraries. + * We, however, have changed these structs in various ways, so this + * assumption is no longer true. Since this is a lousy "feature", we + * make actions like these no-ops for now. + */ + if (type < ACTION_TYPE_PRIVATE) { + log_info(ctx, + "Private actions of type %s are not supported; Ignored\n", + ActionTypeText(type)); + act->type = ACTION_TYPE_NONE; + } + else { + act->type = (enum xkb_action_type) type; + } + + return true; + } + else if (field == ACTION_FIELD_DATA) { + if (array_ndx == NULL) { + xkb_atom_t val; + const char *str; + size_t len; + + if (!ExprResolveString(ctx, value, &val)) + return ReportMismatch(ctx, action->type, field, "string"); + + str = xkb_atom_text(ctx, val); + len = strlen(str); + if (len < 1 || len > 7) { + log_warn(ctx, + "A private action has 7 data bytes; " + "Illegal data ignored\n"); + return false; + } + + strncpy((char *) act->data, str, sizeof(act->data)); + return true; + } + else { + int ndx, datum; + + if (!ExprResolveInteger(ctx, array_ndx, &ndx)) { + log_err(ctx, + "Array subscript must be integer; " + "Illegal subscript ignored\n"); + return false; + } + + if (ndx < 0 || (size_t) ndx >= sizeof(act->data)) { + log_err(ctx, + "The data for a private action is %lu bytes long; " + "Attempt to use data[%d] ignored\n", + (unsigned long) sizeof(act->data), ndx); + return false; + } + + if (!ExprResolveInteger(ctx, value, &datum)) + return ReportMismatch(ctx, act->type, field, "integer"); + + if (datum < 0 || datum > 255) { + log_err(ctx, + "All data for a private action must be 0..255; " + "Illegal datum %d ignored\n", datum); + return false; + } + + act->data[ndx] = (uint8_t) datum; + return true; + } + } + + return ReportIllegal(ctx, ACTION_TYPE_NONE, field); +} + +typedef bool (*actionHandler)(struct xkb_context *ctx, + const struct xkb_mod_set *mods, + union xkb_action *action, + enum action_field field, + const ExprDef *array_ndx, + const ExprDef *value); + +static const actionHandler handleAction[_ACTION_TYPE_NUM_ENTRIES] = { + [ACTION_TYPE_NONE] = HandleNoAction, + [ACTION_TYPE_MOD_SET] = HandleSetLatchLockMods, + [ACTION_TYPE_MOD_LATCH] = HandleSetLatchLockMods, + [ACTION_TYPE_MOD_LOCK] = HandleSetLatchLockMods, + [ACTION_TYPE_GROUP_SET] = HandleSetLatchLockGroup, + [ACTION_TYPE_GROUP_LATCH] = HandleSetLatchLockGroup, + [ACTION_TYPE_GROUP_LOCK] = HandleSetLatchLockGroup, + [ACTION_TYPE_PTR_MOVE] = HandleMovePtr, + [ACTION_TYPE_PTR_BUTTON] = HandlePtrBtn, + [ACTION_TYPE_PTR_LOCK] = HandlePtrBtn, + [ACTION_TYPE_PTR_DEFAULT] = HandleSetPtrDflt, + [ACTION_TYPE_TERMINATE] = HandleNoAction, + [ACTION_TYPE_SWITCH_VT] = HandleSwitchScreen, + [ACTION_TYPE_CTRL_SET] = HandleSetLockControls, + [ACTION_TYPE_CTRL_LOCK] = HandleSetLockControls, + [ACTION_TYPE_PRIVATE] = HandlePrivate, +}; + +/***====================================================================***/ + +bool +HandleActionDef(struct xkb_context *ctx, ActionsInfo *info, + const struct xkb_mod_set *mods, ExprDef *def, + union xkb_action *action) +{ + ExprDef *arg; + const char *str; + enum xkb_action_type handler_type; + + if (def->expr.op != EXPR_ACTION_DECL) { + log_err(ctx, "Expected an action definition, found %s\n", + expr_op_type_to_string(def->expr.op)); + return false; + } + + str = xkb_atom_text(ctx, def->action.name); + if (!stringToAction(str, &handler_type)) { + log_err(ctx, "Unknown action %s\n", str); + return false; + } + + /* + * Get the default values for this action type, as modified by + * statements such as: + * latchMods.clearLocks = True; + */ + *action = info->actions[handler_type]; + + /* + * Now change the action properties as specified for this + * particular instance, e.g. "modifiers" and "clearLocks" in: + * SetMods(modifiers=Alt,clearLocks); + */ + for (arg = def->action.args; arg != NULL; + arg = (ExprDef *) arg->common.next) { + const ExprDef *value; + ExprDef *field, *arrayRtrn; + const char *elemRtrn, *fieldRtrn; + enum action_field fieldNdx; + + if (arg->expr.op == EXPR_ASSIGN) { + field = arg->binary.left; + value = arg->binary.right; + } + else if (arg->expr.op == EXPR_NOT || arg->expr.op == EXPR_INVERT) { + field = arg->unary.child; + value = (const ExprDef *) &constFalse; + } + else { + field = arg; + value = (const ExprDef *) &constTrue; + } + + if (!ExprResolveLhs(ctx, field, &elemRtrn, &fieldRtrn, &arrayRtrn)) + return false; + + if (elemRtrn) { + log_err(ctx, + "Cannot change defaults in an action definition; " + "Ignoring attempt to change %s.%s\n", + elemRtrn, fieldRtrn); + return false; + } + + if (!stringToField(fieldRtrn, &fieldNdx)) { + log_err(ctx, "Unknown field name %s\n", fieldRtrn); + return false; + } + + if (!handleAction[handler_type](ctx, mods, action, fieldNdx, + arrayRtrn, value)) + return false; + } + + return true; +} + +bool +SetActionField(struct xkb_context *ctx, ActionsInfo *info, + struct xkb_mod_set *mods, const char *elem, + const char *field, ExprDef *array_ndx, ExprDef *value) +{ + enum xkb_action_type action; + enum action_field action_field; + + if (!stringToAction(elem, &action)) + return false; + + if (!stringToField(field, &action_field)) { + log_err(ctx, "\"%s\" is not a legal field name\n", field); + return false; + } + + return handleAction[action](ctx, mods, &info->actions[action], + action_field, array_ndx, value); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.h new file mode 100644 index 0000000..1f92e7b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/action.h @@ -0,0 +1,56 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_ACTION_H +#define XKBCOMP_ACTION_H + +/* + * This struct contains the default values which every new action + * (e.g. in an interpret statement) starts off with. It can be + * modified within the files (see calls to SetActionField). + */ +typedef struct { + union xkb_action actions[_ACTION_TYPE_NUM_ENTRIES]; +} ActionsInfo; + +ActionsInfo * +NewActionsInfo(void); + +void +FreeActionsInfo(ActionsInfo *info); + +bool +HandleActionDef(struct xkb_context *ctx, ActionsInfo *info, + const struct xkb_mod_set *mods, ExprDef *def, + union xkb_action *action); + +bool +SetActionField(struct xkb_context *ctx, ActionsInfo *info, + struct xkb_mod_set *mods, const char *elem, + const char *field, ExprDef *array_ndx, ExprDef *value); + + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c new file mode 100644 index 0000000..7fd92a6 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.c @@ -0,0 +1,806 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + * Ran Benita + */ + +#include "xkbcomp-priv.h" +#include "ast-build.h" +#include "include.h" + +ParseCommon * +AppendStmt(ParseCommon *to, ParseCommon *append) +{ + ParseCommon *iter; + + if (!to) + return append; + + for (iter = to; iter->next; iter = iter->next); + + iter->next = append; + return to; +} + +static ExprDef * +ExprCreate(enum expr_op_type op, enum expr_value_type type, size_t size) +{ + ExprDef *expr = malloc(size); + if (!expr) + return NULL; + + expr->common.type = STMT_EXPR; + expr->common.next = NULL; + expr->expr.op = op; + expr->expr.value_type = type; + + return expr; +} + +#define EXPR_CREATE(type_, name_, op_, value_type_) \ + ExprDef *name_ = ExprCreate(op_, value_type_, sizeof(type_)); \ + if (!name_) \ + return NULL; + +ExprDef * +ExprCreateString(xkb_atom_t str) +{ + EXPR_CREATE(ExprString, expr, EXPR_VALUE, EXPR_TYPE_STRING); + expr->string.str = str; + return expr; +} + +ExprDef * +ExprCreateInteger(int ival) +{ + EXPR_CREATE(ExprInteger, expr, EXPR_VALUE, EXPR_TYPE_INT); + expr->integer.ival = ival; + return expr; +} + +ExprDef * +ExprCreateBoolean(bool set) +{ + EXPR_CREATE(ExprBoolean, expr, EXPR_VALUE, EXPR_TYPE_BOOLEAN); + expr->boolean.set = set; + return expr; +} + +ExprDef * +ExprCreateKeyName(xkb_atom_t key_name) +{ + EXPR_CREATE(ExprKeyName, expr, EXPR_VALUE, EXPR_TYPE_KEYNAME); + expr->key_name.key_name = key_name; + return expr; +} + +ExprDef * +ExprCreateIdent(xkb_atom_t ident) +{ + EXPR_CREATE(ExprIdent, expr, EXPR_IDENT, EXPR_TYPE_UNKNOWN); + expr->ident.ident = ident; + return expr; +} + +ExprDef * +ExprCreateUnary(enum expr_op_type op, enum expr_value_type type, + ExprDef *child) +{ + EXPR_CREATE(ExprUnary, expr, op, type); + expr->unary.child = child; + return expr; +} + +ExprDef * +ExprCreateBinary(enum expr_op_type op, ExprDef *left, ExprDef *right) +{ + EXPR_CREATE(ExprBinary, expr, op, EXPR_TYPE_UNKNOWN); + + if (op == EXPR_ASSIGN || left->expr.value_type == EXPR_TYPE_UNKNOWN) + expr->expr.value_type = right->expr.value_type; + else if (left->expr.value_type == right->expr.value_type || + right->expr.value_type == EXPR_TYPE_UNKNOWN) + expr->expr.value_type = left->expr.value_type; + expr->binary.left = left; + expr->binary.right = right; + + return expr; +} + +ExprDef * +ExprCreateFieldRef(xkb_atom_t element, xkb_atom_t field) +{ + EXPR_CREATE(ExprFieldRef, expr, EXPR_FIELD_REF, EXPR_TYPE_UNKNOWN); + expr->field_ref.element = element; + expr->field_ref.field = field; + return expr; +} + +ExprDef * +ExprCreateArrayRef(xkb_atom_t element, xkb_atom_t field, ExprDef *entry) +{ + EXPR_CREATE(ExprArrayRef, expr, EXPR_ARRAY_REF, EXPR_TYPE_UNKNOWN); + expr->array_ref.element = element; + expr->array_ref.field = field; + expr->array_ref.entry = entry; + return expr; +} + +ExprDef * +ExprCreateAction(xkb_atom_t name, ExprDef *args) +{ + EXPR_CREATE(ExprAction, expr, EXPR_ACTION_DECL, EXPR_TYPE_UNKNOWN); + expr->action.name = name; + expr->action.args = args; + return expr; +} + +ExprDef * +ExprCreateKeysymList(xkb_keysym_t sym) +{ + EXPR_CREATE(ExprKeysymList, expr, EXPR_KEYSYM_LIST, EXPR_TYPE_SYMBOLS); + + darray_init(expr->keysym_list.syms); + darray_init(expr->keysym_list.symsMapIndex); + darray_init(expr->keysym_list.symsNumEntries); + + darray_append(expr->keysym_list.syms, sym); + darray_append(expr->keysym_list.symsMapIndex, 0); + darray_append(expr->keysym_list.symsNumEntries, 1); + + return expr; +} + +ExprDef * +ExprCreateMultiKeysymList(ExprDef *expr) +{ + unsigned nLevels = darray_size(expr->keysym_list.symsMapIndex); + + darray_resize(expr->keysym_list.symsMapIndex, 1); + darray_resize(expr->keysym_list.symsNumEntries, 1); + darray_item(expr->keysym_list.symsMapIndex, 0) = 0; + darray_item(expr->keysym_list.symsNumEntries, 0) = nLevels; + + return expr; +} + +ExprDef * +ExprAppendKeysymList(ExprDef *expr, xkb_keysym_t sym) +{ + unsigned nSyms = darray_size(expr->keysym_list.syms); + + darray_append(expr->keysym_list.symsMapIndex, nSyms); + darray_append(expr->keysym_list.symsNumEntries, 1); + darray_append(expr->keysym_list.syms, sym); + + return expr; +} + +ExprDef * +ExprAppendMultiKeysymList(ExprDef *expr, ExprDef *append) +{ + xkb_keysym_t *syms; + unsigned nSyms = darray_size(expr->keysym_list.syms); + unsigned numEntries = darray_size(append->keysym_list.syms); + + darray_append(expr->keysym_list.symsMapIndex, nSyms); + darray_append(expr->keysym_list.symsNumEntries, numEntries); + darray_steal(append->keysym_list.syms, &syms, NULL); + darray_append_items(expr->keysym_list.syms, syms, numEntries); + + FreeStmt((ParseCommon *) &append); + + return expr; +} + +KeycodeDef * +KeycodeCreate(xkb_atom_t name, int64_t value) +{ + KeycodeDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_KEYCODE; + def->common.next = NULL; + def->name = name; + def->value = value; + + return def; +} + +KeyAliasDef * +KeyAliasCreate(xkb_atom_t alias, xkb_atom_t real) +{ + KeyAliasDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_ALIAS; + def->common.next = NULL; + def->alias = alias; + def->real = real; + + return def; +} + +VModDef * +VModCreate(xkb_atom_t name, ExprDef *value) +{ + VModDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_VMOD; + def->common.next = NULL; + def->name = name; + def->value = value; + + return def; +} + +VarDef * +VarCreate(ExprDef *name, ExprDef *value) +{ + VarDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_VAR; + def->common.next = NULL; + def->name = name; + def->value = value; + + return def; +} + +VarDef * +BoolVarCreate(xkb_atom_t ident, bool set) +{ + ExprDef *name, *value; + VarDef *def; + if (!(name = ExprCreateIdent(ident))) { + return NULL; + } + if (!(value = ExprCreateBoolean(set))) { + FreeStmt((ParseCommon *) name); + return NULL; + } + if (!(def = VarCreate(name, value))) { + FreeStmt((ParseCommon *) name); + FreeStmt((ParseCommon *) value); + return NULL; + } + return def; +} + +InterpDef * +InterpCreate(xkb_keysym_t sym, ExprDef *match) +{ + InterpDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_INTERP; + def->common.next = NULL; + def->sym = sym; + def->match = match; + def->def = NULL; + + return def; +} + +KeyTypeDef * +KeyTypeCreate(xkb_atom_t name, VarDef *body) +{ + KeyTypeDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_TYPE; + def->common.next = NULL; + def->merge = MERGE_DEFAULT; + def->name = name; + def->body = body; + + return def; +} + +SymbolsDef * +SymbolsCreate(xkb_atom_t keyName, VarDef *symbols) +{ + SymbolsDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_SYMBOLS; + def->common.next = NULL; + def->merge = MERGE_DEFAULT; + def->keyName = keyName; + def->symbols = symbols; + + return def; +} + +GroupCompatDef * +GroupCompatCreate(unsigned group, ExprDef *val) +{ + GroupCompatDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_GROUP_COMPAT; + def->common.next = NULL; + def->merge = MERGE_DEFAULT; + def->group = group; + def->def = val; + + return def; +} + +ModMapDef * +ModMapCreate(xkb_atom_t modifier, ExprDef *keys) +{ + ModMapDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_MODMAP; + def->common.next = NULL; + def->merge = MERGE_DEFAULT; + def->modifier = modifier; + def->keys = keys; + + return def; +} + +LedMapDef * +LedMapCreate(xkb_atom_t name, VarDef *body) +{ + LedMapDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_LED_MAP; + def->common.next = NULL; + def->merge = MERGE_DEFAULT; + def->name = name; + def->body = body; + + return def; +} + +LedNameDef * +LedNameCreate(unsigned ndx, ExprDef *name, bool virtual) +{ + LedNameDef *def = malloc(sizeof(*def)); + if (!def) + return NULL; + + def->common.type = STMT_LED_NAME; + def->common.next = NULL; + def->merge = MERGE_DEFAULT; + def->ndx = ndx; + def->name = name; + def->virtual = virtual; + + return def; +} + +static void +FreeInclude(IncludeStmt *incl); + +IncludeStmt * +IncludeCreate(struct xkb_context *ctx, char *str, enum merge_mode merge) +{ + IncludeStmt *incl, *first; + char *file, *map, *stmt, *tmp, *extra_data; + char nextop; + + incl = first = NULL; + file = map = NULL; + tmp = str; + stmt = strdup_safe(str); + while (tmp && *tmp) + { + if (!ParseIncludeMap(&tmp, &file, &map, &nextop, &extra_data)) + goto err; + + /* + * Given an RMLVO (here layout) like 'us,,fr', the rules parser + * will give out something like 'pc+us+:2+fr:3+inet(evdev)'. + * We should just skip the ':2' in this case and leave it to the + * appropriate section to deal with the empty group. + */ + if (isempty(file)) { + free(file); + free(map); + free(extra_data); + continue; + } + + if (first == NULL) { + first = incl = malloc(sizeof(*first)); + } else { + incl->next_incl = malloc(sizeof(*first)); + incl = incl->next_incl; + } + + if (!incl) { + log_wsgo(ctx, + "Allocation failure in IncludeCreate; " + "Using only part of the include\n"); + break; + } + + incl->common.type = STMT_INCLUDE; + incl->common.next = NULL; + incl->merge = merge; + incl->stmt = NULL; + incl->file = file; + incl->map = map; + incl->modifier = extra_data; + incl->next_incl = NULL; + + if (nextop == '|') + merge = MERGE_AUGMENT; + else + merge = MERGE_OVERRIDE; + } + + if (first) + first->stmt = stmt; + else + free(stmt); + + return first; + +err: + log_err(ctx, "Illegal include statement \"%s\"; Ignored\n", stmt); + FreeInclude(first); + free(stmt); + return NULL; +} + +XkbFile * +XkbFileCreate(enum xkb_file_type type, char *name, ParseCommon *defs, + enum xkb_map_flags flags) +{ + XkbFile *file; + + file = calloc(1, sizeof(*file)); + if (!file) + return NULL; + + XkbEscapeMapName(name); + file->file_type = type; + file->topName = strdup_safe(name); + file->name = name; + file->defs = defs; + file->flags = flags; + + return file; +} + +XkbFile * +XkbFileFromComponents(struct xkb_context *ctx, + const struct xkb_component_names *kkctgs) +{ + char *const components[] = { + kkctgs->keycodes, kkctgs->types, + kkctgs->compat, kkctgs->symbols, + }; + enum xkb_file_type type; + IncludeStmt *include = NULL; + XkbFile *file = NULL; + ParseCommon *defs = NULL; + + for (type = FIRST_KEYMAP_FILE_TYPE; type <= LAST_KEYMAP_FILE_TYPE; type++) { + include = IncludeCreate(ctx, components[type], MERGE_DEFAULT); + if (!include) + goto err; + + file = XkbFileCreate(type, NULL, (ParseCommon *) include, 0); + if (!file) { + FreeInclude(include); + goto err; + } + + defs = AppendStmt(defs, &file->common); + } + + file = XkbFileCreate(FILE_TYPE_KEYMAP, NULL, defs, 0); + if (!file) + goto err; + + return file; + +err: + FreeXkbFile((XkbFile *) defs); + return NULL; +} + +static void +FreeExpr(ExprDef *expr) +{ + if (!expr) + return; + + switch (expr->expr.op) { + case EXPR_ACTION_LIST: + case EXPR_NEGATE: + case EXPR_UNARY_PLUS: + case EXPR_NOT: + case EXPR_INVERT: + FreeStmt((ParseCommon *) expr->unary.child); + break; + + case EXPR_DIVIDE: + case EXPR_ADD: + case EXPR_SUBTRACT: + case EXPR_MULTIPLY: + case EXPR_ASSIGN: + FreeStmt((ParseCommon *) expr->binary.left); + FreeStmt((ParseCommon *) expr->binary.right); + break; + + case EXPR_ACTION_DECL: + FreeStmt((ParseCommon *) expr->action.args); + break; + + case EXPR_ARRAY_REF: + FreeStmt((ParseCommon *) expr->array_ref.entry); + break; + + case EXPR_KEYSYM_LIST: + darray_free(expr->keysym_list.syms); + darray_free(expr->keysym_list.symsMapIndex); + darray_free(expr->keysym_list.symsNumEntries); + break; + + default: + break; + } +} + +static void +FreeInclude(IncludeStmt *incl) +{ + IncludeStmt *next; + + while (incl) + { + next = incl->next_incl; + + free(incl->file); + free(incl->map); + free(incl->modifier); + free(incl->stmt); + + free(incl); + incl = next; + } +} + +void +FreeStmt(ParseCommon *stmt) +{ + ParseCommon *next; + + while (stmt) + { + next = stmt->next; + + switch (stmt->type) { + case STMT_INCLUDE: + FreeInclude((IncludeStmt *) stmt); + /* stmt is already free'd here. */ + stmt = NULL; + break; + case STMT_EXPR: + FreeExpr((ExprDef *) stmt); + break; + case STMT_VAR: + FreeStmt((ParseCommon *) ((VarDef *) stmt)->name); + FreeStmt((ParseCommon *) ((VarDef *) stmt)->value); + break; + case STMT_TYPE: + FreeStmt((ParseCommon *) ((KeyTypeDef *) stmt)->body); + break; + case STMT_INTERP: + FreeStmt((ParseCommon *) ((InterpDef *) stmt)->match); + FreeStmt((ParseCommon *) ((InterpDef *) stmt)->def); + break; + case STMT_VMOD: + FreeStmt((ParseCommon *) ((VModDef *) stmt)->value); + break; + case STMT_SYMBOLS: + FreeStmt((ParseCommon *) ((SymbolsDef *) stmt)->symbols); + break; + case STMT_MODMAP: + FreeStmt((ParseCommon *) ((ModMapDef *) stmt)->keys); + break; + case STMT_GROUP_COMPAT: + FreeStmt((ParseCommon *) ((GroupCompatDef *) stmt)->def); + break; + case STMT_LED_MAP: + FreeStmt((ParseCommon *) ((LedMapDef *) stmt)->body); + break; + case STMT_LED_NAME: + FreeStmt((ParseCommon *) ((LedNameDef *) stmt)->name); + break; + default: + break; + } + + free(stmt); + stmt = next; + } +} + +void +FreeXkbFile(XkbFile *file) +{ + XkbFile *next; + + while (file) + { + next = (XkbFile *) file->common.next; + + switch (file->file_type) { + case FILE_TYPE_KEYMAP: + FreeXkbFile((XkbFile *) file->defs); + break; + + case FILE_TYPE_TYPES: + case FILE_TYPE_COMPAT: + case FILE_TYPE_SYMBOLS: + case FILE_TYPE_KEYCODES: + case FILE_TYPE_GEOMETRY: + FreeStmt(file->defs); + break; + + default: + break; + } + + free(file->name); + free(file->topName); + free(file); + file = next; + } +} + +static const char *xkb_file_type_strings[_FILE_TYPE_NUM_ENTRIES] = { + [FILE_TYPE_KEYCODES] = "xkb_keycodes", + [FILE_TYPE_TYPES] = "xkb_types", + [FILE_TYPE_COMPAT] = "xkb_compatibility", + [FILE_TYPE_SYMBOLS] = "xkb_symbols", + [FILE_TYPE_GEOMETRY] = "xkb_geometry", + [FILE_TYPE_KEYMAP] = "xkb_keymap", + [FILE_TYPE_RULES] = "rules", +}; + +const char * +xkb_file_type_to_string(enum xkb_file_type type) +{ + if (type > _FILE_TYPE_NUM_ENTRIES) + return "unknown"; + return xkb_file_type_strings[type]; +} + +static const char *stmt_type_strings[_STMT_NUM_VALUES] = { + [STMT_UNKNOWN] = "unknown statement", + [STMT_INCLUDE] = "include statement", + [STMT_KEYCODE] = "key name definition", + [STMT_ALIAS] = "key alias definition", + [STMT_EXPR] = "expression", + [STMT_VAR] = "variable definition", + [STMT_TYPE] = "key type definition", + [STMT_INTERP] = "symbol interpretation definition", + [STMT_VMOD] = "virtual modifiers definition", + [STMT_SYMBOLS] = "key symbols definition", + [STMT_MODMAP] = "modifier map declaration", + [STMT_GROUP_COMPAT] = "group declaration", + [STMT_LED_MAP] = "indicator map declaration", + [STMT_LED_NAME] = "indicator name declaration", +}; + +const char * +stmt_type_to_string(enum stmt_type type) +{ + if (type >= _STMT_NUM_VALUES) + return NULL; + return stmt_type_strings[type]; +} + +static const char *expr_op_type_strings[_EXPR_NUM_VALUES] = { + [EXPR_VALUE] = "literal", + [EXPR_IDENT] = "identifier", + [EXPR_ACTION_DECL] = "action declaration", + [EXPR_FIELD_REF] = "field reference", + [EXPR_ARRAY_REF] = "array reference", + [EXPR_KEYSYM_LIST] = "list of keysyms", + [EXPR_ACTION_LIST] = "list of actions", + [EXPR_ADD] = "addition", + [EXPR_SUBTRACT] = "subtraction", + [EXPR_MULTIPLY] = "multiplication", + [EXPR_DIVIDE] = "division", + [EXPR_ASSIGN] = "assignment", + [EXPR_NOT] = "logical negation", + [EXPR_NEGATE] = "arithmetic negation", + [EXPR_INVERT] = "bitwise inversion", + [EXPR_UNARY_PLUS] = "unary plus", +}; + +const char * +expr_op_type_to_string(enum expr_op_type type) +{ + if (type >= _EXPR_NUM_VALUES) + return NULL; + return expr_op_type_strings[type]; +} + +static const char *expr_value_type_strings[_EXPR_TYPE_NUM_VALUES] = { + [EXPR_TYPE_UNKNOWN] = "unknown", + [EXPR_TYPE_BOOLEAN] = "boolean", + [EXPR_TYPE_INT] = "int", + [EXPR_TYPE_STRING] = "string", + [EXPR_TYPE_ACTION] = "action", + [EXPR_TYPE_KEYNAME] = "keyname", + [EXPR_TYPE_SYMBOLS] = "symbols", +}; + +const char * +expr_value_type_to_string(enum expr_value_type type) +{ + if (type >= _EXPR_TYPE_NUM_VALUES) + return NULL; + return expr_value_type_strings[type]; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.h new file mode 100644 index 0000000..b57e4cd --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast-build.h @@ -0,0 +1,122 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_AST_BUILD_H +#define XKBCOMP_AST_BUILD_H + +ParseCommon * +AppendStmt(ParseCommon *to, ParseCommon *append); + +ExprDef * +ExprCreateString(xkb_atom_t str); + +ExprDef * +ExprCreateInteger(int ival); + +ExprDef * +ExprCreateBoolean(bool set); + +ExprDef * +ExprCreateKeyName(xkb_atom_t key_name); + +ExprDef * +ExprCreateIdent(xkb_atom_t ident); + +ExprDef * +ExprCreateUnary(enum expr_op_type op, enum expr_value_type type, + ExprDef *child); + +ExprDef * +ExprCreateBinary(enum expr_op_type op, ExprDef *left, ExprDef *right); + +ExprDef * +ExprCreateFieldRef(xkb_atom_t element, xkb_atom_t field); + +ExprDef * +ExprCreateArrayRef(xkb_atom_t element, xkb_atom_t field, ExprDef *entry); + +ExprDef * +ExprCreateAction(xkb_atom_t name, ExprDef *args); + +ExprDef * +ExprCreateMultiKeysymList(ExprDef *list); + +ExprDef * +ExprCreateKeysymList(xkb_keysym_t sym); + +ExprDef * +ExprAppendMultiKeysymList(ExprDef *list, ExprDef *append); + +ExprDef * +ExprAppendKeysymList(ExprDef *list, xkb_keysym_t sym); + +KeycodeDef * +KeycodeCreate(xkb_atom_t name, int64_t value); + +KeyAliasDef * +KeyAliasCreate(xkb_atom_t alias, xkb_atom_t real); + +VModDef * +VModCreate(xkb_atom_t name, ExprDef *value); + +VarDef * +VarCreate(ExprDef *name, ExprDef *value); + +VarDef * +BoolVarCreate(xkb_atom_t ident, bool set); + +InterpDef * +InterpCreate(xkb_keysym_t sym, ExprDef *match); + +KeyTypeDef * +KeyTypeCreate(xkb_atom_t name, VarDef *body); + +SymbolsDef * +SymbolsCreate(xkb_atom_t keyName, VarDef *symbols); + +GroupCompatDef * +GroupCompatCreate(unsigned group, ExprDef *def); + +ModMapDef * +ModMapCreate(xkb_atom_t modifier, ExprDef *keys); + +LedMapDef * +LedMapCreate(xkb_atom_t name, VarDef *body); + +LedNameDef * +LedNameCreate(unsigned ndx, ExprDef *name, bool virtual); + +IncludeStmt * +IncludeCreate(struct xkb_context *ctx, char *str, enum merge_mode merge); + +XkbFile * +XkbFileCreate(enum xkb_file_type type, char *name, ParseCommon *defs, + enum xkb_map_flags flags); + +void +FreeStmt(ParseCommon *stmt); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast.h new file mode 100644 index 0000000..26cbb3a --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/ast.h @@ -0,0 +1,347 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef XKBCOMP_AST_H +#define XKBCOMP_AST_H + +enum xkb_file_type { + /* Component files, by order of compilation. */ + FILE_TYPE_KEYCODES = 0, + FILE_TYPE_TYPES = 1, + FILE_TYPE_COMPAT = 2, + FILE_TYPE_SYMBOLS = 3, + /* Geometry is not compiled any more. */ + FILE_TYPE_GEOMETRY = 4, + + /* A top level file which includes the above files. */ + FILE_TYPE_KEYMAP, + +/* File types which must be found in a keymap file. */ +#define FIRST_KEYMAP_FILE_TYPE FILE_TYPE_KEYCODES +#define LAST_KEYMAP_FILE_TYPE FILE_TYPE_SYMBOLS + + /* This one doesn't mix with the others, but useful here as well. */ + FILE_TYPE_RULES, + + _FILE_TYPE_NUM_ENTRIES +}; + +enum stmt_type { + STMT_UNKNOWN = 0, + STMT_INCLUDE, + STMT_KEYCODE, + STMT_ALIAS, + STMT_EXPR, + STMT_VAR, + STMT_TYPE, + STMT_INTERP, + STMT_VMOD, + STMT_SYMBOLS, + STMT_MODMAP, + STMT_GROUP_COMPAT, + STMT_LED_MAP, + STMT_LED_NAME, + + _STMT_NUM_VALUES +}; + +enum expr_value_type { + EXPR_TYPE_UNKNOWN = 0, + EXPR_TYPE_BOOLEAN, + EXPR_TYPE_INT, + EXPR_TYPE_STRING, + EXPR_TYPE_ACTION, + EXPR_TYPE_KEYNAME, + EXPR_TYPE_SYMBOLS, + + _EXPR_TYPE_NUM_VALUES +}; + +enum expr_op_type { + EXPR_VALUE, + EXPR_IDENT, + EXPR_ACTION_DECL, + EXPR_FIELD_REF, + EXPR_ARRAY_REF, + EXPR_KEYSYM_LIST, + EXPR_ACTION_LIST, + EXPR_ADD, + EXPR_SUBTRACT, + EXPR_MULTIPLY, + EXPR_DIVIDE, + EXPR_ASSIGN, + EXPR_NOT, + EXPR_NEGATE, + EXPR_INVERT, + EXPR_UNARY_PLUS, + + _EXPR_NUM_VALUES +}; + +enum merge_mode { + MERGE_DEFAULT, + MERGE_AUGMENT, + MERGE_OVERRIDE, + MERGE_REPLACE, +}; + +const char * +xkb_file_type_to_string(enum xkb_file_type type); + +const char * +stmt_type_to_string(enum stmt_type type); + +const char * +expr_op_type_to_string(enum expr_op_type type); + +const char * +expr_value_type_to_string(enum expr_value_type type); + +typedef struct _ParseCommon { + struct _ParseCommon *next; + enum stmt_type type; +} ParseCommon; + +typedef struct _IncludeStmt { + ParseCommon common; + enum merge_mode merge; + char *stmt; + char *file; + char *map; + char *modifier; + struct _IncludeStmt *next_incl; +} IncludeStmt; + +typedef struct { + ParseCommon common; + enum expr_op_type op; + enum expr_value_type value_type; +} ExprCommon; + +typedef union ExprDef ExprDef; + +typedef struct { + ExprCommon expr; + xkb_atom_t ident; +} ExprIdent; + +typedef struct { + ExprCommon expr; + xkb_atom_t str; +} ExprString; + +typedef struct { + ExprCommon expr; + bool set; +} ExprBoolean; + +typedef struct { + ExprCommon expr; + int ival; +} ExprInteger; + +typedef struct { + ExprCommon expr; + xkb_atom_t key_name; +} ExprKeyName; + +typedef struct { + ExprCommon expr; + ExprDef *left; + ExprDef *right; +} ExprBinary; + +typedef struct { + ExprCommon expr; + ExprDef *child; +} ExprUnary; + +typedef struct { + ExprCommon expr; + xkb_atom_t element; + xkb_atom_t field; +} ExprFieldRef; + +typedef struct { + ExprCommon expr; + xkb_atom_t element; + xkb_atom_t field; + ExprDef *entry; +} ExprArrayRef; + +typedef struct { + ExprCommon expr; + xkb_atom_t name; + ExprDef *args; +} ExprAction; + +typedef struct { + ExprCommon expr; + darray(xkb_keysym_t) syms; + darray(unsigned int) symsMapIndex; + darray(unsigned int) symsNumEntries; +} ExprKeysymList; + +union ExprDef { + ParseCommon common; + /* Maybe someday we can use C11 anonymous struct for ExprCommon here. */ + ExprCommon expr; + ExprIdent ident; + ExprString string; + ExprBoolean boolean; + ExprInteger integer; + ExprKeyName key_name; + ExprBinary binary; + ExprUnary unary; + ExprFieldRef field_ref; + ExprArrayRef array_ref; + ExprAction action; + ExprKeysymList keysym_list; +}; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + ExprDef *name; + ExprDef *value; +} VarDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t name; + ExprDef *value; +} VModDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t name; + int64_t value; +} KeycodeDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t alias; + xkb_atom_t real; +} KeyAliasDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t name; + VarDef *body; +} KeyTypeDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t keyName; + VarDef *symbols; +} SymbolsDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t modifier; + ExprDef *keys; +} ModMapDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + unsigned group; + ExprDef *def; +} GroupCompatDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_keysym_t sym; + ExprDef *match; + VarDef *def; +} InterpDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + unsigned ndx; + ExprDef *name; + bool virtual; +} LedNameDef; + +typedef struct { + ParseCommon common; + enum merge_mode merge; + xkb_atom_t name; + VarDef *body; +} LedMapDef; + +enum xkb_map_flags { + MAP_IS_DEFAULT = (1 << 0), + MAP_IS_PARTIAL = (1 << 1), + MAP_IS_HIDDEN = (1 << 2), + MAP_HAS_ALPHANUMERIC = (1 << 3), + MAP_HAS_MODIFIER = (1 << 4), + MAP_HAS_KEYPAD = (1 << 5), + MAP_HAS_FN = (1 << 6), + MAP_IS_ALTGR = (1 << 7), +}; + +typedef struct { + ParseCommon common; + enum xkb_file_type file_type; + char *topName; + char *name; + ParseCommon *defs; + enum xkb_map_flags flags; +} XkbFile; + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c new file mode 100644 index 0000000..ff83645 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/compat.c @@ -0,0 +1,932 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "expr.h" +#include "action.h" +#include "vmod.h" +#include "include.h" + +enum si_field { + SI_FIELD_VIRTUAL_MOD = (1 << 0), + SI_FIELD_ACTION = (1 << 1), + SI_FIELD_AUTO_REPEAT = (1 << 2), + SI_FIELD_LEVEL_ONE_ONLY = (1 << 3), +}; + +typedef struct { + enum si_field defined; + enum merge_mode merge; + + struct xkb_sym_interpret interp; +} SymInterpInfo; + +enum led_field { + LED_FIELD_MODS = (1 << 0), + LED_FIELD_GROUPS = (1 << 1), + LED_FIELD_CTRLS = (1 << 2), +}; + +typedef struct { + enum led_field defined; + enum merge_mode merge; + + struct xkb_led led; +} LedInfo; + +typedef struct { + char *name; + int errorCount; + SymInterpInfo default_interp; + darray(SymInterpInfo) interps; + LedInfo default_led; + LedInfo leds[XKB_MAX_LEDS]; + unsigned int num_leds; + ActionsInfo *actions; + struct xkb_mod_set mods; + + struct xkb_context *ctx; +} CompatInfo; + +static const char * +siText(SymInterpInfo *si, CompatInfo *info) +{ + char *buf = xkb_context_get_buffer(info->ctx, 128); + + if (si == &info->default_interp) + return "default"; + + snprintf(buf, 128, "%s+%s(%s)", + KeysymText(info->ctx, si->interp.sym), + SIMatchText(si->interp.match), + ModMaskText(info->ctx, &info->mods, si->interp.mods)); + + return buf; +} + +static inline bool +ReportSINotArray(CompatInfo *info, SymInterpInfo *si, const char *field) +{ + return ReportNotArray(info->ctx, "symbol interpretation", field, + siText(si, info)); +} + +static inline bool +ReportSIBadType(CompatInfo *info, SymInterpInfo *si, const char *field, + const char *wanted) +{ + return ReportBadType(info->ctx, "symbol interpretation", field, + siText(si, info), wanted); +} + +static inline bool +ReportLedBadType(CompatInfo *info, LedInfo *ledi, const char *field, + const char *wanted) +{ + return ReportBadType(info->ctx, "indicator map", field, + xkb_atom_text(info->ctx, ledi->led.name), + wanted); +} + +static inline bool +ReportLedNotArray(CompatInfo *info, LedInfo *ledi, const char *field) +{ + return ReportNotArray(info->ctx, "indicator map", field, + xkb_atom_text(info->ctx, ledi->led.name)); +} + +static void +InitCompatInfo(CompatInfo *info, struct xkb_context *ctx, + ActionsInfo *actions, const struct xkb_mod_set *mods) +{ + memset(info, 0, sizeof(*info)); + info->ctx = ctx; + info->actions = actions; + info->mods = *mods; + info->default_interp.merge = MERGE_OVERRIDE; + info->default_interp.interp.virtual_mod = XKB_MOD_INVALID; + info->default_led.merge = MERGE_OVERRIDE; +} + +static void +ClearCompatInfo(CompatInfo *info) +{ + free(info->name); + darray_free(info->interps); +} + +static SymInterpInfo * +FindMatchingInterp(CompatInfo *info, SymInterpInfo *new) +{ + SymInterpInfo *old; + + darray_foreach(old, info->interps) + if (old->interp.sym == new->interp.sym && + old->interp.mods == new->interp.mods && + old->interp.match == new->interp.match) + return old; + + return NULL; +} + +static bool +UseNewInterpField(enum si_field field, SymInterpInfo *old, SymInterpInfo *new, + bool report, enum si_field *collide) +{ + if (!(old->defined & field)) + return true; + + if (new->defined & field) { + if (report) + *collide |= field; + + if (new->merge != MERGE_AUGMENT) + return true; + } + + return false; +} + +static bool +AddInterp(CompatInfo *info, SymInterpInfo *new, bool same_file) +{ + SymInterpInfo *old = FindMatchingInterp(info, new); + if (old) { + const int verbosity = xkb_context_get_log_verbosity(info->ctx); + const bool report = (same_file && verbosity > 0) || verbosity > 9; + enum si_field collide = 0; + + if (new->merge == MERGE_REPLACE) { + if (report) + log_warn(info->ctx, + "Multiple definitions for \"%s\"; " + "Earlier interpretation ignored\n", + siText(new, info)); + *old = *new; + return true; + } + + if (UseNewInterpField(SI_FIELD_VIRTUAL_MOD, old, new, report, + &collide)) { + old->interp.virtual_mod = new->interp.virtual_mod; + old->defined |= SI_FIELD_VIRTUAL_MOD; + } + if (UseNewInterpField(SI_FIELD_ACTION, old, new, report, + &collide)) { + old->interp.action = new->interp.action; + old->defined |= SI_FIELD_ACTION; + } + if (UseNewInterpField(SI_FIELD_AUTO_REPEAT, old, new, report, + &collide)) { + old->interp.repeat = new->interp.repeat; + old->defined |= SI_FIELD_AUTO_REPEAT; + } + if (UseNewInterpField(SI_FIELD_LEVEL_ONE_ONLY, old, new, report, + &collide)) { + old->interp.level_one_only = new->interp.level_one_only; + old->defined |= SI_FIELD_LEVEL_ONE_ONLY; + } + + if (collide) { + log_warn(info->ctx, + "Multiple interpretations of \"%s\"; " + "Using %s definition for duplicate fields\n", + siText(new, info), + (new->merge != MERGE_AUGMENT ? "last" : "first")); + } + + return true; + } + + darray_append(info->interps, *new); + return true; +} + +/***====================================================================***/ + +static bool +ResolveStateAndPredicate(ExprDef *expr, enum xkb_match_operation *pred_rtrn, + xkb_mod_mask_t *mods_rtrn, CompatInfo *info) +{ + if (expr == NULL) { + *pred_rtrn = MATCH_ANY_OR_NONE; + *mods_rtrn = MOD_REAL_MASK_ALL; + return true; + } + + *pred_rtrn = MATCH_EXACTLY; + if (expr->expr.op == EXPR_ACTION_DECL) { + const char *pred_txt = xkb_atom_text(info->ctx, expr->action.name); + if (!LookupString(symInterpretMatchMaskNames, pred_txt, pred_rtrn)) { + log_err(info->ctx, + "Illegal modifier predicate \"%s\"; Ignored\n", pred_txt); + return false; + } + expr = expr->action.args; + } + else if (expr->expr.op == EXPR_IDENT) { + const char *pred_txt = xkb_atom_text(info->ctx, expr->ident.ident); + if (pred_txt && istreq(pred_txt, "any")) { + *pred_rtrn = MATCH_ANY; + *mods_rtrn = MOD_REAL_MASK_ALL; + return true; + } + } + + return ExprResolveModMask(info->ctx, expr, MOD_REAL, &info->mods, + mods_rtrn); +} + +/***====================================================================***/ + +static bool +UseNewLEDField(enum led_field field, LedInfo *old, LedInfo *new, + bool report, enum led_field *collide) +{ + if (!(old->defined & field)) + return true; + + if (new->defined & field) { + if (report) + *collide |= field; + + if (new->merge != MERGE_AUGMENT) + return true; + } + + return false; +} + +static bool +AddLedMap(CompatInfo *info, LedInfo *new, bool same_file) +{ + enum led_field collide; + const int verbosity = xkb_context_get_log_verbosity(info->ctx); + const bool report = (same_file && verbosity > 0) || verbosity > 9; + + for (xkb_led_index_t i = 0; i < info->num_leds; i++) { + LedInfo *old = &info->leds[i]; + + if (old->led.name != new->led.name) + continue; + + if (old->led.mods.mods == new->led.mods.mods && + old->led.groups == new->led.groups && + old->led.ctrls == new->led.ctrls && + old->led.which_mods == new->led.which_mods && + old->led.which_groups == new->led.which_groups) { + old->defined |= new->defined; + return true; + } + + if (new->merge == MERGE_REPLACE) { + if (report) + log_warn(info->ctx, + "Map for indicator %s redefined; " + "Earlier definition ignored\n", + xkb_atom_text(info->ctx, old->led.name)); + *old = *new; + return true; + } + + collide = 0; + if (UseNewLEDField(LED_FIELD_MODS, old, new, report, &collide)) { + old->led.which_mods = new->led.which_mods; + old->led.mods = new->led.mods; + old->defined |= LED_FIELD_MODS; + } + if (UseNewLEDField(LED_FIELD_GROUPS, old, new, report, &collide)) { + old->led.which_groups = new->led.which_groups; + old->led.groups = new->led.groups; + old->defined |= LED_FIELD_GROUPS; + } + if (UseNewLEDField(LED_FIELD_CTRLS, old, new, report, &collide)) { + old->led.ctrls = new->led.ctrls; + old->defined |= LED_FIELD_CTRLS; + } + + if (collide) { + log_warn(info->ctx, + "Map for indicator %s redefined; " + "Using %s definition for duplicate fields\n", + xkb_atom_text(info->ctx, old->led.name), + (new->merge == MERGE_AUGMENT ? "first" : "last")); + } + + return true; + } + + if (info->num_leds >= XKB_MAX_LEDS) { + log_err(info->ctx, + "Too many LEDs defined (maximum %d)\n", + XKB_MAX_LEDS); + return false; + } + info->leds[info->num_leds++] = *new; + return true; +} + +static void +MergeIncludedCompatMaps(CompatInfo *into, CompatInfo *from, + enum merge_mode merge) +{ + SymInterpInfo *si; + + if (from->errorCount > 0) { + into->errorCount += from->errorCount; + return; + } + + into->mods = from->mods; + + if (into->name == NULL) { + into->name = from->name; + from->name = NULL; + } + + if (darray_empty(into->interps)) { + into->interps = from->interps; + darray_init(from->interps); + } + else { + darray_foreach(si, from->interps) { + si->merge = (merge == MERGE_DEFAULT ? si->merge : merge); + if (!AddInterp(into, si, false)) + into->errorCount++; + } + } + + if (into->num_leds == 0) { + memcpy(into->leds, from->leds, sizeof(*from->leds) * from->num_leds); + into->num_leds = from->num_leds; + from->num_leds = 0; + } + else { + for (xkb_led_index_t i = 0; i < from->num_leds; i++) { + LedInfo *ledi = &from->leds[i]; + ledi->merge = (merge == MERGE_DEFAULT ? ledi->merge : merge); + if (!AddLedMap(into, ledi, false)) + into->errorCount++; + } + } +} + +static void +HandleCompatMapFile(CompatInfo *info, XkbFile *file, enum merge_mode merge); + +static bool +HandleIncludeCompatMap(CompatInfo *info, IncludeStmt *include) +{ + CompatInfo included; + + InitCompatInfo(&included, info->ctx, info->actions, &info->mods); + included.name = include->stmt; + include->stmt = NULL; + + for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) { + CompatInfo next_incl; + XkbFile *file; + + file = ProcessIncludeFile(info->ctx, stmt, FILE_TYPE_COMPAT); + if (!file) { + info->errorCount += 10; + ClearCompatInfo(&included); + return false; + } + + InitCompatInfo(&next_incl, info->ctx, info->actions, &included.mods); + next_incl.default_interp = info->default_interp; + next_incl.default_interp.merge = stmt->merge; + next_incl.default_led = info->default_led; + next_incl.default_led.merge = stmt->merge; + + HandleCompatMapFile(&next_incl, file, MERGE_OVERRIDE); + + MergeIncludedCompatMaps(&included, &next_incl, stmt->merge); + + ClearCompatInfo(&next_incl); + FreeXkbFile(file); + } + + MergeIncludedCompatMaps(info, &included, include->merge); + ClearCompatInfo(&included); + + return (info->errorCount == 0); +} + +static bool +SetInterpField(CompatInfo *info, SymInterpInfo *si, const char *field, + ExprDef *arrayNdx, ExprDef *value) +{ + xkb_mod_index_t ndx; + + if (istreq(field, "action")) { + if (arrayNdx) + return ReportSINotArray(info, si, field); + + if (!HandleActionDef(info->ctx, info->actions, &info->mods, + value, &si->interp.action)) + return false; + + si->defined |= SI_FIELD_ACTION; + } + else if (istreq(field, "virtualmodifier") || + istreq(field, "virtualmod")) { + if (arrayNdx) + return ReportSINotArray(info, si, field); + + if (!ExprResolveMod(info->ctx, value, MOD_VIRT, &info->mods, &ndx)) + return ReportSIBadType(info, si, field, "virtual modifier"); + + si->interp.virtual_mod = ndx; + si->defined |= SI_FIELD_VIRTUAL_MOD; + } + else if (istreq(field, "repeat")) { + bool set; + + if (arrayNdx) + return ReportSINotArray(info, si, field); + + if (!ExprResolveBoolean(info->ctx, value, &set)) + return ReportSIBadType(info, si, field, "boolean"); + + si->interp.repeat = set; + + si->defined |= SI_FIELD_AUTO_REPEAT; + } + else if (istreq(field, "locking")) { + log_dbg(info->ctx, + "The \"locking\" field in symbol interpretation is unsupported; " + "Ignored\n"); + } + else if (istreq(field, "usemodmap") || + istreq(field, "usemodmapmods")) { + unsigned int val; + + if (arrayNdx) + return ReportSINotArray(info, si, field); + + if (!ExprResolveEnum(info->ctx, value, &val, useModMapValueNames)) + return ReportSIBadType(info, si, field, "level specification"); + + si->interp.level_one_only = val; + si->defined |= SI_FIELD_LEVEL_ONE_ONLY; + } + else { + return ReportBadField(info->ctx, "symbol interpretation", field, + siText(si, info)); + } + + return true; +} + +static bool +SetLedMapField(CompatInfo *info, LedInfo *ledi, const char *field, + ExprDef *arrayNdx, ExprDef *value) +{ + bool ok = true; + + if (istreq(field, "modifiers") || istreq(field, "mods")) { + if (arrayNdx) + return ReportLedNotArray(info, ledi, field); + + if (!ExprResolveModMask(info->ctx, value, MOD_BOTH, + &info->mods, &ledi->led.mods.mods)) + return ReportLedBadType(info, ledi, field, "modifier mask"); + + ledi->defined |= LED_FIELD_MODS; + } + else if (istreq(field, "groups")) { + unsigned int mask; + + if (arrayNdx) + return ReportLedNotArray(info, ledi, field); + + if (!ExprResolveMask(info->ctx, value, &mask, groupMaskNames)) + return ReportLedBadType(info, ledi, field, "group mask"); + + ledi->led.groups = mask; + ledi->defined |= LED_FIELD_GROUPS; + } + else if (istreq(field, "controls") || istreq(field, "ctrls")) { + unsigned int mask; + + if (arrayNdx) + return ReportLedNotArray(info, ledi, field); + + if (!ExprResolveMask(info->ctx, value, &mask, ctrlMaskNames)) + return ReportLedBadType(info, ledi, field, "controls mask"); + + ledi->led.ctrls = mask; + ledi->defined |= LED_FIELD_CTRLS; + } + else if (istreq(field, "allowexplicit")) { + log_dbg(info->ctx, + "The \"allowExplicit\" field in indicator statements is unsupported; " + "Ignored\n"); + } + else if (istreq(field, "whichmodstate") || + istreq(field, "whichmodifierstate")) { + unsigned int mask; + + if (arrayNdx) + return ReportLedNotArray(info, ledi, field); + + if (!ExprResolveMask(info->ctx, value, &mask, + modComponentMaskNames)) + return ReportLedBadType(info, ledi, field, + "mask of modifier state components"); + + ledi->led.which_mods = mask; + } + else if (istreq(field, "whichgroupstate")) { + unsigned mask; + + if (arrayNdx) + return ReportLedNotArray(info, ledi, field); + + if (!ExprResolveMask(info->ctx, value, &mask, + groupComponentMaskNames)) + return ReportLedBadType(info, ledi, field, + "mask of group state components"); + + ledi->led.which_groups = mask; + } + else if (istreq(field, "driveskbd") || + istreq(field, "driveskeyboard") || + istreq(field, "leddriveskbd") || + istreq(field, "leddriveskeyboard") || + istreq(field, "indicatordriveskbd") || + istreq(field, "indicatordriveskeyboard")) { + log_dbg(info->ctx, + "The \"%s\" field in indicator statements is unsupported; " + "Ignored\n", field); + } + else if (istreq(field, "index")) { + /* Users should see this, it might cause unexpected behavior. */ + log_err(info->ctx, + "The \"index\" field in indicator statements is unsupported; " + "Ignored\n"); + } + else { + log_err(info->ctx, + "Unknown field %s in map for %s indicator; " + "Definition ignored\n", + field, xkb_atom_text(info->ctx, ledi->led.name)); + ok = false; + } + + return ok; +} + +static bool +HandleGlobalVar(CompatInfo *info, VarDef *stmt) +{ + const char *elem, *field; + ExprDef *ndx; + bool ret; + + if (!ExprResolveLhs(info->ctx, stmt->name, &elem, &field, &ndx)) + ret = false; + else if (elem && istreq(elem, "interpret")) + ret = SetInterpField(info, &info->default_interp, field, ndx, + stmt->value); + else if (elem && istreq(elem, "indicator")) + ret = SetLedMapField(info, &info->default_led, field, ndx, + stmt->value); + else + ret = SetActionField(info->ctx, info->actions, &info->mods, + elem, field, ndx, stmt->value); + return ret; +} + +static bool +HandleInterpBody(CompatInfo *info, VarDef *def, SymInterpInfo *si) +{ + bool ok = true; + const char *elem, *field; + ExprDef *arrayNdx; + + for (; def; def = (VarDef *) def->common.next) { + if (def->name && def->name->expr.op == EXPR_FIELD_REF) { + log_err(info->ctx, + "Cannot set a global default value from within an interpret statement; " + "Move statements to the global file scope\n"); + ok = false; + continue; + } + + ok = ExprResolveLhs(info->ctx, def->name, &elem, &field, &arrayNdx); + if (!ok) + continue; + + ok = SetInterpField(info, si, field, arrayNdx, def->value); + } + + return ok; +} + +static bool +HandleInterpDef(CompatInfo *info, InterpDef *def, enum merge_mode merge) +{ + enum xkb_match_operation pred; + xkb_mod_mask_t mods; + SymInterpInfo si; + + if (!ResolveStateAndPredicate(def->match, &pred, &mods, info)) { + log_err(info->ctx, + "Couldn't determine matching modifiers; " + "Symbol interpretation ignored\n"); + return false; + } + + si = info->default_interp; + si.merge = merge = (def->merge == MERGE_DEFAULT ? merge : def->merge); + si.interp.sym = def->sym; + si.interp.match = pred; + si.interp.mods = mods; + + if (!HandleInterpBody(info, def->def, &si)) { + info->errorCount++; + return false; + } + + if (!AddInterp(info, &si, true)) { + info->errorCount++; + return false; + } + + return true; +} + +static bool +HandleLedMapDef(CompatInfo *info, LedMapDef *def, enum merge_mode merge) +{ + LedInfo ledi; + VarDef *var; + bool ok; + + if (def->merge != MERGE_DEFAULT) + merge = def->merge; + + ledi = info->default_led; + ledi.merge = merge; + ledi.led.name = def->name; + + ok = true; + for (var = def->body; var != NULL; var = (VarDef *) var->common.next) { + const char *elem, *field; + ExprDef *arrayNdx; + if (!ExprResolveLhs(info->ctx, var->name, &elem, &field, &arrayNdx)) { + ok = false; + continue; + } + + if (elem) { + log_err(info->ctx, + "Cannot set defaults for \"%s\" element in indicator map; " + "Assignment to %s.%s ignored\n", elem, elem, field); + ok = false; + } + else { + ok = SetLedMapField(info, &ledi, field, arrayNdx, var->value) && ok; + } + } + + if (ok) + return AddLedMap(info, &ledi, true); + + return false; +} + +static void +HandleCompatMapFile(CompatInfo *info, XkbFile *file, enum merge_mode merge) +{ + bool ok; + + merge = (merge == MERGE_DEFAULT ? MERGE_AUGMENT : merge); + + free(info->name); + info->name = strdup_safe(file->name); + + for (ParseCommon *stmt = file->defs; stmt; stmt = stmt->next) { + switch (stmt->type) { + case STMT_INCLUDE: + ok = HandleIncludeCompatMap(info, (IncludeStmt *) stmt); + break; + case STMT_INTERP: + ok = HandleInterpDef(info, (InterpDef *) stmt, merge); + break; + case STMT_GROUP_COMPAT: + log_dbg(info->ctx, + "The \"group\" statement in compat is unsupported; " + "Ignored\n"); + ok = true; + break; + case STMT_LED_MAP: + ok = HandleLedMapDef(info, (LedMapDef *) stmt, merge); + break; + case STMT_VAR: + ok = HandleGlobalVar(info, (VarDef *) stmt); + break; + case STMT_VMOD: + ok = HandleVModDef(info->ctx, &info->mods, (VModDef *) stmt, merge); + break; + default: + log_err(info->ctx, + "Compat files may not include other types; " + "Ignoring %s\n", stmt_type_to_string(stmt->type)); + ok = false; + break; + } + + if (!ok) + info->errorCount++; + + if (info->errorCount > 10) { + log_err(info->ctx, + "Abandoning compatibility map \"%s\"\n", file->topName); + break; + } + } +} + +/* Temporary struct for CopyInterps. */ +struct collect { + darray(struct xkb_sym_interpret) sym_interprets; +}; + +static void +CopyInterps(CompatInfo *info, bool needSymbol, enum xkb_match_operation pred, + struct collect *collect) +{ + SymInterpInfo *si; + + darray_foreach(si, info->interps) + if (si->interp.match == pred && + (si->interp.sym != XKB_KEY_NoSymbol) == needSymbol) + darray_append(collect->sym_interprets, si->interp); +} + +static void +CopyLedMapDefsToKeymap(struct xkb_keymap *keymap, CompatInfo *info) +{ + for (xkb_led_index_t idx = 0; idx < info->num_leds; idx++) { + LedInfo *ledi = &info->leds[idx]; + xkb_led_index_t i; + struct xkb_led *led; + + /* + * Find the LED with the given name, if it was already declared + * in keycodes. + */ + xkb_leds_enumerate(i, led, keymap) + if (led->name == ledi->led.name) + break; + + /* Not previously declared; create it with next free index. */ + if (i >= keymap->num_leds) { + log_dbg(keymap->ctx, + "Indicator name \"%s\" was not declared in the keycodes section; " + "Adding new indicator\n", + xkb_atom_text(keymap->ctx, ledi->led.name)); + + xkb_leds_enumerate(i, led, keymap) + if (led->name == XKB_ATOM_NONE) + break; + + if (i >= keymap->num_leds) { + /* Not place to put it; ignore. */ + if (i >= XKB_MAX_LEDS) { + log_err(keymap->ctx, + "Too many indicators (maximum is %d); " + "Indicator name \"%s\" ignored\n", + XKB_MAX_LEDS, + xkb_atom_text(keymap->ctx, ledi->led.name)); + continue; + } + + /* Add a new LED. */ + led = &keymap->leds[keymap->num_leds++]; + } + } + + *led = ledi->led; + if (led->groups != 0 && led->which_groups == 0) + led->which_groups = XKB_STATE_LAYOUT_EFFECTIVE; + if (led->mods.mods != 0 && led->which_mods == 0) + led->which_mods = XKB_STATE_MODS_EFFECTIVE; + } +} + +static bool +CopyCompatToKeymap(struct xkb_keymap *keymap, CompatInfo *info) +{ + keymap->compat_section_name = strdup_safe(info->name); + XkbEscapeMapName(keymap->compat_section_name); + + keymap->mods = info->mods; + + if (!darray_empty(info->interps)) { + struct collect collect; + darray_init(collect.sym_interprets); + + /* Most specific to least specific. */ + CopyInterps(info, true, MATCH_EXACTLY, &collect); + CopyInterps(info, true, MATCH_ALL, &collect); + CopyInterps(info, true, MATCH_NONE, &collect); + CopyInterps(info, true, MATCH_ANY, &collect); + CopyInterps(info, true, MATCH_ANY_OR_NONE, &collect); + CopyInterps(info, false, MATCH_EXACTLY, &collect); + CopyInterps(info, false, MATCH_ALL, &collect); + CopyInterps(info, false, MATCH_NONE, &collect); + CopyInterps(info, false, MATCH_ANY, &collect); + CopyInterps(info, false, MATCH_ANY_OR_NONE, &collect); + + darray_steal(collect.sym_interprets, + &keymap->sym_interprets, &keymap->num_sym_interprets); + } + + CopyLedMapDefsToKeymap(keymap, info); + + return true; +} + +bool +CompileCompatMap(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge) +{ + CompatInfo info; + ActionsInfo *actions; + + actions = NewActionsInfo(); + if (!actions) + return false; + + InitCompatInfo(&info, keymap->ctx, actions, &keymap->mods); + info.default_interp.merge = merge; + info.default_led.merge = merge; + + HandleCompatMapFile(&info, file, merge); + if (info.errorCount != 0) + goto err_info; + + if (!CopyCompatToKeymap(keymap, &info)) + goto err_info; + + ClearCompatInfo(&info); + FreeActionsInfo(actions); + return true; + +err_info: + ClearCompatInfo(&info); + FreeActionsInfo(actions); + return false; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c new file mode 100644 index 0000000..a85f460 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.c @@ -0,0 +1,680 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "expr.h" + +typedef bool (*IdentLookupFunc)(struct xkb_context *ctx, const void *priv, + xkb_atom_t field, enum expr_value_type type, + unsigned int *val_rtrn); + +bool +ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr, + const char **elem_rtrn, const char **field_rtrn, + ExprDef **index_rtrn) +{ + switch (expr->expr.op) { + case EXPR_IDENT: + *elem_rtrn = NULL; + *field_rtrn = xkb_atom_text(ctx, expr->ident.ident); + *index_rtrn = NULL; + return true; + case EXPR_FIELD_REF: + *elem_rtrn = xkb_atom_text(ctx, expr->field_ref.element); + *field_rtrn = xkb_atom_text(ctx, expr->field_ref.field); + *index_rtrn = NULL; + return true; + case EXPR_ARRAY_REF: + *elem_rtrn = xkb_atom_text(ctx, expr->array_ref.element); + *field_rtrn = xkb_atom_text(ctx, expr->array_ref.field); + *index_rtrn = expr->array_ref.entry; + return true; + default: + break; + } + log_wsgo(ctx, "Unexpected operator %d in ResolveLhs\n", expr->expr.op); + return false; +} + +static bool +SimpleLookup(struct xkb_context *ctx, const void *priv, xkb_atom_t field, + enum expr_value_type type, unsigned int *val_rtrn) +{ + const LookupEntry *entry; + const char *str; + + if (!priv || field == XKB_ATOM_NONE || type != EXPR_TYPE_INT) + return false; + + str = xkb_atom_text(ctx, field); + for (entry = priv; entry && entry->name; entry++) { + if (istreq(str, entry->name)) { + *val_rtrn = entry->value; + return true; + } + } + + return false; +} + +/* Data passed in the *priv argument for LookupModMask. */ +typedef struct { + const struct xkb_mod_set *mods; + enum mod_type mod_type; +} LookupModMaskPriv; + +static bool +LookupModMask(struct xkb_context *ctx, const void *priv, xkb_atom_t field, + enum expr_value_type type, xkb_mod_mask_t *val_rtrn) +{ + const char *str; + xkb_mod_index_t ndx; + const LookupModMaskPriv *arg = priv; + const struct xkb_mod_set *mods = arg->mods; + enum mod_type mod_type = arg->mod_type; + + if (type != EXPR_TYPE_INT) + return false; + + str = xkb_atom_text(ctx, field); + + if (istreq(str, "all")) { + *val_rtrn = MOD_REAL_MASK_ALL; + return true; + } + + if (istreq(str, "none")) { + *val_rtrn = 0; + return true; + } + + ndx = XkbModNameToIndex(mods, field, mod_type); + if (ndx == XKB_MOD_INVALID) + return false; + + *val_rtrn = (1u << ndx); + return true; +} + +bool +ExprResolveBoolean(struct xkb_context *ctx, const ExprDef *expr, + bool *set_rtrn) +{ + bool ok = false; + const char *ident; + + switch (expr->expr.op) { + case EXPR_VALUE: + if (expr->expr.value_type != EXPR_TYPE_BOOLEAN) { + log_err(ctx, + "Found constant of type %s where boolean was expected\n", + expr_value_type_to_string(expr->expr.value_type)); + return false; + } + *set_rtrn = expr->boolean.set; + return true; + + case EXPR_IDENT: + ident = xkb_atom_text(ctx, expr->ident.ident); + if (ident) { + if (istreq(ident, "true") || + istreq(ident, "yes") || + istreq(ident, "on")) { + *set_rtrn = true; + return true; + } + else if (istreq(ident, "false") || + istreq(ident, "no") || + istreq(ident, "off")) { + *set_rtrn = false; + return true; + } + } + log_err(ctx, "Identifier \"%s\" of type boolean is unknown\n", ident); + return false; + + case EXPR_FIELD_REF: + log_err(ctx, "Default \"%s.%s\" of type boolean is unknown\n", + xkb_atom_text(ctx, expr->field_ref.element), + xkb_atom_text(ctx, expr->field_ref.field)); + return false; + + case EXPR_INVERT: + case EXPR_NOT: + ok = ExprResolveBoolean(ctx, expr, set_rtrn); + if (ok) + *set_rtrn = !*set_rtrn; + return ok; + case EXPR_ADD: + case EXPR_SUBTRACT: + case EXPR_MULTIPLY: + case EXPR_DIVIDE: + case EXPR_ASSIGN: + case EXPR_NEGATE: + case EXPR_UNARY_PLUS: + log_err(ctx, "%s of boolean values not permitted\n", + expr_op_type_to_string(expr->expr.op)); + break; + + default: + log_wsgo(ctx, "Unknown operator %d in ResolveBoolean\n", + expr->expr.op); + break; + } + + return false; +} + +bool +ExprResolveKeyCode(struct xkb_context *ctx, const ExprDef *expr, + xkb_keycode_t *kc) +{ + xkb_keycode_t leftRtrn, rightRtrn; + + switch (expr->expr.op) { + case EXPR_VALUE: + if (expr->expr.value_type != EXPR_TYPE_INT) { + log_err(ctx, + "Found constant of type %s where an int was expected\n", + expr_value_type_to_string(expr->expr.value_type)); + return false; + } + + *kc = (xkb_keycode_t) expr->integer.ival; + return true; + + case EXPR_ADD: + case EXPR_SUBTRACT: + case EXPR_MULTIPLY: + case EXPR_DIVIDE: + if (!ExprResolveKeyCode(ctx, expr->binary.left, &leftRtrn) || + !ExprResolveKeyCode(ctx, expr->binary.right, &rightRtrn)) + return false; + + switch (expr->expr.op) { + case EXPR_ADD: + *kc = leftRtrn + rightRtrn; + break; + case EXPR_SUBTRACT: + *kc = leftRtrn - rightRtrn; + break; + case EXPR_MULTIPLY: + *kc = leftRtrn * rightRtrn; + break; + case EXPR_DIVIDE: + if (rightRtrn == 0) { + log_err(ctx, "Cannot divide by zero: %d / %d\n", + leftRtrn, rightRtrn); + return false; + } + + *kc = leftRtrn / rightRtrn; + break; + default: + break; + } + + return true; + + case EXPR_NEGATE: + if (!ExprResolveKeyCode(ctx, expr->unary.child, &leftRtrn)) + return false; + + *kc = ~leftRtrn; + return true; + + case EXPR_UNARY_PLUS: + return ExprResolveKeyCode(ctx, expr->unary.child, kc); + + default: + log_wsgo(ctx, "Unknown operator %d in ResolveKeyCode\n", + expr->expr.op); + break; + } + + return false; +} + +/** + * This function returns ... something. It's a bit of a guess, really. + * + * If an integer is given in value ctx, it will be returned in ival. + * If an ident or field reference is given, the lookup function (if given) + * will be called. At the moment, only SimpleLookup use this, and they both + * return the results in uval. And don't support field references. + * + * Cool. + */ +static bool +ExprResolveIntegerLookup(struct xkb_context *ctx, const ExprDef *expr, + int *val_rtrn, IdentLookupFunc lookup, + const void *lookupPriv) +{ + bool ok = false; + int l, r; + unsigned u; + ExprDef *left, *right; + + switch (expr->expr.op) { + case EXPR_VALUE: + if (expr->expr.value_type != EXPR_TYPE_INT) { + log_err(ctx, + "Found constant of type %s where an int was expected\n", + expr_value_type_to_string(expr->expr.value_type)); + return false; + } + + *val_rtrn = expr->integer.ival; + return true; + + case EXPR_IDENT: + if (lookup) + ok = lookup(ctx, lookupPriv, expr->ident.ident, EXPR_TYPE_INT, &u); + + if (!ok) + log_err(ctx, "Identifier \"%s\" of type int is unknown\n", + xkb_atom_text(ctx, expr->ident.ident)); + else + *val_rtrn = (int) u; + + return ok; + + case EXPR_FIELD_REF: + log_err(ctx, "Default \"%s.%s\" of type int is unknown\n", + xkb_atom_text(ctx, expr->field_ref.element), + xkb_atom_text(ctx, expr->field_ref.field)); + return false; + + case EXPR_ADD: + case EXPR_SUBTRACT: + case EXPR_MULTIPLY: + case EXPR_DIVIDE: + left = expr->binary.left; + right = expr->binary.right; + if (!ExprResolveIntegerLookup(ctx, left, &l, lookup, lookupPriv) || + !ExprResolveIntegerLookup(ctx, right, &r, lookup, lookupPriv)) + return false; + + switch (expr->expr.op) { + case EXPR_ADD: + *val_rtrn = l + r; + break; + case EXPR_SUBTRACT: + *val_rtrn = l - r; + break; + case EXPR_MULTIPLY: + *val_rtrn = l * r; + break; + case EXPR_DIVIDE: + if (r == 0) { + log_err(ctx, "Cannot divide by zero: %d / %d\n", l, r); + return false; + } + *val_rtrn = l / r; + break; + default: + log_err(ctx, "%s of integers not permitted\n", + expr_op_type_to_string(expr->expr.op)); + return false; + } + + return true; + + case EXPR_ASSIGN: + log_wsgo(ctx, "Assignment operator not implemented yet\n"); + break; + + case EXPR_NOT: + log_err(ctx, "The ! operator cannot be applied to an integer\n"); + return false; + + case EXPR_INVERT: + case EXPR_NEGATE: + left = expr->unary.child; + if (!ExprResolveIntegerLookup(ctx, left, &l, lookup, lookupPriv)) + return false; + + *val_rtrn = (expr->expr.op == EXPR_NEGATE ? -l : ~l); + return true; + + case EXPR_UNARY_PLUS: + left = expr->unary.child; + return ExprResolveIntegerLookup(ctx, left, val_rtrn, lookup, + lookupPriv); + + default: + log_wsgo(ctx, "Unknown operator %d in ResolveInteger\n", + expr->expr.op); + break; + } + + return false; +} + +bool +ExprResolveInteger(struct xkb_context *ctx, const ExprDef *expr, + int *val_rtrn) +{ + return ExprResolveIntegerLookup(ctx, expr, val_rtrn, NULL, NULL); +} + +bool +ExprResolveGroup(struct xkb_context *ctx, const ExprDef *expr, + xkb_layout_index_t *group_rtrn) +{ + bool ok; + int result; + + ok = ExprResolveIntegerLookup(ctx, expr, &result, SimpleLookup, + groupNames); + if (!ok) + return false; + + if (result <= 0 || result > XKB_MAX_GROUPS) { + log_err(ctx, "Group index %u is out of range (1..%d)\n", + result, XKB_MAX_GROUPS); + return false; + } + + *group_rtrn = (xkb_layout_index_t) result; + return true; +} + +bool +ExprResolveLevel(struct xkb_context *ctx, const ExprDef *expr, + xkb_level_index_t *level_rtrn) +{ + bool ok; + int result; + + ok = ExprResolveIntegerLookup(ctx, expr, &result, SimpleLookup, + levelNames); + if (!ok) + return false; + + if (result < 1) { + log_err(ctx, "Shift level %d is out of range\n", result); + return false; + } + + /* Level is zero-indexed from now on. */ + *level_rtrn = (unsigned int) (result - 1); + return true; +} + +bool +ExprResolveButton(struct xkb_context *ctx, const ExprDef *expr, int *btn_rtrn) +{ + return ExprResolveIntegerLookup(ctx, expr, btn_rtrn, SimpleLookup, + buttonNames); +} + +bool +ExprResolveString(struct xkb_context *ctx, const ExprDef *expr, + xkb_atom_t *val_rtrn) +{ + switch (expr->expr.op) { + case EXPR_VALUE: + if (expr->expr.value_type != EXPR_TYPE_STRING) { + log_err(ctx, "Found constant of type %s, expected a string\n", + expr_value_type_to_string(expr->expr.value_type)); + return false; + } + + *val_rtrn = expr->string.str; + return true; + + case EXPR_IDENT: + log_err(ctx, "Identifier \"%s\" of type string not found\n", + xkb_atom_text(ctx, expr->ident.ident)); + return false; + + case EXPR_FIELD_REF: + log_err(ctx, "Default \"%s.%s\" of type string not found\n", + xkb_atom_text(ctx, expr->field_ref.element), + xkb_atom_text(ctx, expr->field_ref.field)); + return false; + + case EXPR_ADD: + case EXPR_SUBTRACT: + case EXPR_MULTIPLY: + case EXPR_DIVIDE: + case EXPR_ASSIGN: + case EXPR_NEGATE: + case EXPR_INVERT: + case EXPR_NOT: + case EXPR_UNARY_PLUS: + log_err(ctx, "%s of strings not permitted\n", + expr_op_type_to_string(expr->expr.op)); + return false; + + default: + log_wsgo(ctx, "Unknown operator %d in ResolveString\n", + expr->expr.op); + break; + } + return false; +} + +bool +ExprResolveEnum(struct xkb_context *ctx, const ExprDef *expr, + unsigned int *val_rtrn, const LookupEntry *values) +{ + if (expr->expr.op != EXPR_IDENT) { + log_err(ctx, "Found a %s where an enumerated value was expected\n", + expr_op_type_to_string(expr->expr.op)); + return false; + } + + if (!SimpleLookup(ctx, values, expr->ident.ident, EXPR_TYPE_INT, + val_rtrn)) { + log_err(ctx, "Illegal identifier %s; expected one of:\n", + xkb_atom_text(ctx, expr->ident.ident)); + while (values && values->name) + { + log_err(ctx, "\t%s\n", values->name); + values++; + } + return false; + } + + return true; +} + +static bool +ExprResolveMaskLookup(struct xkb_context *ctx, const ExprDef *expr, + unsigned int *val_rtrn, IdentLookupFunc lookup, + const void *lookupPriv) +{ + bool ok = 0; + unsigned int l, r; + int v; + ExprDef *left, *right; + const char *bogus = NULL; + + switch (expr->expr.op) { + case EXPR_VALUE: + if (expr->expr.value_type != EXPR_TYPE_INT) { + log_err(ctx, + "Found constant of type %s where a mask was expected\n", + expr_value_type_to_string(expr->expr.value_type)); + return false; + } + *val_rtrn = (unsigned int) expr->integer.ival; + return true; + + case EXPR_IDENT: + ok = lookup(ctx, lookupPriv, expr->ident.ident, EXPR_TYPE_INT, + val_rtrn); + if (!ok) + log_err(ctx, "Identifier \"%s\" of type int is unknown\n", + xkb_atom_text(ctx, expr->ident.ident)); + return ok; + + case EXPR_FIELD_REF: + log_err(ctx, "Default \"%s.%s\" of type int is unknown\n", + xkb_atom_text(ctx, expr->field_ref.element), + xkb_atom_text(ctx, expr->field_ref.field)); + return false; + + case EXPR_ARRAY_REF: + bogus = "array reference"; + + case EXPR_ACTION_DECL: + if (bogus == NULL) + bogus = "function use"; + log_err(ctx, + "Unexpected %s in mask expression; Expression Ignored\n", + bogus); + return false; + + case EXPR_ADD: + case EXPR_SUBTRACT: + case EXPR_MULTIPLY: + case EXPR_DIVIDE: + left = expr->binary.left; + right = expr->binary.right; + if (!ExprResolveMaskLookup(ctx, left, &l, lookup, lookupPriv) || + !ExprResolveMaskLookup(ctx, right, &r, lookup, lookupPriv)) + return false; + + switch (expr->expr.op) { + case EXPR_ADD: + *val_rtrn = l | r; + break; + case EXPR_SUBTRACT: + *val_rtrn = l & (~r); + break; + case EXPR_MULTIPLY: + case EXPR_DIVIDE: + log_err(ctx, "Cannot %s masks; Illegal operation ignored\n", + (expr->expr.op == EXPR_DIVIDE ? "divide" : "multiply")); + return false; + default: + break; + } + + return true; + + case EXPR_ASSIGN: + log_wsgo(ctx, "Assignment operator not implemented yet\n"); + break; + + case EXPR_INVERT: + left = expr->unary.child; + if (!ExprResolveIntegerLookup(ctx, left, &v, lookup, lookupPriv)) + return false; + + *val_rtrn = ~v; + return true; + + case EXPR_UNARY_PLUS: + case EXPR_NEGATE: + case EXPR_NOT: + left = expr->unary.child; + if (!ExprResolveIntegerLookup(ctx, left, &v, lookup, lookupPriv)) + log_err(ctx, "The %s operator cannot be used with a mask\n", + (expr->expr.op == EXPR_NEGATE ? "-" : "!")); + return false; + + default: + log_wsgo(ctx, "Unknown operator %d in ResolveMask\n", + expr->expr.op); + break; + } + + return false; +} + +bool +ExprResolveMask(struct xkb_context *ctx, const ExprDef *expr, + unsigned int *mask_rtrn, const LookupEntry *values) +{ + return ExprResolveMaskLookup(ctx, expr, mask_rtrn, SimpleLookup, values); +} + +bool +ExprResolveModMask(struct xkb_context *ctx, const ExprDef *expr, + enum mod_type mod_type, const struct xkb_mod_set *mods, + xkb_mod_mask_t *mask_rtrn) +{ + LookupModMaskPriv priv = { .mods = mods, .mod_type = mod_type }; + return ExprResolveMaskLookup(ctx, expr, mask_rtrn, LookupModMask, &priv); +} + +bool +ExprResolveKeySym(struct xkb_context *ctx, const ExprDef *expr, + xkb_keysym_t *sym_rtrn) +{ + int val; + + if (expr->expr.op == EXPR_IDENT) { + const char *str = xkb_atom_text(ctx, expr->ident.ident); + *sym_rtrn = xkb_keysym_from_name(str, 0); + if (*sym_rtrn != XKB_KEY_NoSymbol) + return true; + } + + if (!ExprResolveInteger(ctx, expr, &val)) + return false; + + if (val < 0 || val >= 10) + return false; + + *sym_rtrn = XKB_KEY_0 + (xkb_keysym_t) val; + return true; +} + +bool +ExprResolveMod(struct xkb_context *ctx, const ExprDef *def, + enum mod_type mod_type, const struct xkb_mod_set *mods, + xkb_mod_index_t *ndx_rtrn) +{ + xkb_mod_index_t ndx; + xkb_atom_t name; + + if (def->expr.op != EXPR_IDENT) { + log_err(ctx, + "Cannot resolve virtual modifier: " + "found %s where a virtual modifier name was expected\n", + expr_op_type_to_string(def->expr.op)); + return false; + } + + name = def->ident.ident; + ndx = XkbModNameToIndex(mods, name, mod_type); + if (ndx == XKB_MOD_INVALID) { + log_err(ctx, + "Cannot resolve virtual modifier: " + "\"%s\" was not previously declared\n", + xkb_atom_text(ctx, name)); + return false; + } + + *ndx_rtrn = ndx; + return true; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.h new file mode 100644 index 0000000..9882b8c --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/expr.h @@ -0,0 +1,85 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_EXPR_H +#define XKBCOMP_EXPR_H + +bool +ExprResolveLhs(struct xkb_context *ctx, const ExprDef *expr, + const char **elem_rtrn, const char **field_rtrn, + ExprDef **index_rtrn); + +bool +ExprResolveModMask(struct xkb_context *ctx, const ExprDef *expr, + enum mod_type mod_type, const struct xkb_mod_set *mods, + xkb_mod_mask_t *mask_rtrn); + +bool +ExprResolveMod(struct xkb_context *ctx, const ExprDef *def, + enum mod_type mod_type, const struct xkb_mod_set *mods, + xkb_mod_index_t *ndx_rtrn); + +bool +ExprResolveBoolean(struct xkb_context *ctx, const ExprDef *expr, + bool *set_rtrn); + +bool +ExprResolveKeyCode(struct xkb_context *ctx, const ExprDef *expr, + xkb_keycode_t *kc); + +bool +ExprResolveInteger(struct xkb_context *ctx, const ExprDef *expr, + int *val_rtrn); + +bool +ExprResolveLevel(struct xkb_context *ctx, const ExprDef *expr, + xkb_level_index_t *level_rtrn); + +bool +ExprResolveGroup(struct xkb_context *ctx, const ExprDef *expr, + xkb_layout_index_t *group_rtrn); + +bool +ExprResolveButton(struct xkb_context *ctx, const ExprDef *expr, + int *btn_rtrn); + +bool +ExprResolveString(struct xkb_context *ctx, const ExprDef *expr, + xkb_atom_t *val_rtrn); + +bool +ExprResolveEnum(struct xkb_context *ctx, const ExprDef *expr, + unsigned int *val_rtrn, const LookupEntry *values); + +bool +ExprResolveMask(struct xkb_context *ctx, const ExprDef *expr, + unsigned int *mask_rtrn, const LookupEntry *values); + +bool +ExprResolveKeySym(struct xkb_context *ctx, const ExprDef *expr, + xkb_keysym_t *sym_rtrn); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c new file mode 100644 index 0000000..dc3f1e4 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.c @@ -0,0 +1,309 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +#include "xkbcomp-priv.h" +#include "include.h" + +/** + * Parse an include statement. Each call returns a file name, along with + * (possibly) a specific map in the file, an explicit group designator, and + * the separator from the next file, used to determine the merge mode. + * + * @param str_inout Input statement, modified in-place. Should be passed in + * repeatedly. If str_inout is NULL, the parsing has completed. + * + * @param file_rtrn Set to the name of the include file to be used. Combined + * with an enum xkb_file_type, this determines which file to look for in the + * include path. + * + * @param map_rtrn Set to the string between '(' and ')', if any. This will + * result in the compilation of a specific named map within the file (e.g. + * xkb_symbols "basic" { ... }) , as opposed to the default map of the file. + * + * @param nextop_rtrn Set to the next operation in the complete statement, + * which is '\0' if it's the last file or '+' or '|' if there are more. + * Separating the files with '+' sets the merge mode to MERGE_MODE_OVERRIDE, + * while '|' sets the merge mode to MERGE_MODE_AUGMENT. + * + * @param extra_data Set to the string after ':', if any. Currently the + * extra data is only used for setting an explicit group index for a symbols + * file. + * + * @return true if parsing was successful, false for an illegal string. + * + * Example: "evdev+aliases(qwerty):2" + * str_inout = "aliases(qwerty):2" + * file_rtrn = "evdev" + * map_rtrn = NULL + * nextop_retrn = "+" + * extra_data = NULL + * + * 2nd run with "aliases(qwerty):2" + * str_inout = NULL + * file_rtrn = "aliases" + * map_rtrn = "qwerty" + * nextop_retrn = "" + * extra_data = "2" + * + */ +bool +ParseIncludeMap(char **str_inout, char **file_rtrn, char **map_rtrn, + char *nextop_rtrn, char **extra_data) +{ + char *tmp, *str, *next; + + str = *str_inout; + + /* + * Find the position in the string where the next file is included, + * if there is more than one left in the statement. + */ + next = strpbrk(str, "|+"); + if (next) { + /* Got more files, this function will be called again. */ + *nextop_rtrn = *next; + /* Separate the string, for strchr etc. to work on this file only. */ + *next++ = '\0'; + } + else { + /* This is the last file in this statement, won't be called again. */ + *nextop_rtrn = '\0'; + next = NULL; + } + + /* + * Search for the explicit group designator, if any. If it's there, + * it goes after the file name and map. + */ + tmp = strchr(str, ':'); + if (tmp != NULL) { + *tmp++ = '\0'; + *extra_data = strdup(tmp); + } + else { + *extra_data = NULL; + } + + /* Look for a map, if any. */ + tmp = strchr(str, '('); + if (tmp == NULL) { + /* No map. */ + *file_rtrn = strdup(str); + *map_rtrn = NULL; + } + else if (str[0] == '(') { + /* Map without file - invalid. */ + free(*extra_data); + return false; + } + else { + /* Got a map; separate the file and the map for the strdup's. */ + *tmp++ = '\0'; + *file_rtrn = strdup(str); + str = tmp; + tmp = strchr(str, ')'); + if (tmp == NULL || tmp[1] != '\0') { + free(*file_rtrn); + free(*extra_data); + return false; + } + *tmp++ = '\0'; + *map_rtrn = strdup(str); + } + + /* Set up the next file for the next call, if any. */ + if (*nextop_rtrn == '\0') + *str_inout = NULL; + else if (*nextop_rtrn == '|' || *nextop_rtrn == '+') + *str_inout = next; + else + return false; + + return true; +} + +static const char *xkb_file_type_include_dirs[_FILE_TYPE_NUM_ENTRIES] = { + [FILE_TYPE_KEYCODES] = "keycodes", + [FILE_TYPE_TYPES] = "types", + [FILE_TYPE_COMPAT] = "compat", + [FILE_TYPE_SYMBOLS] = "symbols", + [FILE_TYPE_GEOMETRY] = "geometry", + [FILE_TYPE_KEYMAP] = "keymap", + [FILE_TYPE_RULES] = "rules", +}; + +/** + * Return the xkb directory based on the type. + */ +static const char * +DirectoryForInclude(enum xkb_file_type type) +{ + if (type >= _FILE_TYPE_NUM_ENTRIES) + return ""; + return xkb_file_type_include_dirs[type]; +} + +FILE * +FindFileInXkbPath(struct xkb_context *ctx, const char *name, + enum xkb_file_type type, char **pathRtrn) +{ + unsigned int i; + FILE *file = NULL; + char *buf = NULL; + const char *typeDir; + size_t buf_size = 0, typeDirLen, name_len; + + typeDir = DirectoryForInclude(type); + typeDirLen = strlen(typeDir); + name_len = strlen(name); + + for (i = 0; i < xkb_context_num_include_paths(ctx); i++) { + size_t new_buf_size = strlen(xkb_context_include_path_get(ctx, i)) + + typeDirLen + name_len + 3; + int ret; + if (new_buf_size > buf_size) { + void *buf_new = realloc(buf, new_buf_size); + if (buf_new) { + buf_size = new_buf_size; + buf = buf_new; + } else { + log_err(ctx, "Cannot realloc for name (%s/%s/%s)\n", + xkb_context_include_path_get(ctx, i), typeDir, name); + continue; + } + } + ret = snprintf(buf, buf_size, "%s/%s/%s", + xkb_context_include_path_get(ctx, i), + typeDir, name); + if (ret < 0) { + log_err(ctx, "snprintf error (%s/%s/%s)\n", + xkb_context_include_path_get(ctx, i), typeDir, name); + continue; + } + + file = fopen(buf, "r"); + if (file) + break; + } + + if (!file) { + log_err(ctx, "Couldn't find file \"%s/%s\" in include paths\n", + typeDir, name); + + if (xkb_context_num_include_paths(ctx) > 0) { + log_err(ctx, "%d include paths searched:\n", + xkb_context_num_include_paths(ctx)); + for (i = 0; i < xkb_context_num_include_paths(ctx); i++) + log_err(ctx, "\t%s\n", + xkb_context_include_path_get(ctx, i)); + } + else { + log_err(ctx, "There are no include paths to search\n"); + } + + if (xkb_context_num_failed_include_paths(ctx) > 0) { + log_err(ctx, "%d include paths could not be added:\n", + xkb_context_num_failed_include_paths(ctx)); + for (i = 0; i < xkb_context_num_failed_include_paths(ctx); i++) + log_err(ctx, "\t%s\n", + xkb_context_failed_include_path_get(ctx, i)); + } + + free(buf); + return NULL; + } + + if (pathRtrn) + *pathRtrn = buf; + else + free(buf); + return file; +} + +XkbFile * +ProcessIncludeFile(struct xkb_context *ctx, IncludeStmt *stmt, + enum xkb_file_type file_type) +{ + FILE *file; + XkbFile *xkb_file; + + file = FindFileInXkbPath(ctx, stmt->file, file_type, NULL); + if (!file) + return false; + + xkb_file = XkbParseFile(ctx, file, stmt->file, stmt->map); + fclose(file); + if (!xkb_file) { + if (stmt->map) + log_err(ctx, "Couldn't process include statement for '%s(%s)'\n", + stmt->file, stmt->map); + else + log_err(ctx, "Couldn't process include statement for '%s'\n", + stmt->file); + return NULL; + } + + if (xkb_file->file_type != file_type) { + log_err(ctx, + "Include file of wrong type (expected %s, got %s); " + "Include file \"%s\" ignored\n", + xkb_file_type_to_string(file_type), + xkb_file_type_to_string(xkb_file->file_type), stmt->file); + FreeXkbFile(xkb_file); + return NULL; + } + + /* FIXME: we have to check recursive includes here (or somewhere) */ + + return xkb_file; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.h new file mode 100644 index 0000000..03e76ed --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/include.h @@ -0,0 +1,42 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_INCLUDE_H +#define XKBCOMP_INCLUDE_H + +bool +ParseIncludeMap(char **str_inout, char **file_rtrn, char **map_rtrn, + char *nextop_rtrn, char **extra_data); + +FILE * +FindFileInXkbPath(struct xkb_context *ctx, const char *name, + enum xkb_file_type type, char **pathRtrn); + +XkbFile * +ProcessIncludeFile(struct xkb_context *ctx, IncludeStmt *stmt, + enum xkb_file_type file_type); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c new file mode 100644 index 0000000..6200cea --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keycodes.c @@ -0,0 +1,668 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "expr.h" +#include "include.h" + +typedef struct { + enum merge_mode merge; + + xkb_atom_t alias; + xkb_atom_t real; +} AliasInfo; + +typedef struct { + enum merge_mode merge; + + xkb_atom_t name; +} LedNameInfo; + +typedef struct { + char *name; + int errorCount; + + xkb_keycode_t min_key_code; + xkb_keycode_t max_key_code; + darray(xkb_atom_t) key_names; + LedNameInfo led_names[XKB_MAX_LEDS]; + unsigned int num_led_names; + darray(AliasInfo) aliases; + + struct xkb_context *ctx; +} KeyNamesInfo; + +/***====================================================================***/ + +static void +InitAliasInfo(AliasInfo *info, enum merge_mode merge, + xkb_atom_t alias, xkb_atom_t real) +{ + memset(info, 0, sizeof(*info)); + info->merge = merge; + info->alias = alias; + info->real = real; +} + +static LedNameInfo * +FindLedByName(KeyNamesInfo *info, xkb_atom_t name, + xkb_led_index_t *idx_out) +{ + for (xkb_led_index_t idx = 0; idx < info->num_led_names; idx++) { + LedNameInfo *ledi = &info->led_names[idx]; + if (ledi->name == name) { + *idx_out = idx; + return ledi; + } + } + + return NULL; +} + +static bool +AddLedName(KeyNamesInfo *info, enum merge_mode merge, bool same_file, + LedNameInfo *new, xkb_led_index_t new_idx) +{ + xkb_led_index_t old_idx; + LedNameInfo *old; + const int verbosity = xkb_context_get_log_verbosity(info->ctx); + const bool report = (same_file && verbosity > 0) || verbosity > 9; + const bool replace = (merge == MERGE_REPLACE || merge == MERGE_OVERRIDE); + + /* LED with the same name already exists. */ + old = FindLedByName(info, new->name, &old_idx); + if (old) { + if (old_idx == new_idx) { + log_warn(info->ctx, + "Multiple indicators named \"%s\"; " + "Identical definitions ignored\n", + xkb_atom_text(info->ctx, new->name)); + return true; + } + + if (report) { + xkb_led_index_t use = (replace ? new_idx + 1 : old_idx + 1); + xkb_led_index_t ignore = (replace ? old_idx + 1 : new_idx + 1); + log_warn(info->ctx, + "Multiple indicators named %s; Using %d, ignoring %d\n", + xkb_atom_text(info->ctx, new->name), use, ignore); + } + + if (replace) + *old = *new; + + return true; + } + + if (new_idx >= info->num_led_names) + info->num_led_names = new_idx + 1; + + /* LED with the same index already exists. */ + old = &info->led_names[new_idx]; + if (old->name != XKB_ATOM_NONE) { + if (report) { + const xkb_atom_t use = (replace ? new->name : old->name); + const xkb_atom_t ignore = (replace ? old->name : new->name); + log_warn(info->ctx, "Multiple names for indicator %d; " + "Using %s, ignoring %s\n", new_idx + 1, + xkb_atom_text(info->ctx, use), + xkb_atom_text(info->ctx, ignore)); + } + + if (replace) + *old = *new; + + return true; + } + + *old = *new; + return true; +} + +static void +ClearKeyNamesInfo(KeyNamesInfo *info) +{ + free(info->name); + darray_free(info->key_names); + darray_free(info->aliases); +} + +static void +InitKeyNamesInfo(KeyNamesInfo *info, struct xkb_context *ctx) +{ + memset(info, 0, sizeof(*info)); + info->ctx = ctx; + info->min_key_code = XKB_KEYCODE_INVALID; +#if XKB_KEYCODE_INVALID < XKB_KEYCODE_MAX +#error "Hey, you can't be changing stuff like that." +#endif +} + +static xkb_keycode_t +FindKeyByName(KeyNamesInfo *info, xkb_atom_t name) +{ + xkb_keycode_t i; + + for (i = info->min_key_code; i <= info->max_key_code; i++) + if (darray_item(info->key_names, i) == name) + return i; + + return XKB_KEYCODE_INVALID; +} + +static bool +AddKeyName(KeyNamesInfo *info, xkb_keycode_t kc, xkb_atom_t name, + enum merge_mode merge, bool same_file, bool report) +{ + xkb_atom_t old_name; + xkb_keycode_t old_kc; + const int verbosity = xkb_context_get_log_verbosity(info->ctx); + + report = report && ((same_file && verbosity > 0) || verbosity > 7); + + if (kc >= darray_size(info->key_names)) + darray_resize0(info->key_names, kc + 1); + + info->min_key_code = MIN(info->min_key_code, kc); + info->max_key_code = MAX(info->max_key_code, kc); + + /* There's already a key with this keycode. */ + old_name = darray_item(info->key_names, kc); + if (old_name != XKB_ATOM_NONE) { + const char *lname = KeyNameText(info->ctx, old_name); + const char *kname = KeyNameText(info->ctx, name); + + if (old_name == name) { + if (report) + log_warn(info->ctx, + "Multiple identical key name definitions; " + "Later occurrences of \"%s = %d\" ignored\n", + lname, kc); + return true; + } + else if (merge == MERGE_AUGMENT) { + if (report) + log_warn(info->ctx, + "Multiple names for keycode %d; " + "Using %s, ignoring %s\n", kc, lname, kname); + return true; + } + else { + if (report) + log_warn(info->ctx, + "Multiple names for keycode %d; " + "Using %s, ignoring %s\n", kc, kname, lname); + darray_item(info->key_names, kc) = XKB_ATOM_NONE; + } + } + + /* There's already a key with this name. */ + old_kc = FindKeyByName(info, name); + if (old_kc != XKB_KEYCODE_INVALID && old_kc != kc) { + const char *kname = KeyNameText(info->ctx, name); + + if (merge == MERGE_OVERRIDE) { + darray_item(info->key_names, old_kc) = XKB_ATOM_NONE; + if (report) + log_warn(info->ctx, + "Key name %s assigned to multiple keys; " + "Using %d, ignoring %d\n", kname, kc, old_kc); + } + else { + if (report) + log_vrb(info->ctx, 3, + "Key name %s assigned to multiple keys; " + "Using %d, ignoring %d\n", kname, old_kc, kc); + return true; + } + } + + darray_item(info->key_names, kc) = name; + return true; +} + +/***====================================================================***/ + +static bool +HandleAliasDef(KeyNamesInfo *info, KeyAliasDef *def, enum merge_mode merge); + +static void +MergeIncludedKeycodes(KeyNamesInfo *into, KeyNamesInfo *from, + enum merge_mode merge) +{ + if (from->errorCount > 0) { + into->errorCount += from->errorCount; + return; + } + + if (into->name == NULL) { + into->name = from->name; + from->name = NULL; + } + + /* Merge key names. */ + if (darray_empty(into->key_names)) { + into->key_names = from->key_names; + darray_init(from->key_names); + into->min_key_code = from->min_key_code; + into->max_key_code = from->max_key_code; + } + else { + if (darray_size(into->key_names) < darray_size(from->key_names)) + darray_resize0(into->key_names, darray_size(from->key_names)); + + for (unsigned i = from->min_key_code; i <= from->max_key_code; i++) { + xkb_atom_t name = darray_item(from->key_names, i); + if (name == XKB_ATOM_NONE) + continue; + + if (!AddKeyName(into, i, name, merge, true, false)) + into->errorCount++; + } + } + + /* Merge key aliases. */ + if (darray_empty(into->aliases)) { + into->aliases = from->aliases; + darray_init(from->aliases); + } + else { + AliasInfo *alias; + + darray_foreach(alias, from->aliases) { + KeyAliasDef def; + + def.merge = (merge == MERGE_DEFAULT ? alias->merge : merge); + def.alias = alias->alias; + def.real = alias->real; + + if (!HandleAliasDef(into, &def, def.merge)) + into->errorCount++; + } + } + + /* Merge LED names. */ + if (into->num_led_names == 0) { + memcpy(into->led_names, from->led_names, + sizeof(*from->led_names) * from->num_led_names); + into->num_led_names = from->num_led_names; + from->num_led_names = 0; + } + else { + for (xkb_led_index_t idx = 0; idx < from->num_led_names; idx++) { + LedNameInfo *ledi = &from->led_names[idx]; + + if (ledi->name == XKB_ATOM_NONE) + continue; + + ledi->merge = (merge == MERGE_DEFAULT ? ledi->merge : merge); + if (!AddLedName(into, ledi->merge, false, ledi, idx)) + into->errorCount++; + } + } +} + +static void +HandleKeycodesFile(KeyNamesInfo *info, XkbFile *file, enum merge_mode merge); + +static bool +HandleIncludeKeycodes(KeyNamesInfo *info, IncludeStmt *include) +{ + KeyNamesInfo included; + + InitKeyNamesInfo(&included, info->ctx); + included.name = include->stmt; + include->stmt = NULL; + + for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) { + KeyNamesInfo next_incl; + XkbFile *file; + + file = ProcessIncludeFile(info->ctx, stmt, FILE_TYPE_KEYCODES); + if (!file) { + info->errorCount += 10; + ClearKeyNamesInfo(&included); + return false; + } + + InitKeyNamesInfo(&next_incl, info->ctx); + + HandleKeycodesFile(&next_incl, file, MERGE_OVERRIDE); + + MergeIncludedKeycodes(&included, &next_incl, stmt->merge); + + ClearKeyNamesInfo(&next_incl); + FreeXkbFile(file); + } + + MergeIncludedKeycodes(info, &included, include->merge); + ClearKeyNamesInfo(&included); + + return (info->errorCount == 0); +} + +static bool +HandleKeycodeDef(KeyNamesInfo *info, KeycodeDef *stmt, enum merge_mode merge) +{ + if (stmt->merge != MERGE_DEFAULT) { + if (stmt->merge == MERGE_REPLACE) + merge = MERGE_OVERRIDE; + else + merge = stmt->merge; + } + + if (stmt->value < 0 || stmt->value > XKB_KEYCODE_MAX) { + log_err(info->ctx, + "Illegal keycode %lld: must be between 0..%u; " + "Key ignored\n", (long long) stmt->value, XKB_KEYCODE_MAX); + return false; + } + + return AddKeyName(info, stmt->value, stmt->name, merge, false, true); +} + +static bool +HandleAliasDef(KeyNamesInfo *info, KeyAliasDef *def, enum merge_mode merge) +{ + AliasInfo *old, new; + + darray_foreach(old, info->aliases) { + if (old->alias == def->alias) { + if (def->real == old->real) { + log_vrb(info->ctx, 1, + "Alias of %s for %s declared more than once; " + "First definition ignored\n", + KeyNameText(info->ctx, def->alias), + KeyNameText(info->ctx, def->real)); + } + else { + xkb_atom_t use, ignore; + + use = (merge == MERGE_AUGMENT ? old->real : def->real); + ignore = (merge == MERGE_AUGMENT ? def->real : old->real); + + log_warn(info->ctx, + "Multiple definitions for alias %s; " + "Using %s, ignoring %s\n", + KeyNameText(info->ctx, old->alias), + KeyNameText(info->ctx, use), + KeyNameText(info->ctx, ignore)); + + old->real = use; + } + + old->merge = merge; + return true; + } + } + + InitAliasInfo(&new, merge, def->alias, def->real); + darray_append(info->aliases, new); + return true; +} + +static bool +HandleKeyNameVar(KeyNamesInfo *info, VarDef *stmt) +{ + const char *elem, *field; + ExprDef *arrayNdx; + + if (!ExprResolveLhs(info->ctx, stmt->name, &elem, &field, &arrayNdx)) + return false; + + if (elem) { + log_err(info->ctx, "Unknown element %s encountered; " + "Default for field %s ignored\n", elem, field); + return false; + } + + if (!istreq(field, "minimum") && !istreq(field, "maximum")) { + log_err(info->ctx, "Unknown field encountered; " + "Assignment to field %s ignored\n", field); + return false; + } + + /* We ignore explicit min/max statements, we always use computed. */ + return true; +} + +static bool +HandleLedNameDef(KeyNamesInfo *info, LedNameDef *def, + enum merge_mode merge) +{ + LedNameInfo ledi; + xkb_atom_t name; + + if (def->ndx < 1 || def->ndx > XKB_MAX_LEDS) { + info->errorCount++; + log_err(info->ctx, + "Illegal indicator index (%d) specified; must be between 1 .. %d; " + "Ignored\n", def->ndx, XKB_MAX_LEDS); + return false; + } + + if (!ExprResolveString(info->ctx, def->name, &name)) { + char buf[20]; + snprintf(buf, sizeof(buf), "%d", def->ndx); + info->errorCount++; + return ReportBadType(info->ctx, "indicator", "name", buf, "string"); + } + + ledi.merge = merge; + ledi.name = name; + return AddLedName(info, merge, true, &ledi, def->ndx - 1); +} + +static void +HandleKeycodesFile(KeyNamesInfo *info, XkbFile *file, enum merge_mode merge) +{ + bool ok; + + free(info->name); + info->name = strdup_safe(file->name); + + for (ParseCommon *stmt = file->defs; stmt; stmt = stmt->next) { + switch (stmt->type) { + case STMT_INCLUDE: + ok = HandleIncludeKeycodes(info, (IncludeStmt *) stmt); + break; + case STMT_KEYCODE: + ok = HandleKeycodeDef(info, (KeycodeDef *) stmt, merge); + break; + case STMT_ALIAS: + ok = HandleAliasDef(info, (KeyAliasDef *) stmt, merge); + break; + case STMT_VAR: + ok = HandleKeyNameVar(info, (VarDef *) stmt); + break; + case STMT_LED_NAME: + ok = HandleLedNameDef(info, (LedNameDef *) stmt, merge); + break; + default: + log_err(info->ctx, + "Keycode files may define key and indicator names only; " + "Ignoring %s\n", stmt_type_to_string(stmt->type)); + ok = false; + break; + } + + if (!ok) + info->errorCount++; + + if (info->errorCount > 10) { + log_err(info->ctx, "Abandoning keycodes file \"%s\"\n", + file->topName); + break; + } + } +} + +/***====================================================================***/ + +static bool +CopyKeyNamesToKeymap(struct xkb_keymap *keymap, KeyNamesInfo *info) +{ + struct xkb_key *keys; + xkb_keycode_t min_key_code, max_key_code, kc; + + min_key_code = info->min_key_code; + max_key_code = info->max_key_code; + /* If the keymap has no keys, let's just use the safest pair we know. */ + if (min_key_code == XKB_KEYCODE_INVALID) { + min_key_code = 8; + max_key_code = 255; + } + + keys = calloc(max_key_code + 1, sizeof(*keys)); + if (!keys) + return false; + + for (kc = min_key_code; kc <= max_key_code; kc++) + keys[kc].keycode = kc; + + for (kc = info->min_key_code; kc <= info->max_key_code; kc++) + keys[kc].name = darray_item(info->key_names, kc); + + keymap->min_key_code = min_key_code; + keymap->max_key_code = max_key_code; + keymap->keys = keys; + return true; +} + +static bool +CopyKeyAliasesToKeymap(struct xkb_keymap *keymap, KeyNamesInfo *info) +{ + AliasInfo *alias; + unsigned i, num_key_aliases; + struct xkb_key_alias *key_aliases; + + /* + * Do some sanity checking on the aliases. We can't do it before + * because keys and their aliases may be added out-of-order. + */ + num_key_aliases = 0; + darray_foreach(alias, info->aliases) { + /* Check that ->real is a key. */ + if (!XkbKeyByName(keymap, alias->real, false)) { + log_vrb(info->ctx, 5, + "Attempt to alias %s to non-existent key %s; Ignored\n", + KeyNameText(info->ctx, alias->alias), + KeyNameText(info->ctx, alias->real)); + alias->real = XKB_ATOM_NONE; + continue; + } + + /* Check that ->alias is not a key. */ + if (XkbKeyByName(keymap, alias->alias, false)) { + log_vrb(info->ctx, 5, + "Attempt to create alias with the name of a real key; " + "Alias \"%s = %s\" ignored\n", + KeyNameText(info->ctx, alias->alias), + KeyNameText(info->ctx, alias->real)); + alias->real = XKB_ATOM_NONE; + continue; + } + + num_key_aliases++; + } + + /* Copy key aliases. */ + key_aliases = NULL; + if (num_key_aliases > 0) { + key_aliases = calloc(num_key_aliases, sizeof(*key_aliases)); + if (!key_aliases) + return false; + } + + i = 0; + darray_foreach(alias, info->aliases) { + if (alias->real != XKB_ATOM_NONE) { + key_aliases[i].alias = alias->alias; + key_aliases[i].real = alias->real; + i++; + } + } + + keymap->num_key_aliases = num_key_aliases; + keymap->key_aliases = key_aliases; + return true; +} + +static bool +CopyLedNamesToKeymap(struct xkb_keymap *keymap, KeyNamesInfo *info) +{ + keymap->num_leds = info->num_led_names; + for (xkb_led_index_t idx = 0; idx < info->num_led_names; idx++) { + LedNameInfo *ledi = &info->led_names[idx]; + + if (ledi->name == XKB_ATOM_NONE) + continue; + + keymap->leds[idx].name = ledi->name; + } + + return true; +} + +static bool +CopyKeyNamesInfoToKeymap(struct xkb_keymap *keymap, KeyNamesInfo *info) +{ + /* This function trashes keymap on error, but that's OK. */ + if (!CopyKeyNamesToKeymap(keymap, info) || + !CopyKeyAliasesToKeymap(keymap, info) || + !CopyLedNamesToKeymap(keymap, info)) + return false; + + keymap->keycodes_section_name = strdup_safe(info->name); + XkbEscapeMapName(keymap->keycodes_section_name); + return true; +} + +/***====================================================================***/ + +bool +CompileKeycodes(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge) +{ + KeyNamesInfo info; + + InitKeyNamesInfo(&info, keymap->ctx); + + HandleKeycodesFile(&info, file, merge); + if (info.errorCount != 0) + goto err_info; + + if (!CopyKeyNamesInfoToKeymap(keymap, &info)) + goto err_info; + + ClearKeyNamesInfo(&info); + return true; + +err_info: + ClearKeyNamesInfo(&info); + return false; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c new file mode 100644 index 0000000..8b9bda9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap-dump.c @@ -0,0 +1,664 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include "xkbcomp-priv.h" +#include "text.h" + +#define BUF_CHUNK_SIZE 4096 + +struct buf { + char *buf; + size_t size; + size_t alloc; +}; + +static bool +do_realloc(struct buf *buf, size_t at_least) +{ + char *new; + + buf->alloc += BUF_CHUNK_SIZE; + if (at_least >= BUF_CHUNK_SIZE) + buf->alloc += at_least; + + new = realloc(buf->buf, buf->alloc); + if (!new) + return false; + + buf->buf = new; + return true; +} + +ATTR_PRINTF(2, 3) static bool +check_write_buf(struct buf *buf, const char *fmt, ...) +{ + va_list args; + int printed; + size_t available; + + available = buf->alloc - buf->size; + va_start(args, fmt); + printed = vsnprintf(buf->buf + buf->size, available, fmt, args); + va_end(args); + + if (printed < 0) + goto err; + + if ((size_t) printed >= available) + if (!do_realloc(buf, printed)) + goto err; + + /* The buffer has enough space now. */ + + available = buf->alloc - buf->size; + va_start(args, fmt); + printed = vsnprintf(buf->buf + buf->size, available, fmt, args); + va_end(args); + + if (printed < 0 || (size_t) printed >= available) + goto err; + + buf->size += printed; + return true; + +err: + free(buf->buf); + buf->buf = NULL; + return false; +} + +#define write_buf(buf, ...) do { \ + if (!check_write_buf(buf, __VA_ARGS__)) \ + return false; \ +} while (0) + +static bool +write_vmods(struct xkb_keymap *keymap, struct buf *buf) +{ + const struct xkb_mod *mod; + xkb_mod_index_t num_vmods = 0; + + xkb_mods_foreach(mod, &keymap->mods) { + if (mod->type != MOD_VIRT) + continue; + + if (num_vmods == 0) + write_buf(buf, "\tvirtual_modifiers "); + else + write_buf(buf, ","); + write_buf(buf, "%s", xkb_atom_text(keymap->ctx, mod->name)); + num_vmods++; + } + + if (num_vmods > 0) + write_buf(buf, ";\n\n"); + + return true; +} + +static bool +write_keycodes(struct xkb_keymap *keymap, struct buf *buf) +{ + const struct xkb_key *key; + xkb_led_index_t idx; + const struct xkb_led *led; + + if (keymap->keycodes_section_name) + write_buf(buf, "xkb_keycodes \"%s\" {\n", + keymap->keycodes_section_name); + else + write_buf(buf, "xkb_keycodes {\n"); + + /* xkbcomp and X11 really want to see keymaps with a minimum of 8, and + * a maximum of at least 255, else XWayland really starts hating life. + * If this is a problem and people really need strictly bounded keymaps, + * we should probably control this with a flag. */ + write_buf(buf, "\tminimum = %u;\n", min(keymap->min_key_code, 8)); + write_buf(buf, "\tmaximum = %u;\n", max(keymap->max_key_code, 255)); + + xkb_keys_foreach(key, keymap) { + if (key->name == XKB_ATOM_NONE) + continue; + + write_buf(buf, "\t%-20s = %u;\n", + KeyNameText(keymap->ctx, key->name), key->keycode); + } + + xkb_leds_enumerate(idx, led, keymap) + if (led->name != XKB_ATOM_NONE) + write_buf(buf, "\tindicator %u = \"%s\";\n", + idx + 1, xkb_atom_text(keymap->ctx, led->name)); + + + for (unsigned i = 0; i < keymap->num_key_aliases; i++) + write_buf(buf, "\talias %-14s = %s;\n", + KeyNameText(keymap->ctx, keymap->key_aliases[i].alias), + KeyNameText(keymap->ctx, keymap->key_aliases[i].real)); + + write_buf(buf, "};\n\n"); + return true; +} + +static bool +write_types(struct xkb_keymap *keymap, struct buf *buf) +{ + if (keymap->types_section_name) + write_buf(buf, "xkb_types \"%s\" {\n", + keymap->types_section_name); + else + write_buf(buf, "xkb_types {\n"); + + write_vmods(keymap, buf); + + for (unsigned i = 0; i < keymap->num_types; i++) { + const struct xkb_key_type *type = &keymap->types[i]; + + write_buf(buf, "\ttype \"%s\" {\n", + xkb_atom_text(keymap->ctx, type->name)); + + write_buf(buf, "\t\tmodifiers= %s;\n", + ModMaskText(keymap->ctx, &keymap->mods, type->mods.mods)); + + for (unsigned j = 0; j < type->num_entries; j++) { + const char *str; + const struct xkb_key_type_entry *entry = &type->entries[j]; + + /* + * Printing level 1 entries is redundant, it's the default, + * unless there's preserve info. + */ + if (entry->level == 0 && entry->preserve.mods == 0) + continue; + + str = ModMaskText(keymap->ctx, &keymap->mods, entry->mods.mods); + write_buf(buf, "\t\tmap[%s]= Level%u;\n", + str, entry->level + 1); + + if (entry->preserve.mods) + write_buf(buf, "\t\tpreserve[%s]= %s;\n", + str, ModMaskText(keymap->ctx, &keymap->mods, + entry->preserve.mods)); + } + + for (xkb_level_index_t n = 0; n < type->num_levels; n++) + if (type->level_names[n]) + write_buf(buf, "\t\tlevel_name[Level%u]= \"%s\";\n", n + 1, + xkb_atom_text(keymap->ctx, type->level_names[n])); + + write_buf(buf, "\t};\n"); + } + + write_buf(buf, "};\n\n"); + return true; +} + +static bool +write_led_map(struct xkb_keymap *keymap, struct buf *buf, + const struct xkb_led *led) +{ + write_buf(buf, "\tindicator \"%s\" {\n", + xkb_atom_text(keymap->ctx, led->name)); + + if (led->which_groups) { + if (led->which_groups != XKB_STATE_LAYOUT_EFFECTIVE) { + write_buf(buf, "\t\twhichGroupState= %s;\n", + LedStateMaskText(keymap->ctx, led->which_groups)); + } + write_buf(buf, "\t\tgroups= 0x%02x;\n", + led->groups); + } + + if (led->which_mods) { + if (led->which_mods != XKB_STATE_MODS_EFFECTIVE) { + write_buf(buf, "\t\twhichModState= %s;\n", + LedStateMaskText(keymap->ctx, led->which_mods)); + } + write_buf(buf, "\t\tmodifiers= %s;\n", + ModMaskText(keymap->ctx, &keymap->mods, led->mods.mods)); + } + + if (led->ctrls) { + write_buf(buf, "\t\tcontrols= %s;\n", + ControlMaskText(keymap->ctx, led->ctrls)); + } + + write_buf(buf, "\t};\n"); + return true; +} + +static const char * +affect_lock_text(enum xkb_action_flags flags) +{ + switch (flags & (ACTION_LOCK_NO_LOCK | ACTION_LOCK_NO_UNLOCK)) { + case ACTION_LOCK_NO_UNLOCK: + return ",affect=lock"; + case ACTION_LOCK_NO_LOCK: + return ",affect=unlock"; + case ACTION_LOCK_NO_LOCK | ACTION_LOCK_NO_UNLOCK: + return ",affect=neither"; + } + return ""; +} + +static bool +write_action(struct xkb_keymap *keymap, struct buf *buf, + const union xkb_action *action, + const char *prefix, const char *suffix) +{ + const char *type; + const char *args = NULL; + + if (!prefix) + prefix = ""; + if (!suffix) + suffix = ""; + + type = ActionTypeText(action->type); + + switch (action->type) { + case ACTION_TYPE_MOD_LOCK: + case ACTION_TYPE_MOD_SET: + case ACTION_TYPE_MOD_LATCH: + if (action->mods.flags & ACTION_MODS_LOOKUP_MODMAP) + args = "modMapMods"; + else + args = ModMaskText(keymap->ctx, &keymap->mods, + action->mods.mods.mods); + write_buf(buf, "%s%s(modifiers=%s%s%s%s)%s", prefix, type, args, + (action->type != ACTION_TYPE_MOD_LOCK && (action->mods.flags & ACTION_LOCK_CLEAR)) ? ",clearLocks" : "", + (action->type != ACTION_TYPE_MOD_LOCK && (action->mods.flags & ACTION_LATCH_TO_LOCK)) ? ",latchToLock" : "", + (action->type == ACTION_TYPE_MOD_LOCK) ? affect_lock_text(action->mods.flags) : "", + suffix); + break; + + case ACTION_TYPE_GROUP_SET: + case ACTION_TYPE_GROUP_LATCH: + case ACTION_TYPE_GROUP_LOCK: + write_buf(buf, "%s%s(group=%s%d%s%s)%s", prefix, type, + (!(action->group.flags & ACTION_ABSOLUTE_SWITCH) && action->group.group > 0) ? "+" : "", + (action->group.flags & ACTION_ABSOLUTE_SWITCH) ? action->group.group + 1 : action->group.group, + (action->type != ACTION_TYPE_GROUP_LOCK && (action->group.flags & ACTION_LOCK_CLEAR)) ? ",clearLocks" : "", + (action->type != ACTION_TYPE_GROUP_LOCK && (action->group.flags & ACTION_LATCH_TO_LOCK)) ? ",latchToLock" : "", + suffix); + break; + + case ACTION_TYPE_TERMINATE: + write_buf(buf, "%s%s()%s", prefix, type, suffix); + break; + + case ACTION_TYPE_PTR_MOVE: + write_buf(buf, "%s%s(x=%s%d,y=%s%d%s)%s", prefix, type, + (!(action->ptr.flags & ACTION_ABSOLUTE_X) && action->ptr.x >= 0) ? "+" : "", + action->ptr.x, + (!(action->ptr.flags & ACTION_ABSOLUTE_Y) && action->ptr.y >= 0) ? "+" : "", + action->ptr.y, + (action->ptr.flags & ACTION_ACCEL) ? "" : ",!accel", + suffix); + break; + + case ACTION_TYPE_PTR_LOCK: + args = affect_lock_text(action->btn.flags); + /* fallthrough */ + case ACTION_TYPE_PTR_BUTTON: + write_buf(buf, "%s%s(button=", prefix, type); + if (action->btn.button > 0 && action->btn.button <= 5) + write_buf(buf, "%d", action->btn.button); + else + write_buf(buf, "default"); + if (action->btn.count) + write_buf(buf, ",count=%d", action->btn.count); + if (args) + write_buf(buf, "%s", args); + write_buf(buf, ")%s", suffix); + break; + + case ACTION_TYPE_PTR_DEFAULT: + write_buf(buf, "%s%s(", prefix, type); + write_buf(buf, "affect=button,button=%s%d", + (!(action->dflt.flags & ACTION_ABSOLUTE_SWITCH) && action->dflt.value >= 0) ? "+" : "", + action->dflt.value); + write_buf(buf, ")%s", suffix); + break; + + case ACTION_TYPE_SWITCH_VT: + write_buf(buf, "%s%s(screen=%s%d,%ssame)%s", prefix, type, + (!(action->screen.flags & ACTION_ABSOLUTE_SWITCH) && action->screen.screen >= 0) ? "+" : "", + action->screen.screen, + (action->screen.flags & ACTION_SAME_SCREEN) ? "" : "!", + suffix); + break; + + case ACTION_TYPE_CTRL_SET: + case ACTION_TYPE_CTRL_LOCK: + write_buf(buf, "%s%s(controls=%s%s)%s", prefix, type, + ControlMaskText(keymap->ctx, action->ctrls.ctrls), + (action->type == ACTION_TYPE_CTRL_LOCK) ? affect_lock_text(action->ctrls.flags) : "", + suffix); + break; + + case ACTION_TYPE_NONE: + write_buf(buf, "%sNoAction()%s", prefix, suffix); + break; + + default: + write_buf(buf, + "%s%s(type=0x%02x,data[0]=0x%02x,data[1]=0x%02x,data[2]=0x%02x,data[3]=0x%02x,data[4]=0x%02x,data[5]=0x%02x,data[6]=0x%02x)%s", + prefix, type, action->type, action->priv.data[0], + action->priv.data[1], action->priv.data[2], + action->priv.data[3], action->priv.data[4], + action->priv.data[5], action->priv.data[6], + suffix); + break; + } + + return true; +} + +static bool +write_compat(struct xkb_keymap *keymap, struct buf *buf) +{ + const struct xkb_led *led; + + if (keymap->compat_section_name) + write_buf(buf, "xkb_compatibility \"%s\" {\n", + keymap->compat_section_name); + else + write_buf(buf, "xkb_compatibility {\n"); + + write_vmods(keymap, buf); + + write_buf(buf, "\tinterpret.useModMapMods= AnyLevel;\n"); + write_buf(buf, "\tinterpret.repeat= False;\n"); + + for (unsigned i = 0; i < keymap->num_sym_interprets; i++) { + const struct xkb_sym_interpret *si = &keymap->sym_interprets[i]; + + write_buf(buf, "\tinterpret %s+%s(%s) {\n", + si->sym ? KeysymText(keymap->ctx, si->sym) : "Any", + SIMatchText(si->match), + ModMaskText(keymap->ctx, &keymap->mods, si->mods)); + + if (si->virtual_mod != XKB_MOD_INVALID) + write_buf(buf, "\t\tvirtualModifier= %s;\n", + ModIndexText(keymap->ctx, &keymap->mods, + si->virtual_mod)); + + if (si->level_one_only) + write_buf(buf, "\t\tuseModMapMods=level1;\n"); + + if (si->repeat) + write_buf(buf, "\t\trepeat= True;\n"); + + write_action(keymap, buf, &si->action, "\t\taction= ", ";\n"); + write_buf(buf, "\t};\n"); + } + + xkb_leds_foreach(led, keymap) + if (led->which_groups || led->groups || led->which_mods || + led->mods.mods || led->ctrls) + write_led_map(keymap, buf, led); + + write_buf(buf, "};\n\n"); + + return true; +} + +static bool +write_keysyms(struct xkb_keymap *keymap, struct buf *buf, + const struct xkb_key *key, xkb_layout_index_t group) +{ + for (xkb_level_index_t level = 0; level < XkbKeyNumLevels(key, group); + level++) { + const xkb_keysym_t *syms; + int num_syms; + + if (level != 0) + write_buf(buf, ", "); + + num_syms = xkb_keymap_key_get_syms_by_level(keymap, key->keycode, + group, level, &syms); + if (num_syms == 0) { + write_buf(buf, "%15s", "NoSymbol"); + } + else if (num_syms == 1) { + write_buf(buf, "%15s", KeysymText(keymap->ctx, syms[0])); + } + else { + write_buf(buf, "{ "); + for (int s = 0; s < num_syms; s++) { + if (s != 0) + write_buf(buf, ", "); + write_buf(buf, "%s", KeysymText(keymap->ctx, syms[s])); + } + write_buf(buf, " }"); + } + } + + return true; +} + +static bool +write_key(struct xkb_keymap *keymap, struct buf *buf, + const struct xkb_key *key) +{ + xkb_layout_index_t group; + bool simple = true; + bool explicit_types = false; + bool multi_type = false; + bool show_actions; + + write_buf(buf, "\tkey %-20s {", KeyNameText(keymap->ctx, key->name)); + + for (group = 0; group < key->num_groups; group++) { + if (key->groups[group].explicit_type) + explicit_types = true; + + if (group != 0 && key->groups[group].type != key->groups[0].type) + multi_type = true; + } + + if (explicit_types) { + const struct xkb_key_type *type; + simple = false; + + if (multi_type) { + for (group = 0; group < key->num_groups; group++) { + if (!key->groups[group].explicit_type) + continue; + + type = key->groups[group].type; + write_buf(buf, "\n\t\ttype[group%u]= \"%s\",", + group + 1, + xkb_atom_text(keymap->ctx, type->name)); + } + } + else { + type = key->groups[0].type; + write_buf(buf, "\n\t\ttype= \"%s\",", + xkb_atom_text(keymap->ctx, type->name)); + } + } + + if (key->explicit & EXPLICIT_REPEAT) { + if (key->repeats) + write_buf(buf, "\n\t\trepeat= Yes,"); + else + write_buf(buf, "\n\t\trepeat= No,"); + simple = false; + } + + if (key->vmodmap && (key->explicit & EXPLICIT_VMODMAP)) + write_buf(buf, "\n\t\tvirtualMods= %s,", + ModMaskText(keymap->ctx, &keymap->mods, key->vmodmap)); + + switch (key->out_of_range_group_action) { + case RANGE_SATURATE: + write_buf(buf, "\n\t\tgroupsClamp,"); + break; + + case RANGE_REDIRECT: + write_buf(buf, "\n\t\tgroupsRedirect= Group%u,", + key->out_of_range_group_number + 1); + break; + + default: + break; + } + + show_actions = (key->explicit & EXPLICIT_INTERP); + + if (key->num_groups > 1 || show_actions) + simple = false; + + if (simple) { + write_buf(buf, "\t[ "); + if (!write_keysyms(keymap, buf, key, 0)) + return false; + write_buf(buf, " ] };\n"); + } + else { + xkb_level_index_t level; + + for (group = 0; group < key->num_groups; group++) { + if (group != 0) + write_buf(buf, ","); + write_buf(buf, "\n\t\tsymbols[Group%u]= [ ", group + 1); + if (!write_keysyms(keymap, buf, key, group)) + return false; + write_buf(buf, " ]"); + if (show_actions) { + write_buf(buf, ",\n\t\tactions[Group%u]= [ ", group + 1); + for (level = 0; level < XkbKeyNumLevels(key, group); level++) { + if (level != 0) + write_buf(buf, ", "); + write_action(keymap, buf, + &key->groups[group].levels[level].action, + NULL, NULL); + } + write_buf(buf, " ]"); + } + } + write_buf(buf, "\n\t};\n"); + } + + return true; +} + +static bool +write_symbols(struct xkb_keymap *keymap, struct buf *buf) +{ + const struct xkb_key *key; + xkb_layout_index_t group; + xkb_mod_index_t i; + const struct xkb_mod *mod; + + if (keymap->symbols_section_name) + write_buf(buf, "xkb_symbols \"%s\" {\n", + keymap->symbols_section_name); + else + write_buf(buf, "xkb_symbols {\n"); + + for (group = 0; group < keymap->num_group_names; group++) + if (keymap->group_names[group]) + write_buf(buf, + "\tname[group%u]=\"%s\";\n", group + 1, + xkb_atom_text(keymap->ctx, keymap->group_names[group])); + if (group > 0) + write_buf(buf, "\n"); + + xkb_keys_foreach(key, keymap) + if (key->num_groups > 0) + write_key(keymap, buf, key); + + xkb_mods_enumerate(i, mod, &keymap->mods) { + bool had_any = false; + xkb_keys_foreach(key, keymap) { + if (key->modmap & (1u << i)) { + if (!had_any) + write_buf(buf, "\tmodifier_map %s { ", + xkb_atom_text(keymap->ctx, mod->name)); + write_buf(buf, "%s%s", + had_any ? ", " : "", + KeyNameText(keymap->ctx, key->name)); + had_any = true; + } + } + if (had_any) + write_buf(buf, " };\n"); + } + + write_buf(buf, "};\n\n"); + return true; +} + +static bool +write_keymap(struct xkb_keymap *keymap, struct buf *buf) +{ + return (check_write_buf(buf, "xkb_keymap {\n") && + write_keycodes(keymap, buf) && + write_types(keymap, buf) && + write_compat(keymap, buf) && + write_symbols(keymap, buf) && + check_write_buf(buf, "};\n")); +} + +char * +text_v1_keymap_get_as_string(struct xkb_keymap *keymap) +{ + struct buf buf = { NULL, 0, 0 }; + + if (!write_keymap(keymap, &buf)) { + free(buf.buf); + return NULL; + } + + return buf.buf; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c new file mode 100644 index 0000000..8b4693c --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keymap.c @@ -0,0 +1,301 @@ +/* + * Copyright © 2009 Dan Nicholson + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Dan Nicholson + * Daniel Stone + * Ran Benita + */ + +#include "xkbcomp-priv.h" + +static void +ComputeEffectiveMask(struct xkb_keymap *keymap, struct xkb_mods *mods) +{ + mods->mask = mod_mask_get_effective(keymap, mods->mods); +} + +static void +UpdateActionMods(struct xkb_keymap *keymap, union xkb_action *act, + xkb_mod_mask_t modmap) +{ + switch (act->type) { + case ACTION_TYPE_MOD_SET: + case ACTION_TYPE_MOD_LATCH: + case ACTION_TYPE_MOD_LOCK: + if (act->mods.flags & ACTION_MODS_LOOKUP_MODMAP) + act->mods.mods.mods = modmap; + ComputeEffectiveMask(keymap, &act->mods.mods); + break; + default: + break; + } +} + +static const struct xkb_sym_interpret default_interpret = { + .sym = XKB_KEY_NoSymbol, + .repeat = true, + .match = MATCH_ANY_OR_NONE, + .mods = 0, + .virtual_mod = XKB_MOD_INVALID, + .action = { .type = ACTION_TYPE_NONE }, +}; + +/** + * Find an interpretation which applies to this particular level, either by + * finding an exact match for the symbol and modifier combination, or a + * generic XKB_KEY_NoSymbol match. + */ +static const struct xkb_sym_interpret * +FindInterpForKey(struct xkb_keymap *keymap, const struct xkb_key *key, + xkb_layout_index_t group, xkb_level_index_t level) +{ + const xkb_keysym_t *syms; + int num_syms; + + num_syms = xkb_keymap_key_get_syms_by_level(keymap, key->keycode, group, + level, &syms); + if (num_syms == 0) + return NULL; + + /* + * There may be multiple matchings interprets; we should always return + * the most specific. Here we rely on compat.c to set up the + * sym_interprets array from the most specific to the least specific, + * such that when we find a match we return immediately. + */ + for (unsigned i = 0; i < keymap->num_sym_interprets; i++) { + const struct xkb_sym_interpret *interp = &keymap->sym_interprets[i]; + + xkb_mod_mask_t mods; + bool found = false; + + if ((num_syms > 1 || interp->sym != syms[0]) && + interp->sym != XKB_KEY_NoSymbol) + continue; + + if (interp->level_one_only && level != 0) + mods = 0; + else + mods = key->modmap; + + switch (interp->match) { + case MATCH_NONE: + found = !(interp->mods & mods); + break; + case MATCH_ANY_OR_NONE: + found = (!mods || (interp->mods & mods)); + break; + case MATCH_ANY: + found = (interp->mods & mods); + break; + case MATCH_ALL: + found = ((interp->mods & mods) == interp->mods); + break; + case MATCH_EXACTLY: + found = (interp->mods == mods); + break; + } + + if (found) + return interp; + } + + return &default_interpret; +} + +static bool +ApplyInterpsToKey(struct xkb_keymap *keymap, struct xkb_key *key) +{ + xkb_mod_mask_t vmodmap = 0; + xkb_layout_index_t group; + xkb_level_index_t level; + + /* If we've been told not to bind interps to this key, then don't. */ + if (key->explicit & EXPLICIT_INTERP) + return true; + + for (group = 0; group < key->num_groups; group++) { + for (level = 0; level < XkbKeyNumLevels(key, group); level++) { + const struct xkb_sym_interpret *interp; + + interp = FindInterpForKey(keymap, key, group, level); + if (!interp) + continue; + + /* Infer default key behaviours from the base level. */ + if (group == 0 && level == 0) + if (!(key->explicit & EXPLICIT_REPEAT) && interp->repeat) + key->repeats = true; + + if ((group == 0 && level == 0) || !interp->level_one_only) + if (interp->virtual_mod != XKB_MOD_INVALID) + vmodmap |= (1u << interp->virtual_mod); + + if (interp->action.type != ACTION_TYPE_NONE) + key->groups[group].levels[level].action = interp->action; + } + } + + if (!(key->explicit & EXPLICIT_VMODMAP)) + key->vmodmap = vmodmap; + + return true; +} + +/** + * This collects a bunch of disparate functions which was done in the server + * at various points that really should've been done within xkbcomp. Turns out + * your actions and types are a lot more useful when any of your modifiers + * other than Shift actually do something ... + */ +static bool +UpdateDerivedKeymapFields(struct xkb_keymap *keymap) +{ + struct xkb_key *key; + struct xkb_mod *mod; + struct xkb_led *led; + unsigned int i, j; + + /* Find all the interprets for the key and bind them to actions, + * which will also update the vmodmap. */ + xkb_keys_foreach(key, keymap) + if (!ApplyInterpsToKey(keymap, key)) + return false; + + /* Update keymap->mods, the virtual -> real mod mapping. */ + xkb_keys_foreach(key, keymap) + xkb_mods_enumerate(i, mod, &keymap->mods) + if (key->vmodmap & (1u << i)) + mod->mapping |= key->modmap; + + /* Now update the level masks for all the types to reflect the vmods. */ + for (i = 0; i < keymap->num_types; i++) { + ComputeEffectiveMask(keymap, &keymap->types[i].mods); + + for (j = 0; j < keymap->types[i].num_entries; j++) { + ComputeEffectiveMask(keymap, &keymap->types[i].entries[j].mods); + ComputeEffectiveMask(keymap, &keymap->types[i].entries[j].preserve); + } + } + + /* Update action modifiers. */ + xkb_keys_foreach(key, keymap) + for (i = 0; i < key->num_groups; i++) + for (j = 0; j < XkbKeyNumLevels(key, i); j++) + UpdateActionMods(keymap, &key->groups[i].levels[j].action, + key->modmap); + + /* Update vmod -> led maps. */ + xkb_leds_foreach(led, keymap) + ComputeEffectiveMask(keymap, &led->mods); + + /* Find maximum number of groups out of all keys in the keymap. */ + xkb_keys_foreach(key, keymap) + keymap->num_groups = MAX(keymap->num_groups, key->num_groups); + + return true; +} + +typedef bool (*compile_file_fn)(XkbFile *file, + struct xkb_keymap *keymap, + enum merge_mode merge); + +static const compile_file_fn compile_file_fns[LAST_KEYMAP_FILE_TYPE + 1] = { + [FILE_TYPE_KEYCODES] = CompileKeycodes, + [FILE_TYPE_TYPES] = CompileKeyTypes, + [FILE_TYPE_COMPAT] = CompileCompatMap, + [FILE_TYPE_SYMBOLS] = CompileSymbols, +}; + +bool +CompileKeymap(XkbFile *file, struct xkb_keymap *keymap, enum merge_mode merge) +{ + bool ok; + const char *main_name; + XkbFile *files[LAST_KEYMAP_FILE_TYPE + 1] = { NULL }; + enum xkb_file_type type; + struct xkb_context *ctx = keymap->ctx; + + main_name = file->name ? file->name : "(unnamed)"; + + /* Collect section files and check for duplicates. */ + for (file = (XkbFile *) file->defs; file; + file = (XkbFile *) file->common.next) { + if (file->file_type < FIRST_KEYMAP_FILE_TYPE || + file->file_type > LAST_KEYMAP_FILE_TYPE) { + log_err(ctx, "Cannot define %s in a keymap file\n", + xkb_file_type_to_string(file->file_type)); + continue; + } + + if (files[file->file_type]) { + log_err(ctx, + "More than one %s section in keymap file; " + "All sections after the first ignored\n", + xkb_file_type_to_string(file->file_type)); + continue; + } + + if (!file->topName) { + free(file->topName); + file->topName = strdup(main_name); + } + + files[file->file_type] = file; + } + + /* + * Check that all required section were provided. + * Report everything before failing. + */ + ok = true; + for (type = FIRST_KEYMAP_FILE_TYPE; + type <= LAST_KEYMAP_FILE_TYPE; + type++) { + if (files[type] == NULL) { + log_err(ctx, "Required section %s missing from keymap\n", + xkb_file_type_to_string(type)); + ok = false; + } + } + if (!ok) + return false; + + /* Compile sections. */ + for (type = FIRST_KEYMAP_FILE_TYPE; + type <= LAST_KEYMAP_FILE_TYPE; + type++) { + log_dbg(ctx, "Compiling %s \"%s\"\n", + xkb_file_type_to_string(type), files[type]->topName); + + ok = compile_file_fns[type](files[type], keymap, merge); + if (!ok) { + log_err(ctx, "Failed to compile %s\n", + xkb_file_type_to_string(type)); + return false; + } + } + + return UpdateDerivedKeymapFields(keymap); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c new file mode 100644 index 0000000..abab7fe --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.c @@ -0,0 +1,348 @@ +/* ANSI-C code produced by gperf version 3.0.4 */ +/* Command-line: gperf */ +/* Computed positions: -k'1-2,5' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to ." +#endif + + +#include "xkbcomp-priv.h" +#include "parser-priv.h" + +static unsigned int +keyword_gperf_hash(const char *str, unsigned int len); + +static const struct keyword_tok * +keyword_gperf_lookup(const char *str, unsigned int len); +struct keyword_tok { int name; int tok; }; +#include +/* maximum key range = 70, duplicates = 0 */ + +#ifndef GPERF_DOWNCASE +#define GPERF_DOWNCASE 1 +static unsigned char gperf_downcase[256] = + { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255 + }; +#endif + +#ifndef GPERF_CASE_STRCMP +#define GPERF_CASE_STRCMP 1 +static int +gperf_case_strcmp (register const char *s1, register const char *s2) +{ + for (;;) + { + unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; + unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; + if (c1 != 0 && c1 == c2) + continue; + return (int)c1 - (int)c2; + } +} +#endif + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +keyword_gperf_hash (register const char *str, register unsigned int len) +{ + static const unsigned char asso_values[] = + { + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 0, 73, 5, 36, 0, + 10, 1, 15, 15, 73, 0, 10, 20, 35, 20, + 50, 73, 10, 10, 5, 0, 15, 73, 0, 15, + 73, 73, 73, 73, 73, 73, 73, 0, 73, 5, + 36, 0, 10, 1, 15, 15, 73, 0, 10, 20, + 35, 20, 50, 73, 10, 10, 5, 0, 15, 73, + 0, 15, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 73, 73, 73, 73, 73 + }; + register int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[4]]; + /*FALLTHROUGH*/ + case 4: + case 3: + case 2: + hval += asso_values[(unsigned char)str[1]]; + /*FALLTHROUGH*/ + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval; +} + +struct stringpool_t + { + char stringpool_str3[sizeof("key")]; + char stringpool_str4[sizeof("keys")]; + char stringpool_str7[sizeof("augment")]; + char stringpool_str9[sizeof("text")]; + char stringpool_str10[sizeof("xkb_keymap")]; + char stringpool_str11[sizeof("keypad_keys")]; + char stringpool_str12[sizeof("xkb_keycodes")]; + char stringpool_str13[sizeof("xkb_geometry")]; + char stringpool_str14[sizeof("xkb_types")]; + char stringpool_str15[sizeof("xkb_compat")]; + char stringpool_str17[sizeof("replace")]; + char stringpool_str19[sizeof("xkb_compat_map")]; + char stringpool_str20[sizeof("xkb_layout")]; + char stringpool_str21[sizeof("xkb_symbols")]; + char stringpool_str22[sizeof("xkb_compatibility")]; + char stringpool_str23[sizeof("xkb_semantics")]; + char stringpool_str24[sizeof("type")]; + char stringpool_str25[sizeof("alias")]; + char stringpool_str26[sizeof("xkb_compatibility_map")]; + char stringpool_str27[sizeof("alphanumeric_keys")]; + char stringpool_str28[sizeof("function_keys")]; + char stringpool_str29[sizeof("alternate")]; + char stringpool_str30[sizeof("shape")]; + char stringpool_str31[sizeof("action")]; + char stringpool_str32[sizeof("section")]; + char stringpool_str33[sizeof("row")]; + char stringpool_str34[sizeof("logo")]; + char stringpool_str35[sizeof("alternate_group")]; + char stringpool_str36[sizeof("hidden")]; + char stringpool_str37[sizeof("virtual")]; + char stringpool_str42[sizeof("outline")]; + char stringpool_str43[sizeof("default")]; + char stringpool_str46[sizeof("modmap")]; + char stringpool_str47[sizeof("virtual_modifiers")]; + char stringpool_str52[sizeof("overlay")]; + char stringpool_str53[sizeof("override")]; + char stringpool_str57[sizeof("include")]; + char stringpool_str62[sizeof("modifier_map")]; + char stringpool_str63[sizeof("modifier_keys")]; + char stringpool_str64[sizeof("indicator")]; + char stringpool_str66[sizeof("group")]; + char stringpool_str67[sizeof("mod_map")]; + char stringpool_str69[sizeof("interpret")]; + char stringpool_str71[sizeof("solid")]; + char stringpool_str72[sizeof("partial")]; + }; +static const struct stringpool_t stringpool_contents = + { + "key", + "keys", + "augment", + "text", + "xkb_keymap", + "keypad_keys", + "xkb_keycodes", + "xkb_geometry", + "xkb_types", + "xkb_compat", + "replace", + "xkb_compat_map", + "xkb_layout", + "xkb_symbols", + "xkb_compatibility", + "xkb_semantics", + "type", + "alias", + "xkb_compatibility_map", + "alphanumeric_keys", + "function_keys", + "alternate", + "shape", + "action", + "section", + "row", + "logo", + "alternate_group", + "hidden", + "virtual", + "outline", + "default", + "modmap", + "virtual_modifiers", + "overlay", + "override", + "include", + "modifier_map", + "modifier_keys", + "indicator", + "group", + "mod_map", + "interpret", + "solid", + "partial" + }; +#define stringpool ((const char *) &stringpool_contents) +#ifdef __GNUC__ +__inline +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__ +__attribute__ ((__gnu_inline__)) +#endif +#endif +const struct keyword_tok * +keyword_gperf_lookup (register const char *str, register unsigned int len) +{ + enum + { + TOTAL_KEYWORDS = 45, + MIN_WORD_LENGTH = 3, + MAX_WORD_LENGTH = 21, + MIN_HASH_VALUE = 3, + MAX_HASH_VALUE = 72 + }; + + static const struct keyword_tok wordlist[] = + { + {-1}, {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str3, KEY}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str4, KEYS}, + {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str7, AUGMENT}, + {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str9, TEXT}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str10, XKB_KEYMAP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str11, KEYPAD_KEYS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str12, XKB_KEYCODES}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str13, XKB_GEOMETRY}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str14, XKB_TYPES}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str15, XKB_COMPATMAP}, + {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str17, REPLACE}, + {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str19, XKB_COMPATMAP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str20, XKB_LAYOUT}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str21, XKB_SYMBOLS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str22, XKB_COMPATMAP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str23, XKB_SEMANTICS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str24, TYPE}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str25, ALIAS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str26, XKB_COMPATMAP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str27, ALPHANUMERIC_KEYS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str28, FUNCTION_KEYS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str29, ALTERNATE}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str30, SHAPE}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str31, ACTION_TOK}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str32, SECTION}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str33, ROW}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str34, LOGO}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str35, ALTERNATE_GROUP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str36, HIDDEN}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str37, VIRTUAL}, + {-1}, {-1}, {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str42, OUTLINE}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str43, DEFAULT}, + {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str46, MODIFIER_MAP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str47, VIRTUAL_MODS}, + {-1}, {-1}, {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str52, OVERLAY}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str53, OVERRIDE}, + {-1}, {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str57, INCLUDE}, + {-1}, {-1}, {-1}, {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str62, MODIFIER_MAP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str63, MODIFIER_KEYS}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str64, INDICATOR}, + {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str66, GROUP}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str67, MODIFIER_MAP}, + {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str69, INTERPRET}, + {-1}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str71, SOLID}, + {(int)(long)&((struct stringpool_t *)0)->stringpool_str72, PARTIAL} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register int key = keyword_gperf_hash (str, len); + + if (key <= MAX_HASH_VALUE && key >= 0) + { + register int o = wordlist[key].name; + if (o >= 0) + { + register const char *s = o + stringpool; + + if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s)) + return &wordlist[key]; + } + } + } + return 0; +} + + +int +keyword_to_token(const char *string, unsigned int len) +{ + const struct keyword_tok *kt = keyword_gperf_lookup(string, len); + if (!kt) + return -1; + return kt->tok; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.gperf b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.gperf new file mode 100644 index 0000000..5c64144 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/keywords.gperf @@ -0,0 +1,78 @@ +%{ +#include "xkbcomp-priv.h" +#include "parser-priv.h" + +static unsigned int +keyword_gperf_hash(const char *str, unsigned int len); + +static const struct keyword_tok * +keyword_gperf_lookup(const char *str, unsigned int len); +%} + +struct keyword_tok { int name; int tok; }; +%language=ANSI-C +%define hash-function-name keyword_gperf_hash +%define lookup-function-name keyword_gperf_lookup +%readonly-tables +%enum +%includes +%struct-type +%pic +%ignore-case + +%% +action, ACTION_TOK +alias, ALIAS +alphanumeric_keys, ALPHANUMERIC_KEYS +alternate_group, ALTERNATE_GROUP +alternate, ALTERNATE +augment, AUGMENT +default, DEFAULT +function_keys, FUNCTION_KEYS +group, GROUP +hidden, HIDDEN +include, INCLUDE +indicator, INDICATOR +interpret, INTERPRET +keypad_keys, KEYPAD_KEYS +key, KEY +keys, KEYS +logo, LOGO +modifier_keys, MODIFIER_KEYS +modifier_map, MODIFIER_MAP +mod_map, MODIFIER_MAP +modmap, MODIFIER_MAP +outline, OUTLINE +overlay, OVERLAY +override, OVERRIDE +partial, PARTIAL +replace, REPLACE +row, ROW +section, SECTION +shape, SHAPE +solid, SOLID +text, TEXT +type, TYPE +virtual_modifiers, VIRTUAL_MODS +virtual, VIRTUAL +xkb_compatibility_map, XKB_COMPATMAP +xkb_compatibility, XKB_COMPATMAP +xkb_compat_map, XKB_COMPATMAP +xkb_compat, XKB_COMPATMAP +xkb_geometry, XKB_GEOMETRY +xkb_keycodes, XKB_KEYCODES +xkb_keymap, XKB_KEYMAP +xkb_layout, XKB_LAYOUT +xkb_semantics, XKB_SEMANTICS +xkb_symbols, XKB_SYMBOLS +xkb_types, XKB_TYPES +%% + +int +keyword_to_token(const char *string, unsigned int len) +{ + const struct keyword_tok *kt = keyword_gperf_lookup(string, len); + if (!kt) + return -1; + return kt->tok; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser-priv.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser-priv.h new file mode 100644 index 0000000..76b5047 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser-priv.h @@ -0,0 +1,44 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_PARSER_PRIV_H +#define XKBCOMP_PARSER_PRIV_H + +struct parser_param; +struct scanner; + +#include "parser.h" + +int +_xkbcommon_lex(YYSTYPE *yylval, struct scanner *scanner); + +XkbFile * +parse(struct xkb_context *ctx, struct scanner *scanner, const char *map); + +int +keyword_to_token(const char *string, unsigned int len); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c new file mode 100644 index 0000000..79a9124 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.c @@ -0,0 +1,3460 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison implementation for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "3.0.2" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Push parsers. */ +#define YYPUSH 0 + +/* Pull parsers. */ +#define YYPULL 1 + + +/* Substitute the variable and function names. */ +#define yyparse _xkbcommon_parse +#define yylex _xkbcommon_lex +#define yyerror _xkbcommon_error +#define yydebug _xkbcommon_debug +#define yynerrs _xkbcommon_nerrs + + +/* Copy the first part of user declarations. */ +#line 33 "src/xkbcomp/parser.y" /* yacc.c:339 */ + +#include "xkbcomp-priv.h" +#include "ast-build.h" +#include "parser-priv.h" +#include "scanner-utils.h" + +struct parser_param { + struct xkb_context *ctx; + struct scanner *scanner; + XkbFile *rtrn; + bool more_maps; +}; + +#define parser_err(param, fmt, ...) \ + scanner_err((param)->scanner, fmt, ##__VA_ARGS__) + +#define parser_warn(param, fmt, ...) \ + scanner_warn((param)->scanner, fmt, ##__VA_ARGS__) + +static void +_xkbcommon_error(struct parser_param *param, const char *msg) +{ + parser_err(param, "%s", msg); +} + +static bool +resolve_keysym(const char *name, xkb_keysym_t *sym_rtrn) +{ + xkb_keysym_t sym; + + if (!name || istreq(name, "any") || istreq(name, "nosymbol")) { + *sym_rtrn = XKB_KEY_NoSymbol; + return true; + } + + if (istreq(name, "none") || istreq(name, "voidsymbol")) { + *sym_rtrn = XKB_KEY_VoidSymbol; + return true; + } + + sym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS); + if (sym != XKB_KEY_NoSymbol) { + *sym_rtrn = sym; + return true; + } + + return false; +} + +#define param_scanner param->scanner + +#line 124 "src/xkbcomp/parser.c" /* yacc.c:339 */ + +# ifndef YY_NULLPTR +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +/* In a future release of Bison, this section will be replaced + by #include "y.tab.h". */ +#ifndef YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED +# define YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int _xkbcommon_debug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + END_OF_FILE = 0, + ERROR_TOK = 255, + XKB_KEYMAP = 1, + XKB_KEYCODES = 2, + XKB_TYPES = 3, + XKB_SYMBOLS = 4, + XKB_COMPATMAP = 5, + XKB_GEOMETRY = 6, + XKB_SEMANTICS = 7, + XKB_LAYOUT = 8, + INCLUDE = 10, + OVERRIDE = 11, + AUGMENT = 12, + REPLACE = 13, + ALTERNATE = 14, + VIRTUAL_MODS = 20, + TYPE = 21, + INTERPRET = 22, + ACTION_TOK = 23, + KEY = 24, + ALIAS = 25, + GROUP = 26, + MODIFIER_MAP = 27, + INDICATOR = 28, + SHAPE = 29, + KEYS = 30, + ROW = 31, + SECTION = 32, + OVERLAY = 33, + TEXT = 34, + OUTLINE = 35, + SOLID = 36, + LOGO = 37, + VIRTUAL = 38, + EQUALS = 40, + PLUS = 41, + MINUS = 42, + DIVIDE = 43, + TIMES = 44, + OBRACE = 45, + CBRACE = 46, + OPAREN = 47, + CPAREN = 48, + OBRACKET = 49, + CBRACKET = 50, + DOT = 51, + COMMA = 52, + SEMI = 53, + EXCLAM = 54, + INVERT = 55, + STRING = 60, + INTEGER = 61, + FLOAT = 62, + IDENT = 63, + KEYNAME = 64, + PARTIAL = 70, + DEFAULT = 71, + HIDDEN = 72, + ALPHANUMERIC_KEYS = 73, + MODIFIER_KEYS = 74, + KEYPAD_KEYS = 75, + FUNCTION_KEYS = 76, + ALTERNATE_GROUP = 77 + }; +#endif +/* Tokens. */ +#define END_OF_FILE 0 +#define ERROR_TOK 255 +#define XKB_KEYMAP 1 +#define XKB_KEYCODES 2 +#define XKB_TYPES 3 +#define XKB_SYMBOLS 4 +#define XKB_COMPATMAP 5 +#define XKB_GEOMETRY 6 +#define XKB_SEMANTICS 7 +#define XKB_LAYOUT 8 +#define INCLUDE 10 +#define OVERRIDE 11 +#define AUGMENT 12 +#define REPLACE 13 +#define ALTERNATE 14 +#define VIRTUAL_MODS 20 +#define TYPE 21 +#define INTERPRET 22 +#define ACTION_TOK 23 +#define KEY 24 +#define ALIAS 25 +#define GROUP 26 +#define MODIFIER_MAP 27 +#define INDICATOR 28 +#define SHAPE 29 +#define KEYS 30 +#define ROW 31 +#define SECTION 32 +#define OVERLAY 33 +#define TEXT 34 +#define OUTLINE 35 +#define SOLID 36 +#define LOGO 37 +#define VIRTUAL 38 +#define EQUALS 40 +#define PLUS 41 +#define MINUS 42 +#define DIVIDE 43 +#define TIMES 44 +#define OBRACE 45 +#define CBRACE 46 +#define OPAREN 47 +#define CPAREN 48 +#define OBRACKET 49 +#define CBRACKET 50 +#define DOT 51 +#define COMMA 52 +#define SEMI 53 +#define EXCLAM 54 +#define INVERT 55 +#define STRING 60 +#define INTEGER 61 +#define FLOAT 62 +#define IDENT 63 +#define KEYNAME 64 +#define PARTIAL 70 +#define DEFAULT 71 +#define HIDDEN 72 +#define ALPHANUMERIC_KEYS 73 +#define MODIFIER_KEYS 74 +#define KEYPAD_KEYS 75 +#define FUNCTION_KEYS 76 +#define ALTERNATE_GROUP 77 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 162 "src/xkbcomp/parser.y" /* yacc.c:355 */ + + int ival; + int64_t num; + enum xkb_file_type file_type; + char *str; + xkb_atom_t atom; + enum merge_mode merge; + enum xkb_map_flags mapFlags; + xkb_keysym_t keysym; + ParseCommon *any; + ExprDef *expr; + VarDef *var; + VModDef *vmod; + InterpDef *interp; + KeyTypeDef *keyType; + SymbolsDef *syms; + ModMapDef *modMask; + GroupCompatDef *groupCompat; + LedMapDef *ledMap; + LedNameDef *ledName; + KeycodeDef *keyCode; + KeyAliasDef *keyAlias; + void *geom; + XkbFile *file; + +#line 320 "src/xkbcomp/parser.c" /* yacc.c:355 */ +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + + +int _xkbcommon_parse (struct parser_param *param); + +#endif /* !YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED */ + +/* Copy the second part of user declarations. */ + +#line 334 "src/xkbcomp/parser.c" /* yacc.c:358 */ + +#ifdef short +# undef short +#endif + +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif + +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#else +typedef signed char yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# else +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) +# endif +# endif +# ifndef YY_ +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef YY_ATTRIBUTE +# if (defined __GNUC__ \ + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) +# else +# define YY_ATTRIBUTE(Spec) /* empty */ +# endif +#endif + +#ifndef YY_ATTRIBUTE_PURE +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) +#endif + +#if !defined _Noreturn \ + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) +# if defined _MSC_VER && 1200 <= _MSC_VER +# define _Noreturn __declspec (noreturn) +# else +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(E) ((void) (E)) +#else +# define YYUSE(E) /* empty */ +#endif + +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else +# define YY_INITIAL_VALUE(Value) Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca +# else +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# include /* INFRINGES ON USER NAME SPACE */ + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's 'empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif +# else +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) +# include /* INFRINGES ON USER NAME SPACE */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined EXIT_SUCCESS +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined EXIT_SUCCESS +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# endif +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ + + +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + yytype_int16 yyss_alloc; + YYSTYPE yyvs_alloc; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) + +# define YYCOPY_NEEDED 1 + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (0) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 16 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 735 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 65 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 72 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 184 +/* YYNSTATES -- Number of states. */ +#define YYNSTATES 334 + +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned + by yylex, with out-of-bounds checking. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 257 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, without out-of-bounds checking. */ +static const yytype_uint8 yytranslate[] = +{ + 0, 4, 5, 6, 7, 8, 9, 10, 11, 2, + 12, 13, 14, 15, 16, 2, 2, 2, 2, 2, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 2, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 2, 2, 2, 2, + 52, 53, 54, 55, 56, 2, 2, 2, 2, 2, + 57, 58, 59, 60, 61, 62, 63, 64, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 3, 1, 2 +}; + +#if YYDEBUG + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +static const yytype_uint16 yyrline[] = +{ + 0, 241, 241, 243, 245, 249, 255, 256, 257, 260, + 268, 272, 287, 288, 289, 290, 291, 294, 295, 298, + 299, 302, 303, 304, 305, 306, 307, 308, 309, 312, + 314, 317, 322, 327, 332, 337, 342, 347, 352, 357, + 362, 367, 372, 373, 374, 375, 382, 384, 386, 390, + 394, 398, 402, 405, 409, 411, 415, 421, 423, 427, + 430, 434, 440, 446, 449, 451, 454, 455, 456, 457, + 458, 461, 463, 467, 471, 475, 479, 481, 485, 487, + 491, 495, 496, 499, 501, 503, 505, 507, 511, 512, + 515, 516, 520, 521, 524, 526, 530, 534, 535, 538, + 541, 543, 547, 549, 551, 555, 557, 561, 565, 569, + 570, 571, 572, 575, 576, 579, 581, 583, 585, 587, + 589, 591, 593, 595, 597, 599, 603, 604, 607, 608, + 609, 610, 611, 621, 622, 625, 628, 632, 634, 636, + 638, 640, 642, 646, 648, 650, 652, 654, 656, 658, + 660, 664, 667, 671, 675, 677, 679, 681, 685, 687, + 689, 691, 695, 696, 699, 701, 703, 705, 709, 713, + 719, 720, 740, 741, 744, 745, 748, 751, 754, 757, + 758, 761, 764, 765, 768 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE || 0 +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "END_OF_FILE", "error", "$undefined", "ERROR_TOK", "XKB_KEYMAP", + "XKB_KEYCODES", "XKB_TYPES", "XKB_SYMBOLS", "XKB_COMPATMAP", + "XKB_GEOMETRY", "XKB_SEMANTICS", "XKB_LAYOUT", "INCLUDE", "OVERRIDE", + "AUGMENT", "REPLACE", "ALTERNATE", "VIRTUAL_MODS", "TYPE", "INTERPRET", + "ACTION_TOK", "KEY", "ALIAS", "GROUP", "MODIFIER_MAP", "INDICATOR", + "SHAPE", "KEYS", "ROW", "SECTION", "OVERLAY", "TEXT", "OUTLINE", "SOLID", + "LOGO", "VIRTUAL", "EQUALS", "PLUS", "MINUS", "DIVIDE", "TIMES", + "OBRACE", "CBRACE", "OPAREN", "CPAREN", "OBRACKET", "CBRACKET", "DOT", + "COMMA", "SEMI", "EXCLAM", "INVERT", "STRING", "INTEGER", "FLOAT", + "IDENT", "KEYNAME", "PARTIAL", "DEFAULT", "HIDDEN", "ALPHANUMERIC_KEYS", + "MODIFIER_KEYS", "KEYPAD_KEYS", "FUNCTION_KEYS", "ALTERNATE_GROUP", + "$accept", "XkbFile", "XkbCompositeMap", "XkbCompositeType", + "XkbMapConfigList", "XkbMapConfig", "FileType", "OptFlags", "Flags", + "Flag", "DeclList", "Decl", "VarDecl", "KeyNameDecl", "KeyAliasDecl", + "VModDecl", "VModDefList", "VModDef", "InterpretDecl", "InterpretMatch", + "VarDeclList", "KeyTypeDecl", "SymbolsDecl", "SymbolsBody", + "SymbolsVarDecl", "ArrayInit", "GroupCompatDecl", "ModMapDecl", + "LedMapDecl", "LedNameDecl", "ShapeDecl", "SectionDecl", "SectionBody", + "SectionBodyItem", "RowBody", "RowBodyItem", "Keys", "Key", + "OverlayDecl", "OverlayKeyList", "OverlayKey", "OutlineList", + "OutlineInList", "CoordList", "Coord", "DoodadDecl", "DoodadType", + "FieldSpec", "Element", "OptMergeMode", "MergeMode", "OptExprList", + "ExprList", "Expr", "Term", "ActionList", "Action", "Lhs", "Terminal", + "OptKeySymList", "KeySymList", "KeySyms", "KeySym", "SignedNumber", + "Number", "Float", "Integer", "KeyCode", "Ident", "String", "OptMapName", + "MapName", YY_NULLPTR +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[NUM] -- (External) token number corresponding to the + (internal) symbol number NUM (which must be that of a token). */ +static const yytype_uint16 yytoknum[] = +{ + 0, 256, 257, 255, 1, 2, 3, 4, 5, 6, + 7, 8, 10, 11, 12, 13, 14, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 60, 61, 62, 63, 64, 70, 71, 72, + 73, 74, 75, 76, 77 +}; +# endif + +#define YYPACT_NINF -182 + +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-182))) + +#define YYTABLE_NINF -180 + +#define yytable_value_is_error(Yytable_value) \ + 0 + + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +static const yytype_int16 yypact[] = +{ + 176, -182, -182, -182, -182, -182, -182, -182, -182, -182, + 6, -182, -182, 271, 227, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -38, -38, -182, -182, -24, + -182, 33, 227, -182, 210, -182, 353, 44, 5, -182, + -182, -182, -182, -182, -182, 32, -182, 13, 41, -182, + -182, -48, 55, 11, -182, 79, 87, 58, -48, -2, + 55, -182, 55, 72, -182, -182, -182, 107, -48, -182, + 110, -182, -182, -182, -182, -182, -182, -182, -182, -182, + -182, -182, -182, -182, -182, -182, 55, -18, -182, 127, + 121, -182, 66, -182, 138, -182, 136, -182, -182, -182, + 144, 147, -182, 152, 180, 182, 178, 184, 187, 188, + 190, 58, 198, 201, 214, 367, 677, 367, -182, -48, + -182, 367, 663, 663, 367, 494, 200, 367, 367, 367, + 663, 68, 449, 223, -182, -182, 212, 663, -182, -182, + -182, -182, -182, -182, -182, -182, -182, 367, 367, 367, + 367, 367, -182, -182, 57, 157, -182, 224, -182, -182, + -182, -182, -182, 218, 91, -182, 333, -182, 509, 537, + 333, 552, -48, 1, -182, -182, 228, 40, 216, 143, + 70, 333, 150, 593, 247, -30, 97, -182, 105, -182, + 261, 55, 259, 55, -182, -182, 408, -182, -182, -182, + 367, -182, 608, -182, -182, -182, 287, -182, -182, 367, + 367, 367, 367, 367, -182, 367, 367, -182, 252, -182, + 253, 264, 24, 269, 272, 163, -182, 273, 270, -182, + -182, -182, 280, 494, 285, -182, -182, 283, 367, -182, + 284, 112, 8, -182, -182, 294, -182, 299, -36, 304, + 247, 326, 649, 279, 307, -182, 204, 316, -182, 322, + 320, 111, 111, -182, -182, 333, 211, -182, -182, 116, + 367, -182, 677, -182, 24, -182, -182, -182, 333, -182, + 333, -182, -182, -182, -30, -182, -182, -182, -182, 247, + 333, 334, -182, 466, -182, 318, -182, -182, -182, -182, + -182, -182, 339, -182, -182, -182, 343, 120, 14, 345, + -182, 361, 124, -182, -182, -182, -182, 367, -182, 131, + -182, -182, 344, 350, 318, 166, 352, 14, -182, -182, + -182, -182, -182, -182 +}; + + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE does not specify something else to do. Zero + means the default is an error. */ +static const yytype_uint8 yydefact[] = +{ + 18, 4, 21, 22, 23, 24, 25, 26, 27, 28, + 0, 2, 3, 0, 17, 20, 1, 6, 12, 13, + 15, 14, 16, 7, 8, 183, 183, 19, 184, 0, + 182, 0, 18, 30, 18, 10, 0, 127, 0, 9, + 128, 130, 129, 131, 132, 0, 29, 0, 126, 5, + 11, 0, 117, 116, 115, 118, 0, 119, 120, 121, + 122, 123, 124, 125, 110, 111, 112, 0, 0, 179, + 0, 180, 31, 34, 35, 32, 33, 36, 37, 39, + 38, 40, 41, 42, 43, 44, 0, 154, 114, 0, + 113, 45, 0, 53, 54, 181, 0, 170, 177, 169, + 0, 58, 171, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 47, 0, + 51, 0, 0, 0, 0, 65, 0, 0, 0, 0, + 0, 0, 0, 0, 48, 178, 0, 0, 117, 116, + 118, 119, 120, 121, 122, 124, 125, 0, 0, 0, + 0, 0, 176, 161, 154, 0, 142, 147, 149, 160, + 159, 113, 158, 155, 0, 52, 55, 60, 0, 0, + 57, 163, 0, 0, 64, 70, 0, 113, 0, 0, + 0, 136, 0, 0, 0, 0, 0, 101, 0, 106, + 0, 121, 123, 0, 84, 86, 0, 82, 87, 85, + 0, 49, 0, 144, 147, 143, 0, 145, 146, 134, + 0, 0, 0, 0, 156, 0, 0, 46, 0, 59, + 0, 170, 0, 169, 0, 0, 152, 0, 162, 167, + 166, 69, 0, 0, 0, 50, 73, 0, 0, 76, + 0, 0, 0, 175, 174, 0, 173, 0, 0, 0, + 0, 0, 0, 0, 0, 81, 0, 0, 150, 0, + 133, 138, 139, 137, 140, 141, 0, 61, 56, 0, + 134, 72, 0, 71, 0, 62, 63, 67, 66, 74, + 135, 75, 102, 172, 0, 78, 100, 79, 105, 0, + 104, 0, 91, 0, 89, 0, 80, 77, 108, 148, + 157, 168, 0, 151, 165, 164, 0, 0, 0, 0, + 88, 0, 0, 98, 153, 107, 103, 0, 94, 0, + 93, 83, 0, 0, 0, 0, 0, 0, 99, 96, + 97, 95, 90, 92 +}; + + /* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = +{ + -182, -182, -182, -182, -182, 181, -182, 402, -182, 389, + -182, -182, -35, -182, -182, -182, -182, 288, -182, -182, + -50, -182, -182, -182, 173, 174, -182, -182, 362, -182, + -182, -182, -182, 215, -182, 119, -182, 86, -182, -182, + 90, -182, 167, -181, 185, 369, -182, -27, -182, -182, + -182, 154, -126, 83, 76, -182, 158, -31, -182, -182, + 221, 170, -52, 161, 205, -182, -44, -182, -47, -34, + 420, -182 +}; + + /* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = +{ + -1, 10, 11, 25, 34, 12, 26, 36, 14, 15, + 37, 46, 167, 73, 74, 75, 92, 93, 76, 100, + 168, 77, 78, 173, 174, 175, 79, 80, 195, 82, + 83, 84, 196, 197, 293, 294, 319, 320, 198, 312, + 313, 186, 187, 188, 189, 199, 86, 154, 88, 47, + 48, 259, 260, 181, 156, 225, 226, 157, 158, 227, + 228, 229, 230, 245, 246, 159, 160, 136, 161, 162, + 29, 30 +}; + + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule whose + number is the opposite. If YYTABLE_NINF, syntax error. */ +static const yytype_int16 yytable[] = +{ + 90, 101, 180, 241, 94, 184, 16, 69, 242, 102, + 71, 106, 72, 105, 28, 107, 89, 32, 96, 69, + 87, 112, 71, 243, 244, 108, 109, 115, 110, 116, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 97, 61, 62, 232, 63, 64, 65, 66, 67, 233, + 95, 98, 114, 97, 49, 317, 40, 41, 42, 43, + 44, 243, 244, 68, 98, 222, 99, 133, 69, 70, + 318, 71, 94, 169, 33, 90, 90, 98, 177, 99, + 183, 50, -68, 90, 190, 90, 45, 202, -68, 163, + 90, 89, 89, 91, 176, 87, 87, 194, 87, 89, + 209, 89, 115, 87, 116, 87, 89, 95, 307, 184, + 87, 98, 237, 185, 119, 120, 204, 204, 238, 204, + 204, 90, 90, 69, -109, 231, 71, 102, 210, 211, + 212, 213, 111, 219, 219, 103, 90, 89, 89, 247, + 217, 87, 87, 104, 224, 248, 113, 249, 219, 90, + 212, 213, 89, 250, 282, 90, 87, 108, 301, 253, + 250, 194, 316, 117, 274, 89, 323, 219, 250, 87, + 118, 89, 324, 326, 121, 87, 1, 122, 102, 327, + 210, 211, 212, 213, 124, 123, 177, 210, 211, 212, + 213, 325, 236, 125, 210, 211, 212, 213, 155, 239, + 164, 190, 176, 214, 166, 90, 87, 170, 331, 271, + 179, 272, 182, 35, 238, 39, 126, 292, 127, 128, + 129, 89, 305, 203, 205, 87, 207, 208, 130, 131, + 102, 132, 206, 2, 3, 4, 5, 6, 7, 8, + 9, 210, 211, 212, 213, 224, 90, 134, 210, 211, + 212, 213, 38, 297, 135, 137, 178, 300, 292, 200, + 215, 201, 89, 216, 234, 235, 87, 2, 3, 4, + 5, 6, 7, 8, 9, 17, 18, 19, 20, 21, + 22, 23, 24, 256, 2, 3, 4, 5, 6, 7, + 8, 9, 185, 261, 262, 263, 264, 251, 265, 266, + 252, 267, 268, 138, 139, 54, 140, -124, 141, 142, + 143, 144, -179, 61, 145, 270, 146, 278, 274, 273, + 295, 280, 147, 148, 210, 211, 212, 213, 149, 275, + 171, 258, 279, 281, 290, 150, 151, 95, 98, 152, + 69, 153, 284, 71, 138, 139, 54, 140, 285, 141, + 142, 143, 144, 287, 61, 145, 296, 146, 18, 19, + 20, 21, 22, 147, 148, 298, 299, 289, 238, 149, + 210, 211, 212, 213, 311, 308, 150, 151, 95, 98, + 152, 69, 153, 314, 71, 138, 139, 54, 140, 315, + 141, 142, 143, 144, 321, 61, 145, 322, 146, 329, + 328, 332, 13, 27, 147, 148, 276, 165, 277, 81, + 149, 255, 310, 333, 330, 286, 85, 150, 151, 95, + 98, 152, 69, 153, 302, 71, 138, 139, 54, 140, + 303, 141, 142, 191, 144, 288, 192, 145, 193, 63, + 64, 65, 66, 269, 304, 306, 31, 283, 0, 0, + 254, 0, 0, 0, 0, 0, 0, 0, 68, 0, + 0, 0, 0, 69, 0, 0, 71, 138, 139, 54, + 140, 0, 141, 142, 191, 144, 0, 192, 145, 193, + 63, 64, 65, 66, 138, 139, 54, 140, 0, 141, + 142, 143, 144, 291, 61, 145, 0, 146, 0, 68, + 0, 0, 0, 0, 69, 0, 0, 71, 309, 0, + 0, 0, 138, 139, 54, 140, 68, 141, 142, 143, + 144, 69, 61, 145, 71, 146, 0, 138, 139, 54, + 140, 0, 141, 142, 143, 144, 0, 61, 145, 171, + 146, 0, 0, 0, 172, 0, 0, 0, 0, 69, + 0, 218, 71, 0, 0, 138, 139, 54, 140, 68, + 141, 142, 143, 144, 69, 61, 145, 71, 146, 0, + 138, 139, 54, 140, 0, 141, 142, 143, 144, 220, + 61, 221, 0, 146, 0, 0, 0, 68, 0, 0, + 0, 0, 69, 222, 0, 71, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98, 0, 223, 0, 0, + 71, 138, 139, 54, 140, 0, 141, 142, 143, 144, + 0, 61, 145, 0, 146, 0, 138, 139, 54, 140, + 0, 141, 142, 143, 144, 240, 61, 145, 0, 146, + 0, 0, 0, 68, 0, 0, 0, 0, 69, 0, + 257, 71, 0, 0, 0, 0, 0, 0, 68, 0, + 0, 0, 0, 69, 0, 0, 71, 138, 139, 54, + 140, 0, 141, 142, 143, 144, 291, 61, 145, 0, + 146, 138, 139, 54, 140, 0, 141, 142, 143, 144, + 0, 61, 145, 0, 146, 138, 139, 54, 140, 68, + 141, 142, 143, 144, 69, 61, 145, 71, 146, 0, + 0, 0, 0, 68, 0, 0, 0, 0, 69, 0, + 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 69, 0, 0, 71 +}; + +static const yytype_int16 yycheck[] = +{ + 47, 53, 128, 184, 51, 41, 0, 55, 38, 53, + 58, 58, 47, 57, 52, 59, 47, 41, 52, 55, + 47, 68, 58, 53, 54, 59, 60, 45, 62, 47, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 29, 28, 29, 42, 31, 32, 33, 34, 35, 48, + 52, 53, 86, 29, 49, 41, 12, 13, 14, 15, + 16, 53, 54, 50, 53, 41, 55, 111, 55, 56, + 56, 58, 119, 123, 41, 122, 123, 53, 125, 55, + 130, 49, 42, 130, 131, 132, 42, 137, 48, 116, + 137, 122, 123, 52, 125, 122, 123, 132, 125, 130, + 43, 132, 45, 130, 47, 132, 137, 52, 289, 41, + 137, 53, 42, 45, 48, 49, 147, 148, 48, 150, + 151, 168, 169, 55, 52, 172, 58, 171, 37, 38, + 39, 40, 25, 168, 169, 56, 183, 168, 169, 42, + 49, 168, 169, 56, 171, 48, 36, 42, 183, 196, + 39, 40, 183, 48, 42, 202, 183, 191, 42, 193, + 48, 196, 42, 36, 48, 196, 42, 202, 48, 196, + 49, 202, 48, 42, 36, 202, 0, 41, 222, 48, + 37, 38, 39, 40, 37, 41, 233, 37, 38, 39, + 40, 317, 49, 41, 37, 38, 39, 40, 115, 49, + 117, 248, 233, 46, 121, 252, 233, 124, 42, 46, + 127, 48, 129, 32, 48, 34, 36, 252, 36, 41, + 36, 252, 274, 147, 148, 252, 150, 151, 41, 41, + 274, 41, 149, 57, 58, 59, 60, 61, 62, 63, + 64, 37, 38, 39, 40, 272, 293, 49, 37, 38, + 39, 40, 42, 49, 53, 41, 56, 46, 293, 36, + 36, 49, 293, 45, 36, 49, 293, 57, 58, 59, + 60, 61, 62, 63, 64, 4, 5, 6, 7, 8, + 9, 10, 11, 200, 57, 58, 59, 60, 61, 62, + 63, 64, 45, 210, 211, 212, 213, 36, 215, 216, + 41, 49, 49, 18, 19, 20, 21, 43, 23, 24, + 25, 26, 43, 28, 29, 43, 31, 234, 48, 46, + 41, 238, 37, 38, 37, 38, 39, 40, 43, 49, + 45, 44, 49, 49, 251, 50, 51, 52, 53, 54, + 55, 56, 48, 58, 18, 19, 20, 21, 49, 23, + 24, 25, 26, 49, 28, 29, 49, 31, 5, 6, + 7, 8, 9, 37, 38, 49, 44, 41, 48, 43, + 37, 38, 39, 40, 56, 41, 50, 51, 52, 53, + 54, 55, 56, 44, 58, 18, 19, 20, 21, 46, + 23, 24, 25, 26, 49, 28, 29, 36, 31, 49, + 56, 49, 0, 14, 37, 38, 233, 119, 234, 47, + 43, 196, 293, 327, 324, 248, 47, 50, 51, 52, + 53, 54, 55, 56, 270, 58, 18, 19, 20, 21, + 272, 23, 24, 25, 26, 250, 28, 29, 30, 31, + 32, 33, 34, 222, 274, 284, 26, 242, -1, -1, + 42, -1, -1, -1, -1, -1, -1, -1, 50, -1, + -1, -1, -1, 55, -1, -1, 58, 18, 19, 20, + 21, -1, 23, 24, 25, 26, -1, 28, 29, 30, + 31, 32, 33, 34, 18, 19, 20, 21, -1, 23, + 24, 25, 26, 27, 28, 29, -1, 31, -1, 50, + -1, -1, -1, -1, 55, -1, -1, 58, 42, -1, + -1, -1, 18, 19, 20, 21, 50, 23, 24, 25, + 26, 55, 28, 29, 58, 31, -1, 18, 19, 20, + 21, -1, 23, 24, 25, 26, -1, 28, 29, 45, + 31, -1, -1, -1, 50, -1, -1, -1, -1, 55, + -1, 42, 58, -1, -1, 18, 19, 20, 21, 50, + 23, 24, 25, 26, 55, 28, 29, 58, 31, -1, + 18, 19, 20, 21, -1, 23, 24, 25, 26, 42, + 28, 29, -1, 31, -1, -1, -1, 50, -1, -1, + -1, -1, 55, 41, -1, 58, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 53, -1, 55, -1, -1, + 58, 18, 19, 20, 21, -1, 23, 24, 25, 26, + -1, 28, 29, -1, 31, -1, 18, 19, 20, 21, + -1, 23, 24, 25, 26, 42, 28, 29, -1, 31, + -1, -1, -1, 50, -1, -1, -1, -1, 55, -1, + 42, 58, -1, -1, -1, -1, -1, -1, 50, -1, + -1, -1, -1, 55, -1, -1, 58, 18, 19, 20, + 21, -1, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 18, 19, 20, 21, -1, 23, 24, 25, 26, + -1, 28, 29, -1, 31, 18, 19, 20, 21, 50, + 23, 24, 25, 26, 55, 28, 29, 58, 31, -1, + -1, -1, -1, 50, -1, -1, -1, -1, 55, -1, + -1, 58, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 55, -1, -1, 58 +}; + + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const yytype_uint8 yystos[] = +{ + 0, 0, 57, 58, 59, 60, 61, 62, 63, 64, + 66, 67, 70, 72, 73, 74, 0, 4, 5, 6, + 7, 8, 9, 10, 11, 68, 71, 74, 52, 135, + 136, 135, 41, 41, 69, 70, 72, 75, 42, 70, + 12, 13, 14, 15, 16, 42, 76, 114, 115, 49, + 49, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 28, 29, 31, 32, 33, 34, 35, 50, 55, + 56, 58, 77, 78, 79, 80, 83, 86, 87, 91, + 92, 93, 94, 95, 96, 110, 111, 112, 113, 122, + 133, 52, 81, 82, 133, 52, 134, 29, 53, 55, + 84, 127, 131, 56, 56, 131, 133, 131, 134, 134, + 134, 25, 133, 36, 134, 45, 47, 36, 49, 48, + 49, 36, 41, 41, 37, 41, 36, 36, 41, 36, + 41, 41, 41, 131, 49, 53, 132, 41, 18, 19, + 21, 23, 24, 25, 26, 29, 31, 37, 38, 43, + 50, 51, 54, 56, 112, 118, 119, 122, 123, 130, + 131, 133, 134, 112, 118, 82, 118, 77, 85, 85, + 118, 45, 50, 88, 89, 90, 122, 133, 56, 118, + 117, 118, 118, 85, 41, 45, 106, 107, 108, 109, + 133, 25, 28, 30, 77, 93, 97, 98, 103, 110, + 36, 49, 85, 119, 122, 119, 118, 119, 119, 43, + 37, 38, 39, 40, 46, 36, 45, 49, 42, 77, + 42, 29, 41, 55, 112, 120, 121, 124, 125, 126, + 127, 133, 42, 48, 36, 49, 49, 42, 48, 49, + 42, 108, 38, 53, 54, 128, 129, 42, 48, 42, + 48, 36, 41, 134, 42, 98, 118, 42, 44, 116, + 117, 118, 118, 118, 118, 118, 118, 49, 49, 125, + 43, 46, 48, 46, 48, 49, 89, 90, 118, 49, + 118, 49, 42, 129, 48, 49, 107, 49, 109, 41, + 118, 27, 77, 99, 100, 41, 49, 49, 49, 44, + 46, 42, 116, 121, 126, 127, 128, 108, 41, 42, + 100, 56, 104, 105, 44, 46, 42, 41, 56, 101, + 102, 49, 36, 42, 48, 117, 42, 48, 56, 49, + 105, 42, 49, 102 +}; + + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint8 yyr1[] = +{ + 0, 65, 66, 66, 66, 67, 68, 68, 68, 69, + 69, 70, 71, 71, 71, 71, 71, 72, 72, 73, + 73, 74, 74, 74, 74, 74, 74, 74, 74, 75, + 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 77, 77, 77, 78, + 79, 80, 81, 81, 82, 82, 83, 84, 84, 85, + 85, 86, 87, 88, 88, 88, 89, 89, 89, 89, + 89, 90, 90, 91, 92, 93, 94, 94, 95, 95, + 96, 97, 97, 98, 98, 98, 98, 98, 99, 99, + 100, 100, 101, 101, 102, 102, 103, 104, 104, 105, + 106, 106, 107, 107, 107, 108, 108, 109, 110, 111, + 111, 111, 111, 112, 112, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 114, 114, 115, 115, + 115, 115, 115, 116, 116, 117, 117, 118, 118, 118, + 118, 118, 118, 119, 119, 119, 119, 119, 119, 119, + 119, 120, 120, 121, 122, 122, 122, 122, 123, 123, + 123, 123, 124, 124, 125, 125, 125, 125, 126, 127, + 127, 127, 128, 128, 129, 129, 130, 131, 132, 133, + 133, 134, 135, 135, 136 +}; + + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = +{ + 0, 2, 1, 1, 1, 7, 1, 1, 1, 2, + 1, 7, 1, 1, 1, 1, 1, 1, 0, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 4, 2, 3, 4, + 5, 3, 3, 1, 1, 3, 6, 3, 1, 2, + 1, 6, 6, 3, 1, 0, 3, 3, 1, 2, + 1, 3, 3, 5, 6, 6, 5, 6, 6, 6, + 6, 2, 1, 5, 1, 1, 1, 1, 2, 1, + 5, 1, 3, 1, 1, 3, 6, 3, 1, 3, + 3, 1, 3, 5, 3, 3, 1, 5, 6, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, + 1, 1, 1, 1, 0, 3, 1, 3, 3, 3, + 3, 3, 1, 2, 2, 2, 2, 1, 4, 1, + 3, 3, 1, 4, 1, 3, 4, 6, 1, 1, + 1, 1, 1, 0, 3, 3, 1, 1, 3, 1, + 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 1 +}; + + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +#define YYRECOVERING() (!!yyerrstatus) + +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (param, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ +while (0) + +/* Error token number */ +#define YYTERROR 1 +#define YYERRCODE 256 + + + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif + + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, param); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + + +/*----------------------------------------. +| Print this symbol's value on YYOUTPUT. | +`----------------------------------------*/ + +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_param *param) +{ + FILE *yyo = yyoutput; + YYUSE (yyo); + YYUSE (param); + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + YYUSE (yytype); +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct parser_param *param) +{ + YYFPRINTF (yyoutput, "%s %s (", + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep, param); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +static void +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +{ + YYFPRINTF (stderr, "Stack now"); + for (; yybottom <= yytop; yybottom++) + { + int yybot = *yybottom; + YYFPRINTF (stderr, " %d", yybot); + } + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +static void +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, struct parser_param *param) +{ + unsigned long int yylno = yyrline[yyrule]; + int yynrhs = yyr2[yyrule]; + int yyi; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + YYFPRINTF (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, + yystos[yyssp[yyi + 1 - yynrhs]], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , param); + YYFPRINTF (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyssp, yyvsp, Rule, param); \ +} while (0) + +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ + + +/* YYINITDEPTH -- initial size of the parser's stacks. */ +#ifndef YYINITDEPTH +# define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). + + Do not make this value too large; the results are undefined if + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ + +#ifndef YYMAXDEPTH +# define YYMAXDEPTH 10000 +#endif + + +#if YYERROR_VERBOSE + +# ifndef yystrlen +# if defined __GLIBC__ && defined _STRING_H +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +yystrlen (const char *yystr) +{ + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) + continue; + return yylen; +} +# endif +# endif + +# ifndef yystpcpy +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +yystpcpy (char *yydest, const char *yysrc) +{ + char *yyd = yydest; + const char *yys = yysrc; + + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; +} +# endif +# endif + +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } + + if (! yyres) + return yystrlen (yystr); + + return yystpcpy (yyres, yystr) - yyres; +} +# endif + +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) +{ + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; + + /* There are many possibilities here to consider: + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) + { + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } + } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; +} +#endif /* YYERROR_VERBOSE */ + +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_param *param) +{ + YYUSE (yyvaluep); + YYUSE (param); + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + switch (yytype) + { + case 52: /* STRING */ +#line 225 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { free(((*yyvaluep).str)); } +#line 1491 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 55: /* IDENT */ +#line 225 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { free(((*yyvaluep).str)); } +#line 1497 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 66: /* XkbFile */ +#line 224 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); } +#line 1503 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 67: /* XkbCompositeMap */ +#line 224 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); } +#line 1509 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 69: /* XkbMapConfigList */ +#line 224 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); } +#line 1515 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 70: /* XkbMapConfig */ +#line 224 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { if (!param->rtrn) FreeXkbFile(((*yyvaluep).file)); } +#line 1521 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 75: /* DeclList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).any)); } +#line 1527 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 76: /* Decl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).any)); } +#line 1533 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 77: /* VarDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).var)); } +#line 1539 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 78: /* KeyNameDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).keyCode)); } +#line 1545 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 79: /* KeyAliasDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).keyAlias)); } +#line 1551 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 80: /* VModDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).vmod)); } +#line 1557 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 81: /* VModDefList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).vmod)); } +#line 1563 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 82: /* VModDef */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).vmod)); } +#line 1569 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 83: /* InterpretDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).interp)); } +#line 1575 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 84: /* InterpretMatch */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).interp)); } +#line 1581 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 85: /* VarDeclList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).var)); } +#line 1587 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 86: /* KeyTypeDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).keyType)); } +#line 1593 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 87: /* SymbolsDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).syms)); } +#line 1599 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 88: /* SymbolsBody */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).var)); } +#line 1605 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 89: /* SymbolsVarDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).var)); } +#line 1611 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 90: /* ArrayInit */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1617 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 91: /* GroupCompatDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).groupCompat)); } +#line 1623 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 92: /* ModMapDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).modMask)); } +#line 1629 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 93: /* LedMapDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).ledMap)); } +#line 1635 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 94: /* LedNameDecl */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).ledName)); } +#line 1641 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 108: /* CoordList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1647 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 109: /* Coord */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1653 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 116: /* OptExprList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1659 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 117: /* ExprList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1665 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 118: /* Expr */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1671 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 119: /* Term */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1677 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 120: /* ActionList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1683 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 121: /* Action */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1689 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 122: /* Lhs */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1695 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 123: /* Terminal */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1701 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 124: /* OptKeySymList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1707 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 125: /* KeySymList */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1713 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 126: /* KeySyms */ +#line 219 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { FreeStmt((ParseCommon *) ((*yyvaluep).expr)); } +#line 1719 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 135: /* OptMapName */ +#line 225 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { free(((*yyvaluep).str)); } +#line 1725 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + case 136: /* MapName */ +#line 225 "src/xkbcomp/parser.y" /* yacc.c:1257 */ + { free(((*yyvaluep).str)); } +#line 1731 "src/xkbcomp/parser.c" /* yacc.c:1257 */ + break; + + + default: + break; + } + YY_IGNORE_MAYBE_UNINITIALIZED_END +} + + + + +/*----------. +| yyparse. | +`----------*/ + +int +yyparse (struct parser_param *param) +{ +/* The lookahead symbol. */ +int yychar; + + +/* The semantic value of the lookahead symbol. */ +/* Default value used for initialization, for pacifying older GCCs + or non-GCC compilers. */ +YY_INITIAL_VALUE (static YYSTYPE yyval_default;) +YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); + + /* Number of syntax errors so far. */ + int yynerrs; + + int yystate; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + + /* The stacks and their tools: + 'yyss': related to states. + 'yyvs': related to semantic values. + + Refer to the stacks through separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss; + yytype_int16 *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs; + YYSTYPE *yyvsp; + + YYSIZE_T yystacksize; + + int yyn; + int yyresult; + /* Lookahead token as an internal (translated) token number. */ + int yytoken = 0; + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif + +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) + + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; + + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; + yystacksize = YYINITDEPTH; + + YYDPRINTF ((stderr, "Starting parse\n")); + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. So pushing a state here evens the stacks. */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) + { + /* Get the current used size of the three stacks, in elements. */ + YYSIZE_T yysize = yyssp - yyss + 1; + +#ifdef yyoverflow + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; + } +#else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyexhaustedlab; +# else + /* Extend the stack our own way. */ + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; + yystacksize *= 2; + if (YYMAXDEPTH < yystacksize) + yystacksize = YYMAXDEPTH; + + { + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif +#endif /* no yyoverflow */ + + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); + + if (yyss + yystacksize - 1 <= yyssp) + YYABORT; + } + + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + + if (yystate == YYFINAL) + YYACCEPT; + + goto yybackup; + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: + + /* Do appropriate processing given the current state. Read a + lookahead token if we need one and don't already have one. */ + + /* First try to decide what to do without reference to lookahead token. */ + yyn = yypact[yystate]; + if (yypact_value_is_default (yyn)) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ + if (yychar == YYEMPTY) + { + YYDPRINTF ((stderr, "Reading a token: ")); + yychar = yylex (&yylval, param_scanner); + } + + if (yychar <= YYEOF) + { + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); + } + else + { + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); + } + + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) + goto yydefault; + yyn = yytable[yyn]; + if (yyn <= 0) + { + if (yytable_value_is_error (yyn)) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; + + /* Shift the lookahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token. */ + yychar = YYEMPTY; + + yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + goto yynewstate; + + +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + goto yyreduce; + + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ +yyreduce: + /* yyn is the number of a rule to reduce with. */ + yylen = yyr2[yyn]; + + /* If YYLEN is nonzero, implement the default value of the action: + '$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + + YY_REDUCE_PRINT (yyn); + switch (yyn) + { + case 2: +#line 242 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file) = param->rtrn = (yyvsp[0].file); param->more_maps = true; } +#line 1999 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 3: +#line 244 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file) = param->rtrn = (yyvsp[0].file); param->more_maps = true; YYACCEPT; } +#line 2005 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 4: +#line 246 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file) = param->rtrn = NULL; param->more_maps = false; } +#line 2011 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 5: +#line 252 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file) = XkbFileCreate((yyvsp[-5].file_type), (yyvsp[-4].str), (ParseCommon *) (yyvsp[-2].file), (yyvsp[-6].mapFlags)); } +#line 2017 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 6: +#line 255 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_KEYMAP; } +#line 2023 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 7: +#line 256 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_KEYMAP; } +#line 2029 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 8: +#line 257 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_KEYMAP; } +#line 2035 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 9: +#line 261 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + if (!(yyvsp[0].file)) + (yyval.file) = (yyvsp[-1].file); + else + (yyval.file) = (XkbFile *) AppendStmt((ParseCommon *) (yyvsp[-1].file), + (ParseCommon *) (yyvsp[0].file)); + } +#line 2047 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 10: +#line 269 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file) = (yyvsp[0].file); } +#line 2053 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 11: +#line 275 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + if ((yyvsp[-5].file_type) == FILE_TYPE_GEOMETRY) { + free((yyvsp[-4].str)); + FreeStmt((yyvsp[-2].any)); + (yyval.file) = NULL; + } + else { + (yyval.file) = XkbFileCreate((yyvsp[-5].file_type), (yyvsp[-4].str), (yyvsp[-2].any), (yyvsp[-6].mapFlags)); + } + } +#line 2068 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 12: +#line 287 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_KEYCODES; } +#line 2074 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 13: +#line 288 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_TYPES; } +#line 2080 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 14: +#line 289 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_COMPAT; } +#line 2086 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 15: +#line 290 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_SYMBOLS; } +#line 2092 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 16: +#line 291 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.file_type) = FILE_TYPE_GEOMETRY; } +#line 2098 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 17: +#line 294 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = (yyvsp[0].mapFlags); } +#line 2104 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 18: +#line 295 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = 0; } +#line 2110 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 19: +#line 298 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = ((yyvsp[-1].mapFlags) | (yyvsp[0].mapFlags)); } +#line 2116 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 20: +#line 299 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = (yyvsp[0].mapFlags); } +#line 2122 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 21: +#line 302 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_IS_PARTIAL; } +#line 2128 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 22: +#line 303 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_IS_DEFAULT; } +#line 2134 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 23: +#line 304 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_IS_HIDDEN; } +#line 2140 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 24: +#line 305 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_HAS_ALPHANUMERIC; } +#line 2146 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 25: +#line 306 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_HAS_MODIFIER; } +#line 2152 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 26: +#line 307 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_HAS_KEYPAD; } +#line 2158 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 27: +#line 308 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_HAS_FN; } +#line 2164 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 28: +#line 309 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.mapFlags) = MAP_IS_ALTGR; } +#line 2170 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 29: +#line 313 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.any) = AppendStmt((yyvsp[-1].any), (yyvsp[0].any)); } +#line 2176 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 30: +#line 314 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.any) = NULL; } +#line 2182 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 31: +#line 318 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].var)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].var); + } +#line 2191 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 32: +#line 323 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].vmod)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].vmod); + } +#line 2200 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 33: +#line 328 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].interp)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].interp); + } +#line 2209 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 34: +#line 333 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].keyCode)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].keyCode); + } +#line 2218 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 35: +#line 338 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].keyAlias)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].keyAlias); + } +#line 2227 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 36: +#line 343 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].keyType)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].keyType); + } +#line 2236 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 37: +#line 348 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].syms)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].syms); + } +#line 2245 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 38: +#line 353 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].modMask)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].modMask); + } +#line 2254 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 39: +#line 358 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].groupCompat)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].groupCompat); + } +#line 2263 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 40: +#line 363 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].ledMap)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].ledMap); + } +#line 2272 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 41: +#line 368 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyvsp[0].ledName)->merge = (yyvsp[-1].merge); + (yyval.any) = (ParseCommon *) (yyvsp[0].ledName); + } +#line 2281 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 42: +#line 372 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.any) = NULL; } +#line 2287 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 43: +#line 373 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.any) = NULL; } +#line 2293 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 44: +#line 374 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.any) = NULL; } +#line 2299 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 45: +#line 376 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + (yyval.any) = (ParseCommon *) IncludeCreate(param->ctx, (yyvsp[0].str), (yyvsp[-1].merge)); + free((yyvsp[0].str)); + } +#line 2308 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 46: +#line 383 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = VarCreate((yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 2314 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 47: +#line 385 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = BoolVarCreate((yyvsp[-1].atom), true); } +#line 2320 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 48: +#line 387 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = BoolVarCreate((yyvsp[-1].atom), false); } +#line 2326 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 49: +#line 391 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.keyCode) = KeycodeCreate((yyvsp[-3].atom), (yyvsp[-1].num)); } +#line 2332 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 50: +#line 395 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.keyAlias) = KeyAliasCreate((yyvsp[-3].atom), (yyvsp[-1].atom)); } +#line 2338 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 51: +#line 399 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.vmod) = (yyvsp[-1].vmod); } +#line 2344 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 52: +#line 403 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.vmod) = (VModDef *) AppendStmt((ParseCommon *) (yyvsp[-2].vmod), + (ParseCommon *) (yyvsp[0].vmod)); } +#line 2351 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 53: +#line 406 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.vmod) = (yyvsp[0].vmod); } +#line 2357 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 54: +#line 410 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.vmod) = VModCreate((yyvsp[0].atom), NULL); } +#line 2363 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 55: +#line 412 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.vmod) = VModCreate((yyvsp[-2].atom), (yyvsp[0].expr)); } +#line 2369 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 56: +#line 418 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyvsp[-4].interp)->def = (yyvsp[-2].var); (yyval.interp) = (yyvsp[-4].interp); } +#line 2375 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 57: +#line 422 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.interp) = InterpCreate((yyvsp[-2].keysym), (yyvsp[0].expr)); } +#line 2381 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 58: +#line 424 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.interp) = InterpCreate((yyvsp[0].keysym), NULL); } +#line 2387 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 59: +#line 428 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = (VarDef *) AppendStmt((ParseCommon *) (yyvsp[-1].var), + (ParseCommon *) (yyvsp[0].var)); } +#line 2394 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 60: +#line 431 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = (yyvsp[0].var); } +#line 2400 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 61: +#line 437 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.keyType) = KeyTypeCreate((yyvsp[-4].atom), (yyvsp[-2].var)); } +#line 2406 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 62: +#line 443 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.syms) = SymbolsCreate((yyvsp[-4].atom), (yyvsp[-2].var)); } +#line 2412 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 63: +#line 447 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = (VarDef *) AppendStmt((ParseCommon *) (yyvsp[-2].var), + (ParseCommon *) (yyvsp[0].var)); } +#line 2419 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 64: +#line 450 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = (yyvsp[0].var); } +#line 2425 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 65: +#line 451 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = NULL; } +#line 2431 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 66: +#line 454 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = VarCreate((yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2437 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 67: +#line 455 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = VarCreate((yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2443 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 68: +#line 456 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = BoolVarCreate((yyvsp[0].atom), true); } +#line 2449 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 69: +#line 457 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = BoolVarCreate((yyvsp[0].atom), false); } +#line 2455 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 70: +#line 458 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.var) = VarCreate(NULL, (yyvsp[0].expr)); } +#line 2461 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 71: +#line 462 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[-1].expr); } +#line 2467 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 72: +#line 464 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateUnary(EXPR_ACTION_LIST, EXPR_TYPE_ACTION, (yyvsp[-1].expr)); } +#line 2473 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 73: +#line 468 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.groupCompat) = GroupCompatCreate((yyvsp[-3].ival), (yyvsp[-1].expr)); } +#line 2479 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 74: +#line 472 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.modMask) = ModMapCreate((yyvsp[-4].atom), (yyvsp[-2].expr)); } +#line 2485 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 75: +#line 476 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ledMap) = LedMapCreate((yyvsp[-4].atom), (yyvsp[-2].var)); } +#line 2491 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 76: +#line 480 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ledName) = LedNameCreate((yyvsp[-3].ival), (yyvsp[-1].expr), false); } +#line 2497 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 77: +#line 482 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ledName) = LedNameCreate((yyvsp[-3].ival), (yyvsp[-1].expr), true); } +#line 2503 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 78: +#line 486 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2509 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 79: +#line 488 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (void) (yyvsp[-2].expr); (yyval.geom) = NULL; } +#line 2515 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 80: +#line 492 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2521 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 81: +#line 495 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL;} +#line 2527 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 82: +#line 496 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2533 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 83: +#line 500 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2539 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 84: +#line 502 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { FreeStmt((ParseCommon *) (yyvsp[0].var)); (yyval.geom) = NULL; } +#line 2545 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 85: +#line 504 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2551 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 86: +#line 506 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { FreeStmt((ParseCommon *) (yyvsp[0].ledMap)); (yyval.geom) = NULL; } +#line 2557 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 87: +#line 508 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2563 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 88: +#line 511 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL;} +#line 2569 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 89: +#line 512 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2575 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 90: +#line 515 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2581 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 91: +#line 517 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { FreeStmt((ParseCommon *) (yyvsp[0].var)); (yyval.geom) = NULL; } +#line 2587 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 92: +#line 520 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2593 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 93: +#line 521 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2599 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 94: +#line 525 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2605 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 95: +#line 527 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { FreeStmt((ParseCommon *) (yyvsp[-1].expr)); (yyval.geom) = NULL; } +#line 2611 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 96: +#line 531 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2617 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 97: +#line 534 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2623 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 98: +#line 535 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2629 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 99: +#line 538 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2635 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 100: +#line 542 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL;} +#line 2641 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 101: +#line 544 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.geom) = NULL; } +#line 2647 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 102: +#line 548 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (void) (yyvsp[-1].expr); (yyval.geom) = NULL; } +#line 2653 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 103: +#line 550 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (void) (yyvsp[-1].expr); (yyval.geom) = NULL; } +#line 2659 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 104: +#line 552 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { FreeStmt((ParseCommon *) (yyvsp[0].expr)); (yyval.geom) = NULL; } +#line 2665 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 105: +#line 556 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (void) (yyvsp[-2].expr); (void) (yyvsp[0].expr); (yyval.expr) = NULL; } +#line 2671 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 106: +#line 558 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (void) (yyvsp[0].expr); (yyval.expr) = NULL; } +#line 2677 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 107: +#line 562 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2683 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 108: +#line 566 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { FreeStmt((ParseCommon *) (yyvsp[-2].var)); (yyval.geom) = NULL; } +#line 2689 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 109: +#line 569 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 0; } +#line 2695 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 110: +#line 570 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 0; } +#line 2701 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 111: +#line 571 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 0; } +#line 2707 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 112: +#line 572 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 0; } +#line 2713 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 113: +#line 575 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = (yyvsp[0].atom); } +#line 2719 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 114: +#line 576 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = (yyvsp[0].atom); } +#line 2725 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 115: +#line 580 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "action"); } +#line 2731 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 116: +#line 582 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "interpret"); } +#line 2737 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 117: +#line 584 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "type"); } +#line 2743 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 118: +#line 586 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "key"); } +#line 2749 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 119: +#line 588 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "group"); } +#line 2755 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 120: +#line 590 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + {(yyval.atom) = xkb_atom_intern_literal(param->ctx, "modifier_map");} +#line 2761 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 121: +#line 592 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "indicator"); } +#line 2767 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 122: +#line 594 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = XKB_ATOM_NONE; } +#line 2773 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 123: +#line 596 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = XKB_ATOM_NONE; } +#line 2779 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 124: +#line 598 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = XKB_ATOM_NONE; } +#line 2785 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 125: +#line 600 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = XKB_ATOM_NONE; } +#line 2791 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 126: +#line 603 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.merge) = (yyvsp[0].merge); } +#line 2797 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 127: +#line 604 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.merge) = MERGE_DEFAULT; } +#line 2803 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 128: +#line 607 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.merge) = MERGE_DEFAULT; } +#line 2809 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 129: +#line 608 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.merge) = MERGE_AUGMENT; } +#line 2815 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 130: +#line 609 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.merge) = MERGE_OVERRIDE; } +#line 2821 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 131: +#line 610 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.merge) = MERGE_REPLACE; } +#line 2827 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 132: +#line 612 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + /* + * This used to be MERGE_ALT_FORM. This functionality was + * unused and has been removed. + */ + (yyval.merge) = MERGE_DEFAULT; + } +#line 2839 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 133: +#line 621 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2845 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 134: +#line 622 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 2851 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 135: +#line 626 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (ExprDef *) AppendStmt((ParseCommon *) (yyvsp[-2].expr), + (ParseCommon *) (yyvsp[0].expr)); } +#line 2858 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 136: +#line 629 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2864 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 137: +#line 633 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateBinary(EXPR_DIVIDE, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2870 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 138: +#line 635 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateBinary(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2876 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 139: +#line 637 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateBinary(EXPR_SUBTRACT, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2882 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 140: +#line 639 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateBinary(EXPR_MULTIPLY, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2888 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 141: +#line 641 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateBinary(EXPR_ASSIGN, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 2894 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 142: +#line 643 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2900 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 143: +#line 647 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateUnary(EXPR_NEGATE, (yyvsp[0].expr)->expr.value_type, (yyvsp[0].expr)); } +#line 2906 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 144: +#line 649 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateUnary(EXPR_UNARY_PLUS, (yyvsp[0].expr)->expr.value_type, (yyvsp[0].expr)); } +#line 2912 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 145: +#line 651 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateUnary(EXPR_NOT, EXPR_TYPE_BOOLEAN, (yyvsp[0].expr)); } +#line 2918 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 146: +#line 653 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateUnary(EXPR_INVERT, (yyvsp[0].expr)->expr.value_type, (yyvsp[0].expr)); } +#line 2924 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 147: +#line 655 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2930 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 148: +#line 657 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateAction((yyvsp[-3].atom), (yyvsp[-1].expr)); } +#line 2936 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 149: +#line 659 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2942 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 150: +#line 661 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[-1].expr); } +#line 2948 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 151: +#line 665 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (ExprDef *) AppendStmt((ParseCommon *) (yyvsp[-2].expr), + (ParseCommon *) (yyvsp[0].expr)); } +#line 2955 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 152: +#line 668 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 2961 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 153: +#line 672 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateAction((yyvsp[-3].atom), (yyvsp[-1].expr)); } +#line 2967 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 154: +#line 676 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateIdent((yyvsp[0].atom)); } +#line 2973 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 155: +#line 678 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateFieldRef((yyvsp[-2].atom), (yyvsp[0].atom)); } +#line 2979 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 156: +#line 680 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateArrayRef(XKB_ATOM_NONE, (yyvsp[-3].atom), (yyvsp[-1].expr)); } +#line 2985 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 157: +#line 682 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateArrayRef((yyvsp[-5].atom), (yyvsp[-3].atom), (yyvsp[-1].expr)); } +#line 2991 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 158: +#line 686 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateString((yyvsp[0].atom)); } +#line 2997 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 159: +#line 688 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateInteger((yyvsp[0].ival)); } +#line 3003 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 160: +#line 690 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 3009 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 161: +#line 692 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateKeyName((yyvsp[0].atom)); } +#line 3015 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 162: +#line 695 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[0].expr); } +#line 3021 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 163: +#line 696 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = NULL; } +#line 3027 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 164: +#line 700 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprAppendKeysymList((yyvsp[-2].expr), (yyvsp[0].keysym)); } +#line 3033 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 165: +#line 702 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprAppendMultiKeysymList((yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3039 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 166: +#line 704 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateKeysymList((yyvsp[0].keysym)); } +#line 3045 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 167: +#line 706 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = ExprCreateMultiKeysymList((yyvsp[0].expr)); } +#line 3051 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 168: +#line 710 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.expr) = (yyvsp[-1].expr); } +#line 3057 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 169: +#line 714 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + if (!resolve_keysym((yyvsp[0].str), &(yyval.keysym))) + parser_warn(param, "unrecognized keysym \"%s\"", (yyvsp[0].str)); + free((yyvsp[0].str)); + } +#line 3067 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 170: +#line 719 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.keysym) = XKB_KEY_section; } +#line 3073 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 171: +#line 721 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { + if ((yyvsp[0].ival) < 0) { + parser_warn(param, "unrecognized keysym \"%d\"", (yyvsp[0].ival)); + (yyval.keysym) = XKB_KEY_NoSymbol; + } + else if ((yyvsp[0].ival) < 10) { /* XKB_KEY_0 .. XKB_KEY_9 */ + (yyval.keysym) = XKB_KEY_0 + (xkb_keysym_t) (yyvsp[0].ival); + } + else { + char buf[17]; + snprintf(buf, sizeof(buf), "0x%x", (yyvsp[0].ival)); + if (!resolve_keysym(buf, &(yyval.keysym))) { + parser_warn(param, "unrecognized keysym \"%s\"", buf); + (yyval.keysym) = XKB_KEY_NoSymbol; + } + } + } +#line 3095 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 172: +#line 740 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = -(yyvsp[0].ival); } +#line 3101 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 173: +#line 741 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[0].ival); } +#line 3107 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 174: +#line 744 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[0].num); } +#line 3113 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 175: +#line 745 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[0].num); } +#line 3119 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 176: +#line 748 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = 0; } +#line 3125 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 177: +#line 751 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.ival) = (yyvsp[0].num); } +#line 3131 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 178: +#line 754 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.num) = (yyvsp[0].num); } +#line 3137 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 179: +#line 757 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_steal(param->ctx, (yyvsp[0].str)); } +#line 3143 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 180: +#line 758 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_intern_literal(param->ctx, "default"); } +#line 3149 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 181: +#line 761 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.atom) = xkb_atom_steal(param->ctx, (yyvsp[0].str)); } +#line 3155 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 182: +#line 764 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.str) = (yyvsp[0].str); } +#line 3161 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 183: +#line 765 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.str) = NULL; } +#line 3167 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + case 184: +#line 768 "src/xkbcomp/parser.y" /* yacc.c:1646 */ + { (yyval.str) = (yyvsp[0].str); } +#line 3173 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + break; + + +#line 3177 "src/xkbcomp/parser.c" /* yacc.c:1646 */ + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); + + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + + *++yyvsp = yyval; + + /* Now 'shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTOKENS]; + + goto yynewstate; + + +/*--------------------------------------. +| yyerrlab -- here on detecting error. | +`--------------------------------------*/ +yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) + { + ++yynerrs; +#if ! YYERROR_VERBOSE + yyerror (param, YY_("syntax error")); +#else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) + { + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (param, yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; + } +# undef YYSYNTAX_ERROR +#endif + } + + + + if (yyerrstatus == 3) + { + /* If just tried and failed to reuse lookahead token after an + error, discard it. */ + + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval, param); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule whose action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (!yypact_value_is_default (yyn)) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) + YYABORT; + + + yydestruct ("Error: popping", + yystos[yystate], yyvsp, param); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); + } + + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN + *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END + + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + + yystate = yyn; + goto yynewstate; + + +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yyresult = 1; + goto yyreturn; + +#if !defined yyoverflow || YYERROR_VERBOSE +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (param, YY_("memory exhausted")); + yyresult = 2; + /* Fall through. */ +#endif + +yyreturn: + if (yychar != YYEMPTY) + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval, param); + } + /* Do not reclaim the symbols of the rule whose action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp, param); + YYPOPSTACK (1); + } +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + return yyresult; +} +#line 771 "src/xkbcomp/parser.y" /* yacc.c:1906 */ + + +XkbFile * +parse(struct xkb_context *ctx, struct scanner *scanner, const char *map) +{ + int ret; + XkbFile *first = NULL; + struct parser_param param = { + .scanner = scanner, + .ctx = ctx, + .rtrn = NULL, + }; + + /* + * If we got a specific map, we look for it exclusively and return + * immediately upon finding it. Otherwise, we need to get the + * default map. If we find a map marked as default, we return it + * immediately. If there are no maps marked as default, we return + * the first map in the file. + */ + + while ((ret = yyparse(¶m)) == 0 && param.more_maps) { + if (map) { + if (streq_not_null(map, param.rtrn->name)) + return param.rtrn; + else + FreeXkbFile(param.rtrn); + } + else { + if (param.rtrn->flags & MAP_IS_DEFAULT) { + FreeXkbFile(first); + return param.rtrn; + } + else if (!first) { + first = param.rtrn; + } + else { + FreeXkbFile(param.rtrn); + } + } + param.rtrn = NULL; + } + + if (ret != 0) { + FreeXkbFile(first); + return NULL; + } + + if (first) + log_vrb(ctx, 5, + "No map in include statement, but \"%s\" contains several; " + "Using first defined map, \"%s\"\n", + scanner->file_name, first->name); + + return first; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.h new file mode 100644 index 0000000..77afa91 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.h @@ -0,0 +1,219 @@ +/* A Bison parser, made by GNU Bison 3.0.2. */ + +/* Bison interface for Yacc-like parsers in C + + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. + + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ + +#ifndef YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED +# define YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED +/* Debug traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int _xkbcommon_debug; +#endif + +/* Token type. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + enum yytokentype + { + END_OF_FILE = 0, + ERROR_TOK = 255, + XKB_KEYMAP = 1, + XKB_KEYCODES = 2, + XKB_TYPES = 3, + XKB_SYMBOLS = 4, + XKB_COMPATMAP = 5, + XKB_GEOMETRY = 6, + XKB_SEMANTICS = 7, + XKB_LAYOUT = 8, + INCLUDE = 10, + OVERRIDE = 11, + AUGMENT = 12, + REPLACE = 13, + ALTERNATE = 14, + VIRTUAL_MODS = 20, + TYPE = 21, + INTERPRET = 22, + ACTION_TOK = 23, + KEY = 24, + ALIAS = 25, + GROUP = 26, + MODIFIER_MAP = 27, + INDICATOR = 28, + SHAPE = 29, + KEYS = 30, + ROW = 31, + SECTION = 32, + OVERLAY = 33, + TEXT = 34, + OUTLINE = 35, + SOLID = 36, + LOGO = 37, + VIRTUAL = 38, + EQUALS = 40, + PLUS = 41, + MINUS = 42, + DIVIDE = 43, + TIMES = 44, + OBRACE = 45, + CBRACE = 46, + OPAREN = 47, + CPAREN = 48, + OBRACKET = 49, + CBRACKET = 50, + DOT = 51, + COMMA = 52, + SEMI = 53, + EXCLAM = 54, + INVERT = 55, + STRING = 60, + INTEGER = 61, + FLOAT = 62, + IDENT = 63, + KEYNAME = 64, + PARTIAL = 70, + DEFAULT = 71, + HIDDEN = 72, + ALPHANUMERIC_KEYS = 73, + MODIFIER_KEYS = 74, + KEYPAD_KEYS = 75, + FUNCTION_KEYS = 76, + ALTERNATE_GROUP = 77 + }; +#endif +/* Tokens. */ +#define END_OF_FILE 0 +#define ERROR_TOK 255 +#define XKB_KEYMAP 1 +#define XKB_KEYCODES 2 +#define XKB_TYPES 3 +#define XKB_SYMBOLS 4 +#define XKB_COMPATMAP 5 +#define XKB_GEOMETRY 6 +#define XKB_SEMANTICS 7 +#define XKB_LAYOUT 8 +#define INCLUDE 10 +#define OVERRIDE 11 +#define AUGMENT 12 +#define REPLACE 13 +#define ALTERNATE 14 +#define VIRTUAL_MODS 20 +#define TYPE 21 +#define INTERPRET 22 +#define ACTION_TOK 23 +#define KEY 24 +#define ALIAS 25 +#define GROUP 26 +#define MODIFIER_MAP 27 +#define INDICATOR 28 +#define SHAPE 29 +#define KEYS 30 +#define ROW 31 +#define SECTION 32 +#define OVERLAY 33 +#define TEXT 34 +#define OUTLINE 35 +#define SOLID 36 +#define LOGO 37 +#define VIRTUAL 38 +#define EQUALS 40 +#define PLUS 41 +#define MINUS 42 +#define DIVIDE 43 +#define TIMES 44 +#define OBRACE 45 +#define CBRACE 46 +#define OPAREN 47 +#define CPAREN 48 +#define OBRACKET 49 +#define CBRACKET 50 +#define DOT 51 +#define COMMA 52 +#define SEMI 53 +#define EXCLAM 54 +#define INVERT 55 +#define STRING 60 +#define INTEGER 61 +#define FLOAT 62 +#define IDENT 63 +#define KEYNAME 64 +#define PARTIAL 70 +#define DEFAULT 71 +#define HIDDEN 72 +#define ALPHANUMERIC_KEYS 73 +#define MODIFIER_KEYS 74 +#define KEYPAD_KEYS 75 +#define FUNCTION_KEYS 76 +#define ALTERNATE_GROUP 77 + +/* Value type. */ +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE YYSTYPE; +union YYSTYPE +{ +#line 162 "src/xkbcomp/parser.y" /* yacc.c:1909 */ + + int ival; + int64_t num; + enum xkb_file_type file_type; + char *str; + xkb_atom_t atom; + enum merge_mode merge; + enum xkb_map_flags mapFlags; + xkb_keysym_t keysym; + ParseCommon *any; + ExprDef *expr; + VarDef *var; + VModDef *vmod; + InterpDef *interp; + KeyTypeDef *keyType; + SymbolsDef *syms; + ModMapDef *modMask; + GroupCompatDef *groupCompat; + LedMapDef *ledMap; + LedNameDef *ledName; + KeycodeDef *keyCode; + KeyAliasDef *keyAlias; + void *geom; + XkbFile *file; + +#line 210 "src/xkbcomp/parser.h" /* yacc.c:1909 */ +}; +# define YYSTYPE_IS_TRIVIAL 1 +# define YYSTYPE_IS_DECLARED 1 +#endif + + + +int _xkbcommon_parse (struct parser_param *param); + +#endif /* !YY__XKBCOMMON_SRC_XKBCOMP_PARSER_H_INCLUDED */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.y b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.y new file mode 100644 index 0000000..7ff6f92 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/parser.y @@ -0,0 +1,826 @@ +/************************************************************ + Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + + Permission to use, copy, modify, and distribute this + software and its documentation for any purpose and without + fee is hereby granted, provided that the above copyright + notice appear in all copies and that both that copyright + notice and this permission notice appear in supporting + documentation, and that the name of Silicon Graphics not be + used in advertising or publicity pertaining to distribution + of the software without specific prior written permission. + Silicon Graphics makes no representation about the suitability + of this software for any purpose. It is provided "as is" + without any express or implied warranty. + + SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + THE USE OR PERFORMANCE OF THIS SOFTWARE. + + ********************************************************/ + +/* + * The parser should work with reasonably recent versions of either + * bison or byacc. So if you make changes, try to make sure it works + * in both! + */ + +%{ +#include "xkbcomp-priv.h" +#include "ast-build.h" +#include "parser-priv.h" +#include "scanner-utils.h" + +struct parser_param { + struct xkb_context *ctx; + struct scanner *scanner; + XkbFile *rtrn; + bool more_maps; +}; + +#define parser_err(param, fmt, ...) \ + scanner_err((param)->scanner, fmt, ##__VA_ARGS__) + +#define parser_warn(param, fmt, ...) \ + scanner_warn((param)->scanner, fmt, ##__VA_ARGS__) + +static void +_xkbcommon_error(struct parser_param *param, const char *msg) +{ + parser_err(param, "%s", msg); +} + +static bool +resolve_keysym(const char *name, xkb_keysym_t *sym_rtrn) +{ + xkb_keysym_t sym; + + if (!name || istreq(name, "any") || istreq(name, "nosymbol")) { + *sym_rtrn = XKB_KEY_NoSymbol; + return true; + } + + if (istreq(name, "none") || istreq(name, "voidsymbol")) { + *sym_rtrn = XKB_KEY_VoidSymbol; + return true; + } + + sym = xkb_keysym_from_name(name, XKB_KEYSYM_NO_FLAGS); + if (sym != XKB_KEY_NoSymbol) { + *sym_rtrn = sym; + return true; + } + + return false; +} + +#define param_scanner param->scanner +%} + +%pure-parser +%lex-param { struct scanner *param_scanner } +%parse-param { struct parser_param *param } + +%token + END_OF_FILE 0 + ERROR_TOK 255 + XKB_KEYMAP 1 + XKB_KEYCODES 2 + XKB_TYPES 3 + XKB_SYMBOLS 4 + XKB_COMPATMAP 5 + XKB_GEOMETRY 6 + XKB_SEMANTICS 7 + XKB_LAYOUT 8 + INCLUDE 10 + OVERRIDE 11 + AUGMENT 12 + REPLACE 13 + ALTERNATE 14 + VIRTUAL_MODS 20 + TYPE 21 + INTERPRET 22 + ACTION_TOK 23 + KEY 24 + ALIAS 25 + GROUP 26 + MODIFIER_MAP 27 + INDICATOR 28 + SHAPE 29 + KEYS 30 + ROW 31 + SECTION 32 + OVERLAY 33 + TEXT 34 + OUTLINE 35 + SOLID 36 + LOGO 37 + VIRTUAL 38 + EQUALS 40 + PLUS 41 + MINUS 42 + DIVIDE 43 + TIMES 44 + OBRACE 45 + CBRACE 46 + OPAREN 47 + CPAREN 48 + OBRACKET 49 + CBRACKET 50 + DOT 51 + COMMA 52 + SEMI 53 + EXCLAM 54 + INVERT 55 + STRING 60 + INTEGER 61 + FLOAT 62 + IDENT 63 + KEYNAME 64 + PARTIAL 70 + DEFAULT 71 + HIDDEN 72 + ALPHANUMERIC_KEYS 73 + MODIFIER_KEYS 74 + KEYPAD_KEYS 75 + FUNCTION_KEYS 76 + ALTERNATE_GROUP 77 + +%right EQUALS +%left PLUS MINUS +%left TIMES DIVIDE +%left EXCLAM INVERT +%left OPAREN + +%start XkbFile + +%union { + int ival; + int64_t num; + enum xkb_file_type file_type; + char *str; + xkb_atom_t atom; + enum merge_mode merge; + enum xkb_map_flags mapFlags; + xkb_keysym_t keysym; + ParseCommon *any; + ExprDef *expr; + VarDef *var; + VModDef *vmod; + InterpDef *interp; + KeyTypeDef *keyType; + SymbolsDef *syms; + ModMapDef *modMask; + GroupCompatDef *groupCompat; + LedMapDef *ledMap; + LedNameDef *ledName; + KeycodeDef *keyCode; + KeyAliasDef *keyAlias; + void *geom; + XkbFile *file; +} + +%type INTEGER FLOAT +%type IDENT STRING +%type KEYNAME +%type KeyCode +%type Number Integer Float SignedNumber DoodadType +%type MergeMode OptMergeMode +%type XkbCompositeType FileType +%type Flag Flags OptFlags +%type MapName OptMapName +%type FieldSpec Ident Element String +%type KeySym +%type DeclList Decl +%type OptExprList ExprList Expr Term Lhs Terminal ArrayInit KeySyms +%type OptKeySymList KeySymList Action ActionList Coord CoordList +%type VarDecl VarDeclList SymbolsBody SymbolsVarDecl +%type VModDecl VModDefList VModDef +%type InterpretDecl InterpretMatch +%type KeyTypeDecl +%type SymbolsDecl +%type ModMapDecl +%type GroupCompatDecl +%type LedMapDecl +%type LedNameDecl +%type KeyNameDecl +%type KeyAliasDecl +%type ShapeDecl SectionDecl SectionBody SectionBodyItem RowBody RowBodyItem +%type Keys Key OverlayDecl OverlayKeyList OverlayKey OutlineList OutlineInList +%type DoodadDecl +%type XkbFile XkbMapConfigList XkbMapConfig +%type XkbCompositeMap + +%destructor { FreeStmt((ParseCommon *) $$); } + + +/* The destructor also runs on the start symbol when the parser *succeeds*. + * The `if` here catches this case. */ +%destructor { if (!param->rtrn) FreeXkbFile($$); } +%destructor { free($$); } + +%% + +/* + * An actual file may contain more than one map. However, if we do things + * in the normal yacc way, i.e. aggregate all of the maps into a list and + * let the caller find the map it wants, we end up scanning and parsing a + * lot of unneeded maps (in the end we always just need one). + * Instead of doing that, we make yyparse return one map at a time, and + * then call it repeatedly until we find the map we need. Once we find it, + * we don't need to parse everything that follows in the file. + * This does mean that if we e.g. always use the first map, the file may + * contain complete garbage after that. But it's worth it. + */ + +XkbFile : XkbCompositeMap + { $$ = param->rtrn = $1; param->more_maps = true; } + | XkbMapConfig + { $$ = param->rtrn = $1; param->more_maps = true; YYACCEPT; } + | END_OF_FILE + { $$ = param->rtrn = NULL; param->more_maps = false; } + ; + +XkbCompositeMap : OptFlags XkbCompositeType OptMapName OBRACE + XkbMapConfigList + CBRACE SEMI + { $$ = XkbFileCreate($2, $3, (ParseCommon *) $5, $1); } + ; + +XkbCompositeType: XKB_KEYMAP { $$ = FILE_TYPE_KEYMAP; } + | XKB_SEMANTICS { $$ = FILE_TYPE_KEYMAP; } + | XKB_LAYOUT { $$ = FILE_TYPE_KEYMAP; } + ; + +XkbMapConfigList : XkbMapConfigList XkbMapConfig + { + if (!$2) + $$ = $1; + else + $$ = (XkbFile *) AppendStmt((ParseCommon *) $1, + (ParseCommon *) $2); + } + | XkbMapConfig + { $$ = $1; } + ; + +XkbMapConfig : OptFlags FileType OptMapName OBRACE + DeclList + CBRACE SEMI + { + if ($2 == FILE_TYPE_GEOMETRY) { + free($3); + FreeStmt($5); + $$ = NULL; + } + else { + $$ = XkbFileCreate($2, $3, $5, $1); + } + } + ; + +FileType : XKB_KEYCODES { $$ = FILE_TYPE_KEYCODES; } + | XKB_TYPES { $$ = FILE_TYPE_TYPES; } + | XKB_COMPATMAP { $$ = FILE_TYPE_COMPAT; } + | XKB_SYMBOLS { $$ = FILE_TYPE_SYMBOLS; } + | XKB_GEOMETRY { $$ = FILE_TYPE_GEOMETRY; } + ; + +OptFlags : Flags { $$ = $1; } + | { $$ = 0; } + ; + +Flags : Flags Flag { $$ = ($1 | $2); } + | Flag { $$ = $1; } + ; + +Flag : PARTIAL { $$ = MAP_IS_PARTIAL; } + | DEFAULT { $$ = MAP_IS_DEFAULT; } + | HIDDEN { $$ = MAP_IS_HIDDEN; } + | ALPHANUMERIC_KEYS { $$ = MAP_HAS_ALPHANUMERIC; } + | MODIFIER_KEYS { $$ = MAP_HAS_MODIFIER; } + | KEYPAD_KEYS { $$ = MAP_HAS_KEYPAD; } + | FUNCTION_KEYS { $$ = MAP_HAS_FN; } + | ALTERNATE_GROUP { $$ = MAP_IS_ALTGR; } + ; + +DeclList : DeclList Decl + { $$ = AppendStmt($1, $2); } + | { $$ = NULL; } + ; + +Decl : OptMergeMode VarDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode VModDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode InterpretDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode KeyNameDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode KeyAliasDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode KeyTypeDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode SymbolsDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode ModMapDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode GroupCompatDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode LedMapDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode LedNameDecl + { + $2->merge = $1; + $$ = (ParseCommon *) $2; + } + | OptMergeMode ShapeDecl { $$ = NULL; } + | OptMergeMode SectionDecl { $$ = NULL; } + | OptMergeMode DoodadDecl { $$ = NULL; } + | MergeMode STRING + { + $$ = (ParseCommon *) IncludeCreate(param->ctx, $2, $1); + free($2); + } + ; + +VarDecl : Lhs EQUALS Expr SEMI + { $$ = VarCreate($1, $3); } + | Ident SEMI + { $$ = BoolVarCreate($1, true); } + | EXCLAM Ident SEMI + { $$ = BoolVarCreate($2, false); } + ; + +KeyNameDecl : KEYNAME EQUALS KeyCode SEMI + { $$ = KeycodeCreate($1, $3); } + ; + +KeyAliasDecl : ALIAS KEYNAME EQUALS KEYNAME SEMI + { $$ = KeyAliasCreate($2, $4); } + ; + +VModDecl : VIRTUAL_MODS VModDefList SEMI + { $$ = $2; } + ; + +VModDefList : VModDefList COMMA VModDef + { $$ = (VModDef *) AppendStmt((ParseCommon *) $1, + (ParseCommon *) $3); } + | VModDef + { $$ = $1; } + ; + +VModDef : Ident + { $$ = VModCreate($1, NULL); } + | Ident EQUALS Expr + { $$ = VModCreate($1, $3); } + ; + +InterpretDecl : INTERPRET InterpretMatch OBRACE + VarDeclList + CBRACE SEMI + { $2->def = $4; $$ = $2; } + ; + +InterpretMatch : KeySym PLUS Expr + { $$ = InterpCreate($1, $3); } + | KeySym + { $$ = InterpCreate($1, NULL); } + ; + +VarDeclList : VarDeclList VarDecl + { $$ = (VarDef *) AppendStmt((ParseCommon *) $1, + (ParseCommon *) $2); } + | VarDecl + { $$ = $1; } + ; + +KeyTypeDecl : TYPE String OBRACE + VarDeclList + CBRACE SEMI + { $$ = KeyTypeCreate($2, $4); } + ; + +SymbolsDecl : KEY KEYNAME OBRACE + SymbolsBody + CBRACE SEMI + { $$ = SymbolsCreate($2, $4); } + ; + +SymbolsBody : SymbolsBody COMMA SymbolsVarDecl + { $$ = (VarDef *) AppendStmt((ParseCommon *) $1, + (ParseCommon *) $3); } + | SymbolsVarDecl + { $$ = $1; } + | { $$ = NULL; } + ; + +SymbolsVarDecl : Lhs EQUALS Expr { $$ = VarCreate($1, $3); } + | Lhs EQUALS ArrayInit { $$ = VarCreate($1, $3); } + | Ident { $$ = BoolVarCreate($1, true); } + | EXCLAM Ident { $$ = BoolVarCreate($2, false); } + | ArrayInit { $$ = VarCreate(NULL, $1); } + ; + +ArrayInit : OBRACKET OptKeySymList CBRACKET + { $$ = $2; } + | OBRACKET ActionList CBRACKET + { $$ = ExprCreateUnary(EXPR_ACTION_LIST, EXPR_TYPE_ACTION, $2); } + ; + +GroupCompatDecl : GROUP Integer EQUALS Expr SEMI + { $$ = GroupCompatCreate($2, $4); } + ; + +ModMapDecl : MODIFIER_MAP Ident OBRACE ExprList CBRACE SEMI + { $$ = ModMapCreate($2, $4); } + ; + +LedMapDecl: INDICATOR String OBRACE VarDeclList CBRACE SEMI + { $$ = LedMapCreate($2, $4); } + ; + +LedNameDecl: INDICATOR Integer EQUALS Expr SEMI + { $$ = LedNameCreate($2, $4, false); } + | VIRTUAL INDICATOR Integer EQUALS Expr SEMI + { $$ = LedNameCreate($3, $5, true); } + ; + +ShapeDecl : SHAPE String OBRACE OutlineList CBRACE SEMI + { $$ = NULL; } + | SHAPE String OBRACE CoordList CBRACE SEMI + { (void) $4; $$ = NULL; } + ; + +SectionDecl : SECTION String OBRACE SectionBody CBRACE SEMI + { $$ = NULL; } + ; + +SectionBody : SectionBody SectionBodyItem { $$ = NULL;} + | SectionBodyItem { $$ = NULL; } + ; + +SectionBodyItem : ROW OBRACE RowBody CBRACE SEMI + { $$ = NULL; } + | VarDecl + { FreeStmt((ParseCommon *) $1); $$ = NULL; } + | DoodadDecl + { $$ = NULL; } + | LedMapDecl + { FreeStmt((ParseCommon *) $1); $$ = NULL; } + | OverlayDecl + { $$ = NULL; } + ; + +RowBody : RowBody RowBodyItem { $$ = NULL;} + | RowBodyItem { $$ = NULL; } + ; + +RowBodyItem : KEYS OBRACE Keys CBRACE SEMI { $$ = NULL; } + | VarDecl + { FreeStmt((ParseCommon *) $1); $$ = NULL; } + ; + +Keys : Keys COMMA Key { $$ = NULL; } + | Key { $$ = NULL; } + ; + +Key : KEYNAME + { $$ = NULL; } + | OBRACE ExprList CBRACE + { FreeStmt((ParseCommon *) $2); $$ = NULL; } + ; + +OverlayDecl : OVERLAY String OBRACE OverlayKeyList CBRACE SEMI + { $$ = NULL; } + ; + +OverlayKeyList : OverlayKeyList COMMA OverlayKey { $$ = NULL; } + | OverlayKey { $$ = NULL; } + ; + +OverlayKey : KEYNAME EQUALS KEYNAME { $$ = NULL; } + ; + +OutlineList : OutlineList COMMA OutlineInList + { $$ = NULL;} + | OutlineInList + { $$ = NULL; } + ; + +OutlineInList : OBRACE CoordList CBRACE + { (void) $2; $$ = NULL; } + | Ident EQUALS OBRACE CoordList CBRACE + { (void) $4; $$ = NULL; } + | Ident EQUALS Expr + { FreeStmt((ParseCommon *) $3); $$ = NULL; } + ; + +CoordList : CoordList COMMA Coord + { (void) $1; (void) $3; $$ = NULL; } + | Coord + { (void) $1; $$ = NULL; } + ; + +Coord : OBRACKET SignedNumber COMMA SignedNumber CBRACKET + { $$ = NULL; } + ; + +DoodadDecl : DoodadType String OBRACE VarDeclList CBRACE SEMI + { FreeStmt((ParseCommon *) $4); $$ = NULL; } + ; + +DoodadType : TEXT { $$ = 0; } + | OUTLINE { $$ = 0; } + | SOLID { $$ = 0; } + | LOGO { $$ = 0; } + ; + +FieldSpec : Ident { $$ = $1; } + | Element { $$ = $1; } + ; + +Element : ACTION_TOK + { $$ = xkb_atom_intern_literal(param->ctx, "action"); } + | INTERPRET + { $$ = xkb_atom_intern_literal(param->ctx, "interpret"); } + | TYPE + { $$ = xkb_atom_intern_literal(param->ctx, "type"); } + | KEY + { $$ = xkb_atom_intern_literal(param->ctx, "key"); } + | GROUP + { $$ = xkb_atom_intern_literal(param->ctx, "group"); } + | MODIFIER_MAP + {$$ = xkb_atom_intern_literal(param->ctx, "modifier_map");} + | INDICATOR + { $$ = xkb_atom_intern_literal(param->ctx, "indicator"); } + | SHAPE + { $$ = XKB_ATOM_NONE; } + | ROW + { $$ = XKB_ATOM_NONE; } + | SECTION + { $$ = XKB_ATOM_NONE; } + | TEXT + { $$ = XKB_ATOM_NONE; } + ; + +OptMergeMode : MergeMode { $$ = $1; } + | { $$ = MERGE_DEFAULT; } + ; + +MergeMode : INCLUDE { $$ = MERGE_DEFAULT; } + | AUGMENT { $$ = MERGE_AUGMENT; } + | OVERRIDE { $$ = MERGE_OVERRIDE; } + | REPLACE { $$ = MERGE_REPLACE; } + | ALTERNATE + { + /* + * This used to be MERGE_ALT_FORM. This functionality was + * unused and has been removed. + */ + $$ = MERGE_DEFAULT; + } + ; + +OptExprList : ExprList { $$ = $1; } + | { $$ = NULL; } + ; + +ExprList : ExprList COMMA Expr + { $$ = (ExprDef *) AppendStmt((ParseCommon *) $1, + (ParseCommon *) $3); } + | Expr + { $$ = $1; } + ; + +Expr : Expr DIVIDE Expr + { $$ = ExprCreateBinary(EXPR_DIVIDE, $1, $3); } + | Expr PLUS Expr + { $$ = ExprCreateBinary(EXPR_ADD, $1, $3); } + | Expr MINUS Expr + { $$ = ExprCreateBinary(EXPR_SUBTRACT, $1, $3); } + | Expr TIMES Expr + { $$ = ExprCreateBinary(EXPR_MULTIPLY, $1, $3); } + | Lhs EQUALS Expr + { $$ = ExprCreateBinary(EXPR_ASSIGN, $1, $3); } + | Term + { $$ = $1; } + ; + +Term : MINUS Term + { $$ = ExprCreateUnary(EXPR_NEGATE, $2->expr.value_type, $2); } + | PLUS Term + { $$ = ExprCreateUnary(EXPR_UNARY_PLUS, $2->expr.value_type, $2); } + | EXCLAM Term + { $$ = ExprCreateUnary(EXPR_NOT, EXPR_TYPE_BOOLEAN, $2); } + | INVERT Term + { $$ = ExprCreateUnary(EXPR_INVERT, $2->expr.value_type, $2); } + | Lhs + { $$ = $1; } + | FieldSpec OPAREN OptExprList CPAREN %prec OPAREN + { $$ = ExprCreateAction($1, $3); } + | Terminal + { $$ = $1; } + | OPAREN Expr CPAREN + { $$ = $2; } + ; + +ActionList : ActionList COMMA Action + { $$ = (ExprDef *) AppendStmt((ParseCommon *) $1, + (ParseCommon *) $3); } + | Action + { $$ = $1; } + ; + +Action : FieldSpec OPAREN OptExprList CPAREN + { $$ = ExprCreateAction($1, $3); } + ; + +Lhs : FieldSpec + { $$ = ExprCreateIdent($1); } + | FieldSpec DOT FieldSpec + { $$ = ExprCreateFieldRef($1, $3); } + | FieldSpec OBRACKET Expr CBRACKET + { $$ = ExprCreateArrayRef(XKB_ATOM_NONE, $1, $3); } + | FieldSpec DOT FieldSpec OBRACKET Expr CBRACKET + { $$ = ExprCreateArrayRef($1, $3, $5); } + ; + +Terminal : String + { $$ = ExprCreateString($1); } + | Integer + { $$ = ExprCreateInteger($1); } + | Float + { $$ = NULL; } + | KEYNAME + { $$ = ExprCreateKeyName($1); } + ; + +OptKeySymList : KeySymList { $$ = $1; } + | { $$ = NULL; } + ; + +KeySymList : KeySymList COMMA KeySym + { $$ = ExprAppendKeysymList($1, $3); } + | KeySymList COMMA KeySyms + { $$ = ExprAppendMultiKeysymList($1, $3); } + | KeySym + { $$ = ExprCreateKeysymList($1); } + | KeySyms + { $$ = ExprCreateMultiKeysymList($1); } + ; + +KeySyms : OBRACE KeySymList CBRACE + { $$ = $2; } + ; + +KeySym : IDENT + { + if (!resolve_keysym($1, &$$)) + parser_warn(param, "unrecognized keysym \"%s\"", $1); + free($1); + } + | SECTION { $$ = XKB_KEY_section; } + | Integer + { + if ($1 < 0) { + parser_warn(param, "unrecognized keysym \"%d\"", $1); + $$ = XKB_KEY_NoSymbol; + } + else if ($1 < 10) { /* XKB_KEY_0 .. XKB_KEY_9 */ + $$ = XKB_KEY_0 + (xkb_keysym_t) $1; + } + else { + char buf[17]; + snprintf(buf, sizeof(buf), "0x%x", $1); + if (!resolve_keysym(buf, &$$)) { + parser_warn(param, "unrecognized keysym \"%s\"", buf); + $$ = XKB_KEY_NoSymbol; + } + } + } + ; + +SignedNumber : MINUS Number { $$ = -$2; } + | Number { $$ = $1; } + ; + +Number : FLOAT { $$ = $1; } + | INTEGER { $$ = $1; } + ; + +Float : FLOAT { $$ = 0; } + ; + +Integer : INTEGER { $$ = $1; } + ; + +KeyCode : INTEGER { $$ = $1; } + ; + +Ident : IDENT { $$ = xkb_atom_steal(param->ctx, $1); } + | DEFAULT { $$ = xkb_atom_intern_literal(param->ctx, "default"); } + ; + +String : STRING { $$ = xkb_atom_steal(param->ctx, $1); } + ; + +OptMapName : MapName { $$ = $1; } + | { $$ = NULL; } + ; + +MapName : STRING { $$ = $1; } + ; + +%% + +XkbFile * +parse(struct xkb_context *ctx, struct scanner *scanner, const char *map) +{ + int ret; + XkbFile *first = NULL; + struct parser_param param = { + .scanner = scanner, + .ctx = ctx, + .rtrn = NULL, + }; + + /* + * If we got a specific map, we look for it exclusively and return + * immediately upon finding it. Otherwise, we need to get the + * default map. If we find a map marked as default, we return it + * immediately. If there are no maps marked as default, we return + * the first map in the file. + */ + + while ((ret = yyparse(¶m)) == 0 && param.more_maps) { + if (map) { + if (streq_not_null(map, param.rtrn->name)) + return param.rtrn; + else + FreeXkbFile(param.rtrn); + } + else { + if (param.rtrn->flags & MAP_IS_DEFAULT) { + FreeXkbFile(first); + return param.rtrn; + } + else if (!first) { + first = param.rtrn; + } + else { + FreeXkbFile(param.rtrn); + } + } + param.rtrn = NULL; + } + + if (ret != 0) { + FreeXkbFile(first); + return NULL; + } + + if (first) + log_vrb(ctx, 5, + "No map in include statement, but \"%s\" contains several; " + "Using first defined map, \"%s\"\n", + scanner->file_name, first->name); + + return first; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c new file mode 100644 index 0000000..94ac547 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.c @@ -0,0 +1,1037 @@ +/************************************************************ + * Copyright (c) 1996 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "xkbcomp-priv.h" +#include "rules.h" +#include "include.h" +#include "scanner-utils.h" + +/* Scanner / Lexer */ + +/* Values returned with some tokens, like yylval. */ +union lvalue { + struct sval string; +}; + +enum rules_token { + TOK_END_OF_FILE = 0, + TOK_END_OF_LINE, + TOK_IDENTIFIER, + TOK_GROUP_NAME, + TOK_BANG, + TOK_EQUALS, + TOK_STAR, + TOK_ERROR +}; + +static inline bool +is_ident(char ch) +{ + return is_graph(ch) && ch != '\\'; +} + +static enum rules_token +lex(struct scanner *s, union lvalue *val) +{ +skip_more_whitespace_and_comments: + /* Skip spaces. */ + while (chr(s, ' ') || chr(s, '\t')); + + /* Skip comments. */ + if (lit(s, "//")) { + skip_to_eol(s); + } + + /* New line. */ + if (eol(s)) { + while (eol(s)) next(s); + return TOK_END_OF_LINE; + } + + /* Escaped line continuation. */ + if (chr(s, '\\')) { + if (!eol(s)) { + scanner_err(s, "illegal new line escape; must appear at end of line"); + return TOK_ERROR; + } + next(s); + goto skip_more_whitespace_and_comments; + } + + /* See if we're done. */ + if (eof(s)) return TOK_END_OF_FILE; + + /* New token. */ + s->token_line = s->line; + s->token_column = s->column; + + /* Operators and punctuation. */ + if (chr(s, '!')) return TOK_BANG; + if (chr(s, '=')) return TOK_EQUALS; + if (chr(s, '*')) return TOK_STAR; + + /* Group name. */ + if (chr(s, '$')) { + val->string.start = s->s + s->pos; + val->string.len = 0; + while (is_ident(peek(s))) { + next(s); + val->string.len++; + } + if (val->string.len == 0) { + scanner_err(s, "unexpected character after \'$\'; expected name"); + return TOK_ERROR; + } + return TOK_GROUP_NAME; + } + + /* Identifier. */ + if (is_ident(peek(s))) { + val->string.start = s->s + s->pos; + val->string.len = 0; + while (is_ident(peek(s))) { + next(s); + val->string.len++; + } + return TOK_IDENTIFIER; + } + + scanner_err(s, "unrecognized token"); + return TOK_ERROR; +} + +/***====================================================================***/ + +enum rules_mlvo { + MLVO_MODEL, + MLVO_LAYOUT, + MLVO_VARIANT, + MLVO_OPTION, + _MLVO_NUM_ENTRIES +}; + +#define SVAL_LIT(literal) { literal, sizeof(literal) - 1 } + +static const struct sval rules_mlvo_svals[_MLVO_NUM_ENTRIES] = { + [MLVO_MODEL] = SVAL_LIT("model"), + [MLVO_LAYOUT] = SVAL_LIT("layout"), + [MLVO_VARIANT] = SVAL_LIT("variant"), + [MLVO_OPTION] = SVAL_LIT("option"), +}; + +enum rules_kccgst { + KCCGST_KEYCODES, + KCCGST_TYPES, + KCCGST_COMPAT, + KCCGST_SYMBOLS, + KCCGST_GEOMETRY, + _KCCGST_NUM_ENTRIES +}; + +static const struct sval rules_kccgst_svals[_KCCGST_NUM_ENTRIES] = { + [KCCGST_KEYCODES] = SVAL_LIT("keycodes"), + [KCCGST_TYPES] = SVAL_LIT("types"), + [KCCGST_COMPAT] = SVAL_LIT("compat"), + [KCCGST_SYMBOLS] = SVAL_LIT("symbols"), + [KCCGST_GEOMETRY] = SVAL_LIT("geometry"), +}; + +/* We use this to keep score whether an mlvo was matched or not; if not, + * we warn the user that his preference was ignored. */ +struct matched_sval { + struct sval sval; + bool matched; +}; +typedef darray(struct matched_sval) darray_matched_sval; + +/* + * A broken-down version of xkb_rule_names (without the rules, + * obviously). + */ +struct rule_names { + struct matched_sval model; + darray_matched_sval layouts; + darray_matched_sval variants; + darray_matched_sval options; +}; + +struct group { + struct sval name; + darray_sval elements; +}; + +struct mapping { + int mlvo_at_pos[_MLVO_NUM_ENTRIES]; + unsigned int num_mlvo; + unsigned int defined_mlvo_mask; + xkb_layout_index_t layout_idx, variant_idx; + int kccgst_at_pos[_KCCGST_NUM_ENTRIES]; + unsigned int num_kccgst; + unsigned int defined_kccgst_mask; + bool skip; +}; + +enum mlvo_match_type { + MLVO_MATCH_NORMAL = 0, + MLVO_MATCH_WILDCARD, + MLVO_MATCH_GROUP, +}; + +struct rule { + struct sval mlvo_value_at_pos[_MLVO_NUM_ENTRIES]; + enum mlvo_match_type match_type_at_pos[_MLVO_NUM_ENTRIES]; + unsigned int num_mlvo_values; + struct sval kccgst_value_at_pos[_KCCGST_NUM_ENTRIES]; + unsigned int num_kccgst_values; + bool skip; +}; + +/* + * This is the main object used to match a given RMLVO against a rules + * file and aggragate the results in a KcCGST. It goes through a simple + * matching state machine, with tokens as transitions (see + * matcher_match()). + */ +struct matcher { + struct xkb_context *ctx; + /* Input.*/ + struct rule_names rmlvo; + union lvalue val; + struct scanner scanner; + darray(struct group) groups; + /* Current mapping. */ + struct mapping mapping; + /* Current rule. */ + struct rule rule; + /* Output. */ + darray_char kccgst[_KCCGST_NUM_ENTRIES]; +}; + +static struct sval +strip_spaces(struct sval v) +{ + while (v.len > 0 && is_space(v.start[0])) { v.len--; v.start++; } + while (v.len > 0 && is_space(v.start[v.len - 1])) v.len--; + return v; +} + +static darray_matched_sval +split_comma_separated_mlvo(const char *s) +{ + darray_matched_sval arr = darray_new(); + + /* + * Make sure the array returned by this function always includes at + * least one value, e.g. "" -> { "" } and "," -> { "", "" }. + */ + + if (!s) { + struct matched_sval val = { .sval = { NULL, 0 } }; + darray_append(arr, val); + return arr; + } + + while (true) { + struct matched_sval val = { .sval = { s, 0 } }; + while (*s != '\0' && *s != ',') { s++; val.sval.len++; } + val.sval = strip_spaces(val.sval); + darray_append(arr, val); + if (*s == '\0') break; + if (*s == ',') s++; + } + + return arr; +} + +static struct matcher * +matcher_new(struct xkb_context *ctx, + const struct xkb_rule_names *rmlvo) +{ + struct matcher *m = calloc(1, sizeof(*m)); + if (!m) + return NULL; + + m->ctx = ctx; + m->rmlvo.model.sval.start = rmlvo->model; + m->rmlvo.model.sval.len = strlen_safe(rmlvo->model); + m->rmlvo.layouts = split_comma_separated_mlvo(rmlvo->layout); + m->rmlvo.variants = split_comma_separated_mlvo(rmlvo->variant); + m->rmlvo.options = split_comma_separated_mlvo(rmlvo->options); + + return m; +} + +static void +matcher_free(struct matcher *m) +{ + struct group *group; + if (!m) + return; + darray_free(m->rmlvo.layouts); + darray_free(m->rmlvo.variants); + darray_free(m->rmlvo.options); + darray_foreach(group, m->groups) + darray_free(group->elements); + for (int i = 0; i < _KCCGST_NUM_ENTRIES; i++) + darray_free(m->kccgst[i]); + darray_free(m->groups); + free(m); +} + +#define matcher_err(matcher, fmt, ...) \ + scanner_err(&(matcher)->scanner, fmt, ## __VA_ARGS__) + +static void +matcher_group_start_new(struct matcher *m, struct sval name) +{ + struct group group = { .name = name, .elements = darray_new() }; + darray_append(m->groups, group); +} + +static void +matcher_group_add_element(struct matcher *m, struct sval element) +{ + darray_append(darray_item(m->groups, darray_size(m->groups) - 1).elements, + element); +} + +static void +matcher_mapping_start_new(struct matcher *m) +{ + for (unsigned i = 0; i < _MLVO_NUM_ENTRIES; i++) + m->mapping.mlvo_at_pos[i] = -1; + for (unsigned i = 0; i < _KCCGST_NUM_ENTRIES; i++) + m->mapping.kccgst_at_pos[i] = -1; + m->mapping.layout_idx = m->mapping.variant_idx = XKB_LAYOUT_INVALID; + m->mapping.num_mlvo = m->mapping.num_kccgst = 0; + m->mapping.defined_mlvo_mask = 0; + m->mapping.defined_kccgst_mask = 0; + m->mapping.skip = false; +} + +static int +extract_layout_index(const char *s, size_t max_len, xkb_layout_index_t *out) +{ + /* This function is pretty stupid, but works for now. */ + *out = XKB_LAYOUT_INVALID; + if (max_len < 3) + return -1; + if (s[0] != '[' || !is_digit(s[1]) || s[2] != ']') + return -1; + if (s[1] - '0' < 1 || s[1] - '0' > XKB_MAX_GROUPS) + return -1; + /* To zero-based index. */ + *out = s[1] - '0' - 1; + return 3; +} + +static void +matcher_mapping_set_mlvo(struct matcher *m, struct sval ident) +{ + enum rules_mlvo mlvo; + struct sval mlvo_sval; + + for (mlvo = 0; mlvo < _MLVO_NUM_ENTRIES; mlvo++) { + mlvo_sval = rules_mlvo_svals[mlvo]; + + if (svaleq_prefix(mlvo_sval, ident)) + break; + } + + /* Not found. */ + if (mlvo >= _MLVO_NUM_ENTRIES) { + matcher_err(m, "invalid mapping: %.*s is not a valid value here; ignoring rule set", + ident.len, ident.start); + m->mapping.skip = true; + return; + } + + if (m->mapping.defined_mlvo_mask & (1u << mlvo)) { + matcher_err(m, "invalid mapping: %.*s appears twice on the same line; ignoring rule set", + mlvo_sval.len, mlvo_sval.start); + m->mapping.skip = true; + return; + } + + /* If there are leftovers still, it must be an index. */ + if (mlvo_sval.len < ident.len) { + xkb_layout_index_t idx; + int consumed = extract_layout_index(ident.start + mlvo_sval.len, + ident.len - mlvo_sval.len, &idx); + if ((int) (ident.len - mlvo_sval.len) != consumed) { + matcher_err(m, "invalid mapping: \"%.*s\" may only be followed by a valid group index; ignoring rule set", + mlvo_sval.len, mlvo_sval.start); + m->mapping.skip = true; + return; + } + + if (mlvo == MLVO_LAYOUT) { + m->mapping.layout_idx = idx; + } + else if (mlvo == MLVO_VARIANT) { + m->mapping.variant_idx = idx; + } + else { + matcher_err(m, "invalid mapping: \"%.*s\" cannot be followed by a group index; ignoring rule set", + mlvo_sval.len, mlvo_sval.start); + m->mapping.skip = true; + return; + } + } + + m->mapping.mlvo_at_pos[m->mapping.num_mlvo] = mlvo; + m->mapping.defined_mlvo_mask |= 1u << mlvo; + m->mapping.num_mlvo++; +} + +static void +matcher_mapping_set_kccgst(struct matcher *m, struct sval ident) +{ + enum rules_kccgst kccgst; + struct sval kccgst_sval; + + for (kccgst = 0; kccgst < _KCCGST_NUM_ENTRIES; kccgst++) { + kccgst_sval = rules_kccgst_svals[kccgst]; + + if (svaleq(rules_kccgst_svals[kccgst], ident)) + break; + } + + /* Not found. */ + if (kccgst >= _KCCGST_NUM_ENTRIES) { + matcher_err(m, "invalid mapping: %.*s is not a valid value here; ignoring rule set", + ident.len, ident.start); + m->mapping.skip = true; + return; + } + + if (m->mapping.defined_kccgst_mask & (1u << kccgst)) { + matcher_err(m, "invalid mapping: %.*s appears twice on the same line; ignoring rule set", + kccgst_sval.len, kccgst_sval.start); + m->mapping.skip = true; + return; + } + + m->mapping.kccgst_at_pos[m->mapping.num_kccgst] = kccgst; + m->mapping.defined_kccgst_mask |= 1u << kccgst; + m->mapping.num_kccgst++; +} + +static void +matcher_mapping_verify(struct matcher *m) +{ + if (m->mapping.num_mlvo == 0) { + matcher_err(m, "invalid mapping: must have at least one value on the left hand side; ignoring rule set"); + goto skip; + } + + if (m->mapping.num_kccgst == 0) { + matcher_err(m, "invalid mapping: must have at least one value on the right hand side; ignoring rule set"); + goto skip; + } + + /* + * This following is very stupid, but this is how it works. + * See the "Notes" section in the overview above. + */ + + if (m->mapping.defined_mlvo_mask & (1u << MLVO_LAYOUT)) { + if (m->mapping.layout_idx == XKB_LAYOUT_INVALID) { + if (darray_size(m->rmlvo.layouts) > 1) + goto skip; + } + else { + if (darray_size(m->rmlvo.layouts) == 1 || + m->mapping.layout_idx >= darray_size(m->rmlvo.layouts)) + goto skip; + } + } + + if (m->mapping.defined_mlvo_mask & (1u << MLVO_VARIANT)) { + if (m->mapping.variant_idx == XKB_LAYOUT_INVALID) { + if (darray_size(m->rmlvo.variants) > 1) + goto skip; + } + else { + if (darray_size(m->rmlvo.variants) == 1 || + m->mapping.variant_idx >= darray_size(m->rmlvo.variants)) + goto skip; + } + } + + return; + +skip: + m->mapping.skip = true; +} + +static void +matcher_rule_start_new(struct matcher *m) +{ + memset(&m->rule, 0, sizeof(m->rule)); + m->rule.skip = m->mapping.skip; +} + +static void +matcher_rule_set_mlvo_common(struct matcher *m, struct sval ident, + enum mlvo_match_type match_type) +{ + if (m->rule.num_mlvo_values + 1 > m->mapping.num_mlvo) { + matcher_err(m, "invalid rule: has more values than the mapping line; ignoring rule"); + m->rule.skip = true; + return; + } + m->rule.match_type_at_pos[m->rule.num_mlvo_values] = match_type; + m->rule.mlvo_value_at_pos[m->rule.num_mlvo_values] = ident; + m->rule.num_mlvo_values++; +} + +static void +matcher_rule_set_mlvo_wildcard(struct matcher *m) +{ + struct sval dummy = { NULL, 0 }; + matcher_rule_set_mlvo_common(m, dummy, MLVO_MATCH_WILDCARD); +} + +static void +matcher_rule_set_mlvo_group(struct matcher *m, struct sval ident) +{ + matcher_rule_set_mlvo_common(m, ident, MLVO_MATCH_GROUP); +} + +static void +matcher_rule_set_mlvo(struct matcher *m, struct sval ident) +{ + matcher_rule_set_mlvo_common(m, ident, MLVO_MATCH_NORMAL); +} + +static void +matcher_rule_set_kccgst(struct matcher *m, struct sval ident) +{ + if (m->rule.num_kccgst_values + 1 > m->mapping.num_kccgst) { + matcher_err(m, "invalid rule: has more values than the mapping line; ignoring rule"); + m->rule.skip = true; + return; + } + m->rule.kccgst_value_at_pos[m->rule.num_kccgst_values] = ident; + m->rule.num_kccgst_values++; +} + +static bool +match_group(struct matcher *m, struct sval group_name, struct sval to) +{ + struct group *group; + struct sval *element; + bool found = false; + + darray_foreach(group, m->groups) { + if (svaleq(group->name, group_name)) { + found = true; + break; + } + } + + if (!found) { + /* + * rules/evdev intentionally uses some undeclared group names + * in rules (e.g. commented group definitions which may be + * uncommented if needed). So we continue silently. + */ + return false; + } + + darray_foreach(element, group->elements) + if (svaleq(to, *element)) + return true; + + return false; +} + +static bool +match_value(struct matcher *m, struct sval val, struct sval to, + enum mlvo_match_type match_type) +{ + if (match_type == MLVO_MATCH_WILDCARD) + return true; + if (match_type == MLVO_MATCH_GROUP) + return match_group(m, val, to); + return svaleq(val, to); +} + +static bool +match_value_and_mark(struct matcher *m, struct sval val, + struct matched_sval *to, enum mlvo_match_type match_type) +{ + bool matched = match_value(m, val, to->sval, match_type); + if (matched) + to->matched = true; + return matched; +} + +/* + * This function performs %-expansion on @value (see overview above), + * and appends the result to @to. + */ +static bool +append_expanded_kccgst_value(struct matcher *m, darray_char *to, + struct sval value) +{ + const char *s = value.start; + darray_char expanded = darray_new(); + char ch; + bool expanded_plus, to_plus; + + /* + * Some ugly hand-lexing here, but going through the scanner is more + * trouble than it's worth, and the format is ugly on its own merit. + */ + for (unsigned i = 0; i < value.len; ) { + enum rules_mlvo mlv; + xkb_layout_index_t idx; + char pfx, sfx; + struct matched_sval *expanded_value; + + /* Check if that's a start of an expansion. */ + if (s[i] != '%') { + /* Just a normal character. */ + darray_appends_nullterminate(expanded, &s[i++], 1); + continue; + } + if (++i >= value.len) goto error; + + pfx = sfx = 0; + + /* Check for prefix. */ + if (s[i] == '(' || s[i] == '+' || s[i] == '|' || + s[i] == '_' || s[i] == '-') { + pfx = s[i]; + if (s[i] == '(') sfx = ')'; + if (++i >= value.len) goto error; + } + + /* Mandatory model/layout/variant specifier. */ + switch (s[i++]) { + case 'm': mlv = MLVO_MODEL; break; + case 'l': mlv = MLVO_LAYOUT; break; + case 'v': mlv = MLVO_VARIANT; break; + default: goto error; + } + + /* Check for index. */ + idx = XKB_LAYOUT_INVALID; + if (i < value.len && s[i] == '[') { + int consumed; + + if (mlv != MLVO_LAYOUT && mlv != MLVO_VARIANT) { + matcher_err(m, "invalid index in %%-expansion; may only index layout or variant"); + goto error; + } + + consumed = extract_layout_index(s + i, value.len - i, &idx); + if (consumed == -1) goto error; + i += consumed; + } + + /* Check for suffix, if there supposed to be one. */ + if (sfx != 0) { + if (i >= value.len) goto error; + if (s[i++] != sfx) goto error; + } + + /* Get the expanded value. */ + expanded_value = NULL; + + if (mlv == MLVO_LAYOUT) { + if (idx != XKB_LAYOUT_INVALID && + idx < darray_size(m->rmlvo.layouts) && + darray_size(m->rmlvo.layouts) > 1) + expanded_value = &darray_item(m->rmlvo.layouts, idx); + else if (idx == XKB_LAYOUT_INVALID && + darray_size(m->rmlvo.layouts) == 1) + expanded_value = &darray_item(m->rmlvo.layouts, 0); + } + else if (mlv == MLVO_VARIANT) { + if (idx != XKB_LAYOUT_INVALID && + idx < darray_size(m->rmlvo.variants) && + darray_size(m->rmlvo.variants) > 1) + expanded_value = &darray_item(m->rmlvo.variants, idx); + else if (idx == XKB_LAYOUT_INVALID && + darray_size(m->rmlvo.variants) == 1) + expanded_value = &darray_item(m->rmlvo.variants, 0); + } + else if (mlv == MLVO_MODEL) { + expanded_value = &m->rmlvo.model; + } + + /* If we didn't get one, skip silently. */ + if (!expanded_value || expanded_value->sval.len == 0) + continue; + + if (pfx != 0) + darray_appends_nullterminate(expanded, &pfx, 1); + darray_appends_nullterminate(expanded, + expanded_value->sval.start, + expanded_value->sval.len); + if (sfx != 0) + darray_appends_nullterminate(expanded, &sfx, 1); + expanded_value->matched = true; + } + + /* + * Appending bar to foo -> foo (not an error if this happens) + * Appending +bar to foo -> foo+bar + * Appending bar to +foo -> bar+foo + * Appending +bar to +foo -> +foo+bar + */ + + ch = (darray_empty(expanded) ? '\0' : darray_item(expanded, 0)); + expanded_plus = (ch == '+' || ch == '|'); + ch = (darray_empty(*to) ? '\0' : darray_item(*to, 0)); + to_plus = (ch == '+' || ch == '|'); + + if (expanded_plus || darray_empty(*to)) + darray_appends_nullterminate(*to, expanded.item, expanded.size); + else if (to_plus) + darray_prepends_nullterminate(*to, expanded.item, expanded.size); + + darray_free(expanded); + return true; + +error: + darray_free(expanded); + matcher_err(m, "invalid %%-expansion in value; not used"); + return false; +} + +static void +matcher_rule_verify(struct matcher *m) +{ + if (m->rule.num_mlvo_values != m->mapping.num_mlvo || + m->rule.num_kccgst_values != m->mapping.num_kccgst) { + matcher_err(m, "invalid rule: must have same number of values as mapping line; ignoring rule"); + m->rule.skip = true; + } +} + +static void +matcher_rule_apply_if_matches(struct matcher *m) +{ + for (unsigned i = 0; i < m->mapping.num_mlvo; i++) { + enum rules_mlvo mlvo = m->mapping.mlvo_at_pos[i]; + struct sval value = m->rule.mlvo_value_at_pos[i]; + enum mlvo_match_type match_type = m->rule.match_type_at_pos[i]; + struct matched_sval *to; + bool matched = false; + + if (mlvo == MLVO_MODEL) { + to = &m->rmlvo.model; + matched = match_value_and_mark(m, value, to, match_type); + } + else if (mlvo == MLVO_LAYOUT) { + xkb_layout_index_t idx = m->mapping.layout_idx; + idx = (idx == XKB_LAYOUT_INVALID ? 0 : idx); + to = &darray_item(m->rmlvo.layouts, idx); + matched = match_value_and_mark(m, value, to, match_type); + } + else if (mlvo == MLVO_VARIANT) { + xkb_layout_index_t idx = m->mapping.layout_idx; + idx = (idx == XKB_LAYOUT_INVALID ? 0 : idx); + to = &darray_item(m->rmlvo.variants, idx); + matched = match_value_and_mark(m, value, to, match_type); + } + else if (mlvo == MLVO_OPTION) { + darray_foreach(to, m->rmlvo.options) { + matched = match_value_and_mark(m, value, to, match_type); + if (matched) + break; + } + } + + if (!matched) + return; + } + + for (unsigned i = 0; i < m->mapping.num_kccgst; i++) { + enum rules_kccgst kccgst = m->mapping.kccgst_at_pos[i]; + struct sval value = m->rule.kccgst_value_at_pos[i]; + append_expanded_kccgst_value(m, &m->kccgst[kccgst], value); + } + + /* + * If a rule matches in a rule set, the rest of the set should be + * skipped. However, rule sets matching against options may contain + * several legitimate rules, so they are processed entirely. + */ + if (!(m->mapping.defined_mlvo_mask & (1 << MLVO_OPTION))) + m->mapping.skip = true; +} + +static enum rules_token +gettok(struct matcher *m) +{ + return lex(&m->scanner, &m->val); +} + +static bool +matcher_match(struct matcher *m, const char *string, size_t len, + const char *file_name, struct xkb_component_names *out) +{ + enum rules_token tok; + struct matched_sval *mval; + + if (!m) + return false; + + scanner_init(&m->scanner, m->ctx, string, len, file_name, NULL); + +initial: + switch (tok = gettok(m)) { + case TOK_BANG: + goto bang; + case TOK_END_OF_LINE: + goto initial; + case TOK_END_OF_FILE: + goto finish; + default: + goto unexpected; + } + +bang: + switch (tok = gettok(m)) { + case TOK_GROUP_NAME: + matcher_group_start_new(m, m->val.string); + goto group_name; + case TOK_IDENTIFIER: + matcher_mapping_start_new(m); + matcher_mapping_set_mlvo(m, m->val.string); + goto mapping_mlvo; + default: + goto unexpected; + } + +group_name: + switch (tok = gettok(m)) { + case TOK_EQUALS: + goto group_element; + default: + goto unexpected; + } + +group_element: + switch (tok = gettok(m)) { + case TOK_IDENTIFIER: + matcher_group_add_element(m, m->val.string); + goto group_element; + case TOK_END_OF_LINE: + goto initial; + default: + goto unexpected; + } + +mapping_mlvo: + switch (tok = gettok(m)) { + case TOK_IDENTIFIER: + if (!m->mapping.skip) + matcher_mapping_set_mlvo(m, m->val.string); + goto mapping_mlvo; + case TOK_EQUALS: + goto mapping_kccgst; + default: + goto unexpected; + } + +mapping_kccgst: + switch (tok = gettok(m)) { + case TOK_IDENTIFIER: + if (!m->mapping.skip) + matcher_mapping_set_kccgst(m, m->val.string); + goto mapping_kccgst; + case TOK_END_OF_LINE: + if (!m->mapping.skip) + matcher_mapping_verify(m); + goto rule_mlvo_first; + default: + goto unexpected; + } + +rule_mlvo_first: + switch (tok = gettok(m)) { + case TOK_BANG: + goto bang; + case TOK_END_OF_LINE: + goto rule_mlvo_first; + case TOK_END_OF_FILE: + goto finish; + default: + matcher_rule_start_new(m); + goto rule_mlvo_no_tok; + } + +rule_mlvo: + tok = gettok(m); +rule_mlvo_no_tok: + switch (tok) { + case TOK_IDENTIFIER: + if (!m->rule.skip) + matcher_rule_set_mlvo(m, m->val.string); + goto rule_mlvo; + case TOK_STAR: + if (!m->rule.skip) + matcher_rule_set_mlvo_wildcard(m); + goto rule_mlvo; + case TOK_GROUP_NAME: + if (!m->rule.skip) + matcher_rule_set_mlvo_group(m, m->val.string); + goto rule_mlvo; + case TOK_EQUALS: + goto rule_kccgst; + default: + goto unexpected; + } + +rule_kccgst: + switch (tok = gettok(m)) { + case TOK_IDENTIFIER: + if (!m->rule.skip) + matcher_rule_set_kccgst(m, m->val.string); + goto rule_kccgst; + case TOK_END_OF_LINE: + if (!m->rule.skip) + matcher_rule_verify(m); + if (!m->rule.skip) + matcher_rule_apply_if_matches(m); + goto rule_mlvo_first; + default: + goto unexpected; + } + +unexpected: + switch (tok) { + case TOK_ERROR: + goto error; + default: + goto state_error; + } + +finish: + if (darray_empty(m->kccgst[KCCGST_KEYCODES]) || + darray_empty(m->kccgst[KCCGST_TYPES]) || + darray_empty(m->kccgst[KCCGST_COMPAT]) || + /* darray_empty(m->kccgst[KCCGST_GEOMETRY]) || */ + darray_empty(m->kccgst[KCCGST_SYMBOLS])) + goto error; + + darray_steal(m->kccgst[KCCGST_KEYCODES], &out->keycodes, NULL); + darray_steal(m->kccgst[KCCGST_TYPES], &out->types, NULL); + darray_steal(m->kccgst[KCCGST_COMPAT], &out->compat, NULL); + darray_steal(m->kccgst[KCCGST_SYMBOLS], &out->symbols, NULL); + darray_free(m->kccgst[KCCGST_GEOMETRY]); + + + mval = &m->rmlvo.model; + if (!mval->matched && mval->sval.len > 0) + log_err(m->ctx, "Unrecognized RMLVO model \"%.*s\" was ignored\n", + mval->sval.len, mval->sval.start); + darray_foreach(mval, m->rmlvo.layouts) + if (!mval->matched && mval->sval.len > 0) + log_err(m->ctx, "Unrecognized RMLVO layout \"%.*s\" was ignored\n", + mval->sval.len, mval->sval.start); + darray_foreach(mval, m->rmlvo.variants) + if (!mval->matched && mval->sval.len > 0) + log_err(m->ctx, "Unrecognized RMLVO variant \"%.*s\" was ignored\n", + mval->sval.len, mval->sval.start); + darray_foreach(mval, m->rmlvo.options) + if (!mval->matched && mval->sval.len > 0) + log_err(m->ctx, "Unrecognized RMLVO option \"%.*s\" was ignored\n", + mval->sval.len, mval->sval.start); + + return true; + +state_error: + matcher_err(m, "unexpected token"); +error: + return false; +} + +bool +xkb_components_from_rules(struct xkb_context *ctx, + const struct xkb_rule_names *rmlvo, + struct xkb_component_names *out) +{ + bool ret = false; + FILE *file; + char *path; + const char *string; + size_t size; + struct matcher *matcher; + + file = FindFileInXkbPath(ctx, rmlvo->rules, FILE_TYPE_RULES, &path); + if (!file) + goto err_out; + + ret = map_file(file, &string, &size); + if (!ret) { + log_err(ctx, "Couldn't read rules file \"%s\": %s\n", + path, strerror(errno)); + goto err_file; + } + + matcher = matcher_new(ctx, rmlvo); + ret = matcher_match(matcher, string, size, path, out); + if (!ret) + log_err(ctx, "No components returned from XKB rules \"%s\"\n", path); + matcher_free(matcher); + + unmap_file(string, size); +err_file: + free(path); + fclose(file); +err_out: + return ret; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.h new file mode 100644 index 0000000..5381b15 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/rules.h @@ -0,0 +1,32 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef XKBCOMP_RULES_H +#define XKBCOMP_RULES_H + +bool +xkb_components_from_rules(struct xkb_context *ctx, + const struct xkb_rule_names *rmlvo, + struct xkb_component_names *out); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c new file mode 100644 index 0000000..ba8f4e9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/scanner.c @@ -0,0 +1,208 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "xkbcomp-priv.h" +#include "parser-priv.h" +#include "scanner-utils.h" + +static bool +number(struct scanner *s, int64_t *out, int *out_tok) +{ + bool is_float = false, is_hex = false; + const char *start = s->s + s->pos; + char *end; + + if (lit(s, "0x")) { + while (is_xdigit(peek(s))) next(s); + is_hex = true; + } + else { + while (is_digit(peek(s))) next(s); + is_float = chr(s, '.'); + while (is_digit(peek(s))) next(s); + } + if (s->s + s->pos == start) + return false; + + errno = 0; + if (is_hex) + *out = strtoul(start, &end, 16); + else if (is_float) + *out = strtod(start, &end); + else + *out = strtoul(start, &end, 10); + if (errno != 0 || s->s + s->pos != end) + *out_tok = ERROR_TOK; + else + *out_tok = (is_float ? FLOAT : INTEGER); + return true; +} + +int +_xkbcommon_lex(YYSTYPE *yylval, struct scanner *s) +{ + int tok; + +skip_more_whitespace_and_comments: + /* Skip spaces. */ + while (is_space(peek(s))) next(s); + + /* Skip comments. */ + if (lit(s, "//") || chr(s, '#')) { + skip_to_eol(s); + goto skip_more_whitespace_and_comments; + } + + /* See if we're done. */ + if (eof(s)) return END_OF_FILE; + + /* New token. */ + s->token_line = s->line; + s->token_column = s->column; + s->buf_pos = 0; + + /* String literal. */ + if (chr(s, '\"')) { + while (!eof(s) && !eol(s) && peek(s) != '\"') { + if (chr(s, '\\')) { + uint8_t o; + if (chr(s, '\\')) buf_append(s, '\\'); + else if (chr(s, 'n')) buf_append(s, '\n'); + else if (chr(s, 't')) buf_append(s, '\t'); + else if (chr(s, 'r')) buf_append(s, '\r'); + else if (chr(s, 'b')) buf_append(s, '\b'); + else if (chr(s, 'f')) buf_append(s, '\f'); + else if (chr(s, 'v')) buf_append(s, '\v'); + else if (chr(s, 'e')) buf_append(s, '\033'); + else if (oct(s, &o)) buf_append(s, (char) o); + else { + scanner_warn(s, "unknown escape sequence in string literal"); + /* Ignore. */ + } + } else { + buf_append(s, next(s)); + } + } + if (!buf_append(s, '\0') || !chr(s, '\"')) { + scanner_err(s, "unterminated string literal"); + return ERROR_TOK; + } + yylval->str = strdup(s->buf); + if (!yylval->str) + return ERROR_TOK; + return STRING; + } + + /* Key name literal. */ + if (chr(s, '<')) { + while (is_graph(peek(s)) && peek(s) != '>') + buf_append(s, next(s)); + if (!buf_append(s, '\0') || !chr(s, '>')) { + scanner_err(s, "unterminated key name literal"); + return ERROR_TOK; + } + /* Empty key name literals are allowed. */ + yylval->atom = xkb_atom_intern(s->ctx, s->buf, s->buf_pos - 1); + return KEYNAME; + } + + /* Operators and punctuation. */ + if (chr(s, ';')) return SEMI; + if (chr(s, '{')) return OBRACE; + if (chr(s, '}')) return CBRACE; + if (chr(s, '=')) return EQUALS; + if (chr(s, '[')) return OBRACKET; + if (chr(s, ']')) return CBRACKET; + if (chr(s, '(')) return OPAREN; + if (chr(s, ')')) return CPAREN; + if (chr(s, '.')) return DOT; + if (chr(s, ',')) return COMMA; + if (chr(s, '+')) return PLUS; + if (chr(s, '-')) return MINUS; + if (chr(s, '*')) return TIMES; + if (chr(s, '/')) return DIVIDE; + if (chr(s, '!')) return EXCLAM; + if (chr(s, '~')) return INVERT; + + /* Identifier. */ + if (is_alpha(peek(s)) || peek(s) == '_') { + s->buf_pos = 0; + while (is_alnum(peek(s)) || peek(s) == '_') + buf_append(s, next(s)); + if (!buf_append(s, '\0')) { + scanner_err(s, "identifier too long"); + return ERROR_TOK; + } + + /* Keyword. */ + tok = keyword_to_token(s->buf, s->buf_pos - 1); + if (tok != -1) return tok; + + yylval->str = strdup(s->buf); + if (!yylval->str) + return ERROR_TOK; + return IDENT; + } + + /* Number literal (hexadecimal / decimal / float). */ + if (number(s, &yylval->num, &tok)) { + if (tok == ERROR_TOK) { + scanner_err(s, "malformed number literal"); + return ERROR_TOK; + } + return tok; + } + + scanner_err(s, "unrecognized token"); + return ERROR_TOK; +} + +XkbFile * +XkbParseString(struct xkb_context *ctx, const char *string, size_t len, + const char *file_name, const char *map) +{ + struct scanner scanner; + scanner_init(&scanner, ctx, string, len, file_name, NULL); + return parse(ctx, &scanner, map); +} + +XkbFile * +XkbParseFile(struct xkb_context *ctx, FILE *file, + const char *file_name, const char *map) +{ + bool ok; + XkbFile *xkb_file; + const char *string; + size_t size; + + ok = map_file(file, &string, &size); + if (!ok) { + log_err(ctx, "Couldn't read XKB file %s: %s\n", + file_name, strerror(errno)); + return NULL; + } + + xkb_file = XkbParseString(ctx, string, size, file_name, map); + unmap_file(string, size); + return xkb_file; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c new file mode 100644 index 0000000..bff7fb3 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/symbols.c @@ -0,0 +1,1608 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + * Ran Benita + */ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "expr.h" +#include "action.h" +#include "vmod.h" +#include "include.h" +#include "keysym.h" + +enum key_repeat { + KEY_REPEAT_UNDEFINED = 0, + KEY_REPEAT_YES = 1, + KEY_REPEAT_NO = 2, +}; + +enum group_field { + GROUP_FIELD_SYMS = (1 << 0), + GROUP_FIELD_ACTS = (1 << 1), + GROUP_FIELD_TYPE = (1 << 2), +}; + +enum key_field { + KEY_FIELD_REPEAT = (1 << 0), + KEY_FIELD_DEFAULT_TYPE = (1 << 1), + KEY_FIELD_GROUPINFO = (1 << 2), + KEY_FIELD_VMODMAP = (1 << 3), +}; + +typedef struct { + enum group_field defined; + darray(struct xkb_level) levels; + xkb_atom_t type; +} GroupInfo; + +typedef struct { + enum key_field defined; + enum merge_mode merge; + + xkb_atom_t name; + + darray(GroupInfo) groups; + + enum key_repeat repeat; + xkb_mod_mask_t vmodmap; + xkb_atom_t default_type; + + enum xkb_range_exceed_type out_of_range_group_action; + xkb_layout_index_t out_of_range_group_number; +} KeyInfo; + +static void +ClearLevelInfo(struct xkb_level *leveli) +{ + if (leveli->num_syms > 1) + free(leveli->u.syms); +} + +static void +InitGroupInfo(GroupInfo *groupi) +{ + memset(groupi, 0, sizeof(*groupi)); +} + +static void +ClearGroupInfo(GroupInfo *groupi) +{ + struct xkb_level *leveli; + darray_foreach(leveli, groupi->levels) + ClearLevelInfo(leveli); + darray_free(groupi->levels); +} + +static void +CopyGroupInfo(GroupInfo *to, const GroupInfo *from) +{ + to->defined = from->defined; + to->type = from->type; + darray_init(to->levels); + darray_copy(to->levels, from->levels); + for (xkb_level_index_t j = 0; j < darray_size(to->levels); j++) + if (darray_item(from->levels, j).num_syms > 1) + darray_item(to->levels, j).u.syms = + memdup(darray_item(from->levels, j).u.syms, + darray_item(from->levels, j).num_syms, + sizeof(xkb_keysym_t)); +} + +static void +InitKeyInfo(struct xkb_context *ctx, KeyInfo *keyi) +{ + memset(keyi, 0, sizeof(*keyi)); + keyi->merge = MERGE_OVERRIDE; + keyi->name = xkb_atom_intern_literal(ctx, "*"); + keyi->out_of_range_group_action = RANGE_WRAP; +} + +static void +ClearKeyInfo(KeyInfo *keyi) +{ + GroupInfo *groupi; + darray_foreach(groupi, keyi->groups) + ClearGroupInfo(groupi); + darray_free(keyi->groups); +} + +/***====================================================================***/ + +typedef struct { + enum merge_mode merge; + bool haveSymbol; + xkb_mod_index_t modifier; + union { + xkb_atom_t keyName; + xkb_keysym_t keySym; + } u; +} ModMapEntry; + +typedef struct { + char *name; /* e.g. pc+us+inet(evdev) */ + int errorCount; + enum merge_mode merge; + xkb_layout_index_t explicit_group; + darray(KeyInfo) keys; + KeyInfo default_key; + ActionsInfo *actions; + darray(xkb_atom_t) group_names; + darray(ModMapEntry) modmaps; + struct xkb_mod_set mods; + + struct xkb_context *ctx; + /* Needed for AddKeySymbols. */ + const struct xkb_keymap *keymap; +} SymbolsInfo; + +static void +InitSymbolsInfo(SymbolsInfo *info, const struct xkb_keymap *keymap, + ActionsInfo *actions, const struct xkb_mod_set *mods) +{ + memset(info, 0, sizeof(*info)); + info->ctx = keymap->ctx; + info->keymap = keymap; + info->merge = MERGE_OVERRIDE; + InitKeyInfo(keymap->ctx, &info->default_key); + info->actions = actions; + info->mods = *mods; + info->explicit_group = XKB_LAYOUT_INVALID; +} + +static void +ClearSymbolsInfo(SymbolsInfo *info) +{ + KeyInfo *keyi; + free(info->name); + darray_foreach(keyi, info->keys) + ClearKeyInfo(keyi); + darray_free(info->keys); + darray_free(info->group_names); + darray_free(info->modmaps); + ClearKeyInfo(&info->default_key); +} + +static const char * +KeyInfoText(SymbolsInfo *info, KeyInfo *keyi) +{ + return KeyNameText(info->ctx, keyi->name); +} + +static bool +LevelsSameSyms(const struct xkb_level *a, const struct xkb_level *b) +{ + if (a->num_syms != b->num_syms) + return false; + if (a->num_syms <= 1) + return a->u.sym == b->u.sym; + else + return memcmp(a->u.syms, b->u.syms, + sizeof(*a->u.syms) * a->num_syms) == 0; + +} + +static bool +MergeGroups(SymbolsInfo *info, GroupInfo *into, GroupInfo *from, bool clobber, + bool report, xkb_layout_index_t group, xkb_atom_t key_name) +{ + xkb_level_index_t i, levels_in_both; + struct xkb_level *level; + + /* First find the type of the merged group. */ + if (into->type != from->type) { + if (from->type == XKB_ATOM_NONE) { + } + else if (into->type == XKB_ATOM_NONE) { + into->type = from->type; + } + else { + xkb_atom_t use = (clobber ? from->type : into->type); + xkb_atom_t ignore = (clobber ? into->type : from->type); + + if (report) + log_warn(info->ctx, + "Multiple definitions for group %d type of key %s; " + "Using %s, ignoring %s\n", + group + 1, KeyNameText(info->ctx, key_name), + xkb_atom_text(info->ctx, use), + xkb_atom_text(info->ctx, ignore)); + + into->type = use; + } + } + into->defined |= (from->defined & GROUP_FIELD_TYPE); + + /* Now look at the levels. */ + + if (darray_empty(from->levels)) { + InitGroupInfo(from); + return true; + } + + if (darray_empty(into->levels)) { + from->type = into->type; + *into = *from; + InitGroupInfo(from); + return true; + } + + /* Merge the actions and syms. */ + levels_in_both = MIN(darray_size(into->levels), darray_size(from->levels)); + for (i = 0; i < levels_in_both; i++) { + struct xkb_level *intoLevel = &darray_item(into->levels, i); + struct xkb_level *fromLevel = &darray_item(from->levels, i); + + if (fromLevel->action.type == ACTION_TYPE_NONE) { + } + else if (intoLevel->action.type == ACTION_TYPE_NONE) { + intoLevel->action = fromLevel->action; + } + else { + union xkb_action *use, *ignore; + use = (clobber ? &fromLevel->action : &intoLevel->action); + ignore = (clobber ? &intoLevel->action : &fromLevel->action); + + if (report) + log_warn(info->ctx, + "Multiple actions for level %d/group %u on key %s; " + "Using %s, ignoring %s\n", + i + 1, group + 1, KeyNameText(info->ctx, key_name), + ActionTypeText(use->type), + ActionTypeText(ignore->type)); + + intoLevel->action = *use; + } + + if (fromLevel->num_syms == 0) { + } + else if (intoLevel->num_syms == 0) { + intoLevel->num_syms = fromLevel->num_syms; + if (fromLevel->num_syms > 1) + intoLevel->u.syms = fromLevel->u.syms; + else + intoLevel->u.sym = fromLevel->u.sym; + fromLevel->num_syms = 0; + } + else if (!LevelsSameSyms(fromLevel, intoLevel)) { + if (report) + log_warn(info->ctx, + "Multiple symbols for level %d/group %u on key %s; " + "Using %s, ignoring %s\n", + i + 1, group + 1, KeyNameText(info->ctx, key_name), + (clobber ? "from" : "to"), + (clobber ? "to" : "from")); + + if (clobber) { + ClearLevelInfo(intoLevel); + intoLevel->num_syms = fromLevel->num_syms; + if (fromLevel->num_syms > 1) + intoLevel->u.syms = fromLevel->u.syms; + else + intoLevel->u.sym = fromLevel->u.sym; + fromLevel->num_syms = 0; + } + } + } + /* If @from has extra levels, get them as well. */ + darray_foreach_from(level, from->levels, levels_in_both) { + darray_append(into->levels, *level); + level->num_syms = 0; + } + into->defined |= (from->defined & GROUP_FIELD_ACTS); + into->defined |= (from->defined & GROUP_FIELD_SYMS); + + return true; +} + +static bool +UseNewKeyField(enum key_field field, enum key_field old, enum key_field new, + bool clobber, bool report, enum key_field *collide) +{ + if (!(old & field)) + return (new & field); + + if (new & field) { + if (report) + *collide |= field; + + if (clobber) + return true; + } + + return false; +} + +static bool +MergeKeys(SymbolsInfo *info, KeyInfo *into, KeyInfo *from, bool same_file) +{ + xkb_layout_index_t i; + xkb_layout_index_t groups_in_both; + enum key_field collide = 0; + const int verbosity = xkb_context_get_log_verbosity(info->ctx); + const bool clobber = (from->merge != MERGE_AUGMENT); + const bool report = (same_file && verbosity > 0) || verbosity > 9; + + if (from->merge == MERGE_REPLACE) { + ClearKeyInfo(into); + *into = *from; + InitKeyInfo(info->ctx, from); + return true; + } + + groups_in_both = MIN(darray_size(into->groups), darray_size(from->groups)); + for (i = 0; i < groups_in_both; i++) + MergeGroups(info, + &darray_item(into->groups, i), + &darray_item(from->groups, i), + clobber, report, i, into->name); + /* If @from has extra groups, just move them to @into. */ + for (i = groups_in_both; i < darray_size(from->groups); i++) { + darray_append(into->groups, darray_item(from->groups, i)); + InitGroupInfo(&darray_item(from->groups, i)); + } + + if (UseNewKeyField(KEY_FIELD_VMODMAP, into->defined, from->defined, + clobber, report, &collide)) { + into->vmodmap = from->vmodmap; + into->defined |= KEY_FIELD_VMODMAP; + } + if (UseNewKeyField(KEY_FIELD_REPEAT, into->defined, from->defined, + clobber, report, &collide)) { + into->repeat = from->repeat; + into->defined |= KEY_FIELD_REPEAT; + } + if (UseNewKeyField(KEY_FIELD_DEFAULT_TYPE, into->defined, from->defined, + clobber, report, &collide)) { + into->default_type = from->default_type; + into->defined |= KEY_FIELD_DEFAULT_TYPE; + } + if (UseNewKeyField(KEY_FIELD_GROUPINFO, into->defined, from->defined, + clobber, report, &collide)) { + into->out_of_range_group_action = from->out_of_range_group_action; + into->out_of_range_group_number = from->out_of_range_group_number; + into->defined |= KEY_FIELD_GROUPINFO; + } + + if (collide) + log_warn(info->ctx, + "Symbol map for key %s redefined; " + "Using %s definition for conflicting fields\n", + KeyNameText(info->ctx, into->name), + (clobber ? "first" : "last")); + + ClearKeyInfo(from); + InitKeyInfo(info->ctx, from); + return true; +} + +/* TODO: Make it so this function doesn't need the entire keymap. */ +static bool +AddKeySymbols(SymbolsInfo *info, KeyInfo *keyi, bool same_file) +{ + xkb_atom_t real_name; + KeyInfo *iter; + + /* + * Don't keep aliases in the keys array; this guarantees that + * searching for keys to merge with by straight comparison (see the + * following loop) is enough, and we won't get multiple KeyInfo's + * for the same key because of aliases. + */ + real_name = XkbResolveKeyAlias(info->keymap, keyi->name); + if (real_name != XKB_ATOM_NONE) + keyi->name = real_name; + + darray_foreach(iter, info->keys) + if (iter->name == keyi->name) + return MergeKeys(info, iter, keyi, same_file); + + darray_append(info->keys, *keyi); + InitKeyInfo(info->ctx, keyi); + return true; +} + +static bool +AddModMapEntry(SymbolsInfo *info, ModMapEntry *new) +{ + ModMapEntry *old; + bool clobber = (new->merge != MERGE_AUGMENT); + + darray_foreach(old, info->modmaps) { + xkb_mod_index_t use, ignore; + + if ((new->haveSymbol != old->haveSymbol) || + (new->haveSymbol && new->u.keySym != old->u.keySym) || + (!new->haveSymbol && new->u.keyName != old->u.keyName)) + continue; + + if (new->modifier == old->modifier) + return true; + + use = (clobber ? new->modifier : old->modifier); + ignore = (clobber ? old->modifier : new->modifier); + + if (new->haveSymbol) + log_err(info->ctx, + "Symbol \"%s\" added to modifier map for multiple modifiers; " + "Using %s, ignoring %s\n", + KeysymText(info->ctx, new->u.keySym), + ModIndexText(info->ctx, &info->mods, use), + ModIndexText(info->ctx, &info->mods, ignore)); + else + log_err(info->ctx, + "Key \"%s\" added to modifier map for multiple modifiers; " + "Using %s, ignoring %s\n", + KeyNameText(info->ctx, new->u.keyName), + ModIndexText(info->ctx, &info->mods, use), + ModIndexText(info->ctx, &info->mods, ignore)); + + old->modifier = use; + return true; + } + + darray_append(info->modmaps, *new); + return true; +} + +/***====================================================================***/ + +static void +MergeIncludedSymbols(SymbolsInfo *into, SymbolsInfo *from, + enum merge_mode merge) +{ + KeyInfo *keyi; + ModMapEntry *mm; + xkb_atom_t *group_name; + xkb_layout_index_t group_names_in_both; + + if (from->errorCount > 0) { + into->errorCount += from->errorCount; + return; + } + + into->mods = from->mods; + + if (into->name == NULL) { + into->name = from->name; + from->name = NULL; + } + + group_names_in_both = MIN(darray_size(into->group_names), + darray_size(from->group_names)); + for (xkb_layout_index_t i = 0; i < group_names_in_both; i++) { + if (!darray_item(from->group_names, i)) + continue; + + if (merge == MERGE_AUGMENT && darray_item(into->group_names, i)) + continue; + + darray_item(into->group_names, i) = darray_item(from->group_names, i); + } + /* If @from has more, get them as well. */ + darray_foreach_from(group_name, from->group_names, group_names_in_both) + darray_append(into->group_names, *group_name); + + if (darray_empty(into->keys)) { + into->keys = from->keys; + darray_init(from->keys); + } + else { + darray_foreach(keyi, from->keys) { + keyi->merge = (merge == MERGE_DEFAULT ? keyi->merge : merge); + if (!AddKeySymbols(into, keyi, false)) + into->errorCount++; + } + } + + if (darray_empty(into->modmaps)) { + into->modmaps = from->modmaps; + darray_init(from->modmaps); + } + else { + darray_foreach(mm, from->modmaps) { + mm->merge = (merge == MERGE_DEFAULT ? mm->merge : merge); + if (!AddModMapEntry(into, mm)) + into->errorCount++; + } + } +} + +static void +HandleSymbolsFile(SymbolsInfo *info, XkbFile *file, enum merge_mode merge); + +static bool +HandleIncludeSymbols(SymbolsInfo *info, IncludeStmt *include) +{ + SymbolsInfo included; + + InitSymbolsInfo(&included, info->keymap, info->actions, &info->mods); + included.name = include->stmt; + include->stmt = NULL; + + for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) { + SymbolsInfo next_incl; + XkbFile *file; + + file = ProcessIncludeFile(info->ctx, stmt, FILE_TYPE_SYMBOLS); + if (!file) { + info->errorCount += 10; + ClearSymbolsInfo(&included); + return false; + } + + InitSymbolsInfo(&next_incl, info->keymap, info->actions, + &included.mods); + if (stmt->modifier) { + next_incl.explicit_group = atoi(stmt->modifier) - 1; + if (next_incl.explicit_group >= XKB_MAX_GROUPS) { + log_err(info->ctx, + "Cannot set explicit group to %d - must be between 1..%d; " + "Ignoring group number\n", + next_incl.explicit_group + 1, XKB_MAX_GROUPS); + next_incl.explicit_group = info->explicit_group; + } + } + else { + next_incl.explicit_group = info->explicit_group; + } + + HandleSymbolsFile(&next_incl, file, MERGE_OVERRIDE); + + MergeIncludedSymbols(&included, &next_incl, stmt->merge); + + ClearSymbolsInfo(&next_incl); + FreeXkbFile(file); + } + + MergeIncludedSymbols(info, &included, include->merge); + ClearSymbolsInfo(&included); + + return (info->errorCount == 0); +} + +#define SYMBOLS 1 +#define ACTIONS 2 + +static bool +GetGroupIndex(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx, + unsigned what, xkb_layout_index_t *ndx_rtrn) +{ + const char *name = (what == SYMBOLS ? "symbols" : "actions"); + + if (arrayNdx == NULL) { + xkb_layout_index_t i; + GroupInfo *groupi; + enum group_field field = (what == SYMBOLS ? + GROUP_FIELD_SYMS : GROUP_FIELD_ACTS); + + darray_enumerate(i, groupi, keyi->groups) { + if (!(groupi->defined & field)) { + *ndx_rtrn = i; + return true; + } + } + + if (i >= XKB_MAX_GROUPS) { + log_err(info->ctx, + "Too many groups of %s for key %s (max %u); " + "Ignoring %s defined for extra groups\n", + name, KeyInfoText(info, keyi), XKB_MAX_GROUPS, name); + return false; + } + + darray_resize0(keyi->groups, darray_size(keyi->groups) + 1); + *ndx_rtrn = darray_size(keyi->groups) - 1; + return true; + } + + if (!ExprResolveGroup(info->ctx, arrayNdx, ndx_rtrn)) { + log_err(info->ctx, + "Illegal group index for %s of key %s\n" + "Definition with non-integer array index ignored\n", + name, KeyInfoText(info, keyi)); + return false; + } + + (*ndx_rtrn)--; + if (*ndx_rtrn >= darray_size(keyi->groups)) + darray_resize0(keyi->groups, *ndx_rtrn + 1); + + return true; +} + +static bool +AddSymbolsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx, + ExprDef *value) +{ + xkb_layout_index_t ndx; + GroupInfo *groupi; + xkb_level_index_t nLevels; + + if (!GetGroupIndex(info, keyi, arrayNdx, SYMBOLS, &ndx)) + return false; + + groupi = &darray_item(keyi->groups, ndx); + + if (value == NULL) { + groupi->defined |= GROUP_FIELD_SYMS; + return true; + } + + if (value->expr.op != EXPR_KEYSYM_LIST) { + log_err(info->ctx, + "Expected a list of symbols, found %s; " + "Ignoring symbols for group %u of %s\n", + expr_op_type_to_string(value->expr.op), ndx + 1, + KeyInfoText(info, keyi)); + return false; + } + + if (groupi->defined & GROUP_FIELD_SYMS) { + log_err(info->ctx, + "Symbols for key %s, group %u already defined; " + "Ignoring duplicate definition\n", + KeyInfoText(info, keyi), ndx + 1); + return false; + } + + nLevels = darray_size(value->keysym_list.symsMapIndex); + if (darray_size(groupi->levels) < nLevels) + darray_resize0(groupi->levels, nLevels); + + groupi->defined |= GROUP_FIELD_SYMS; + + for (xkb_level_index_t i = 0; i < nLevels; i++) { + unsigned int sym_index; + struct xkb_level *leveli = &darray_item(groupi->levels, i); + + sym_index = darray_item(value->keysym_list.symsMapIndex, i); + leveli->num_syms = darray_item(value->keysym_list.symsNumEntries, i); + if (leveli->num_syms > 1) + leveli->u.syms = calloc(leveli->num_syms, sizeof(*leveli->u.syms)); + + for (unsigned j = 0; j < leveli->num_syms; j++) { + xkb_keysym_t keysym = darray_item(value->keysym_list.syms, + sym_index + j); + + if (leveli->num_syms == 1) { + if (keysym == XKB_KEY_NoSymbol) + leveli->num_syms = 0; + else + leveli->u.sym = keysym; + } + else if (leveli->num_syms > 1) { + leveli->u.syms[j] = keysym; + } + } + } + + return true; +} + +static bool +AddActionsToKey(SymbolsInfo *info, KeyInfo *keyi, ExprDef *arrayNdx, + ExprDef *value) +{ + xkb_layout_index_t ndx; + GroupInfo *groupi; + unsigned int nActs; + ExprDef *act; + + if (!GetGroupIndex(info, keyi, arrayNdx, ACTIONS, &ndx)) + return false; + + groupi = &darray_item(keyi->groups, ndx); + + if (value == NULL) { + groupi->defined |= GROUP_FIELD_ACTS; + return true; + } + + if (value->expr.op != EXPR_ACTION_LIST) { + log_wsgo(info->ctx, + "Bad expression type (%d) for action list value; " + "Ignoring actions for group %u of %s\n", + value->expr.op, ndx, KeyInfoText(info, keyi)); + return false; + } + + if (groupi->defined & GROUP_FIELD_ACTS) { + log_wsgo(info->ctx, + "Actions for key %s, group %u already defined\n", + KeyInfoText(info, keyi), ndx); + return false; + } + + nActs = 0; + for (act = value->unary.child; act; act = (ExprDef *) act->common.next) + nActs++; + + if (darray_size(groupi->levels) < nActs) + darray_resize0(groupi->levels, nActs); + + groupi->defined |= GROUP_FIELD_ACTS; + + act = value->unary.child; + for (unsigned i = 0; i < nActs; i++) { + union xkb_action *toAct = &darray_item(groupi->levels, i).action; + + if (!HandleActionDef(info->ctx, info->actions, &info->mods, act, toAct)) + log_err(info->ctx, + "Illegal action definition for %s; " + "Action for group %u/level %u ignored\n", + KeyInfoText(info, keyi), ndx + 1, i + 1); + + act = (ExprDef *) act->common.next; + } + + return true; +} + +static const LookupEntry repeatEntries[] = { + { "true", KEY_REPEAT_YES }, + { "yes", KEY_REPEAT_YES }, + { "on", KEY_REPEAT_YES }, + { "false", KEY_REPEAT_NO }, + { "no", KEY_REPEAT_NO }, + { "off", KEY_REPEAT_NO }, + { "default", KEY_REPEAT_UNDEFINED }, + { NULL, 0 } +}; + +static bool +SetSymbolsField(SymbolsInfo *info, KeyInfo *keyi, const char *field, + ExprDef *arrayNdx, ExprDef *value) +{ + if (istreq(field, "type")) { + xkb_layout_index_t ndx; + xkb_atom_t val; + + if (!ExprResolveString(info->ctx, value, &val)) { + log_err(info->ctx, + "The type field of a key symbol map must be a string; " + "Ignoring illegal type definition\n"); + return false; + } + + if (!arrayNdx) { + keyi->default_type = val; + keyi->defined |= KEY_FIELD_DEFAULT_TYPE; + } + else if (!ExprResolveGroup(info->ctx, arrayNdx, &ndx)) { + log_err(info->ctx, + "Illegal group index for type of key %s; " + "Definition with non-integer array index ignored\n", + KeyInfoText(info, keyi)); + return false; + } + else { + ndx--; + if (ndx >= darray_size(keyi->groups)) + darray_resize0(keyi->groups, ndx + 1); + darray_item(keyi->groups, ndx).type = val; + darray_item(keyi->groups, ndx).defined |= GROUP_FIELD_TYPE; + } + } + else if (istreq(field, "symbols")) { + return AddSymbolsToKey(info, keyi, arrayNdx, value); + } + else if (istreq(field, "actions")) { + return AddActionsToKey(info, keyi, arrayNdx, value); + } + else if (istreq(field, "vmods") || + istreq(field, "virtualmods") || + istreq(field, "virtualmodifiers")) { + xkb_mod_mask_t mask; + + if (!ExprResolveModMask(info->ctx, value, MOD_VIRT, &info->mods, + &mask)) { + log_err(info->ctx, + "Expected a virtual modifier mask, found %s; " + "Ignoring virtual modifiers definition for key %s\n", + expr_op_type_to_string(value->expr.op), + KeyInfoText(info, keyi)); + return false; + } + + keyi->vmodmap = mask; + keyi->defined |= KEY_FIELD_VMODMAP; + } + else if (istreq(field, "locking") || + istreq(field, "lock") || + istreq(field, "locks")) { + log_vrb(info->ctx, 1, + "Key behaviors not supported; " + "Ignoring locking specification for key %s\n", + KeyInfoText(info, keyi)); + } + else if (istreq(field, "radiogroup") || + istreq(field, "permanentradiogroup") || + istreq(field, "allownone")) { + log_vrb(info->ctx, 1, + "Radio groups not supported; " + "Ignoring radio group specification for key %s\n", + KeyInfoText(info, keyi)); + } + else if (istreq_prefix("overlay", field) || + istreq_prefix("permanentoverlay", field)) { + log_vrb(info->ctx, 1, + "Overlays not supported; " + "Ignoring overlay specification for key %s\n", + KeyInfoText(info, keyi)); + } + else if (istreq(field, "repeating") || + istreq(field, "repeats") || + istreq(field, "repeat")) { + unsigned int val; + + if (!ExprResolveEnum(info->ctx, value, &val, repeatEntries)) { + log_err(info->ctx, + "Illegal repeat setting for %s; " + "Non-boolean repeat setting ignored\n", + KeyInfoText(info, keyi)); + return false; + } + + keyi->repeat = val; + keyi->defined |= KEY_FIELD_REPEAT; + } + else if (istreq(field, "groupswrap") || + istreq(field, "wrapgroups")) { + bool set; + + if (!ExprResolveBoolean(info->ctx, value, &set)) { + log_err(info->ctx, + "Illegal groupsWrap setting for %s; " + "Non-boolean value ignored\n", + KeyInfoText(info, keyi)); + return false; + } + + keyi->out_of_range_group_action = (set ? RANGE_WRAP : RANGE_SATURATE); + keyi->defined |= KEY_FIELD_GROUPINFO; + } + else if (istreq(field, "groupsclamp") || + istreq(field, "clampgroups")) { + bool set; + + if (!ExprResolveBoolean(info->ctx, value, &set)) { + log_err(info->ctx, + "Illegal groupsClamp setting for %s; " + "Non-boolean value ignored\n", + KeyInfoText(info, keyi)); + return false; + } + + keyi->out_of_range_group_action = (set ? RANGE_SATURATE : RANGE_WRAP); + keyi->defined |= KEY_FIELD_GROUPINFO; + } + else if (istreq(field, "groupsredirect") || + istreq(field, "redirectgroups")) { + xkb_layout_index_t grp; + + if (!ExprResolveGroup(info->ctx, value, &grp)) { + log_err(info->ctx, + "Illegal group index for redirect of key %s; " + "Definition with non-integer group ignored\n", + KeyInfoText(info, keyi)); + return false; + } + + keyi->out_of_range_group_action = RANGE_REDIRECT; + keyi->out_of_range_group_number = grp - 1; + keyi->defined |= KEY_FIELD_GROUPINFO; + } + else { + log_err(info->ctx, + "Unknown field %s in a symbol interpretation; " + "Definition ignored\n", + field); + return false; + } + + return true; +} + +static bool +SetGroupName(SymbolsInfo *info, ExprDef *arrayNdx, ExprDef *value) +{ + xkb_layout_index_t group, group_to_use; + xkb_atom_t name; + + if (!arrayNdx) { + log_vrb(info->ctx, 1, + "You must specify an index when specifying a group name; " + "Group name definition without array subscript ignored\n"); + return false; + } + + if (!ExprResolveGroup(info->ctx, arrayNdx, &group)) { + log_err(info->ctx, + "Illegal index in group name definition; " + "Definition with non-integer array index ignored\n"); + return false; + } + + if (!ExprResolveString(info->ctx, value, &name)) { + log_err(info->ctx, + "Group name must be a string; " + "Illegal name for group %d ignored\n", group); + return false; + } + + if (info->explicit_group == XKB_LAYOUT_INVALID) { + group_to_use = group - 1; + } + else if (group - 1 == 0) { + group_to_use = info->explicit_group; + } + else { + log_warn(info->ctx, + "An explicit group was specified for the '%s' map, " + "but it provides a name for a group other than Group1 (%d); " + "Ignoring group name '%s'\n", + info->name, group, + xkb_atom_text(info->ctx, name)); + return false; + } + + if (group_to_use >= darray_size(info->group_names)) + darray_resize0(info->group_names, group_to_use + 1); + darray_item(info->group_names, group_to_use) = name; + + return true; +} + +static bool +HandleGlobalVar(SymbolsInfo *info, VarDef *stmt) +{ + const char *elem, *field; + ExprDef *arrayNdx; + bool ret; + + if (!ExprResolveLhs(info->ctx, stmt->name, &elem, &field, &arrayNdx)) + return false; + + if (elem && istreq(elem, "key")) { + ret = SetSymbolsField(info, &info->default_key, field, arrayNdx, + stmt->value); + } + else if (!elem && (istreq(field, "name") || + istreq(field, "groupname"))) { + ret = SetGroupName(info, arrayNdx, stmt->value); + } + else if (!elem && (istreq(field, "groupswrap") || + istreq(field, "wrapgroups"))) { + log_err(info->ctx, + "Global \"groupswrap\" not supported; Ignored\n"); + ret = true; + } + else if (!elem && (istreq(field, "groupsclamp") || + istreq(field, "clampgroups"))) { + log_err(info->ctx, + "Global \"groupsclamp\" not supported; Ignored\n"); + ret = true; + } + else if (!elem && (istreq(field, "groupsredirect") || + istreq(field, "redirectgroups"))) { + log_err(info->ctx, + "Global \"groupsredirect\" not supported; Ignored\n"); + ret = true; + } + else if (!elem && istreq(field, "allownone")) { + log_err(info->ctx, + "Radio groups not supported; " + "Ignoring \"allownone\" specification\n"); + ret = true; + } + else { + ret = SetActionField(info->ctx, info->actions, &info->mods, + elem, field, arrayNdx, stmt->value); + } + + return ret; +} + +static bool +HandleSymbolsBody(SymbolsInfo *info, VarDef *def, KeyInfo *keyi) +{ + bool ok = true; + const char *elem, *field; + ExprDef *arrayNdx; + + for (; def; def = (VarDef *) def->common.next) { + if (def->name && def->name->expr.op == EXPR_FIELD_REF) { + log_err(info->ctx, + "Cannot set a global default value from within a key statement; " + "Move statements to the global file scope\n"); + continue; + } + + if (!def->name) { + if (!def->value || def->value->expr.op == EXPR_KEYSYM_LIST) + field = "symbols"; + else + field = "actions"; + arrayNdx = NULL; + } + else { + ok = ExprResolveLhs(info->ctx, def->name, &elem, &field, + &arrayNdx); + } + + if (ok) + ok = SetSymbolsField(info, keyi, field, arrayNdx, def->value); + } + + return ok; +} + +static bool +SetExplicitGroup(SymbolsInfo *info, KeyInfo *keyi) +{ + xkb_layout_index_t i; + GroupInfo *groupi; + bool warn = false; + + if (info->explicit_group == XKB_LAYOUT_INVALID) + return true; + + darray_enumerate_from(i, groupi, keyi->groups, 1) { + if (groupi->defined) { + warn = true; + ClearGroupInfo(groupi); + InitGroupInfo(groupi); + } + } + + if (warn) + log_warn(info->ctx, + "For the map %s an explicit group specified, " + "but key %s has more than one group defined; " + "All groups except first one will be ignored\n", + info->name, KeyInfoText(info, keyi)); + + darray_resize0(keyi->groups, info->explicit_group + 1); + if (info->explicit_group > 0) { + darray_item(keyi->groups, info->explicit_group) = + darray_item(keyi->groups, 0); + InitGroupInfo(&darray_item(keyi->groups, 0)); + } + + return true; +} + +static bool +HandleSymbolsDef(SymbolsInfo *info, SymbolsDef *stmt) +{ + KeyInfo keyi; + + keyi = info->default_key; + darray_init(keyi.groups); + darray_copy(keyi.groups, info->default_key.groups); + for (xkb_layout_index_t i = 0; i < darray_size(keyi.groups); i++) + CopyGroupInfo(&darray_item(keyi.groups, i), + &darray_item(info->default_key.groups, i)); + keyi.merge = stmt->merge; + keyi.name = stmt->keyName; + + if (!HandleSymbolsBody(info, stmt->symbols, &keyi)) { + info->errorCount++; + return false; + } + + if (!SetExplicitGroup(info, &keyi)) { + info->errorCount++; + return false; + } + + if (!AddKeySymbols(info, &keyi, true)) { + info->errorCount++; + return false; + } + + return true; +} + +static bool +HandleModMapDef(SymbolsInfo *info, ModMapDef *def) +{ + ModMapEntry tmp; + xkb_mod_index_t ndx; + bool ok; + struct xkb_context *ctx = info->ctx; + + ndx = XkbModNameToIndex(&info->mods, def->modifier, MOD_REAL); + if (ndx == XKB_MOD_INVALID) { + log_err(info->ctx, + "Illegal modifier map definition; " + "Ignoring map for non-modifier \"%s\"\n", + xkb_atom_text(ctx, def->modifier)); + return false; + } + + ok = true; + tmp.modifier = ndx; + tmp.merge = def->merge; + + for (ExprDef *key = def->keys; key; key = (ExprDef *) key->common.next) { + xkb_keysym_t sym; + + if (key->expr.op == EXPR_VALUE && + key->expr.value_type == EXPR_TYPE_KEYNAME) { + tmp.haveSymbol = false; + tmp.u.keyName = key->key_name.key_name; + } + else if (ExprResolveKeySym(ctx, key, &sym)) { + tmp.haveSymbol = true; + tmp.u.keySym = sym; + } + else { + log_err(info->ctx, + "Modmap entries may contain only key names or keysyms; " + "Illegal definition for %s modifier ignored\n", + ModIndexText(info->ctx, &info->mods, tmp.modifier)); + continue; + } + + ok = AddModMapEntry(info, &tmp) && ok; + } + return ok; +} + +static void +HandleSymbolsFile(SymbolsInfo *info, XkbFile *file, enum merge_mode merge) +{ + bool ok; + + free(info->name); + info->name = strdup_safe(file->name); + + for (ParseCommon *stmt = file->defs; stmt; stmt = stmt->next) { + switch (stmt->type) { + case STMT_INCLUDE: + ok = HandleIncludeSymbols(info, (IncludeStmt *) stmt); + break; + case STMT_SYMBOLS: + ok = HandleSymbolsDef(info, (SymbolsDef *) stmt); + break; + case STMT_VAR: + ok = HandleGlobalVar(info, (VarDef *) stmt); + break; + case STMT_VMOD: + ok = HandleVModDef(info->ctx, &info->mods, (VModDef *) stmt, merge); + break; + case STMT_MODMAP: + ok = HandleModMapDef(info, (ModMapDef *) stmt); + break; + default: + log_err(info->ctx, + "Symbols files may not include other types; " + "Ignoring %s\n", stmt_type_to_string(stmt->type)); + ok = false; + break; + } + + if (!ok) + info->errorCount++; + + if (info->errorCount > 10) { + log_err(info->ctx, "Abandoning symbols file \"%s\"\n", + file->topName); + break; + } + } +} + +/** + * Given a keysym @sym, return a key which generates it, or NULL. + * This is used for example in a modifier map definition, such as: + * modifier_map Lock { Caps_Lock }; + * where we want to add the Lock modifier to the modmap of the key + * which matches the keysym Caps_Lock. + * Since there can be many keys which generates the keysym, the key + * is chosen first by lowest group in which the keysym appears, than + * by lowest level and than by lowest key code. + */ +static struct xkb_key * +FindKeyForSymbol(struct xkb_keymap *keymap, xkb_keysym_t sym) +{ + struct xkb_key *key; + xkb_layout_index_t group; + xkb_level_index_t level; + bool got_one_group, got_one_level; + + group = 0; + do { + got_one_group = false; + level = 0; + do { + got_one_level = false; + xkb_keys_foreach(key, keymap) { + if (group < key->num_groups && + level < XkbKeyNumLevels(key, group)) { + got_one_group = got_one_level = true; + if (key->groups[group].levels[level].num_syms == 1 && + key->groups[group].levels[level].u.sym == sym) + return key; + } + } + level++; + } while (got_one_level); + group++; + } while (got_one_group); + + return NULL; +} + +/* + * Find an appropriate type for a group and return its name. + * + * Simple recipe: + * - ONE_LEVEL for width 0/1 + * - ALPHABETIC for 2 shift levels, with lower/upercase keysyms + * - KEYPAD for keypad keys. + * - TWO_LEVEL for other 2 shift level keys. + * and the same for four level keys. + * + * FIXME: Decide how to handle multiple-syms-per-level, and do it. + */ +static xkb_atom_t +FindAutomaticType(struct xkb_context *ctx, GroupInfo *groupi) +{ + xkb_keysym_t sym0, sym1, sym2, sym3; + xkb_level_index_t width = darray_size(groupi->levels); + +#define GET_SYM(level) \ + (darray_item(groupi->levels, level).num_syms == 0 ? \ + XKB_KEY_NoSymbol : \ + darray_item(groupi->levels, level).num_syms == 1 ? \ + darray_item(groupi->levels, level).u.sym : \ + /* num_syms > 1 */ \ + darray_item(groupi->levels, level).u.syms[0]) + + if (width == 1 || width <= 0) + return xkb_atom_intern_literal(ctx, "ONE_LEVEL"); + + sym0 = GET_SYM(0); + sym1 = GET_SYM(1); + + if (width == 2) { + if (xkb_keysym_is_lower(sym0) && xkb_keysym_is_upper(sym1)) + return xkb_atom_intern_literal(ctx, "ALPHABETIC"); + + if (xkb_keysym_is_keypad(sym0) || xkb_keysym_is_keypad(sym1)) + return xkb_atom_intern_literal(ctx, "KEYPAD"); + + return xkb_atom_intern_literal(ctx, "TWO_LEVEL"); + } + + if (width <= 4) { + if (xkb_keysym_is_lower(sym0) && xkb_keysym_is_upper(sym1)) { + sym2 = GET_SYM(2); + sym3 = (width == 4 ? GET_SYM(3) : XKB_KEY_NoSymbol); + + if (xkb_keysym_is_lower(sym2) && xkb_keysym_is_upper(sym3)) + return xkb_atom_intern_literal(ctx, "FOUR_LEVEL_ALPHABETIC"); + + return xkb_atom_intern_literal(ctx, "FOUR_LEVEL_SEMIALPHABETIC"); + } + + if (xkb_keysym_is_keypad(sym0) || xkb_keysym_is_keypad(sym1)) + return xkb_atom_intern_literal(ctx, "FOUR_LEVEL_KEYPAD"); + + return xkb_atom_intern_literal(ctx, "FOUR_LEVEL"); + } + + return XKB_ATOM_NONE; + +#undef GET_SYM +} + +static const struct xkb_key_type * +FindTypeForGroup(struct xkb_keymap *keymap, KeyInfo *keyi, + xkb_layout_index_t group, bool *explicit_type) +{ + unsigned int i; + GroupInfo *groupi = &darray_item(keyi->groups, group); + xkb_atom_t type_name = groupi->type; + + *explicit_type = true; + + if (type_name == XKB_ATOM_NONE) { + if (keyi->default_type != XKB_ATOM_NONE) { + type_name = keyi->default_type; + } + else { + type_name = FindAutomaticType(keymap->ctx, groupi); + if (type_name != XKB_ATOM_NONE) + *explicit_type = false; + } + } + + if (type_name == XKB_ATOM_NONE) { + log_warn(keymap->ctx, + "Couldn't find an automatic type for key '%s' group %d with %lu levels; " + "Using the default type\n", + KeyNameText(keymap->ctx, keyi->name), group + 1, + (unsigned long) darray_size(groupi->levels)); + goto use_default; + } + + for (i = 0; i < keymap->num_types; i++) + if (keymap->types[i].name == type_name) + break; + + if (i >= keymap->num_types) { + log_warn(keymap->ctx, + "The type \"%s\" for key '%s' group %d was not previously defined; " + "Using the default type\n", + xkb_atom_text(keymap->ctx, type_name), + KeyNameText(keymap->ctx, keyi->name), group + 1); + goto use_default; + } + + return &keymap->types[i]; + +use_default: + /* + * Index 0 is guaranteed to contain something, usually + * ONE_LEVEL or at least some default one-level type. + */ + return &keymap->types[0]; +} + +static bool +CopySymbolsDefToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info, + KeyInfo *keyi) +{ + struct xkb_key *key; + GroupInfo *groupi; + const GroupInfo *group0; + xkb_layout_index_t i; + + /* + * The name is guaranteed to be real and not an alias (see + * AddKeySymbols), so 'false' is safe here. + */ + key = XkbKeyByName(keymap, keyi->name, false); + if (!key) { + log_vrb(info->ctx, 5, + "Key %s not found in keycodes; Symbols ignored\n", + KeyInfoText(info, keyi)); + return false; + } + + /* Find the range of groups we need. */ + key->num_groups = 0; + darray_enumerate(i, groupi, keyi->groups) + if (groupi->defined) + key->num_groups = i + 1; + + if (key->num_groups <= 0) + return false; /* WSGO */ + + darray_resize(keyi->groups, key->num_groups); + + /* + * If there are empty groups between non-empty ones, fill them with data + * from the first group. + * We can make a wrong assumption here. But leaving gaps is worse. + */ + group0 = &darray_item(keyi->groups, 0); + darray_foreach_from(groupi, keyi->groups, 1) { + if (groupi->defined) + continue; + + CopyGroupInfo(groupi, group0); + } + + key->groups = calloc(key->num_groups, sizeof(*key->groups)); + + /* Find and assign the groups' types in the keymap. */ + darray_enumerate(i, groupi, keyi->groups) { + const struct xkb_key_type *type; + bool explicit_type; + + type = FindTypeForGroup(keymap, keyi, i, &explicit_type); + + /* Always have as many levels as the type specifies. */ + if (type->num_levels < darray_size(groupi->levels)) { + struct xkb_level *leveli; + + log_vrb(info->ctx, 1, + "Type \"%s\" has %d levels, but %s has %d levels; " + "Ignoring extra symbols\n", + xkb_atom_text(keymap->ctx, type->name), type->num_levels, + KeyInfoText(info, keyi), + (int) darray_size(groupi->levels)); + + darray_foreach_from(leveli, groupi->levels, type->num_levels) + ClearLevelInfo(leveli); + } + darray_resize0(groupi->levels, type->num_levels); + + key->groups[i].explicit_type = explicit_type; + key->groups[i].type = type; + } + + /* Copy levels. */ + darray_enumerate(i, groupi, keyi->groups) + darray_steal(groupi->levels, &key->groups[i].levels, NULL); + + key->out_of_range_group_number = keyi->out_of_range_group_number; + key->out_of_range_group_action = keyi->out_of_range_group_action; + + if (keyi->defined & KEY_FIELD_VMODMAP) { + key->vmodmap = keyi->vmodmap; + key->explicit |= EXPLICIT_VMODMAP; + } + + if (keyi->repeat != KEY_REPEAT_UNDEFINED) { + key->repeats = (keyi->repeat == KEY_REPEAT_YES); + key->explicit |= EXPLICIT_REPEAT; + } + + darray_foreach(groupi, keyi->groups) { + if (groupi->defined & GROUP_FIELD_ACTS) { + key->explicit |= EXPLICIT_INTERP; + break; + } + } + + return true; +} + +static bool +CopyModMapDefToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info, + ModMapEntry *entry) +{ + struct xkb_key *key; + + if (!entry->haveSymbol) { + key = XkbKeyByName(keymap, entry->u.keyName, true); + if (!key) { + log_vrb(info->ctx, 5, + "Key %s not found in keycodes; " + "Modifier map entry for %s not updated\n", + KeyNameText(info->ctx, entry->u.keyName), + ModIndexText(info->ctx, &info->mods, entry->modifier)); + return false; + } + } + else { + key = FindKeyForSymbol(keymap, entry->u.keySym); + if (!key) { + log_vrb(info->ctx, 5, + "Key \"%s\" not found in symbol map; " + "Modifier map entry for %s not updated\n", + KeysymText(info->ctx, entry->u.keySym), + ModIndexText(info->ctx, &info->mods, entry->modifier)); + return false; + } + } + + key->modmap |= (1u << entry->modifier); + return true; +} + +static bool +CopySymbolsToKeymap(struct xkb_keymap *keymap, SymbolsInfo *info) +{ + KeyInfo *keyi; + ModMapEntry *mm; + + keymap->symbols_section_name = strdup_safe(info->name); + XkbEscapeMapName(keymap->symbols_section_name); + + keymap->mods = info->mods; + + darray_steal(info->group_names, + &keymap->group_names, &keymap->num_group_names); + + darray_foreach(keyi, info->keys) + if (!CopySymbolsDefToKeymap(keymap, info, keyi)) + info->errorCount++; + + if (xkb_context_get_log_verbosity(keymap->ctx) > 3) { + struct xkb_key *key; + + xkb_keys_foreach(key, keymap) { + if (key->name == XKB_ATOM_NONE) + continue; + + if (key->num_groups < 1) + log_info(info->ctx, + "No symbols defined for %s\n", + KeyNameText(info->ctx, key->name)); + } + } + + darray_foreach(mm, info->modmaps) + if (!CopyModMapDefToKeymap(keymap, info, mm)) + info->errorCount++; + + /* XXX: If we don't ignore errorCount, things break. */ + return true; +} + +bool +CompileSymbols(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge) +{ + SymbolsInfo info; + ActionsInfo *actions; + + actions = NewActionsInfo(); + if (!actions) + return false; + + InitSymbolsInfo(&info, keymap, actions, &keymap->mods); + info.default_key.merge = merge; + + HandleSymbolsFile(&info, file, merge); + + if (info.errorCount != 0) + goto err_info; + + if (!CopySymbolsToKeymap(keymap, &info)) + goto err_info; + + ClearSymbolsInfo(&info); + FreeActionsInfo(actions); + return true; + +err_info: + FreeActionsInfo(actions); + ClearSymbolsInfo(&info); + return false; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c new file mode 100644 index 0000000..ec20adc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/types.c @@ -0,0 +1,743 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "vmod.h" +#include "expr.h" +#include "include.h" + +enum type_field { + TYPE_FIELD_MASK = (1 << 0), + TYPE_FIELD_MAP = (1 << 1), + TYPE_FIELD_PRESERVE = (1 << 2), + TYPE_FIELD_LEVEL_NAME = (1 << 3), +}; + +typedef struct { + enum type_field defined; + enum merge_mode merge; + + xkb_atom_t name; + xkb_mod_mask_t mods; + xkb_level_index_t num_levels; + darray(struct xkb_key_type_entry) entries; + darray(xkb_atom_t) level_names; +} KeyTypeInfo; + +typedef struct { + char *name; + int errorCount; + + darray(KeyTypeInfo) types; + struct xkb_mod_set mods; + + struct xkb_context *ctx; +} KeyTypesInfo; + +/***====================================================================***/ + +static inline const char * +MapEntryTxt(KeyTypesInfo *info, struct xkb_key_type_entry *entry) +{ + return ModMaskText(info->ctx, &info->mods, entry->mods.mods); +} + +static inline const char * +TypeTxt(KeyTypesInfo *info, KeyTypeInfo *type) +{ + return xkb_atom_text(info->ctx, type->name); +} + +static inline const char * +TypeMaskTxt(KeyTypesInfo *info, KeyTypeInfo *type) +{ + return ModMaskText(info->ctx, &info->mods, type->mods); +} + +static inline bool +ReportTypeShouldBeArray(KeyTypesInfo *info, KeyTypeInfo *type, + const char *field) +{ + return ReportShouldBeArray(info->ctx, "key type", field, + TypeTxt(info, type)); +} + +static inline bool +ReportTypeBadType(KeyTypesInfo *info, KeyTypeInfo *type, + const char *field, const char *wanted) +{ + return ReportBadType(info->ctx, "key type", field, + TypeTxt(info, type), wanted); +} + +/***====================================================================***/ + +static void +InitKeyTypesInfo(KeyTypesInfo *info, struct xkb_context *ctx, + const struct xkb_mod_set *mods) +{ + memset(info, 0, sizeof(*info)); + info->ctx = ctx; + info->mods = *mods; +} + +static void +ClearKeyTypeInfo(KeyTypeInfo *type) +{ + darray_free(type->entries); + darray_free(type->level_names); +} + +static void +ClearKeyTypesInfo(KeyTypesInfo *info) +{ + free(info->name); + darray_free(info->types); +} + +static KeyTypeInfo * +FindMatchingKeyType(KeyTypesInfo *info, xkb_atom_t name) +{ + KeyTypeInfo *old; + + darray_foreach(old, info->types) + if (old->name == name) + return old; + + return NULL; +} + +static bool +AddKeyType(KeyTypesInfo *info, KeyTypeInfo *new, bool same_file) +{ + KeyTypeInfo *old; + const int verbosity = xkb_context_get_log_verbosity(info->ctx); + + old = FindMatchingKeyType(info, new->name); + if (old) { + if (new->merge == MERGE_REPLACE || new->merge == MERGE_OVERRIDE) { + if ((same_file && verbosity > 0) || verbosity > 9) { + log_warn(info->ctx, + "Multiple definitions of the %s key type; " + "Earlier definition ignored\n", + xkb_atom_text(info->ctx, new->name)); + } + + ClearKeyTypeInfo(old); + *old = *new; + darray_init(new->entries); + darray_init(new->level_names); + return true; + } + + if (same_file) + log_vrb(info->ctx, 4, + "Multiple definitions of the %s key type; " + "Later definition ignored\n", + xkb_atom_text(info->ctx, new->name)); + + ClearKeyTypeInfo(new); + return true; + } + + darray_append(info->types, *new); + return true; +} + +/***====================================================================***/ + +static void +MergeIncludedKeyTypes(KeyTypesInfo *into, KeyTypesInfo *from, + enum merge_mode merge) +{ + KeyTypeInfo *type; + + if (from->errorCount > 0) { + into->errorCount += from->errorCount; + return; + } + + into->mods = from->mods; + + if (into->name == NULL) { + into->name = from->name; + from->name = NULL; + } + + if (darray_empty(into->types)) { + into->types = from->types; + darray_init(from->types); + } + else { + darray_foreach(type, from->types) { + type->merge = (merge == MERGE_DEFAULT ? type->merge : merge); + if (!AddKeyType(into, type, false)) + into->errorCount++; + } + } +} + +static void +HandleKeyTypesFile(KeyTypesInfo *info, XkbFile *file, enum merge_mode merge); + +static bool +HandleIncludeKeyTypes(KeyTypesInfo *info, IncludeStmt *include) +{ + KeyTypesInfo included; + + InitKeyTypesInfo(&included, info->ctx, &info->mods); + included.name = include->stmt; + include->stmt = NULL; + + for (IncludeStmt *stmt = include; stmt; stmt = stmt->next_incl) { + KeyTypesInfo next_incl; + XkbFile *file; + + file = ProcessIncludeFile(info->ctx, stmt, FILE_TYPE_TYPES); + if (!file) { + info->errorCount += 10; + ClearKeyTypesInfo(&included); + return false; + } + + InitKeyTypesInfo(&next_incl, info->ctx, &included.mods); + + HandleKeyTypesFile(&next_incl, file, stmt->merge); + + MergeIncludedKeyTypes(&included, &next_incl, stmt->merge); + + ClearKeyTypesInfo(&next_incl); + FreeXkbFile(file); + } + + MergeIncludedKeyTypes(info, &included, include->merge); + ClearKeyTypesInfo(&included); + + return (info->errorCount == 0); +} + +/***====================================================================***/ + +static bool +SetModifiers(KeyTypesInfo *info, KeyTypeInfo *type, ExprDef *arrayNdx, + ExprDef *value) +{ + xkb_mod_mask_t mods; + + if (arrayNdx) + log_warn(info->ctx, + "The modifiers field of a key type is not an array; " + "Illegal array subscript ignored\n"); + + if (!ExprResolveModMask(info->ctx, value, MOD_BOTH, &info->mods, &mods)) { + log_err(info->ctx, + "Key type mask field must be a modifier mask; " + "Key type definition ignored\n"); + return false; + } + + if (type->defined & TYPE_FIELD_MASK) { + log_warn(info->ctx, + "Multiple modifier mask definitions for key type %s; " + "Using %s, ignoring %s\n", + xkb_atom_text(info->ctx, type->name), + TypeMaskTxt(info, type), + ModMaskText(info->ctx, &info->mods, mods)); + return false; + } + + type->mods = mods; + return true; +} + +/***====================================================================***/ + +static struct xkb_key_type_entry * +FindMatchingMapEntry(KeyTypeInfo *type, xkb_mod_mask_t mods) +{ + struct xkb_key_type_entry *entry; + + darray_foreach(entry, type->entries) + if (entry->mods.mods == mods) + return entry; + + return NULL; +} + +static bool +AddMapEntry(KeyTypesInfo *info, KeyTypeInfo *type, + struct xkb_key_type_entry *new, bool clobber, bool report) +{ + struct xkb_key_type_entry *old; + + old = FindMatchingMapEntry(type, new->mods.mods); + if (old) { + if (report && old->level != new->level) { + log_warn(info->ctx, + "Multiple map entries for %s in %s; " + "Using %d, ignoring %d\n", + MapEntryTxt(info, new), TypeTxt(info, type), + (clobber ? new->level : old->level) + 1, + (clobber ? old->level : new->level) + 1); + } + else { + log_vrb(info->ctx, 10, + "Multiple occurrences of map[%s]= %d in %s; Ignored\n", + MapEntryTxt(info, new), new->level + 1, + TypeTxt(info, type)); + return true; + } + + if (clobber) { + if (new->level >= type->num_levels) + type->num_levels = new->level + 1; + old->level = new->level; + } + + return true; + } + + if (new->level >= type->num_levels) + type->num_levels = new->level + 1; + + darray_append(type->entries, *new); + return true; +} + +static bool +SetMapEntry(KeyTypesInfo *info, KeyTypeInfo *type, ExprDef *arrayNdx, + ExprDef *value) +{ + struct xkb_key_type_entry entry; + + if (arrayNdx == NULL) + return ReportTypeShouldBeArray(info, type, "map entry"); + + if (!ExprResolveModMask(info->ctx, arrayNdx, MOD_BOTH, &info->mods, + &entry.mods.mods)) + return ReportTypeBadType(info, type, "map entry", "modifier mask"); + + if (entry.mods.mods & (~type->mods)) { + log_vrb(info->ctx, 1, + "Map entry for unused modifiers in %s; " + "Using %s instead of %s\n", + TypeTxt(info, type), + ModMaskText(info->ctx, &info->mods, + entry.mods.mods & type->mods), + MapEntryTxt(info, &entry)); + entry.mods.mods &= type->mods; + } + + if (!ExprResolveLevel(info->ctx, value, &entry.level)) { + log_err(info->ctx, + "Level specifications in a key type must be integer; " + "Ignoring malformed level specification\n"); + return false; + } + + entry.preserve.mods = 0; + + return AddMapEntry(info, type, &entry, true, true); +} + +/***====================================================================***/ + +static bool +AddPreserve(KeyTypesInfo *info, KeyTypeInfo *type, + xkb_mod_mask_t mods, xkb_mod_mask_t preserve_mods) +{ + struct xkb_key_type_entry *entry; + struct xkb_key_type_entry new; + + darray_foreach(entry, type->entries) { + if (entry->mods.mods != mods) + continue; + + /* Map exists without previous preserve (or "None"); override. */ + if (entry->preserve.mods == 0) { + entry->preserve.mods = preserve_mods; + return true; + } + + /* Map exists with same preserve; do nothing. */ + if (entry->preserve.mods == preserve_mods) { + log_vrb(info->ctx, 10, + "Identical definitions for preserve[%s] in %s; " + "Ignored\n", + ModMaskText(info->ctx, &info->mods, mods), + TypeTxt(info, type)); + return true; + } + + /* Map exists with different preserve; latter wins. */ + log_vrb(info->ctx, 1, + "Multiple definitions for preserve[%s] in %s; " + "Using %s, ignoring %s\n", + ModMaskText(info->ctx, &info->mods, mods), + TypeTxt(info, type), + ModMaskText(info->ctx, &info->mods, preserve_mods), + ModMaskText(info->ctx, &info->mods, entry->preserve.mods)); + + entry->preserve.mods = preserve_mods; + return true; + } + + /* + * Map does not exist, i.e. preserve[] came before map[]. + * Create a map with the specified mask mapping to Level1. The level + * may be overridden later with an explicit map[] statement. + */ + new.level = 0; + new.mods.mods = mods; + new.preserve.mods = preserve_mods; + darray_append(type->entries, new); + return true; +} + +static bool +SetPreserve(KeyTypesInfo *info, KeyTypeInfo *type, ExprDef *arrayNdx, + ExprDef *value) +{ + xkb_mod_mask_t mods, preserve_mods; + + if (arrayNdx == NULL) + return ReportTypeShouldBeArray(info, type, "preserve entry"); + + if (!ExprResolveModMask(info->ctx, arrayNdx, MOD_BOTH, &info->mods, &mods)) + return ReportTypeBadType(info, type, "preserve entry", + "modifier mask"); + + if (mods & ~type->mods) { + const char *before, *after; + + before = ModMaskText(info->ctx, &info->mods, mods); + mods &= type->mods; + after = ModMaskText(info->ctx, &info->mods, mods); + + log_vrb(info->ctx, 1, + "Preserve for modifiers not used by the %s type; " + "Index %s converted to %s\n", + TypeTxt(info, type), before, after); + } + + if (!ExprResolveModMask(info->ctx, value, MOD_BOTH, &info->mods, + &preserve_mods)) { + log_err(info->ctx, + "Preserve value in a key type is not a modifier mask; " + "Ignoring preserve[%s] in type %s\n", + ModMaskText(info->ctx, &info->mods, mods), + TypeTxt(info, type)); + return false; + } + + if (preserve_mods & ~mods) { + const char *before, *after; + + before = ModMaskText(info->ctx, &info->mods, preserve_mods); + preserve_mods &= mods; + after = ModMaskText(info->ctx, &info->mods, preserve_mods); + + log_vrb(info->ctx, 1, + "Illegal value for preserve[%s] in type %s; " + "Converted %s to %s\n", + ModMaskText(info->ctx, &info->mods, mods), + TypeTxt(info, type), before, after); + } + + return AddPreserve(info, type, mods, preserve_mods); +} + +/***====================================================================***/ + +static bool +AddLevelName(KeyTypesInfo *info, KeyTypeInfo *type, + xkb_level_index_t level, xkb_atom_t name, bool clobber) +{ + /* New name. */ + if (level >= darray_size(type->level_names)) { + darray_resize0(type->level_names, level + 1); + goto finish; + } + + /* Same level, same name. */ + if (darray_item(type->level_names, level) == name) { + log_vrb(info->ctx, 10, + "Duplicate names for level %d of key type %s; Ignored\n", + level + 1, TypeTxt(info, type)); + return true; + } + + /* Same level, different name. */ + if (darray_item(type->level_names, level) != XKB_ATOM_NONE) { + const char *old, *new; + old = xkb_atom_text(info->ctx, + darray_item(type->level_names, level)); + new = xkb_atom_text(info->ctx, name); + log_vrb(info->ctx, 1, + "Multiple names for level %d of key type %s; " + "Using %s, ignoring %s\n", + level + 1, TypeTxt(info, type), + (clobber ? new : old), (clobber ? old : new)); + + if (!clobber) + return true; + } + + /* XXX: What about different level, same name? */ + +finish: + darray_item(type->level_names, level) = name; + return true; +} + +static bool +SetLevelName(KeyTypesInfo *info, KeyTypeInfo *type, ExprDef *arrayNdx, + ExprDef *value) +{ + xkb_level_index_t level; + xkb_atom_t level_name; + + if (arrayNdx == NULL) + return ReportTypeShouldBeArray(info, type, "level name"); + + if (!ExprResolveLevel(info->ctx, arrayNdx, &level)) + return ReportTypeBadType(info, type, "level name", "integer"); + + if (!ExprResolveString(info->ctx, value, &level_name)) { + log_err(info->ctx, + "Non-string name for level %d in key type %s; " + "Ignoring illegal level name definition\n", + level + 1, xkb_atom_text(info->ctx, type->name)); + return false; + } + + return AddLevelName(info, type, level, level_name, true); +} + +/***====================================================================***/ + +static bool +SetKeyTypeField(KeyTypesInfo *info, KeyTypeInfo *type, + const char *field, ExprDef *arrayNdx, ExprDef *value) +{ + bool ok = false; + enum type_field type_field = 0; + + if (istreq(field, "modifiers")) { + type_field = TYPE_FIELD_MASK; + ok = SetModifiers(info, type, arrayNdx, value); + } + else if (istreq(field, "map")) { + type_field = TYPE_FIELD_MAP; + ok = SetMapEntry(info, type, arrayNdx, value); + } + else if (istreq(field, "preserve")) { + type_field = TYPE_FIELD_PRESERVE; + ok = SetPreserve(info, type, arrayNdx, value); + } + else if (istreq(field, "levelname") || istreq(field, "level_name")) { + type_field = TYPE_FIELD_LEVEL_NAME; + ok = SetLevelName(info, type, arrayNdx, value); + } else { + log_err(info->ctx, + "Unknown field %s in key type %s; Definition ignored\n", + field, TypeTxt(info, type)); + } + + type->defined |= type_field; + return ok; +} + +static bool +HandleKeyTypeBody(KeyTypesInfo *info, VarDef *def, KeyTypeInfo *type) +{ + bool ok = true; + const char *elem, *field; + ExprDef *arrayNdx; + + for (; def; def = (VarDef *) def->common.next) { + ok = ExprResolveLhs(info->ctx, def->name, &elem, &field, + &arrayNdx); + if (!ok) + continue; + + if (elem && istreq(elem, "type")) { + log_err(info->ctx, + "Support for changing the default type has been removed; " + "Statement ignored\n"); + continue; + } + + ok = SetKeyTypeField(info, type, field, arrayNdx, def->value); + } + + return ok; +} + +static bool +HandleKeyTypeDef(KeyTypesInfo *info, KeyTypeDef *def, enum merge_mode merge) +{ + KeyTypeInfo type = { + .defined = 0, + .merge = (def->merge == MERGE_DEFAULT ? merge : def->merge), + .name = def->name, + .mods = 0, + .num_levels = 1, + .entries = darray_new(), + .level_names = darray_new(), + }; + + if (!HandleKeyTypeBody(info, def->body, &type)) { + info->errorCount++; + return false; + } + + if (!AddKeyType(info, &type, true)) { + info->errorCount++; + return false; + } + + return true; +} + +static void +HandleKeyTypesFile(KeyTypesInfo *info, XkbFile *file, enum merge_mode merge) +{ + bool ok; + + free(info->name); + info->name = strdup_safe(file->name); + + for (ParseCommon *stmt = file->defs; stmt; stmt = stmt->next) { + switch (stmt->type) { + case STMT_INCLUDE: + ok = HandleIncludeKeyTypes(info, (IncludeStmt *) stmt); + break; + case STMT_TYPE: + ok = HandleKeyTypeDef(info, (KeyTypeDef *) stmt, merge); + break; + case STMT_VAR: + log_err(info->ctx, + "Support for changing the default type has been removed; " + "Statement ignored\n"); + ok = true; + break; + case STMT_VMOD: + ok = HandleVModDef(info->ctx, &info->mods, (VModDef *) stmt, merge); + break; + default: + log_err(info->ctx, + "Key type files may not include other declarations; " + "Ignoring %s\n", stmt_type_to_string(stmt->type)); + ok = false; + break; + } + + if (!ok) + info->errorCount++; + + if (info->errorCount > 10) { + log_err(info->ctx, + "Abandoning keytypes file \"%s\"\n", file->topName); + break; + } + } +} + +/***====================================================================***/ + +static bool +CopyKeyTypesToKeymap(struct xkb_keymap *keymap, KeyTypesInfo *info) +{ + unsigned num_types; + struct xkb_key_type *types; + + num_types = darray_empty(info->types) ? 1 : darray_size(info->types); + types = calloc(num_types, sizeof(*types)); + if (!types) + return false; + + /* + * If no types were specified, a default unnamed one-level type is + * used for all keys. + */ + if (darray_empty(info->types)) { + struct xkb_key_type *type = &types[0]; + + type->mods.mods = 0; + type->num_levels = 1; + type->entries = NULL; + type->num_entries = 0; + type->name = xkb_atom_intern_literal(keymap->ctx, "default"); + type->level_names = NULL; + } + else { + for (unsigned i = 0; i < num_types; i++) { + KeyTypeInfo *def = &darray_item(info->types, i); + struct xkb_key_type *type = &types[i]; + + type->name = def->name; + type->mods.mods = def->mods; + darray_steal(def->level_names, + &type->level_names, &type->num_levels); + darray_steal(def->entries, + &type->entries, &type->num_entries); + } + } + + keymap->types_section_name = strdup_safe(info->name); + XkbEscapeMapName(keymap->types_section_name); + keymap->num_types = num_types; + keymap->types = types; + keymap->mods = info->mods; + return true; +} + +/***====================================================================***/ + +bool +CompileKeyTypes(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge) +{ + KeyTypesInfo info; + + InitKeyTypesInfo(&info, keymap->ctx, &keymap->mods); + + HandleKeyTypesFile(&info, file, merge); + if (info.errorCount != 0) + goto err_info; + + if (!CopyKeyTypesToKeymap(keymap, &info)) + goto err_info; + + ClearKeyTypesInfo(&info); + return true; + +err_info: + ClearKeyTypesInfo(&info); + return false; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c new file mode 100644 index 0000000..a0b029a --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.c @@ -0,0 +1,105 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#include "xkbcomp-priv.h" +#include "text.h" +#include "expr.h" +#include "vmod.h" + +bool +HandleVModDef(struct xkb_context *ctx, struct xkb_mod_set *mods, + VModDef *stmt, enum merge_mode merge) +{ + xkb_mod_index_t i; + struct xkb_mod *mod; + xkb_mod_mask_t mapping; + + merge = (merge == MERGE_DEFAULT ? stmt->merge : merge); + + if (stmt->value) { + /* + * This is a statement such as 'virtualModifiers NumLock = Mod1'; + * it sets the vmod-to-real-mod[s] mapping directly instead of going + * through modifier_map or some such. + */ + if (!ExprResolveModMask(ctx, stmt->value, MOD_REAL, mods, &mapping)) { + log_err(ctx, + "Declaration of %s ignored\n", + xkb_atom_text(ctx, stmt->name)); + return false; + } + } + else { + mapping = 0; + } + + xkb_mods_enumerate(i, mod, mods) { + if (mod->name == stmt->name) { + if (mod->type != MOD_VIRT) { + log_err(ctx, + "Can't add a virtual modifier named \"%s\"; " + "there is already a non-virtual modifier with this name! Ignored\n", + xkb_atom_text(ctx, mod->name)); + return false; + } + + if (mod->mapping == mapping) + return true; + + if (mod->mapping != 0) { + xkb_mod_mask_t use, ignore; + + use = (merge == MERGE_OVERRIDE ? mapping : mod->mapping); + ignore = (merge == MERGE_OVERRIDE ? mod->mapping : mapping); + + log_warn(ctx, + "Virtual modifier %s defined multiple times; " + "Using %s, ignoring %s\n", + xkb_atom_text(ctx, stmt->name), + ModMaskText(ctx, mods, use), + ModMaskText(ctx, mods, ignore)); + + mapping = use; + } + + mod->mapping = mapping; + return true; + } + } + + if (mods->num_mods >= XKB_MAX_MODS) { + log_err(ctx, + "Too many modifiers defined (maximum %d)\n", + XKB_MAX_MODS); + return false; + } + + mods->mods[mods->num_mods].name = stmt->name; + mods->mods[mods->num_mods].type = MOD_VIRT; + mods->mods[mods->num_mods].mapping = mapping; + mods->num_mods++; + return true; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.h new file mode 100644 index 0000000..546cf7e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/vmod.h @@ -0,0 +1,34 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_VMOD_H +#define XKBCOMP_VMOD_H + +bool +HandleVModDef(struct xkb_context *ctx, struct xkb_mod_set *mods, + VModDef *stmt, enum merge_mode merge); + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp-priv.h b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp-priv.h new file mode 100644 index 0000000..6cb774d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp-priv.h @@ -0,0 +1,124 @@ +/************************************************************ + * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +#ifndef XKBCOMP_PRIV_H +#define XKBCOMP_PRIV_H + +#include "keymap.h" +#include "ast.h" + +struct xkb_component_names { + char *keycodes; + char *types; + char *compat; + char *symbols; +}; + +char * +text_v1_keymap_get_as_string(struct xkb_keymap *keymap); + +XkbFile * +XkbParseFile(struct xkb_context *ctx, FILE *file, + const char *file_name, const char *map); + +XkbFile * +XkbParseString(struct xkb_context *ctx, + const char *string, size_t len, + const char *file_name, const char *map); + +void +FreeXkbFile(XkbFile *file); + +XkbFile * +XkbFileFromComponents(struct xkb_context *ctx, + const struct xkb_component_names *kkctgs); + +bool +CompileKeycodes(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge); + +bool +CompileKeyTypes(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge); + +bool +CompileCompatMap(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge); + +bool +CompileSymbols(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge); + +bool +CompileKeymap(XkbFile *file, struct xkb_keymap *keymap, + enum merge_mode merge); + +/***====================================================================***/ + +static inline bool +ReportNotArray(struct xkb_context *ctx, const char *type, const char *field, + const char *name) +{ + log_err(ctx, + "The %s %s field is not an array; " + "Ignoring illegal assignment in %s\n", + type, field, name); + return false; +} + +static inline bool +ReportShouldBeArray(struct xkb_context *ctx, const char *type, + const char *field, const char *name) +{ + log_err(ctx, + "Missing subscript for %s %s; " + "Ignoring illegal assignment in %s\n", + type, field, name); + return false; +} + +static inline bool +ReportBadType(struct xkb_context *ctx, const char *type, const char *field, + const char *name, const char *wanted) +{ + log_err(ctx, "The %s %s field must be a %s; " + "Ignoring illegal assignment in %s\n", + type, field, wanted, name); + return false; +} + +static inline bool +ReportBadField(struct xkb_context *ctx, const char *type, const char *field, + const char *name) +{ + log_err(ctx, + "Unknown %s field %s in %s; " + "Ignoring assignment to unknown field in %s\n", + type, field, name, name); + return false; +} + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c new file mode 100644 index 0000000..007e3f7 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/src/xkbcomp/xkbcomp.c @@ -0,0 +1,139 @@ +/* + * Copyright © 2009 Dan Nicholson + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Authors: Dan Nicholson + * Ran Benita + * Daniel Stone + */ + +#include "xkbcomp-priv.h" +#include "rules.h" + +static bool +compile_keymap_file(struct xkb_keymap *keymap, XkbFile *file) +{ + if (file->file_type != FILE_TYPE_KEYMAP) { + log_err(keymap->ctx, + "Cannot compile a %s file alone into a keymap\n", + xkb_file_type_to_string(file->file_type)); + return false; + } + + if (!CompileKeymap(file, keymap, MERGE_OVERRIDE)) { + log_err(keymap->ctx, + "Failed to compile keymap\n"); + return false; + } + + return true; +} + +static bool +text_v1_keymap_new_from_names(struct xkb_keymap *keymap, + const struct xkb_rule_names *rmlvo) +{ + bool ok; + struct xkb_component_names kccgst; + XkbFile *file; + + log_dbg(keymap->ctx, + "Compiling from RMLVO: rules '%s', model '%s', layout '%s', " + "variant '%s', options '%s'\n", + rmlvo->rules, rmlvo->model, rmlvo->layout, rmlvo->variant, + rmlvo->options); + + ok = xkb_components_from_rules(keymap->ctx, rmlvo, &kccgst); + if (!ok) { + log_err(keymap->ctx, + "Couldn't look up rules '%s', model '%s', layout '%s', " + "variant '%s', options '%s'\n", + rmlvo->rules, rmlvo->model, rmlvo->layout, rmlvo->variant, + rmlvo->options); + return false; + } + + log_dbg(keymap->ctx, + "Compiling from KcCGST: keycodes '%s', types '%s', " + "compat '%s', symbols '%s'\n", + kccgst.keycodes, kccgst.types, kccgst.compat, kccgst.symbols); + + file = XkbFileFromComponents(keymap->ctx, &kccgst); + + free(kccgst.keycodes); + free(kccgst.types); + free(kccgst.compat); + free(kccgst.symbols); + + if (!file) { + log_err(keymap->ctx, + "Failed to generate parsed XKB file from components\n"); + return false; + } + + ok = compile_keymap_file(keymap, file); + FreeXkbFile(file); + return ok; +} + +static bool +text_v1_keymap_new_from_string(struct xkb_keymap *keymap, + const char *string, size_t len) +{ + bool ok; + XkbFile *xkb_file; + + xkb_file = XkbParseString(keymap->ctx, string, len, "(input string)", NULL); + if (!xkb_file) { + log_err(keymap->ctx, "Failed to parse input xkb string\n"); + return NULL; + } + + ok = compile_keymap_file(keymap, xkb_file); + FreeXkbFile(xkb_file); + return ok; +} + +static bool +text_v1_keymap_new_from_file(struct xkb_keymap *keymap, FILE *file) +{ + bool ok; + XkbFile *xkb_file; + + xkb_file = XkbParseFile(keymap->ctx, file, "(unknown file)", NULL); + if (!xkb_file) { + log_err(keymap->ctx, "Failed to parse input xkb file\n"); + return false; + } + + ok = compile_keymap_file(keymap, xkb_file); + FreeXkbFile(xkb_file); + return ok; +} + +const struct xkb_keymap_format_ops text_v1_keymap_format_ops = { + .keymap_new_from_names = text_v1_keymap_new_from_names, + .keymap_new_from_string = text_v1_keymap_new_from_string, + .keymap_new_from_file = text_v1_keymap_new_from_file, + .keymap_get_as_string = text_v1_keymap_get_as_string, +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/.gitignore b/app/src/main/jni/libxkbcommon/xkbcommon/test/.gitignore new file mode 100644 index 0000000..84a0a45 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/.gitignore @@ -0,0 +1,21 @@ +*.log +*.trs +filecomp +rulescomp +keysym +state +context +rules-file +stringcomp +buffercomp +keyseq +log +interactive-evdev +rmlvo-to-kccgst +print-compiled-keymap +atom +x11 +interactive-x11 +utf8 +x11comp +compose diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/atom.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/atom.c new file mode 100644 index 0000000..bcb369a --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/atom.c @@ -0,0 +1,181 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "test.h" +#include "atom.h" + +#define INTERN_LITERAL(table, literal) \ + atom_intern(table, literal, sizeof(literal) - 1, false) + +#define LOOKUP_LITERAL(table, literal) \ + atom_lookup(table, literal, sizeof(literal) - 1) + +static void +random_string(char **str_out, size_t *len_out) +{ + /* Keep this small, so collisions might happen. */ + static const char random_chars[] = { + 'a', 'b', 'c', 'd', 'e', 'f', 'g' + }; + + size_t len; + char *str; + + len = rand() % 15; + str = malloc(len + 1); + assert(str); + + for (size_t i = 0; i < len; i++) + str[i] = random_chars[rand() % ARRAY_SIZE(random_chars)]; + /* Don't always terminate it; should work without. */ + if (rand() % 2 == 0) + str[len] = '\0'; + + *str_out = str; + *len_out = len; +} + +static void +test_random_strings(void) +{ + struct atom_string { + xkb_atom_t atom; + char *string; + size_t len; + }; + + struct atom_table *table; + struct atom_string *arr; + int N; + xkb_atom_t atom; + const char *string; + + table = atom_table_new(); + assert(table); + + srand(clock()); + + N = 1 + rand() % 1500; + arr = calloc(N, sizeof(*arr)); + assert(arr); + + for (int i = 0; i < N; i++) { + random_string(&arr[i].string, &arr[i].len); + + atom = atom_lookup(table, arr[i].string, arr[i].len); + if (atom != XKB_ATOM_NONE) { + string = atom_text(table, atom); + assert(string); + + if (arr[i].len != strlen(string) || + strncmp(string, arr[i].string, arr[i].len) != 0) { + fprintf(stderr, "got a collision, but strings don't match!\n"); + fprintf(stderr, "existing length %lu, string %s\n", + strlen(string), string); + fprintf(stderr, "new length %lu, string %.*s\n", + arr[i].len, (int) arr[i].len, arr[i].string); + assert(false); + } + + /* OK, got a real collision. */ + free(arr[i].string); + i--; + continue; + } + + arr[i].atom = atom_intern(table, arr[i].string, arr[i].len, false); + if (arr[i].atom == XKB_ATOM_NONE) { + fprintf(stderr, "failed to intern! len: %lu, string: %.*s\n", + arr[i].len, (int) arr[i].len, arr[i].string); + assert(false); + } + } + + for (int i = 0; i < N; i++) { + string = atom_text(table, arr[i].atom); + assert(string); + + if (arr[i].len != strlen(string) || + strncmp(string, arr[i].string, arr[i].len) != 0) { + fprintf(stderr, "looked-up string doesn't match!\n"); + fprintf(stderr, "found length %lu, string %s\n", + strlen(string), string); + fprintf(stderr, "expected length %lu, string %.*s\n", + arr[i].len, (int) arr[i].len, arr[i].string); + + /* Since this is random, we need to dump the failing data, + * so we might have some chance to reproduce. */ + fprintf(stderr, "START dump of arr, N=%d\n", N); + for (int j = 0; j < N; j++) { + fprintf(stderr, "%u\t\t%lu\t\t%.*s\n", arr[i].atom, + arr[i].len, (int) arr[i].len, arr[i].string); + } + fprintf(stderr, "END\n"); + + assert(false); + } + } + + for (int i = 0; i < N; i++) + free(arr[i].string); + free(arr); + atom_table_free(table); +} + +int +main(void) +{ + struct atom_table *table; + xkb_atom_t atom1, atom2, atom3; + + table = atom_table_new(); + assert(table); + + assert(atom_text(table, XKB_ATOM_NONE) == NULL); + assert(atom_lookup(table, NULL, 0) == XKB_ATOM_NONE); + + atom1 = INTERN_LITERAL(table, "hello"); + assert(atom1 != XKB_ATOM_NONE); + assert(atom1 == LOOKUP_LITERAL(table, "hello")); + assert(streq(atom_text(table, atom1), "hello")); + + atom2 = atom_intern(table, "hello", 3, false); + assert(atom2 != XKB_ATOM_NONE); + assert(atom1 != atom2); + assert(streq(atom_text(table, atom2), "hel")); + assert(LOOKUP_LITERAL(table, "hel") == atom2); + assert(LOOKUP_LITERAL(table, "hell") == XKB_ATOM_NONE); + assert(LOOKUP_LITERAL(table, "hello") == atom1); + + atom3 = atom_intern(table, "", 0, false); + assert(atom3 != XKB_ATOM_NONE); + assert(LOOKUP_LITERAL(table, "") == atom3); + + atom_table_free(table); + + test_random_strings(); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/buffercomp.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/buffercomp.c new file mode 100644 index 0000000..5cc1dbc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/buffercomp.c @@ -0,0 +1,90 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +#include "test.h" + +#define DATA_PATH "keymaps/stringcomp.data" + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx = test_get_context(0); + struct xkb_keymap *keymap; + char *original, *dump; + + assert(ctx); + + /* Load in a prebuilt keymap, make sure we can compile it from memory, + * then compare it to make sure we get the same result when dumping it + * to a string. */ + original = test_read_file(DATA_PATH); + assert(original); + + keymap = test_compile_buffer(ctx, original, strlen(original)); + assert(keymap); + + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump); + + if (!streq(original, dump)) { + fprintf(stderr, + "round-trip test failed: dumped map differs from original\n"); + fprintf(stderr, "path to original file: %s\n", + test_get_path(DATA_PATH)); + fprintf(stderr, "length: dumped %lu, original %lu\n", + (unsigned long) strlen(dump), + (unsigned long) strlen(original)); + fprintf(stderr, "dumped map:\n"); + fprintf(stderr, "%s\n", dump); + fflush(stderr); + assert(0); + } + + free(original); + free(dump); + xkb_keymap_unref(keymap); + + /* Make sure we can't (falsely claim to) compile an empty string. */ + keymap = test_compile_buffer(ctx, "", 0); + assert(!keymap); + + /* Make sure we can recompile our output for a normal keymap from rules. */ + keymap = test_compile_rules(ctx, NULL, NULL, + "ru,ca,de,us", ",multix,neo,intl", NULL); + assert(keymap); + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump); + xkb_keymap_unref(keymap); + keymap = test_compile_buffer(ctx, dump, strlen(dump)); + assert(keymap); + xkb_keymap_unref(keymap); + free(dump); + + xkb_context_unref(ctx); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/common.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/common.c new file mode 100644 index 0000000..0bacba0 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/common.c @@ -0,0 +1,456 @@ +/* + * Copyright © 2009 Dan Nicholson + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the names of the authors or their + * institutions shall not be used in advertising or otherwise to promote the + * sale, use or other dealings in this Software without prior written + * authorization from the authors. + * + * Author: Dan Nicholson + * Daniel Stone + * Ran Benita + */ + +#include +#include +#include +#include +#include + +#include "test.h" + +/* + * Test a sequence of keysyms, resulting from a sequence of key presses, + * against the keysyms they're supposed to generate. + * + * - Each test runs with a clean state. + * - Each line in the test is made up of: + * + A keycode, given as a KEY_* from linux/input.h. + * + A direction - DOWN for press, UP for release, BOTH for + * immediate press + release, REPEAT to just get the syms. + * + A sequence of keysyms that should result from this keypress. + * + * The vararg format is: + * + * + * See below for examples. + */ +int +test_key_seq_va(struct xkb_keymap *keymap, va_list ap) +{ + struct xkb_state *state; + + xkb_keycode_t kc; + int op; + xkb_keysym_t keysym; + + const xkb_keysym_t *syms; + xkb_keysym_t sym; + unsigned int nsyms, i; + char ksbuf[64]; + + fprintf(stderr, "----\n"); + + state = xkb_state_new(keymap); + assert(state); + + for (;;) { + kc = va_arg(ap, int) + EVDEV_OFFSET; + op = va_arg(ap, int); + + nsyms = xkb_state_key_get_syms(state, kc, &syms); + if (nsyms == 1) { + sym = xkb_state_key_get_one_sym(state, kc); + syms = &sym; + } + + fprintf(stderr, "got %u syms for key 0x%x: [", nsyms, kc); + + if (op == DOWN || op == BOTH) + xkb_state_update_key(state, kc, XKB_KEY_DOWN); + if (op == UP || op == BOTH) + xkb_state_update_key(state, kc, XKB_KEY_UP); + + for (i = 0; i < nsyms; i++) { + keysym = va_arg(ap, int); + xkb_keysym_get_name(syms[i], ksbuf, sizeof(ksbuf)); + fprintf(stderr, "%s%s", (i != 0) ? ", " : "", ksbuf); + + if (keysym == FINISH || keysym == NEXT) { + xkb_keysym_get_name(syms[i], ksbuf, sizeof(ksbuf)); + fprintf(stderr, "Did not expect keysym: %s.\n", ksbuf); + goto fail; + } + + if (keysym != syms[i]) { + xkb_keysym_get_name(keysym, ksbuf, sizeof(ksbuf)); + fprintf(stderr, "Expected keysym: %s. ", ksbuf);; + xkb_keysym_get_name(syms[i], ksbuf, sizeof(ksbuf)); + fprintf(stderr, "Got keysym: %s.\n", ksbuf);; + goto fail; + } + } + + if (nsyms == 0) { + keysym = va_arg(ap, int); + if (keysym != XKB_KEY_NoSymbol) { + xkb_keysym_get_name(keysym, ksbuf, sizeof(ksbuf)); + fprintf(stderr, "Expected %s, but got no keysyms.\n", ksbuf); + goto fail; + } + } + + fprintf(stderr, "]\n"); + + keysym = va_arg(ap, int); + if (keysym == NEXT) + continue; + if (keysym == FINISH) + break; + + xkb_keysym_get_name(keysym, ksbuf, sizeof(ksbuf)); + fprintf(stderr, "Expected keysym: %s. Didn't get it.\n", ksbuf); + goto fail; + } + + xkb_state_unref(state); + return 1; + +fail: + xkb_state_unref(state); + return 0; +} + +int +test_key_seq(struct xkb_keymap *keymap, ...) +{ + va_list ap; + int ret; + + va_start(ap, keymap); + ret = test_key_seq_va(keymap, ap); + va_end(ap); + + return ret; +} + +char * +test_get_path(const char *path_rel) +{ + char *path; + size_t path_len; + const char *srcdir = getenv("srcdir"); + + path_len = strlen(srcdir ? srcdir : ".") + + strlen(path_rel ? path_rel : "") + 12; + path = malloc(path_len); + if (!path) { + fprintf(stderr, "Failed to allocate path (%d chars) for %s\n", + (int) path_len, path); + return NULL; + } + snprintf(path, path_len, + "%s/test/data/%s", srcdir ? srcdir : ".", + path_rel ? path_rel : ""); + + return path; +} + +char * +test_read_file(const char *path_rel) +{ + struct stat info; + char *ret, *tmp, *path; + int fd, count, remaining; + + path = test_get_path(path_rel); + if (!path) + return NULL; + + fd = open(path, O_RDONLY); + free(path); + if (fd < 0) + return NULL; + + if (fstat(fd, &info) != 0) { + close(fd); + return NULL; + } + + ret = malloc(info.st_size + 1); + if (!ret) { + close(fd); + return NULL; + } + + remaining = info.st_size; + tmp = ret; + while ((count = read(fd, tmp, remaining))) { + remaining -= count; + tmp += count; + } + ret[info.st_size] = '\0'; + close(fd); + + if (remaining != 0) { + free(ret); + return NULL; + } + + return ret; +} + +struct xkb_context * +test_get_context(enum test_context_flags test_flags) +{ + enum xkb_context_flags ctx_flags; + struct xkb_context *ctx; + char *path; + + ctx_flags = XKB_CONTEXT_NO_DEFAULT_INCLUDES; + if (test_flags & CONTEXT_ALLOW_ENVIRONMENT_NAMES) { + unsetenv("XKB_DEFAULT_RULES"); + unsetenv("XKB_DEFAULT_MODEL"); + unsetenv("XKB_DEFAULT_LAYOUT"); + unsetenv("XKB_DEFAULT_VARIANT"); + unsetenv("XKB_DEFAULT_OPTIONS"); + } + else { + ctx_flags |= XKB_CONTEXT_NO_ENVIRONMENT_NAMES; + } + + ctx = xkb_context_new(ctx_flags); + if (!ctx) + return NULL; + + path = test_get_path(""); + if (!path) + return NULL; + + xkb_context_include_path_append(ctx, path); + free(path); + + return ctx; +} + +struct xkb_keymap * +test_compile_file(struct xkb_context *context, const char *path_rel) +{ + struct xkb_keymap *keymap; + FILE *file; + char *path; + + path = test_get_path(path_rel); + if (!path) + return NULL; + + file = fopen(path, "r"); + if (!file) { + fprintf(stderr, "Failed to open path: %s\n", path); + free(path); + return NULL; + } + assert(file != NULL); + + keymap = xkb_keymap_new_from_file(context, file, + XKB_KEYMAP_FORMAT_TEXT_V1, 0); + fclose(file); + + if (!keymap) { + fprintf(stderr, "Failed to compile path: %s\n", path); + free(path); + return NULL; + } + + fprintf(stderr, "Successfully compiled path: %s\n", path); + free(path); + + return keymap; +} + +struct xkb_keymap * +test_compile_string(struct xkb_context *context, const char *string) +{ + struct xkb_keymap *keymap; + + keymap = xkb_keymap_new_from_string(context, string, + XKB_KEYMAP_FORMAT_TEXT_V1, 0); + if (!keymap) { + fprintf(stderr, "Failed to compile string\n"); + return NULL; + } + + return keymap; +} + +struct xkb_keymap * +test_compile_buffer(struct xkb_context *context, const char *buf, size_t len) +{ + struct xkb_keymap *keymap; + + keymap = xkb_keymap_new_from_buffer(context, buf, len, + XKB_KEYMAP_FORMAT_TEXT_V1, 0); + if (!keymap) { + fprintf(stderr, "Failed to compile keymap from memory buffer\n"); + return NULL; + } + + return keymap; +} + +struct xkb_keymap * +test_compile_rules(struct xkb_context *context, const char *rules, + const char *model, const char *layout, + const char *variant, const char *options) +{ + struct xkb_keymap *keymap; + struct xkb_rule_names rmlvo = { + .rules = isempty(rules) ? NULL : rules, + .model = isempty(model) ? NULL : model, + .layout = isempty(layout) ? NULL : layout, + .variant = isempty(variant) ? NULL : variant, + .options = isempty(options) ? NULL : options + }; + + if (!rules && !model && !layout && !variant && !options) + keymap = xkb_keymap_new_from_names(context, NULL, 0); + else + keymap = xkb_keymap_new_from_names(context, &rmlvo, 0); + + if (!keymap) { + fprintf(stderr, + "Failed to compile RMLVO: '%s', '%s', '%s', '%s', '%s'\n", + rules, model, layout, variant, options); + return NULL; + } + + return keymap; +} + +void +test_print_keycode_state(struct xkb_state *state, + struct xkb_compose_state *compose_state, + xkb_keycode_t keycode) +{ + struct xkb_keymap *keymap; + + xkb_keysym_t sym; + const xkb_keysym_t *syms; + int nsyms; + char s[16]; + xkb_layout_index_t layout; + enum xkb_compose_status status; + + keymap = xkb_state_get_keymap(state); + + nsyms = xkb_state_key_get_syms(state, keycode, &syms); + + if (nsyms <= 0) + return; + + status = XKB_COMPOSE_NOTHING; + if (compose_state) + status = xkb_compose_state_get_status(compose_state); + + if (status == XKB_COMPOSE_COMPOSING || status == XKB_COMPOSE_CANCELLED) + return; + + if (status == XKB_COMPOSE_COMPOSED) { + sym = xkb_compose_state_get_one_sym(compose_state); + syms = &sym; + nsyms = 1; + } + else if (nsyms == 1) { + sym = xkb_state_key_get_one_sym(state, keycode); + syms = &sym; + } + + printf("keysyms [ "); + for (int i = 0; i < nsyms; i++) { + xkb_keysym_get_name(syms[i], s, sizeof(s)); + printf("%-*s ", (int) sizeof(s), s); + } + printf("] "); + + if (status == XKB_COMPOSE_COMPOSED) + xkb_compose_state_get_utf8(compose_state, s, sizeof(s)); + else + xkb_state_key_get_utf8(state, keycode, s, sizeof(s)); + printf("unicode [ %s ] ", s); + + layout = xkb_state_key_get_layout(state, keycode); + printf("layout [ %s (%d) ] ", + xkb_keymap_layout_get_name(keymap, layout), layout); + + printf("level [ %d ] ", + xkb_state_key_get_level(state, keycode, layout)); + + printf("mods [ "); + for (xkb_mod_index_t mod = 0; mod < xkb_keymap_num_mods(keymap); mod++) { + if (xkb_state_mod_index_is_active(state, mod, + XKB_STATE_MODS_EFFECTIVE) <= 0) + continue; + if (xkb_state_mod_index_is_consumed(state, keycode, mod)) + printf("-%s ", xkb_keymap_mod_get_name(keymap, mod)); + else + printf("%s ", xkb_keymap_mod_get_name(keymap, mod)); + } + printf("] "); + + printf("leds [ "); + for (xkb_led_index_t led = 0; led < xkb_keymap_num_leds(keymap); led++) { + if (xkb_state_led_index_is_active(state, led) <= 0) + continue; + printf("%s ", xkb_keymap_led_get_name(keymap, led)); + } + printf("] "); + + printf("\n"); +} + +void +test_print_state_changes(enum xkb_state_component changed) +{ + if (changed == 0) + return; + + printf("changed [ "); + if (changed & XKB_STATE_LAYOUT_EFFECTIVE) + printf("effective-layout "); + if (changed & XKB_STATE_LAYOUT_DEPRESSED) + printf("depressed-layout "); + if (changed & XKB_STATE_LAYOUT_LATCHED) + printf("latched-layout "); + if (changed & XKB_STATE_LAYOUT_LOCKED) + printf("locked-layout "); + if (changed & XKB_STATE_MODS_EFFECTIVE) + printf("effective-mods "); + if (changed & XKB_STATE_MODS_DEPRESSED) + printf("depressed-mods "); + if (changed & XKB_STATE_MODS_LATCHED) + printf("latched-mods "); + if (changed & XKB_STATE_MODS_LOCKED) + printf("locked-mods "); + if (changed & XKB_STATE_LEDS) + printf("leds "); + printf("]\n"); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/compose.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/compose.c new file mode 100644 index 0000000..9bbef18 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/compose.c @@ -0,0 +1,525 @@ +/* + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "xkbcommon/xkbcommon-compose.h" + +#include "test.h" + +static const char * +compose_status_string(enum xkb_compose_status status) +{ + switch (status) { + case XKB_COMPOSE_NOTHING: + return "nothing"; + case XKB_COMPOSE_COMPOSING: + return "composing"; + case XKB_COMPOSE_COMPOSED: + return "composed"; + case XKB_COMPOSE_CANCELLED: + return "cancelled"; + } + + return ""; +} + +static const char * +feed_result_string(enum xkb_compose_feed_result result) +{ + switch (result) { + case XKB_COMPOSE_FEED_IGNORED: + return "ignored"; + case XKB_COMPOSE_FEED_ACCEPTED: + return "accepted"; + } + + return ""; +} + +/* + * Feed a sequence of keysyms to a fresh compose state and test the outcome. + * + * The varargs consists of lines in the following format: + * + * Terminated by a line consisting only of XKB_KEY_NoSymbol. + */ +static bool +test_compose_seq_va(struct xkb_compose_table *table, va_list ap) +{ + int ret; + struct xkb_compose_state *state; + char buffer[64]; + + state = xkb_compose_state_new(table, XKB_COMPOSE_STATE_NO_FLAGS); + assert(state); + + for (int i = 1; ; i++) { + xkb_keysym_t input_keysym; + enum xkb_compose_feed_result result, expected_result; + enum xkb_compose_status status, expected_status; + const char *expected_string; + xkb_keysym_t keysym, expected_keysym; + + input_keysym = va_arg(ap, xkb_keysym_t); + if (input_keysym == XKB_KEY_NoSymbol) + break; + + expected_result = va_arg(ap, enum xkb_compose_feed_result); + expected_status = va_arg(ap, enum xkb_compose_status); + expected_string = va_arg(ap, const char *); + expected_keysym = va_arg(ap, xkb_keysym_t); + + result = xkb_compose_state_feed(state, input_keysym); + + if (result != expected_result) { + fprintf(stderr, "after feeding %d keysyms:\n", i); + fprintf(stderr, "expected feed result: %s\n", + feed_result_string(expected_result)); + fprintf(stderr, "got feed result: %s\n", + feed_result_string(result)); + goto fail; + } + + status = xkb_compose_state_get_status(state); + if (status != expected_status) { + fprintf(stderr, "after feeding %d keysyms:\n", i); + fprintf(stderr, "expected status: %s\n", + compose_status_string(expected_status)); + fprintf(stderr, "got status: %s\n", + compose_status_string(status)); + goto fail; + } + + ret = xkb_compose_state_get_utf8(state, buffer, sizeof(buffer)); + if (ret < 0 || (size_t) ret >= sizeof(buffer)) { + fprintf(stderr, "after feeding %d keysyms:\n", i); + fprintf(stderr, "expected string: %s\n", expected_string); + fprintf(stderr, "got error: %d\n", ret); + goto fail; + } + if (!streq(buffer, expected_string)) { + fprintf(stderr, "after feeding %d keysyms:\n", i); + fprintf(stderr, "expected string: %s\n", strempty(expected_string)); + fprintf(stderr, "got string: %s\n", buffer); + goto fail; + } + + keysym = xkb_compose_state_get_one_sym(state); + if (keysym != expected_keysym) { + fprintf(stderr, "after feeding %d keysyms:\n", i); + xkb_keysym_get_name(expected_keysym, buffer, sizeof(buffer)); + fprintf(stderr, "expected keysym: %s\n", buffer); + xkb_keysym_get_name(keysym, buffer, sizeof(buffer)); + fprintf(stderr, "got keysym (%#x): %s\n", keysym, buffer); + goto fail; + } + } + + xkb_compose_state_unref(state); + return true; + +fail: + xkb_compose_state_unref(state); + return false; +} + +static bool +test_compose_seq(struct xkb_compose_table *table, ...) +{ + va_list ap; + bool ok; + va_start(ap, table); + ok = test_compose_seq_va(table, ap); + va_end(ap); + return ok; +} + +static bool +test_compose_seq_buffer(struct xkb_context *ctx, const char *buffer, ...) +{ + va_list ap; + bool ok; + struct xkb_compose_table *table; + table = xkb_compose_table_new_from_buffer(ctx, buffer, strlen(buffer), "", + XKB_COMPOSE_FORMAT_TEXT_V1, + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + va_start(ap, buffer); + ok = test_compose_seq_va(table, ap); + va_end(ap); + xkb_compose_table_unref(table); + return ok; +} + +static void +test_seqs(struct xkb_context *ctx) +{ + struct xkb_compose_table *table; + char *path; + FILE *file; + + path = test_get_path("compose/en_US.UTF-8/Compose"); + file = fopen(path, "r"); + assert(file); + free(path); + + table = xkb_compose_table_new_from_file(ctx, file, "", + XKB_COMPOSE_FORMAT_TEXT_V1, + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + fclose(file); + + assert(test_compose_seq(table, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_dead_acute, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "'", XKB_KEY_apostrophe, + XKB_KEY_Caps_Lock, XKB_COMPOSE_FEED_IGNORED, XKB_COMPOSE_COMPOSED, "'", XKB_KEY_apostrophe, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_dead_acute, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_dead_acute, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "´", XKB_KEY_acute, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_Multi_key, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_Shift_L, XKB_COMPOSE_FEED_IGNORED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_Caps_Lock, XKB_COMPOSE_FEED_IGNORED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_Control_L, XKB_COMPOSE_FEED_IGNORED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_T, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "@", XKB_KEY_at, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_7, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_a, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_b, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_NoSymbol)); + + assert(test_compose_seq(table, + XKB_KEY_Multi_key, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_apostrophe, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_7, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_CANCELLED, "", XKB_KEY_NoSymbol, + XKB_KEY_7, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_Caps_Lock, XKB_COMPOSE_FEED_IGNORED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_NoSymbol)); + + xkb_compose_table_unref(table); + + /* Make sure one-keysym sequences work. */ + assert(test_compose_seq_buffer(ctx, + " : \"foo\" X \n" + " : \"baz\" Y \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "foo", XKB_KEY_X, + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "foo", XKB_KEY_X, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "baz", XKB_KEY_Y, + XKB_KEY_NoSymbol)); + + /* No sequences at all. */ + assert(test_compose_seq_buffer(ctx, + "", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_Multi_key, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_dead_acute, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_NoSymbol)); + + /* Only keysym - string derived from keysym. */ + assert(test_compose_seq_buffer(ctx, + " : X \n" + " : dollar \n" + " : dead_acute \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "X", XKB_KEY_X, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "$", XKB_KEY_dollar, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "", XKB_KEY_dead_acute, + XKB_KEY_NoSymbol)); + + /* Make sure a cancelling keysym doesn't start a new sequence. */ + assert(test_compose_seq_buffer(ctx, + " : X \n" + " : Y \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_CANCELLED, "", XKB_KEY_NoSymbol, + XKB_KEY_D, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_CANCELLED, "", XKB_KEY_NoSymbol, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_D, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "Y", XKB_KEY_Y, + XKB_KEY_NoSymbol)); +} + +static void +test_conflicting(struct xkb_context *ctx) +{ + // new is prefix of old + assert(test_compose_seq_buffer(ctx, + " : \"foo\" A \n" + " : \"bar\" B \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "foo", XKB_KEY_A, + XKB_KEY_NoSymbol)); + + // old is a prefix of new + assert(test_compose_seq_buffer(ctx, + " : \"bar\" B \n" + " : \"foo\" A \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "foo", XKB_KEY_A, + XKB_KEY_NoSymbol)); + + // new duplicate of old + assert(test_compose_seq_buffer(ctx, + " : \"bar\" B \n" + " : \"bar\" B \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "bar", XKB_KEY_B, + XKB_KEY_C, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_NOTHING, "", XKB_KEY_NoSymbol, + XKB_KEY_NoSymbol)); + + // new same length as old #1 + assert(test_compose_seq_buffer(ctx, + " : \"foo\" A \n" + " : \"bar\" B \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "bar", XKB_KEY_B, + XKB_KEY_NoSymbol)); + + // new same length as old #2 + assert(test_compose_seq_buffer(ctx, + " : \"foo\" A \n" + " : \"foo\" B \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "foo", XKB_KEY_B, + XKB_KEY_NoSymbol)); + + // new same length as old #3 + assert(test_compose_seq_buffer(ctx, + " : \"foo\" A \n" + " : \"bar\" A \n", + XKB_KEY_A, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_B, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "bar", XKB_KEY_A, + XKB_KEY_NoSymbol)); +} + +static void +test_state(struct xkb_context *ctx) +{ + struct xkb_compose_table *table; + struct xkb_compose_state *state; + char *path; + FILE *file; + + path = test_get_path("compose/en_US.UTF-8/Compose"); + file = fopen(path, "r"); + assert(file); + free(path); + + table = xkb_compose_table_new_from_file(ctx, file, "", + XKB_COMPOSE_FORMAT_TEXT_V1, + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + fclose(file); + + state = xkb_compose_state_new(table, XKB_COMPOSE_STATE_NO_FLAGS); + assert(state); + + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + xkb_compose_state_reset(state); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + xkb_compose_state_feed(state, XKB_KEY_NoSymbol); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + xkb_compose_state_feed(state, XKB_KEY_Multi_key); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSING); + xkb_compose_state_reset(state); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + xkb_compose_state_feed(state, XKB_KEY_Multi_key); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSING); + xkb_compose_state_feed(state, XKB_KEY_Multi_key); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_CANCELLED); + xkb_compose_state_feed(state, XKB_KEY_Multi_key); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSING); + xkb_compose_state_feed(state, XKB_KEY_Multi_key); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_CANCELLED); + xkb_compose_state_reset(state); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + xkb_compose_state_feed(state, XKB_KEY_dead_acute); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSING); + xkb_compose_state_feed(state, XKB_KEY_A); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSED); + xkb_compose_state_reset(state); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + xkb_compose_state_feed(state, XKB_KEY_dead_acute); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSING); + xkb_compose_state_feed(state, XKB_KEY_A); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_COMPOSED); + xkb_compose_state_reset(state); + xkb_compose_state_feed(state, XKB_KEY_NoSymbol); + assert(xkb_compose_state_get_status(state) == XKB_COMPOSE_NOTHING); + + xkb_compose_state_unref(state); + xkb_compose_table_unref(table); +} + +static void +test_XCOMPOSEFILE(struct xkb_context *ctx) +{ + struct xkb_compose_table *table; + char *path; + + path = test_get_path("compose/en_US.UTF-8/Compose"); + setenv("XCOMPOSEFILE", path, 1); + free(path); + + table = xkb_compose_table_new_from_locale(ctx, "blabla", + XKB_COMPOSE_COMPILE_NO_FLAGS); + assert(table); + + assert(test_compose_seq(table, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, + XKB_KEY_NoSymbol)); + + xkb_compose_table_unref(table); +} + +static void +test_modifier_syntax(struct xkb_context *ctx) +{ + const char *table_string; + + /* We don't do anything with the modifiers, but make sure we can parse + * them. */ + + assert(test_compose_seq_buffer(ctx, + "None : X \n" + "! Shift : Y \n" + "! Ctrl : Y \n" + "! Alt : Y \n" + "! Caps : Y \n" + "! Lock : Y \n" + "! Shift Ctrl : Y \n" + "! ~Shift : Y \n" + "! ~Shift Ctrl : Y \n" + "! Shift ~Ctrl : Y \n" + "! Shift ~Ctrl ~Alt : Y \n" + " ! Shift : Y \n" + "None ! Shift : Y \n" + "None

; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_keycodes "azerty" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias =

; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_keycodes "qwertz" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias =

; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/empty b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/empty new file mode 100644 index 0000000..eedc943 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/empty @@ -0,0 +1,4 @@ +default xkb_keycodes "empty" { + minimum= 8; + maximum= 255; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/evdev b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/evdev new file mode 100644 index 0000000..624ac68 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/evdev @@ -0,0 +1,314 @@ +// translation from evdev scancodes to something resembling xfree86 keycodes. + +default xkb_keycodes "evdev" { + minimum = 8; + maximum = 255; + + # Added for pc105 compatibility + = 94; + + = 49; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 51; + alias = ; + = 36; + + = 66; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + + = 50; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + + = 64; + = 37; + = 65; + = 105; + = 108; + // Microsoft keyboard extra keys + = 133; + = 134; + = 135; + alias

= ; + + = 9; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 95; + = 96; + + = 107; + // = 107; + = 78; + = 127; + // = 419; + + = 118; + = 110; + = 112; + = 119; + = 115; + = 117; + + = 111; + = 113; + = 116; + = 114; + + = 77; + = 106; + = 63; + = 82; + + = 79; + = 80; + = 81; + = 86; + + = 83; + = 84; + = 85; + + = 87; + = 88; + = 89; + = 104; + + = 90; + = 91; + = 125; + + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + + // Keys that are generated on Japanese keyboards + + // = 93; // Hankaku/Zenkakau toggle - not actually used + alias = ; + = 101; // Hiragana/Katakana toggle + = 97; // backslash/underscore + = 100; // Henkan + = 102; // Muhenkan + = 132; // Yen + = 98; // Katakana + = 99; // Hiragana + = 103; // KPJPComma + // = 97; // Romaji + + // Keys that are generated on Korean keyboards + + = 130; // Hangul Latin toggle + = 131; // Hangul to Hanja conversion + + // Solaris compatibility + + alias = ; + alias = ; + = 121; + = 122; + = 123; + = 124; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + + // Extended keys that may be generated on "Internet" keyboards. + // evdev has standardize names for these. + + = 109; // #define KEY_LINEFEED 101 + = 120; // #define KEY_MACRO 112 + = 126; // #define KEY_KPPLUSMINUS 118 + = 128; // #define KEY_SCALE 120 + = 129; // #define KEY_KPCOMMA 121 + = 147; // #define KEY_MENU 139 + = 148; // #define KEY_CALC 140 + = 149; // #define KEY_SETUP 141 + = 150; // #define KEY_SLEEP 142 + = 151; // #define KEY_WAKEUP 143 + = 152; // #define KEY_FILE 144 + = 153; // #define KEY_SENDFILE 145 + = 154; // #define KEY_DELETEFILE 146 + = 155; // #define KEY_XFER 147 + = 156; // #define KEY_PROG1 148 + = 157; // #define KEY_PROG2 149 + = 158; // #define KEY_WWW 150 + = 159; // #define KEY_MSDOS 151 + = 160; // #define KEY_COFFEE 152 + = 161; // #define KEY_DIRECTION 153 + = 162; // #define KEY_CYCLEWINDOWS 154 + = 163; // #define KEY_MAIL 155 + = 164; // #define KEY_BOOKMARKS 156 + = 165; // #define KEY_COMPUTER 157 + = 166; // #define KEY_BACK 158 + = 167; // #define KEY_FORWARD 159 + = 168; // #define KEY_CLOSECD 160 + = 169; // #define KEY_EJECTCD 161 + = 170; // #define KEY_EJECTCLOSECD 162 + = 171; // #define KEY_NEXTSONG 163 + = 172; // #define KEY_PLAYPAUSE 164 + = 173; // #define KEY_PREVIOUSSONG 165 + = 174; // #define KEY_STOPCD 166 + = 175; // #define KEY_RECORD 167 + = 176; // #define KEY_REWIND 168 + = 177; // #define KEY_PHONE 169 + = 178; // #define KEY_ISO 170 + = 179; // #define KEY_CONFIG 171 + = 180; // #define KEY_HOMEPAGE 172 + = 181; // #define KEY_REFRESH 173 + = 182; // #define KEY_EXIT 174 + = 183; // #define KEY_MOVE 175 + = 184; // #define KEY_EDIT 176 + = 185; // #define KEY_SCROLLUP 177 + = 186; // #define KEY_SCROLLDOWN 178 + = 187; // #define KEY_KPLEFTPAREN 179 + = 188; // #define KEY_KPRIGHTPAREN 180 + = 189; // #define KEY_NEW 181 + = 190; // #define KEY_REDO 182 + = 208; // #define KEY_PLAYCD 200 + = 209; // #define KEY_PAUSECD 201 + = 210; // #define KEY_PROG3 202 + = 211; // #define KEY_PROG4 203 conflicts with AB11 + = 212; // #define KEY_DASHBOARD 204 + = 213; // #define KEY_SUSPEND 205 + = 214; // #define KEY_CLOSE 206 + = 215; // #define KEY_PLAY 207 + = 216; // #define KEY_FASTFORWARD 208 + = 217; // #define KEY_BASSBOOST 209 + = 218; // #define KEY_PRINT 210 + = 219; // #define KEY_HP 211 + = 220; // #define KEY_CAMERA 212 + = 221; // #define KEY_SOUND 213 + = 222; // #define KEY_QUESTION 214 + = 223; // #define KEY_EMAIL 215 + = 224; // #define KEY_CHAT 216 + = 225; // #define KEY_SEARCH 217 + = 226; // #define KEY_CONNECT 218 + = 227; // #define KEY_FINANCE 219 + = 228; // #define KEY_SPORT 220 + = 229; // #define KEY_SHOP 221 + = 230; // #define KEY_ALTERASE 222 + = 231; // #define KEY_CANCEL 223 + = 232; // #define KEY_BRIGHTNESSDOWN 224 + = 233; // #define KEY_BRIGHTNESSUP 225 + = 234; // #define KEY_MEDIA 226 + = 235; // #define KEY_SWITCHVIDEOMODE 227 + = 236; // #define KEY_KBDILLUMTOGGLE 228 + = 237; // #define KEY_KBDILLUMDOWN 229 + = 238; // #define KEY_KBDILLUMUP 230 + = 239; // #define KEY_SEND 231 + = 240; // #define KEY_REPLY 232 + = 241; // #define KEY_FORWARDMAIL 233 + = 242; // #define KEY_SAVE 234 + = 243; // #define KEY_DOCUMENTS 235 + = 244; // #define KEY_BATTERY 236 + = 245; // #define KEY_BLUETOOTH 237 + = 246; // #define KEY_WLAN 238 + = 247; // #define KEY_UWB 239 + = 248; // #define KEY_UNKNOWN 240 + = 249; // #define KEY_VIDEO_NEXT 241 + = 250; // #define KEY_VIDEO_PREV 242 + = 251; // #define KEY_BRIGHTNESS_CYCLE 243 + = 252; // #define KEY_BRIGHTNESS_ZERO 244 + = 253; // #define KEY_DISPLAY_OFF 245 + + // Fake keycodes for virtual keys + = 92; + = 203; + = 204; + = 205; + = 206; + = 207; + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + + alias = ; + + // For Brazilian ABNT2 + alias = ; +}; + +// PC98 +xkb_keycodes "pc98" { + include "evdev(evdev)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/evdev-xkbcommon b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/evdev-xkbcommon new file mode 100644 index 0000000..5d688fa --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/evdev-xkbcommon @@ -0,0 +1,505 @@ +default xkb_keycodes "evdev" { + = 0; + = 1; + <1> = 2; + <2> = 3; + <3> = 4; + <4> = 5; + <5> = 6; + <6> = 7; + <7> = 8; + <8> = 9; + <9> = 10; + <0> = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; +

= 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 85; + <102ND> = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 93; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; +

= 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + + // Fake keycodes for virtual keys + = 84; + = 195; + = 196; + = 197; + = 198; + = 199; + + indicator 0x01 = "Num Lock"; // NUML + indicator 0x02 = "Caps Lock"; // CAPSL + indicator 0x03 = "Scroll Lock"; // SCROLLL + indicator 0x04 = "Compose"; // COMPOSE + indicator 0x05 = "Kana"; // KANA + indicator 0x06 = "Sleep"; // SLEEP + indicator 0x07 = "Suspend"; // SUSPEND + indicator 0x08 = "Mute"; // MUTE + indicator 0x09 = "Misc"; // MISC + indicator 0x0a = "Mail"; // MAIL + indicator 0x0b = "Charging"; // CHARGING + + alias = ; + alias = <1>; + alias = <2>; + alias = <3>; + alias = <4>; + alias = <5>; + alias = <6>; + alias = <7>; + alias = <8>; + alias = <9>; + alias = <0>; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + + alias = ; + + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + + // For Brazilian ABNT2 + alias = ; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/xfree86 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/xfree86 new file mode 100644 index 0000000..47dc893 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/xfree86 @@ -0,0 +1,410 @@ +// "standard" XFree86 codes +// It seems that the "default" must be the first entry in the file. + +default xkb_keycodes "xfree86" { + include "xfree86(basic)" + = 51; + alias = ; + = 94; +}; + +xkb_keycodes "basic" { + + minimum= 8; + maximum= 255; + + = 49; + alias = ; // Some geometries use AE00 + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + + = 66; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + + = 50; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + + = 64; + = 37; + = 65; + = 109; + = 113; + // Microsoft keyboard extra keys + = 115; + = 116; + = 117; + + = 9; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 95; + = 96; + + = 111; + = 92; + = 78; + = 110; + = 114; + + = 106; + = 97; + = 99; + = 107; + = 103; + = 105; + + = 98; + = 100; + = 104; + = 102; + + = 77; + = 112; + = 63; + = 82; + + = 79; + = 80; + = 81; + = 86; + + = 83; + = 84; + = 85; + + = 87; + = 88; + = 89; + = 108; + + = 90; + = 91; + = 126; + + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + + // Keys that are generated on Japanese keyboards + + alias = ; // Hankaku_Zenkaku toggle + = 208; // Hiragana_Katakana toggle + = 211; // backslash/underscore + = 129; // Henkan + = 131; // Muhenkan + = 133; // Yen + = 210; // Alphanumeric mode on macintosh + = 209; // Kana mode on macintosh + + // Keys that are generated on Korean keyboards + + alias = ; // Hangul Latin toggle + alias = ; // Hangul to Hanja conversion + + // Extended keys that may be generated on "Internet" keyboards. + // These are not standardised, hence the meaningless names. + // The entries commented out are never generated because the raw codes + // in those positions are already used for well-defined keys. + + = 130; + = 132; + alias = ; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + // = 156; + // = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + // = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + // = 181; + // = 182; + // = 183; + // = 184; + = 185; + = 186; + = 187; + = 188; + // = 189; + // = 190; + // = 191; + // = 192; + // = 193; + = 194; + = 195; + = 196; + = 197; + // = 198; + // = 199; + // = 200; + // = 201; + = 202; + // = 203; + // = 204; + // = 205; + // = 206; + // = 207; + // = 208; + // = 209; + // = 210; + // = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + // = 219; + // = 220; + // = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + alias = ; + = 253; + alias = ; + = 254; + = 255; + + // MacBooks generate 0x65 for the lower brightness key + = 101; + + // Required for apple/logitech_g15 keyboard + = 93; + + // Codes generated for scancodes 0x59-0x5f, 0x62-0x76 + = 157; // + = 170; // + = 181; // + alias = ; + = 182; // + = 183; // + = 184; // + = 189; // + = 190; // + = 191; // + = 192; // + = 193; // + = 198; // + = 199; // + = 200; // + = 201; // + = 203; // + = 204; // + = 205; // + = 206; // + = 207; // + alias = ; // + alias = ; // + alias = ; // + alias = ; // + = 219; // + = 220; // + = 221; // + + // Solaris compatibility + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + // Other codes never generated. The XFree86 ddx never generates + // these codes. + // Thus we can use them as fake keys + = 8; + = 124; // + = 125; // + = 156; // + = 127; // + = 128; // + + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + + alias = ; + + // For Brazilian ABNT2 + alias = ; +}; + +// What keyboard is this? + +xkb_keycodes "102" { + include "xfree86(xfree86)" + + // There will be warnings from xkbcomp because of multiple definitions. + + = 122; + = 123; + + = 121; + = 118; + + = 131; + = 135; + = 119; + = 129; + = 130; + = 134; + + = 128; + = 132; + = 120; + = 133; + + = 125; + + = 124; +}; + + +// IBM ThinkPad Z60m/Z60t/Z61m/Z61t +xkb_keycodes "thinkpadz60" { + include "xfree86(xfree86)" + = 227; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/bad.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/bad.xkb new file mode 100644 index 0000000..f969cbc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/bad.xkb @@ -0,0 +1,5 @@ +xkb_keymap { + xkb_types { include "complete" }; + xkb_compat { include "complete" }; + xkb_symbols { include "pc+us" }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/basic.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/basic.xkb new file mode 100644 index 0000000..654aed6 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/basic.xkb @@ -0,0 +1,6 @@ +xkb_keymap { + xkb_keycodes { include "evdev+aliases(qwerty)" }; + xkb_types { include "complete" }; + xkb_compat { include "complete" }; + xkb_symbols { include "pc+us" }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/comprehensive-plus-geom.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/comprehensive-plus-geom.xkb new file mode 100644 index 0000000..c9361e9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/comprehensive-plus-geom.xkb @@ -0,0 +1,1813 @@ +xkb_keymap { +xkb_keycodes "evdev+aliases(qwerty)" { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + virtual indicator 12 = "Shift Lock"; + virtual indicator 13 = "Group 2"; + virtual indicator 14 = "Mouse Keys"; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_types "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Shift+Control+Alt+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Control+Alt]= Level5; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift+Lock]= Level1; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level1; + preserve[Shift+Lock+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift+NumLock]= Level1; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret.locking= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Lock+AnyOf(all) { + action= ISOLock(modifiers=modMapMods,affect=all); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default,affect=both); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1,affect=both); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2,affect=both); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3,affect=both); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay1); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay2); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + indicator "Caps Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + !allowExplicit; + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + !allowExplicit; + groups= 0xfe; + }; + indicator "Mouse Keys" { + indicatorDrivesKeyboard; + controls= mouseKeys; + }; +}; + +xkb_symbols "pc+us+inet(evdev)+ctrl(nocaps)+compose(rwin)+terminate(ctrl_alt_bksp)" { + + name[group1]="English (US)"; + + key { [ Escape ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ BackSpace, BackSpace, NoSymbol, NoSymbol, Terminate_Server ] + }; + key { [ Tab, ISO_Left_Tab ] }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ q, Q ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ w, W ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ e, E ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ r, R ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ t, T ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ y, Y ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ u, U ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ i, I ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ o, O ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ p, P ] + }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + key { [ Control_L ] }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ a, A ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ s, S ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ d, D ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ f, F ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ g, G ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ h, H ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ j, J ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ k, K ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ l, L ] + }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ grave, asciitilde ] }; + key { [ Shift_L ] }; + key { [ backslash, bar ] }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ z, Z ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ x, X ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ c, C ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ v, V ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ b, B ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ n, N ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ m, M ] + }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ] + }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + key { [ Control_L, Control_L ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] + }; + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ] + }; + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ] + }; + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + key { [ ISO_Level3_Shift ] }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ less, greater, bar, brokenbar ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] + }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { [ KP_Enter ] }; + key { [ Control_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ] + }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { + type= "TWO_LEVEL", + symbols[Group1]= [ Alt_R, Meta_R ] + }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ KP_Equal ] }; + key { [ plusminus ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal, KP_Decimal ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { + type= "TWO_LEVEL", + symbols[Group1]= [ Multi_key, Multi_key ] + }; + key { [ Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ SunOpen ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol, Alt_L ] }; + key { [ NoSymbol, Meta_L ] }; + key { [ NoSymbol, Super_L ] }; + key { [ NoSymbol, Hyper_L ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Control { }; + modifier_map Shift { }; + modifier_map Shift { }; + modifier_map Mod1 { }; + modifier_map Control { }; + modifier_map Mod2 { }; + modifier_map Mod5 { }; + modifier_map Control { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod5 { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; +}; + +xkb_geometry "pc(pc105)" { + + width= 470; + height= 180; + + alias = ; + alias = ; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + description= "Generic 105"; + + shape "NORM" { + corner= 1, + { [ 18, 18 ] }, + { [ 2, 1 ], [ 16, 16 ] } + }; + shape "BKSP" { + corner= 1, + { [ 38, 18 ] }, + { [ 2, 1 ], [ 36, 16 ] } + }; + shape "TABK" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "BKSL" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "RTRN" { + corner= 1, + { [ 0, 0 ], [ 28, 0 ], [ 28, 37 ], [ 5, 37 ], + [ 5, 18 ], [ 0, 18 ] }, + { [ 2, 1 ], [ 26, 1 ], [ 26, 35 ], [ 7, 35 ], + [ 7, 16 ], [ 2, 16 ] }, + approx= { [ 5, 0 ], [ 28, 37 ] } + }; + shape "CAPS" { + corner= 1, + { [ 33, 18 ] }, + { [ 2, 1 ], [ 31, 16 ] } + }; + shape "LFSH" { + corner= 1, + { [ 25, 18 ] }, + { [ 2, 1 ], [ 23, 16 ] } + }; + shape "RTSH" { + corner= 1, + { [ 50, 18 ] }, + { [ 2, 1 ], [ 48, 16 ] } + }; + shape "MODK" { + corner= 1, + { [ 27, 18 ] }, + { [ 2, 1 ], [ 25, 16 ] } + }; + shape "SMOD" { + corner= 1, + { [ 23, 18 ] }, + { [ 2, 1 ], [ 21, 16 ] } + }; + shape "SPCE" { + corner= 1, + { [ 113, 18 ] }, + { [ 2, 1 ], [ 111, 16 ] } + }; + shape "KP0" { + corner= 1, + { [ 37, 18 ] }, + { [ 2, 1 ], [ 35, 16 ] } + }; + shape "KPAD" { + corner= 1, + { [ 18, 37 ] }, + { [ 2, 1 ], [ 16, 35 ] } + }; + shape "LEDS" { { [ 75, 20 ] } }; + shape "LED" { { [ 5, 1 ] } }; + section "Function" { + key.color= "grey20"; + priority= 7; + top= 22; + left= 19; + width= 351; + height= 19; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, + { , "NORM", 20, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 11, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 11, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 8, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 61; + left= 19; + width= 287; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, + { , "BKSP", 1, color="grey20" } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "TABK", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "RTRN", 1, color="grey20" } + }; + }; + row { + top= 39; + left= 1; + keys { + { , "CAPS", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 } + }; + }; + row { + top= 58; + left= 1; + keys { + { , "LFSH", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, + { , "RTSH", 1, color="grey20" } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "MODK", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SPCE", 1 }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "grey20"; + priority= 9; + top= 61; + left= 312; + width= 58; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + row { + top= 58; + left= 20; + keys { + { , "NORM", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "grey20"; + priority= 10; + top= 61; + left= 376; + width= 77; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "KPAD", 1 } + }; + }; + row { + top= 39; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + row { + top= 58; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "KPAD", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "KP0", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + }; // End of "Keypad" section + + solid "LedPanel" { + top= 22; + left= 377; + priority= 0; + color= "grey10"; + shape= "LEDS"; + }; + indicator "Num Lock" { + top= 37; + left= 382; + priority= 1; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Caps Lock" { + top= 37; + left= 407; + priority= 2; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Scroll Lock" { + top= 37; + left= 433; + priority= 3; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + text "NumLockLabel" { + top= 25; + left= 378; + priority= 4; + width= 19.8; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Num\nLock"; + }; + text "CapsLockLabel" { + top= 25; + left= 403; + priority= 5; + width= 26.4; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Caps\nLock"; + }; + text "ScrollLockLabel" { + top= 25; + left= 428; + priority= 6; + width= 39.6; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Scroll\nLock"; + }; +}; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/divide-by-zero.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/divide-by-zero.xkb new file mode 100644 index 0000000..9e3417f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/divide-by-zero.xkb @@ -0,0 +1,21 @@ +xkb_keymap { + xkb_keycodes { + = 1; + }; + + xkb_types { + virtual_modifiers NumLock; + }; + + xkb_compatibility { + virtual_modifiers NumLock; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=(1/0),y=+1); + }; + }; + + xkb_symbols { + key { [ NoSymbol, Hyper_L ] }; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/host.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/host.xkb new file mode 100644 index 0000000..3b10467 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/host.xkb @@ -0,0 +1,1676 @@ +xkb_keymap { +xkb_keycodes "evdev_aliases(qwerty)" { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + indicator 12 = "Shift Lock"; + indicator 13 = "Group 2"; + indicator 14 = "Mouse Keys"; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_types "complete" { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Shift+Control+Alt+LevelThree; + map[Shift]= Level2; + preserve[Shift]= Shift; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + preserve[Shift+LevelThree]= Shift; + map[Control+Alt]= Level5; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level6; + preserve[Shift+Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + indicator "Caps Lock" { + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + groups= 0xfe; + }; + indicator "Mouse Keys" { + controls= MouseKeys; + }; +}; + +xkb_symbols "pc_us_pt_2_us_3_inet(evdev)_group(shift_caps_toggle)_compose(ralt)" { + name[group1]="English (US)"; + name[group2]="Portuguese"; + name[group3]="English (US)"; + + key { [ Escape ] }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 1, exclam ], + symbols[Group2]= [ 1, exclam, onesuperior, exclamdown ], + symbols[Group3]= [ 1, exclam ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 2, at ], + symbols[Group2]= [ 2, quotedbl, at, oneeighth ], + symbols[Group3]= [ 2, at ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 3, numbersign ], + symbols[Group2]= [ 3, numbersign, sterling, sterling ], + symbols[Group3]= [ 3, numbersign ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 4, dollar ], + symbols[Group2]= [ 4, dollar, section, dollar ], + symbols[Group3]= [ 4, dollar ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 5, percent ], + symbols[Group2]= [ 5, percent, onehalf, threeeighths ], + symbols[Group3]= [ 5, percent ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 6, asciicircum ], + symbols[Group2]= [ 6, ampersand, notsign, fiveeighths ], + symbols[Group3]= [ 6, asciicircum ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 7, ampersand ], + symbols[Group2]= [ 7, slash, braceleft, seveneighths ], + symbols[Group3]= [ 7, ampersand ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 8, asterisk ], + symbols[Group2]= [ 8, parenleft, bracketleft, trademark ], + symbols[Group3]= [ 8, asterisk ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 9, parenleft ], + symbols[Group2]= [ 9, parenright, bracketright, plusminus ], + symbols[Group3]= [ 9, parenleft ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ 0, parenright ], + symbols[Group2]= [ 0, equal, braceright, degree ], + symbols[Group3]= [ 0, parenright ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ minus, underscore ], + symbols[Group2]= [ apostrophe, question, backslash, questiondown ], + symbols[Group3]= [ minus, underscore ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ equal, plus ], + symbols[Group2]= [ guillemotleft, guillemotright, dead_cedilla, dead_ogonek ], + symbols[Group3]= [ equal, plus ] + }; + key { [ BackSpace, BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ q, Q ], + symbols[Group2]= [ q, Q, at, Greek_OMEGA ], + symbols[Group3]= [ q, Q ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ w, W ], + symbols[Group2]= [ w, W, lstroke, Lstroke ], + symbols[Group3]= [ w, W ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ e, E ], + symbols[Group2]= [ e, E, EuroSign, cent ], + symbols[Group3]= [ e, E ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ r, R ], + symbols[Group2]= [ r, R, paragraph, registered ], + symbols[Group3]= [ r, R ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ t, T ], + symbols[Group2]= [ t, T, tslash, Tslash ], + symbols[Group3]= [ t, T ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ y, Y ], + symbols[Group2]= [ y, Y, leftarrow, yen ], + symbols[Group3]= [ y, Y ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ u, U ], + symbols[Group2]= [ u, U, downarrow, uparrow ], + symbols[Group3]= [ u, U ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ i, I ], + symbols[Group2]= [ i, I, rightarrow, idotless ], + symbols[Group3]= [ i, I ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ o, O ], + symbols[Group2]= [ o, O, oslash, Oslash ], + symbols[Group3]= [ o, O ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ p, P ], + symbols[Group2]= [ p, P, thorn, THORN ], + symbols[Group3]= [ p, P ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ bracketleft, braceleft ], + symbols[Group2]= [ plus, asterisk, dead_diaeresis, dead_abovering ], + symbols[Group3]= [ bracketleft, braceleft ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ bracketright, braceright ], + symbols[Group2]= [ dead_acute, dead_grave, dead_tilde, dead_macron ], + symbols[Group3]= [ bracketright, braceright ] + }; + key { [ Return ] }; + key { [ Control_L ] }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ a, A ], + symbols[Group2]= [ a, A, ae, AE ], + symbols[Group3]= [ a, A ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ s, S ], + symbols[Group2]= [ s, S, ssharp, section ], + symbols[Group3]= [ s, S ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ d, D ], + symbols[Group2]= [ d, D, eth, ETH ], + symbols[Group3]= [ d, D ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ f, F ], + symbols[Group2]= [ f, F, dstroke, ordfeminine ], + symbols[Group3]= [ f, F ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ g, G ], + symbols[Group2]= [ g, G, eng, ENG ], + symbols[Group3]= [ g, G ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ h, H ], + symbols[Group2]= [ h, H, hstroke, Hstroke ], + symbols[Group3]= [ h, H ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ j, J ], + symbols[Group2]= [ j, J, dead_hook, dead_horn ], + symbols[Group3]= [ j, J ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ k, K ], + symbols[Group2]= [ k, K, kra, ampersand ], + symbols[Group3]= [ k, K ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ l, L ], + symbols[Group2]= [ l, L, lstroke, Lstroke ], + symbols[Group3]= [ l, L ] + }; + key { + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ semicolon, colon ], + symbols[Group2]= [ ccedilla, Ccedilla, dead_acute, dead_doubleacute ], + symbols[Group3]= [ semicolon, colon ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ apostrophe, quotedbl ], + symbols[Group2]= [ masculine, ordfeminine, dead_circumflex, dead_caron ], + symbols[Group3]= [ apostrophe, quotedbl ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ grave, asciitilde ], + symbols[Group2]= [ backslash, bar, notsign, notsign ], + symbols[Group3]= [ grave, asciitilde ] + }; + key { [ Shift_L ] }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ backslash, bar ], + symbols[Group2]= [ dead_tilde, dead_circumflex, dead_grave, dead_breve ], + symbols[Group3]= [ backslash, bar ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ z, Z ], + symbols[Group2]= [ z, Z, guillemotleft, less ], + symbols[Group3]= [ z, Z ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ x, X ], + symbols[Group2]= [ x, X, guillemotright, greater ], + symbols[Group3]= [ x, X ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ c, C ], + symbols[Group2]= [ c, C, cent, copyright ], + symbols[Group3]= [ c, C ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ v, V ], + symbols[Group2]= [ v, V, leftdoublequotemark, leftsinglequotemark ], + symbols[Group3]= [ v, V ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ b, B ], + symbols[Group2]= [ b, B, rightdoublequotemark, rightsinglequotemark ], + symbols[Group3]= [ b, B ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_ALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ n, N ], + symbols[Group2]= [ n, N, n, N ], + symbols[Group3]= [ n, N ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group3]= "ALPHABETIC", + symbols[Group1]= [ m, M ], + symbols[Group2]= [ m, M, mu, masculine ], + symbols[Group3]= [ m, M ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ comma, less ], + symbols[Group2]= [ comma, semicolon, horizconnector, multiply ], + symbols[Group3]= [ comma, less ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ period, greater ], + symbols[Group2]= [ period, colon, periodcentered, division ], + symbols[Group3]= [ period, greater ] + }; + key { + type[group2]= "FOUR_LEVEL", + symbols[Group1]= [ slash, question ], + symbols[Group2]= [ minus, underscore, dead_belowdot, dead_abovedot ], + symbols[Group3]= [ slash, question ] + }; + key { [ Shift_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ] + }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + key { [ Caps_Lock, ISO_Next_Group ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] + }; + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ] + }; + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ] + }; + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + key { + type= "ONE_LEVEL", + symbols[Group1]= [ ISO_Level3_Shift ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ less, greater, bar, brokenbar ], + symbols[Group2]= [ less, greater, backslash, backslash ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] + }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { [ KP_Enter ] }; + key { [ Control_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ] + }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { + type[group1]= "TWO_LEVEL", + type[group2]= "ONE_LEVEL", + symbols[Group1]= [ Multi_key, Multi_key ], + symbols[Group2]= [ ISO_Level3_Shift ] + }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ KP_Equal ] }; + key { [ plusminus ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal, KP_Decimal ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + key { [ Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ XF86Open ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86TaskPane ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86AudioMicMute ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol, Alt_L ] }; + key { [ NoSymbol, Meta_L ] }; + key { [ NoSymbol, Super_L ] }; + key { [ NoSymbol, Hyper_L ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Shift { , }; + modifier_map Lock { }; + modifier_map Control { , }; + modifier_map Mod1 { , }; + modifier_map Mod2 { }; + modifier_map Mod4 { , , , }; + modifier_map Mod5 { , }; +}; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/no-aliases.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/no-aliases.xkb new file mode 100644 index 0000000..1d07c6e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/no-aliases.xkb @@ -0,0 +1,1337 @@ +xkb_keymap { +xkb_keycodes "evdev_aliases(qwerty)" { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + indicator 12 = "Shift Lock"; + indicator 13 = "Group 2"; + indicator 14 = "Mouse Keys"; +}; + +xkb_types "complete" { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Shift+Control+Alt+LevelThree; + map[Shift]= Level2; + preserve[Shift]= Shift; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + preserve[Shift+LevelThree]= Shift; + map[Control+Alt]= Level5; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level6; + preserve[Shift+Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + indicator "Caps Lock" { + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + groups= 0xfe; + }; + indicator "Mouse Keys" { + controls= MouseKeys; + }; +}; + +xkb_symbols "pc_us_inet(evdev)" { + name[group1]="English (US)"; + + key { [ Escape ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ { H, E, L, L, O }, asciicircum ] }; + key { [ { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G }, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace, BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + key { [ Control_L ] }; + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ grave, asciitilde ] }; + key { [ Shift_L ] }; + key { [ backslash, bar ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ] + }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + key { [ Caps_Lock ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] + }; + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ] + }; + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ] + }; + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + key { [ ISO_Level3_Shift ] }; + key { [ less, greater, bar, brokenbar ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] + }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { [ KP_Enter ] }; + key { [ Control_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ] + }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { + type= "TWO_LEVEL", + symbols[Group1]= [ Alt_R, Meta_R ] + }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ KP_Equal ] }; + key { [ plusminus ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal, KP_Decimal ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + key { [ Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ XF86Open ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86AudioMicMute ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol, Alt_L ] }; + key { [ NoSymbol, Meta_L ] }; + key { [ NoSymbol, Super_L ] }; + key { [ NoSymbol, Hyper_L ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Control { }; + modifier_map Shift { }; + modifier_map Shift { }; + modifier_map Mod1 { }; + modifier_map Lock { }; + modifier_map Mod2 { }; + modifier_map Mod5 { }; + modifier_map Control { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; + modifier_map Mod5 { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; +}; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/no-types.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/no-types.xkb new file mode 100644 index 0000000..2f70e3e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/no-types.xkb @@ -0,0 +1,1025 @@ +xkb_keymap { + xkb_keycodes { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + indicator 12 = "Shift Lock"; + indicator 13 = "Group 2"; + indicator 14 = "Mouse Keys"; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + }; + + xkb_types { + }; + + xkb_compatibility { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= false; + interpret.locking= false; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Lock+AnyOf(all) { + action= NoAction(); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= true; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= true; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= true; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= true; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= true; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= true; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= true; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= true; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= true; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= true; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= true; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default,affect=both); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1,affect=both); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2,affect=both); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3,affect=both); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=mouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=mouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=accessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=accessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=repeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=slowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=bounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=stickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=mouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=mouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=audibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= true; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= true; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= true; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= true; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= true; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + indicator "Caps Lock" { + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + groups= 0xfe; + }; + indicator "Mouse Keys" { + controls= mouseKeys; + }; + }; + + xkb_symbols { + name[group1]="English (US)"; + + key { [ Escape ] }; + key { [ 1 ] }; + key { [ 2 ] }; + key { [ 3 ] }; + key { [ 4 ] }; + key { [ 5 ] }; + key { [ 6 ] }; + key { [ 7 ] }; + key { [ 8 ] }; + key { [ 9 ] }; + key { [ 0 ] }; + key { [ minus ] }; + key { [ equal ] }; + key { [ BackSpace ] }; + key { [ Tab ] }; + key { [ q ] }; + key { [ w ] }; + key { [ e ] }; + key { [ r ] }; + key { [ t ] }; + key { [ y ] }; + key { [ u ] }; + key { [ i ] }; + key { [ o ] }; + key { [ p ] }; + key { [ bracketleft ] }; + key { [ bracketright ] }; + key { [ Return ] }; + key { [ Control_L ] }; + key { [ a ] }; + key { [ s ] }; + key { [ d ] }; + key { [ f ] }; + key { [ g ] }; + key { [ h ] }; + key { [ j ] }; + key { [ k ] }; + key { [ l ] }; + key { [ semicolon ] }; + key { [ apostrophe ] }; + key { [ grave ] }; + key { [ Shift_L ] }; + key { [ NoSymbol ] }; + key { [ z ] }; + key { [ x ] }; + key { [ c ] }; + key { [ v ] }; + key { [ b ] }; + key { [ n ] }; + key { [ m ] }; + key { [ comma ] }; + key { [ period ] }; + key { [ slash ] }; + key { [ Shift_R ] }; + key { [ KP_Multiply ] }; + key { [ Alt_L ] }; + key { [ space ] }; + key { [ Caps_Lock ] }; + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Home ] }; + key { [ KP_Up ] }; + key { [ KP_Prior ] }; + key { [ KP_Subtract ] }; + key { [ KP_Left ] }; + key { [ KP_Begin ] }; + key { [ KP_Right ] }; + key { [ KP_Add ] }; + key { [ KP_End ] }; + key { [ KP_Down ] }; + key { [ KP_Next ] }; + key { [ KP_Insert ] }; + key { [ KP_Delete ] }; + key { [ ISO_Level3_Shift ] }; + key { [ less ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { [ KP_Enter ] }; + key { [ Control_R ] }; + key { [ KP_Divide ] }; + key { [ Print ] }; + key { [ Alt_R ] }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ KP_Equal ] }; + key { [ plusminus ] }; + key { [ Pause ] }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + key { [ Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ SunOpen ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol ] }; + key { [ NoSymbol ] }; + key { [ NoSymbol ] }; + key { [ NoSymbol ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Control { }; + modifier_map Shift { }; + modifier_map Shift { }; + modifier_map Mod1 { }; + modifier_map Lock { }; + modifier_map Mod2 { }; + modifier_map Mod5 { }; + modifier_map Control { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; + modifier_map Mod5 { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/quartz.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/quartz.xkb new file mode 100644 index 0000000..92ab623 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/quartz.xkb @@ -0,0 +1,1139 @@ +xkb_keymap { +xkb_keycodes "empty_aliases(qwerty)" { + minimum = 8; + maximum = 255; + virtual indicator 1 = "Caps Lock"; + virtual indicator 2 = "Num Lock"; + virtual indicator 3 = "Shift Lock"; + virtual indicator 4 = "Group 2"; + virtual indicator 5 = "Mouse Keys"; + virtual indicator 6 = "Scroll Lock"; +}; + +xkb_types "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Control+Alt; + map[Control+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level1; + preserve[Shift+Lock+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret.locking= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Lock+AnyOf(all) { + action= ISOLock(modifiers=modMapMods,affect=all); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default,affect=both); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1,affect=both); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2,affect=both); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3,affect=both); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay1); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay2); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86Ungrab+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x55,data[1]=0x6e,data[2]=0x67,data[3]=0x72,data[4]=0x61,data[5]=0x62,data[6]=0x00); + }; + interpret XF86ClearGrab+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x43,data[1]=0x6c,data[2]=0x73,data[3]=0x47,data[4]=0x72,data[5]=0x62,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + indicator "Caps Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + !allowExplicit; + whichModState= locked; + modifiers= NumLock; + }; + indicator "Shift Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + !allowExplicit; + groups= 0xfe; + }; + indicator "Mouse Keys" { + indicatorDrivesKeyboard; + controls= mouseKeys; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; +}; + +xkb_symbols "unknown" { + + key <> { + type= "ALPHABETIC", + symbols[Group1]= [ a, A ], + symbols[Group2]= [ aring, Aring ] + }; + modifier_map Mod2 { <> }; +}; + +xkb_geometry "pc(pc104)" { + + width= 470; + height= 180; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + description= "Generic 104"; + + shape "NORM" { + corner= 1, + { [ 18, 18 ] }, + { [ 2, 1 ], [ 16, 16 ] } + }; + shape "BKSP" { + corner= 1, + { [ 38, 18 ] }, + { [ 2, 1 ], [ 36, 16 ] } + }; + shape "TABK" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "BKSL" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "RTRN" { + corner= 1, + { [ 42, 18 ] }, + { [ 2, 1 ], [ 40, 16 ] } + }; + shape "CAPS" { + corner= 1, + { [ 33, 18 ] }, + { [ 2, 1 ], [ 31, 16 ] } + }; + shape "LFSH" { + corner= 1, + { [ 42, 18 ] }, + { [ 2, 1 ], [ 40, 16 ] } + }; + shape "RTSH" { + corner= 1, + { [ 52, 18 ] }, + { [ 2, 1 ], [ 50, 16 ] } + }; + shape "MODK" { + corner= 1, + { [ 27, 18 ] }, + { [ 2, 1 ], [ 25, 16 ] } + }; + shape "SMOD" { + corner= 1, + { [ 23, 18 ] }, + { [ 2, 1 ], [ 21, 16 ] } + }; + shape "SPCE" { + corner= 1, + { [ 113, 18 ] }, + { [ 2, 1 ], [ 111, 16 ] } + }; + shape "KP0" { + corner= 1, + { [ 37, 18 ] }, + { [ 2, 1 ], [ 35, 16 ] } + }; + shape "KPAD" { + corner= 1, + { [ 18, 37 ] }, + { [ 2, 1 ], [ 16, 35 ] } + }; + shape "LEDS" { { [ 75, 20 ] } }; + shape "LED" { { [ 5, 1 ] } }; + section "Function" { + key.color= "grey20"; + priority= 7; + top= 22; + left= 19; + width= 351; + height= 19; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, + { , "NORM", 20, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 11, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 11, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 8, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 61; + left= 19; + width= 287; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, + { , "BKSP", 1, color="grey20" } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "TABK", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "BKSL", 1 } + }; + }; + row { + top= 39; + left= 1; + keys { + { , "CAPS", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, + { , "RTRN", 1, color="grey20" } + }; + }; + row { + top= 58; + left= 1; + keys { + { , "LFSH", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "RTSH", 1, color="grey20" } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "MODK", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SPCE", 1 }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "grey20"; + priority= 9; + top= 61; + left= 312; + width= 58; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + row { + top= 58; + left= 20; + keys { + { , "NORM", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "grey20"; + priority= 10; + top= 61; + left= 376; + width= 77; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "KPAD", 1 } + }; + }; + row { + top= 39; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + row { + top= 58; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "KPAD", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "KP0", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + }; // End of "Keypad" section + + solid "LedPanel" { + top= 22; + left= 377; + priority= 0; + color= "grey10"; + shape= "LEDS"; + }; + indicator "Num Lock" { + top= 37; + left= 382; + priority= 1; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Caps Lock" { + top= 37; + left= 407; + priority= 2; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Scroll Lock" { + top= 37; + left= 433; + priority= 3; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + text "NumLockLabel" { + top= 25; + left= 378; + priority= 4; + width= 19.8; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Num\nLock"; + }; + text "CapsLockLabel" { + top= 25; + left= 403; + priority= 5; + width= 26.4; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Caps\nLock"; + }; + text "ScrollLockLabel" { + top= 25; + left= 428; + priority= 6; + width= 39.6; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Scroll\nLock"; + }; +}; + +}; \ No newline at end of file diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/stringcomp.data b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/stringcomp.data new file mode 100644 index 0000000..b9639c0 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/stringcomp.data @@ -0,0 +1,1913 @@ +xkb_keymap { +xkb_keycodes "evdev_aliases(qwerty)" { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + indicator 12 = "Shift Lock"; + indicator 13 = "Group 2"; + indicator 14 = "Mouse Keys"; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_types "complete" { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Shift+Control+Alt+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Control+Alt]= Level5; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level1; + preserve[Shift+Lock+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete_caps(caps_lock)_4_misc(assign_shift_left_action)_4_level5(level5_lock)_4" { + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Lock+AnyOf(all) { + action= NoAction(); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=none); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=NumLock); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + indicator "Caps Lock" { + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + groups= 0xfe; + }; + indicator "Mouse Keys" { + controls= MouseKeys; + }; +}; + +xkb_symbols "pc_us_ru_2_ca(multix)_3_de(neo)_4_inet(evdev)" { + name[group1]="English (US)"; + name[group2]="Russian"; + name[group3]="Canadian Multilingual"; + name[group4]="German (Neo 2)"; + + key { [ Escape ] }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 1, exclam ], + symbols[Group2]= [ 1, exclam ], + symbols[Group3]= [ 1, exclam, plusminus, NoSymbol, onesuperior, exclamdown, NoSymbol, NoSymbol ], + symbols[Group4]= [ 1, degree, onesuperior, onesubscript, ordfeminine, NoSymbol, notsign, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 2, at ], + symbols[Group2]= [ 2, quotedbl ], + symbols[Group3]= [ 2, at, at, NoSymbol, twosuperior, NoSymbol, NoSymbol, NoSymbol ], + symbols[Group4]= [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 3, numbersign ], + symbols[Group2]= [ 3, numerosign ], + symbols[Group3]= [ 3, numbersign, sterling, NoSymbol, threesuperior, sterling, NoSymbol, NoSymbol ], + symbols[Group4]= [ 3, U2113, threesuperior, threesubscript, numerosign, NoSymbol, logicaland, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 4, dollar ], + symbols[Group2]= [ 4, semicolon ], + symbols[Group3]= [ 4, dollar, cent, NoSymbol, onequarter, currency, NoSymbol, NoSymbol ], + symbols[Group4]= [ 4, guillemotright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 5, percent ], + symbols[Group2]= [ 5, percent ], + symbols[Group3]= [ 5, percent, currency, NoSymbol, onehalf, threeeighths, NoSymbol, NoSymbol ], + symbols[Group4]= [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ { H, E, L, L, O }, asciicircum ], + symbols[Group2]= [ 6, colon ], + symbols[Group3]= [ 6, question, notsign, NoSymbol, threequarters, fiveeighths, NoSymbol, NoSymbol ], + symbols[Group4]= [ 6, dollar, cent, U26A5, sterling, NoSymbol, U2225, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G }, ampersand ], + symbols[Group2]= [ 7, question ], + symbols[Group3]= [ 7, ampersand, braceleft, NoSymbol, NoSymbol, seveneighths, NoSymbol, NoSymbol ], + symbols[Group4]= [ 7, EuroSign, yen, U03F0, currency, NoSymbol, rightarrow, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 8, asterisk ], + symbols[Group2]= [ 8, asterisk ], + symbols[Group3]= [ 8, asterisk, braceright, NoSymbol, NoSymbol, trademark, NoSymbol, NoSymbol ], + symbols[Group4]= [ 8, doublelowquotemark, singlelowquotemark, U27E8, Tab, ISO_Left_Tab, U221E, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 9, parenleft ], + symbols[Group2]= [ 9, parenleft ], + symbols[Group3]= [ 9, parenleft, bracketleft, NoSymbol, NoSymbol, plusminus, NoSymbol, NoSymbol ], + symbols[Group4]= [ 9, leftdoublequotemark, leftsinglequotemark, U27E9, KP_Divide, KP_Divide, variation, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ 0, parenright ], + symbols[Group2]= [ 0, parenright ], + symbols[Group3]= [ 0, parenright, bracketright, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ], + symbols[Group4]= [ 0, rightdoublequotemark, rightsinglequotemark, zerosubscript, KP_Multiply, KP_Multiply, emptyset, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ minus, underscore ], + symbols[Group2]= [ minus, underscore ], + symbols[Group3]= [ minus, underscore, onehalf, NoSymbol, NoSymbol, questiondown, NoSymbol, NoSymbol ], + symbols[Group4]= [ minus, emdash, NoSymbol, U2011, KP_Subtract, KP_Subtract, hyphen, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ equal, plus ], + symbols[Group2]= [ equal, plus ], + symbols[Group3]= [ equal, plus, notsign, NoSymbol, dead_cedilla, dead_ogonek, NoSymbol, NoSymbol ], + symbols[Group4]= [ dead_grave, dead_cedilla, dead_abovering, dead_abovereversedcomma, dead_diaeresis, NoSymbol, dead_macron, NoSymbol ] + }; + key { [ BackSpace, BackSpace ] }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ Tab, ISO_Left_Tab ], + symbols[Group2]= [ Tab, ISO_Left_Tab ], + symbols[Group3]= [ Tab, ISO_Left_Tab ], + symbols[Group4]= [ Tab, ISO_Left_Tab, Multi_key, ISO_Level5_Lock, NoSymbol, NoSymbol, NoSymbol, ISO_Level5_Lock ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ q, Q ], + symbols[Group2]= [ Cyrillic_shorti, Cyrillic_SHORTI ], + symbols[Group3]= [ q, Q, NoSymbol, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol, NoSymbol ], + symbols[Group4]= [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ w, W ], + symbols[Group2]= [ Cyrillic_tse, Cyrillic_TSE ], + symbols[Group3]= [ w, W, NoSymbol, NoSymbol, lstroke, Lstroke, NoSymbol, NoSymbol ], + symbols[Group4]= [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ e, E ], + symbols[Group2]= [ Cyrillic_u, Cyrillic_U ], + symbols[Group3]= [ e, E, NoSymbol, NoSymbol, oe, OE, NoSymbol, NoSymbol ], + symbols[Group4]= [ l, L, bracketleft, Greek_lamda, Up, Up, Greek_LAMDA, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ r, R ], + symbols[Group2]= [ Cyrillic_ka, Cyrillic_KA ], + symbols[Group3]= [ r, R, NoSymbol, NoSymbol, paragraph, registered, NoSymbol, NoSymbol ], + symbols[Group4]= [ c, C, bracketright, Greek_chi, Delete, Delete, U2102, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ t, T ], + symbols[Group2]= [ Cyrillic_ie, Cyrillic_IE ], + symbols[Group3]= [ t, T, NoSymbol, NoSymbol, tslash, Tslash, NoSymbol, NoSymbol ], + symbols[Group4]= [ w, W, asciicircum, Greek_omega, Next, Next, Greek_OMEGA, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ y, Y ], + symbols[Group2]= [ Cyrillic_en, Cyrillic_EN ], + symbols[Group3]= [ y, Y, NoSymbol, NoSymbol, leftarrow, yen, NoSymbol, NoSymbol ], + symbols[Group4]= [ k, K, exclam, Greek_kappa, exclamdown, NoSymbol, multiply, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ u, U ], + symbols[Group2]= [ Cyrillic_ghe, Cyrillic_GHE ], + symbols[Group3]= [ u, U, NoSymbol, NoSymbol, downarrow, uparrow, NoSymbol, NoSymbol ], + symbols[Group4]= [ h, H, less, Greek_psi, KP_7, KP_7, Greek_PSI, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ i, I ], + symbols[Group2]= [ Cyrillic_sha, Cyrillic_SHA ], + symbols[Group3]= [ i, I, NoSymbol, NoSymbol, rightarrow, idotless, NoSymbol, NoSymbol ], + symbols[Group4]= [ g, G, greater, Greek_gamma, KP_8, KP_8, Greek_GAMMA, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ o, O ], + symbols[Group2]= [ Cyrillic_shcha, Cyrillic_SHCHA ], + symbols[Group3]= [ o, O, section, NoSymbol, oslash, Oslash, NoSymbol, NoSymbol ], + symbols[Group4]= [ f, F, equal, Greek_phi, KP_9, KP_9, Greek_PHI, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ p, P ], + symbols[Group2]= [ Cyrillic_ze, Cyrillic_ZE ], + symbols[Group3]= [ p, P, paragraph, NoSymbol, thorn, THORN, NoSymbol, NoSymbol ], + symbols[Group4]= [ q, Q, ampersand, U03D5, KP_Add, KP_Add, U211A, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ bracketleft, braceleft ], + symbols[Group2]= [ Cyrillic_ha, Cyrillic_HA ], + symbols[Group3]= [ dead_circumflex, dead_diaeresis, dead_grave, NoSymbol, NoSymbol, dead_abovering, NoSymbol, NoSymbol ], + symbols[Group4]= [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ bracketright, braceright ], + symbols[Group2]= [ Cyrillic_hardsign, Cyrillic_HARDSIGN ], + symbols[Group3]= [ ccedilla, Ccedilla, asciitilde, NoSymbol, dead_tilde, dead_macron, NoSymbol, NoSymbol ], + symbols[Group4]= [ dead_acute, dead_tilde, dead_stroke, dead_abovecomma, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] + }; + key { [ Return ] }; + key { [ Control_L ] }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ a, A ], + symbols[Group2]= [ Cyrillic_ef, Cyrillic_EF ], + symbols[Group3]= [ a, A, NoSymbol, NoSymbol, ae, AE, NoSymbol, NoSymbol ], + symbols[Group4]= [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ s, S ], + symbols[Group2]= [ Cyrillic_yeru, Cyrillic_YERU ], + symbols[Group3]= [ s, S, NoSymbol, NoSymbol, ssharp, section, NoSymbol, NoSymbol ], + symbols[Group4]= [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ d, D ], + symbols[Group2]= [ Cyrillic_ve, Cyrillic_VE ], + symbols[Group3]= [ d, D, NoSymbol, NoSymbol, eth, ETH, NoSymbol, NoSymbol ], + symbols[Group4]= [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ f, F ], + symbols[Group2]= [ Cyrillic_a, Cyrillic_A ], + symbols[Group3]= [ f, F, NoSymbol, NoSymbol, NoSymbol, ordfeminine, NoSymbol, NoSymbol ], + symbols[Group4]= [ e, E, braceright, Greek_epsilon, Right, Right, U2203, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ g, G ], + symbols[Group2]= [ Cyrillic_pe, Cyrillic_PE ], + symbols[Group3]= [ g, G, NoSymbol, NoSymbol, eng, ENG, NoSymbol, NoSymbol ], + symbols[Group4]= [ o, O, asterisk, Greek_omicron, End, End, elementof, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ h, H ], + symbols[Group2]= [ Cyrillic_er, Cyrillic_ER ], + symbols[Group3]= [ h, H, NoSymbol, NoSymbol, hstroke, Hstroke, NoSymbol, NoSymbol ], + symbols[Group4]= [ s, S, question, Greek_sigma, questiondown, NoSymbol, Greek_SIGMA, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ j, J ], + symbols[Group2]= [ Cyrillic_o, Cyrillic_O ], + symbols[Group3]= [ j, J, NoSymbol, NoSymbol, U0133, U0132, NoSymbol, NoSymbol ], + symbols[Group4]= [ n, N, parenleft, Greek_nu, KP_4, KP_4, U2115, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ k, K ], + symbols[Group2]= [ Cyrillic_el, Cyrillic_EL ], + symbols[Group3]= [ k, K, NoSymbol, NoSymbol, kra, NoSymbol, NoSymbol, NoSymbol ], + symbols[Group4]= [ r, R, parenright, Greek_rho, KP_5, KP_5, U211D, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ l, L ], + symbols[Group2]= [ Cyrillic_de, Cyrillic_DE ], + symbols[Group3]= [ l, L, NoSymbol, NoSymbol, U0140, U013F, NoSymbol, NoSymbol ], + symbols[Group4]= [ t, T, minus, Greek_tau, KP_6, KP_6, partialderivative, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ semicolon, colon ], + symbols[Group2]= [ Cyrillic_zhe, Cyrillic_ZHE ], + symbols[Group3]= [ semicolon, colon, degree, NoSymbol, dead_acute, dead_doubleacute, NoSymbol, NoSymbol ], + symbols[Group4]= [ d, D, colon, Greek_delta, KP_Separator, comma, Greek_DELTA, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ apostrophe, quotedbl ], + symbols[Group2]= [ Cyrillic_e, Cyrillic_E ], + symbols[Group3]= [ egrave, Egrave, braceleft, NoSymbol, NoSymbol, dead_caron, NoSymbol, NoSymbol ], + symbols[Group4]= [ y, Y, at, Greek_upsilon, period, KP_Decimal, nabla, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ grave, asciitilde ], + symbols[Group2]= [ Cyrillic_io, Cyrillic_IO ], + symbols[Group3]= [ slash, backslash, bar, NoSymbol, NoSymbol, hyphen, NoSymbol, NoSymbol ], + symbols[Group4]= [ dead_circumflex, dead_caron, U21BB, U02DE, dead_abovedot, Pointer_EnableKeys, dead_belowdot, NoSymbol ] + }; + key { + type[group4]= "TWO_LEVEL", + symbols[Group1]= [ Shift_L ], + symbols[Group2]= [ Shift_L ], + symbols[Group3]= [ Shift_L ], + symbols[Group4]= [ Shift_L, Caps_Lock ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "ONE_LEVEL", + symbols[Group1]= [ backslash, bar ], + symbols[Group2]= [ backslash, slash ], + symbols[Group3]= [ agrave, Agrave, braceright, NoSymbol, NoSymbol, dead_breve, NoSymbol, NoSymbol ], + symbols[Group4]= [ ISO_Level3_Shift ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ z, Z ], + symbols[Group2]= [ Cyrillic_ya, Cyrillic_YA ], + symbols[Group3]= [ z, Z, guillemotleft, NoSymbol ], + symbols[Group4]= [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ x, X ], + symbols[Group2]= [ Cyrillic_che, Cyrillic_CHE ], + symbols[Group3]= [ x, X, guillemotright, NoSymbol ], + symbols[Group4]= [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ c, C ], + symbols[Group2]= [ Cyrillic_es, Cyrillic_ES ], + symbols[Group3]= [ c, C, NoSymbol, NoSymbol, cent, copyright, NoSymbol, NoSymbol ], + symbols[Group4]= [ adiaeresis, Adiaeresis, bar, Greek_eta, Insert, Insert, U2135, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ v, V ], + symbols[Group2]= [ Cyrillic_em, Cyrillic_EM ], + symbols[Group3]= [ v, V, NoSymbol, NoSymbol, leftdoublequotemark, leftsinglequotemark, NoSymbol, NoSymbol ], + symbols[Group4]= [ p, P, asciitilde, Greek_pi, Return, Return, Greek_PI, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ b, B ], + symbols[Group2]= [ Cyrillic_i, Cyrillic_I ], + symbols[Group3]= [ b, B, NoSymbol, NoSymbol, rightdoublequotemark, rightsinglequotemark, NoSymbol, NoSymbol ], + symbols[Group4]= [ z, Z, grave, Greek_zeta, Undo, Undo, U2124, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ n, N ], + symbols[Group2]= [ Cyrillic_te, Cyrillic_TE ], + symbols[Group3]= [ n, N, NoSymbol, NoSymbol, U0149, U266A, NoSymbol, NoSymbol ], + symbols[Group4]= [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] + }; + key { + type[group1]= "ALPHABETIC", + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ m, M ], + symbols[Group2]= [ Cyrillic_softsign, Cyrillic_SOFTSIGN ], + symbols[Group3]= [ m, M, mu, NoSymbol, mu, masculine, NoSymbol, NoSymbol ], + symbols[Group4]= [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ comma, less ], + symbols[Group2]= [ Cyrillic_be, Cyrillic_BE ], + symbols[Group3]= [ comma, apostrophe, less, NoSymbol, Greek_horizbar, multiply, NoSymbol, NoSymbol ], + symbols[Group4]= [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] + }; + key { + type[group2]= "ALPHABETIC", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ period, greater ], + symbols[Group2]= [ Cyrillic_yu, Cyrillic_YU ], + symbols[Group3]= [ period, quotedbl, greater, NoSymbol, periodcentered, division, NoSymbol, NoSymbol ], + symbols[Group4]= [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] + }; + key { + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "EIGHT_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ slash, question ], + symbols[Group2]= [ period, comma ], + symbols[Group3]= [ eacute, Eacute, dead_acute, NoSymbol, NoSymbol, dead_abovedot, NoSymbol, NoSymbol ], + symbols[Group4]= [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] + }; + key { + type[group4]= "TWO_LEVEL", + symbols[Group1]= [ Shift_R ], + symbols[Group2]= [ Shift_R ], + symbols[Group3]= [ Shift_R ], + symbols[Group4]= [ Shift_R, Caps_Lock ] + }; + key { + type[group1]= "CTRL+ALT", + type[group2]= "CTRL+ALT", + type[group3]= "CTRL+ALT", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ], + symbols[Group2]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ], + symbols[Group3]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ], + symbols[Group4]= [ KP_Multiply, KP_Multiply, U2219, U2299, multiply, NoSymbol, U2297, NoSymbol ] + }; + key { [ Alt_L, Meta_L ] }; + key { + type[group3]= "FOUR_LEVEL", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ space ], + symbols[Group2]= [ space ], + symbols[Group3]= [ space, space, nobreakspace, NoSymbol ], + symbols[Group4]= [ space, space, space, nobreakspace, KP_0, KP_0, U202F, NoSymbol ] + }; + key { + type= "ONE_LEVEL", + symbols[Group1]= [ Caps_Lock ], + symbols[Group2]= [ Caps_Lock ], + symbols[Group3]= [ Caps_Lock ], + symbols[Group4]= [ ISO_Level3_Shift ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ Num_Lock ], + symbols[Group2]= [ Num_Lock ], + symbols[Group3]= [ Num_Lock ], + symbols[Group4]= [ Tab, ISO_Left_Tab, equal, approxeq, notequal, Pointer_EnableKeys, identical, NoSymbol ] + }; + key { [ Scroll_Lock ] }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Home, KP_7 ], + symbols[Group2]= [ KP_Home, KP_7 ], + symbols[Group3]= [ KP_Home, KP_7 ], + symbols[Group4]= [ KP_7, U2714, U2195, U226A, KP_Home, KP_Home, upstile, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Up, KP_8 ], + symbols[Group2]= [ KP_Up, KP_8 ], + symbols[Group3]= [ KP_Up, KP_8 ], + symbols[Group4]= [ KP_8, U2718, uparrow, intersection, KP_Up, KP_Up, U22C2, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Prior, KP_9 ], + symbols[Group2]= [ KP_Prior, KP_9 ], + symbols[Group3]= [ KP_Prior, KP_9 ], + symbols[Group4]= [ KP_9, dagger, U20D7, U226B, KP_Prior, KP_Prior, U2309, NoSymbol ] + }; + key { + type[group1]= "CTRL+ALT", + type[group2]= "CTRL+ALT", + type[group3]= "CTRL+ALT", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ], + symbols[Group2]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ], + symbols[Group3]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ], + symbols[Group4]= [ KP_Subtract, KP_Subtract, U2212, U2296, U2216, NoSymbol, U2238, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Left, KP_4 ], + symbols[Group2]= [ KP_Left, KP_4 ], + symbols[Group3]= [ KP_Left, KP_4 ], + symbols[Group4]= [ KP_4, club, leftarrow, includedin, KP_Left, KP_Left, U2286, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Begin, KP_5 ], + symbols[Group2]= [ KP_Begin, KP_5 ], + symbols[Group3]= [ KP_Begin, KP_5 ], + symbols[Group4]= [ KP_5, EuroSign, colon, U22B6, KP_Begin, KP_Begin, U22B7, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Right, KP_6 ], + symbols[Group2]= [ KP_Right, KP_6 ], + symbols[Group3]= [ KP_Right, KP_6 ], + symbols[Group4]= [ KP_6, U2023, rightarrow, includes, KP_Right, KP_Right, U2287, NoSymbol ] + }; + key { + type[group1]= "CTRL+ALT", + type[group2]= "CTRL+ALT", + type[group3]= "CTRL+ALT", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ], + symbols[Group2]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ], + symbols[Group3]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ], + symbols[Group4]= [ KP_Add, KP_Add, plusminus, U2295, U2213, NoSymbol, U2214, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_End, KP_1 ], + symbols[Group2]= [ KP_End, KP_1 ], + symbols[Group3]= [ KP_End, KP_1 ], + symbols[Group4]= [ KP_1, diamond, U2194, lessthanequal, KP_End, KP_End, downstile, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Down, KP_2 ], + symbols[Group2]= [ KP_Down, KP_2 ], + symbols[Group3]= [ KP_Down, KP_2 ], + symbols[Group4]= [ KP_2, heart, downarrow, union, KP_Down, KP_Down, U22C3, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Next, KP_3 ], + symbols[Group2]= [ KP_Next, KP_3 ], + symbols[Group3]= [ KP_Next, KP_3 ], + symbols[Group4]= [ KP_3, U2660, U21CC, greaterthanequal, KP_Next, KP_Next, U230B, NoSymbol ] + }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Insert, KP_0 ], + symbols[Group2]= [ KP_Insert, KP_0 ], + symbols[Group3]= [ KP_Insert, KP_0 ], + symbols[Group4]= [ KP_0, U2423, percent, U2030, KP_Insert, KP_Insert, U25A1, NoSymbol ] + }; + key { + type[group2]= "KEYPAD", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Delete, KP_Decimal ], + symbols[Group2]= [ KP_Delete, KP_Separator ], + symbols[Group3]= [ KP_Delete, KP_Decimal ], + symbols[Group4]= [ KP_Separator, period, comma, minutes, KP_Delete, KP_Delete, seconds, NoSymbol ] + }; + key { [ ISO_Level3_Shift ] }; + key { + type[group1]= "FOUR_LEVEL", + type[group3]= "EIGHT_LEVEL_SEMIALPHABETIC", + type[group4]= "ONE_LEVEL", + symbols[Group1]= [ less, greater, bar, brokenbar ], + symbols[Group2]= [ slash, bar ], + symbols[Group3]= [ ugrave, Ugrave, degree, NoSymbol, NoSymbol, brokenbar, NoSymbol, NoSymbol ], + symbols[Group4]= [ ISO_Level5_Shift ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] + }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Enter ], + symbols[Group2]= [ KP_Enter ], + symbols[Group3]= [ KP_Enter ], + symbols[Group4]= [ KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, NoSymbol ] + }; + key { + type= "ONE_LEVEL", + symbols[Group1]= [ Control_R ], + symbols[Group2]= [ Control_R ], + symbols[Group3]= [ ISO_Level5_Shift ] + }; + key { + type[group1]= "CTRL+ALT", + type[group2]= "CTRL+ALT", + type[group3]= "CTRL+ALT", + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ], + symbols[Group2]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ], + symbols[Group3]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ], + symbols[Group4]= [ KP_Divide, KP_Divide, division, U2300, U2215, NoSymbol, U2223, NoSymbol ] + }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { + type[group1]= "TWO_LEVEL", + type[group2]= "TWO_LEVEL", + type[group3]= "ONE_LEVEL", + type[group4]= "ONE_LEVEL", + symbols[Group1]= [ Alt_R, Meta_R ], + symbols[Group2]= [ Alt_R, Meta_R ], + symbols[Group3]= [ ISO_Level3_Shift ], + symbols[Group4]= [ ISO_Level5_Shift ] + }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { + type[group4]= "EIGHT_LEVEL", + symbols[Group1]= [ KP_Equal ], + symbols[Group2]= [ KP_Equal ], + symbols[Group3]= [ KP_Equal ], + symbols[Group4]= [ KP_Equal, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] + }; + key { [ plusminus ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal, KP_Decimal ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + key { [ Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ SunOpen ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol, Alt_L ] }; + key { [ NoSymbol, Meta_L ] }; + key { [ NoSymbol, Super_L ] }; + key { [ NoSymbol, Hyper_L ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Shift { , }; + modifier_map Lock { }; + modifier_map Control { }; + modifier_map Mod1 { , , }; + modifier_map Mod2 { }; + modifier_map Mod3 { }; + modifier_map Mod4 { , , , }; + modifier_map Mod5 { , }; +}; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/syntax-error.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/syntax-error.xkb new file mode 100644 index 0000000..6c1cb38 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/syntax-error.xkb @@ -0,0 +1,1814 @@ +xkb_keymap { +xkb_keycodes "evdev+aliases(qwerty)" { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + virtual indicator 12 = "Shift Lock"; + virtual indicator 13 = "Group 2"; + virtual indicator 14 = "Mouse Keys"; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_types "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Shift+Control+Alt+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Control+Alt]= Level5; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift+Lock]= Level1; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level1; + preserve[Shift+Lock+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift+NumLock]= Level1; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret.locking= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Lock+AnyOf(all) { + action= ISOLock(modifiers=modMapMods,affect=all); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default,affect=both); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1,affect=both); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2,affect=both); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3,affect=both); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay1); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay2); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + indicator "Caps Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + !allowExplicit; + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + !allowExplicit; + groups= 0xfe; + }; + indicator "Mouse Keys" { + indicatorDrivesKeyboard; + controls= mouseKeys; + }; +}; + +xkb_symbols "pc+us+inet(evdev)+ctrl(nocaps)+compose(rwin)+terminate(ctrl_alt_bksp)" { + + name[group1]="English (US)"; + + key { [ Escape ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ BackSpace, BackSpace, NoSymbol, NoSymbol, Terminate_Server ] + SYNTAX ERROR + }; + key { [ Tab, ISO_Left_Tab ] }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ q, Q ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ w, W ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ e, E ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ r, R ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ t, T ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ y, Y ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ u, U ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ i, I ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ o, O ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ p, P ] + }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + key { [ Control_L ] }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ a, A ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ s, S ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ d, D ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ f, F ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ g, G ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ h, H ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ j, J ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ k, K ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ l, L ] + }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ grave, asciitilde ] }; + key { [ Shift_L ] }; + key { [ backslash, bar ] }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ z, Z ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ x, X ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ c, C ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ v, V ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ b, B ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ n, N ] + }; + key { + type= "ALPHABETIC", + symbols[Group1]= [ m, M ] + }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ Shift_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ] + }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + key { [ Control_L, Control_L ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] + }; + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ] + }; + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ] + }; + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + key { [ ISO_Level3_Shift ] }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ less, greater, bar, brokenbar ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] + }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { [ KP_Enter ] }; + key { [ Control_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ] + }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { + type= "TWO_LEVEL", + symbols[Group1]= [ Alt_R, Meta_R ] + }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ KP_Equal ] }; + key { [ plusminus ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal, KP_Decimal ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { + type= "TWO_LEVEL", + symbols[Group1]= [ Multi_key, Multi_key ] + }; + key { [ Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ SunOpen ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol, Alt_L ] }; + key { [ NoSymbol, Meta_L ] }; + key { [ NoSymbol, Super_L ] }; + key { [ NoSymbol, Hyper_L ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Control { }; + modifier_map Shift { }; + modifier_map Shift { }; + modifier_map Mod1 { }; + modifier_map Control { }; + modifier_map Mod2 { }; + modifier_map Mod5 { }; + modifier_map Control { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod5 { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; +}; + +xkb_geometry "pc(pc105)" { + + width= 470; + height= 180; + + alias = ; + alias = ; + + baseColor= "white"; + labelColor= "black"; + xfont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + description= "Generic 105"; + + shape "NORM" { + corner= 1, + { [ 18, 18 ] }, + { [ 2, 1 ], [ 16, 16 ] } + }; + shape "BKSP" { + corner= 1, + { [ 38, 18 ] }, + { [ 2, 1 ], [ 36, 16 ] } + }; + shape "TABK" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "BKSL" { + corner= 1, + { [ 28, 18 ] }, + { [ 2, 1 ], [ 26, 16 ] } + }; + shape "RTRN" { + corner= 1, + { [ 0, 0 ], [ 28, 0 ], [ 28, 37 ], [ 5, 37 ], + [ 5, 18 ], [ 0, 18 ] }, + { [ 2, 1 ], [ 26, 1 ], [ 26, 35 ], [ 7, 35 ], + [ 7, 16 ], [ 2, 16 ] }, + approx= { [ 5, 0 ], [ 28, 37 ] } + }; + shape "CAPS" { + corner= 1, + { [ 33, 18 ] }, + { [ 2, 1 ], [ 31, 16 ] } + }; + shape "LFSH" { + corner= 1, + { [ 25, 18 ] }, + { [ 2, 1 ], [ 23, 16 ] } + }; + shape "RTSH" { + corner= 1, + { [ 50, 18 ] }, + { [ 2, 1 ], [ 48, 16 ] } + }; + shape "MODK" { + corner= 1, + { [ 27, 18 ] }, + { [ 2, 1 ], [ 25, 16 ] } + }; + shape "SMOD" { + corner= 1, + { [ 23, 18 ] }, + { [ 2, 1 ], [ 21, 16 ] } + }; + shape "SPCE" { + corner= 1, + { [ 113, 18 ] }, + { [ 2, 1 ], [ 111, 16 ] } + }; + shape "KP0" { + corner= 1, + { [ 37, 18 ] }, + { [ 2, 1 ], [ 35, 16 ] } + }; + shape "KPAD" { + corner= 1, + { [ 18, 37 ] }, + { [ 2, 1 ], [ 16, 35 ] } + }; + shape "LEDS" { { [ 75, 20 ] } }; + shape "LED" { { [ 5, 1 ] } }; + section "Function" { + key.color= "grey20"; + priority= 7; + top= 22; + left= 19; + width= 351; + height= 19; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, + { , "NORM", 20, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 11, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 11, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 8, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + }; // End of "Function" section + + section "Alpha" { + key.color= "white"; + priority= 8; + top= 61; + left= 19; + width= 287; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, + { , "BKSP", 1, color="grey20" } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "TABK", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "RTRN", 1, color="grey20" } + }; + }; + row { + top= 39; + left= 1; + keys { + { , "CAPS", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 } + }; + }; + row { + top= 58; + left= 1; + keys { + { , "LFSH", 1, color="grey20" }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, + { , "RTSH", 1, color="grey20" } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "MODK", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SPCE", 1 }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" }, + { , "SMOD", 1, color="grey20" } + }; + }; + }; // End of "Alpha" section + + section "Editing" { + key.color= "grey20"; + priority= 9; + top= 61; + left= 312; + width= 58; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + row { + top= 58; + left= 20; + keys { + { , "NORM", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 } + }; + }; + }; // End of "Editing" section + + section "Keypad" { + key.color= "grey20"; + priority= 10; + top= 61; + left= 376; + width= 77; + height= 95; + row { + top= 1; + left= 1; + keys { + { , "NORM", 1 }, { , "NORM", 1 }, + { , "NORM", 1 }, { , "NORM", 1 } + }; + }; + row { + top= 20; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "KPAD", 1 } + }; + }; + row { + top= 39; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + row { + top= 58; + left= 1; + keys { + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "NORM", 1, color="white" }, + { , "KPAD", 1 } + }; + }; + row { + top= 77; + left= 1; + keys { + { , "KP0", 1, color="white" }, + { , "NORM", 1, color="white" } + }; + }; + }; // End of "Keypad" section + + solid "LedPanel" { + top= 22; + left= 377; + priority= 0; + color= "grey10"; + shape= "LEDS"; + }; + indicator "Num Lock" { + top= 37; + left= 382; + priority= 1; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Caps Lock" { + top= 37; + left= 407; + priority= 2; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + indicator "Scroll Lock" { + top= 37; + left= 433; + priority= 3; + onColor= "green"; + offColor= "green30"; + shape= "LED"; + }; + text "NumLockLabel" { + top= 25; + left= 378; + priority= 4; + width= 19.8; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Num\nLock"; + }; + text "CapsLockLabel" { + top= 25; + left= 403; + priority= 5; + width= 26.4; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Caps\nLock"; + }; + text "ScrollLockLabel" { + top= 25; + left= 428; + priority= 6; + width= 39.6; + height= 10; + XFont= "-*-helvetica-medium-r-normal--*-120-*-*-*-*-iso8859-1"; + text= "Scroll\nLock"; + }; +}; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/syntax-error2.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/syntax-error2.xkb new file mode 100644 index 0000000..0ca28f2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/syntax-error2.xkb @@ -0,0 +1,7 @@ +xkb_keymap { +xkb_compatibility "complete" { + interpret ISO_Level2_Latch+Exactly(Shift) { + action == LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; +}; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/unbound-vmod.xkb b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/unbound-vmod.xkb new file mode 100644 index 0000000..a1733c1 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keymaps/unbound-vmod.xkb @@ -0,0 +1,1533 @@ +xkb_keymap { +xkb_keycodes "evdev+aliases(qwertz)" { + minimum = 8; + maximum = 255; + = 9; + = 10; + = 11; + = 12; + = 13; + = 14; + = 15; + = 16; + = 17; + = 18; + = 19; + = 20; + = 21; + = 22; + = 23; + = 24; + = 25; + = 26; + = 27; + = 28; + = 29; + = 30; + = 31; + = 32; + = 33; + = 34; + = 35; + = 36; + = 37; + = 38; + = 39; + = 40; + = 41; + = 42; + = 43; + = 44; + = 45; + = 46; + = 47; + = 48; + = 49; + = 50; + = 51; + = 52; + = 53; + = 54; + = 55; + = 56; + = 57; + = 58; + = 59; + = 60; + = 61; + = 62; + = 63; + = 64; + = 65; + = 66; + = 67; + = 68; + = 69; + = 70; + = 71; + = 72; + = 73; + = 74; + = 75; + = 76; + = 77; + = 78; + = 79; + = 80; + = 81; + = 82; + = 83; + = 84; + = 85; + = 86; + = 87; + = 88; + = 89; + = 90; + = 91; + = 92; + = 94; + = 95; + = 96; + = 97; + = 98; + = 99; + = 100; + = 101; + = 102; + = 103; + = 104; + = 105; + = 106; + = 107; + = 108; + = 109; + = 110; + = 111; + = 112; + = 113; + = 114; + = 115; + = 116; + = 117; + = 118; + = 119; + = 120; + = 121; + = 122; + = 123; + = 124; + = 125; + = 126; + = 127; + = 128; + = 129; + = 130; + = 131; + = 132; + = 133; + = 134; + = 135; + = 136; + = 137; + = 138; + = 139; + = 140; + = 141; + = 142; + = 143; + = 144; + = 145; + = 146; + = 147; + = 148; + = 149; + = 150; + = 151; + = 152; + = 153; + = 154; + = 155; + = 156; + = 157; + = 158; + = 159; + = 160; + = 161; + = 162; + = 163; + = 164; + = 165; + = 166; + = 167; + = 168; + = 169; + = 170; + = 171; + = 172; + = 173; + = 174; + = 175; + = 176; + = 177; + = 178; + = 179; + = 180; + = 181; + = 182; + = 183; + = 184; + = 185; + = 186; + = 187; + = 188; + = 189; + = 190; + = 191; + = 192; + = 193; + = 194; + = 195; + = 196; + = 197; + = 198; + = 199; + = 200; + = 201; + = 202; + = 203; + = 204; + = 205; + = 206; + = 207; + = 208; + = 209; + = 210; + = 211; + = 212; + = 213; + = 214; + = 215; + = 216; + = 217; + = 218; + = 219; + = 220; + = 221; + = 222; + = 223; + = 224; + = 225; + = 226; + = 227; + = 228; + = 229; + = 230; + = 231; + = 232; + = 233; + = 234; + = 235; + = 236; + = 237; + = 238; + = 239; + = 240; + = 241; + = 242; + = 243; + = 244; + = 245; + = 246; + = 247; + = 248; + = 249; + = 250; + = 251; + = 252; + = 253; + indicator 1 = "Caps Lock"; + indicator 2 = "Num Lock"; + indicator 3 = "Scroll Lock"; + indicator 4 = "Compose"; + indicator 5 = "Kana"; + indicator 6 = "Sleep"; + indicator 7 = "Suspend"; + indicator 8 = "Mute"; + indicator 9 = "Misc"; + indicator 10 = "Mail"; + indicator 11 = "Charging"; + virtual indicator 12 = "Shift Lock"; + virtual indicator 13 = "Group 2"; + virtual indicator 14 = "Mouse Keys"; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_types "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + type "ONE_LEVEL" { + modifiers= none; + level_name[Level1]= "Any"; + }; + type "TWO_LEVEL" { + modifiers= Shift; + map[Shift]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + }; + type "ALPHABETIC" { + modifiers= Shift+Lock; + map[Shift]= Level2; + map[Lock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Caps"; + }; + type "KEYPAD" { + modifiers= Shift+NumLock; + map[Shift]= Level2; + map[NumLock]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + }; + type "SHIFT+ALT" { + modifiers= Shift+Alt; + map[Shift+Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift+Alt"; + }; + type "PC_CONTROL_LEVEL2" { + modifiers= Control; + map[Control]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Control"; + }; + type "PC_LCONTROL_LEVEL2" { + modifiers= LControl; + map[LControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LControl"; + }; + type "PC_RCONTROL_LEVEL2" { + modifiers= RControl; + map[RControl]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RControl"; + }; + type "PC_ALT_LEVEL2" { + modifiers= Alt; + map[Alt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt"; + }; + type "PC_LALT_LEVEL2" { + modifiers= LAlt; + map[LAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "LAlt"; + }; + type "PC_RALT_LEVEL2" { + modifiers= RAlt; + map[RAlt]= Level2; + level_name[Level1]= "Base"; + level_name[Level2]= "RAlt"; + }; + type "CTRL+ALT" { + modifiers= Shift+Control+Alt+LevelThree; + map[Shift]= Level2; + preserve[Shift]= Shift; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + preserve[Shift+LevelThree]= Shift; + map[Control+Alt]= Level5; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Ctrl+Alt"; + }; + type "LOCAL_EIGHT_LEVEL" { + modifiers= Shift+Lock+Control+LevelThree; + map[Shift+Lock]= Level1; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Control]= Level5; + map[Shift+Lock+Control]= Level5; + map[Shift+Control]= Level6; + map[Lock+Control]= Level6; + map[Control+LevelThree]= Level7; + map[Shift+Lock+Control+LevelThree]= Level7; + map[Shift+Control+LevelThree]= Level8; + map[Lock+Control+LevelThree]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + level_name[Level4]= "Shift Level3"; + level_name[Level5]= "Ctrl"; + level_name[Level6]= "Shift Ctrl"; + level_name[Level7]= "Level3 Ctrl"; + level_name[Level8]= "Shift Level3 Ctrl"; + }; + type "THREE_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Level3"; + }; + type "EIGHT_LEVEL" { + modifiers= Shift+LevelThree+LevelFive; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level8; + map[Shift+Lock+LevelThree+LevelFive]= Level7; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree+LevelFive; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + map[LevelFive]= Level5; + map[Shift+LevelFive]= Level6; + map[Lock+LevelFive]= Level6; + preserve[Lock+LevelFive]= Lock; + map[Shift+Lock+LevelFive]= Level6; + preserve[Shift+Lock+LevelFive]= Lock; + map[LevelThree+LevelFive]= Level7; + map[Shift+LevelThree+LevelFive]= Level8; + map[Lock+LevelThree+LevelFive]= Level7; + preserve[Lock+LevelThree+LevelFive]= Lock; + map[Shift+Lock+LevelThree+LevelFive]= Level8; + preserve[Shift+Lock+LevelThree+LevelFive]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "X"; + level_name[Level6]= "X Shift"; + level_name[Level7]= "X Alt Base"; + level_name[Level8]= "X Shift Alt"; + }; + type "FOUR_LEVEL" { + modifiers= Shift+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level4; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level4; + preserve[Shift+Lock+LevelThree]= Lock; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift+NumLock]= Level1; + map[NumLock]= Level2; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[NumLock+LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + }; + type "FOUR_LEVEL_X" { + modifiers= Shift+Control+Alt+LevelThree; + map[LevelThree]= Level2; + map[Shift+LevelThree]= Level3; + map[Control+Alt]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Alt Base"; + level_name[Level3]= "Shift Alt"; + level_name[Level4]= "Ctrl+Alt"; + }; + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[Lock]= Level4; + preserve[Lock]= Lock; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock+LevelThree]= Level3; + preserve[Lock+LevelThree]= Lock; + map[Shift+Lock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "AltGr Base"; + level_name[Level4]= "Shift AltGr"; + }; + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers= Shift+Lock+LevelThree; + map[Shift]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[Lock]= Level5; + map[Shift+Lock]= Level2; + map[Lock+LevelThree]= Level3; + map[Shift+Lock+LevelThree]= Level4; + level_name[Level1]= "Base"; + level_name[Level2]= "Shift"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Shift Alt"; + level_name[Level5]= "Lock"; + }; + type "FOUR_LEVEL_KEYPAD" { + modifiers= Shift+NumLock+LevelThree; + map[Shift]= Level2; + map[NumLock]= Level2; + map[LevelThree]= Level3; + map[Shift+LevelThree]= Level4; + map[NumLock+LevelThree]= Level4; + map[Shift+NumLock+LevelThree]= Level3; + level_name[Level1]= "Base"; + level_name[Level2]= "Number"; + level_name[Level3]= "Alt Base"; + level_name[Level4]= "Alt Number"; + }; +}; + +xkb_compatibility "complete" { + + virtual_modifiers NumLock,Alt,LevelThree,LAlt,RAlt,RControl,LControl,ScrollLock,LevelFive,AltGr,Meta,Super,Hyper; + + interpret.useModMapMods= AnyLevel; + interpret.repeat= False; + interpret.locking= False; + interpret ISO_Level2_Latch+Exactly(Shift) { + useModMapMods=level1; + action= LatchMods(modifiers=Shift,clearLocks,latchToLock); + }; + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + interpret Num_Lock+AnyOf(all) { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + interpret ISO_Level3_Shift+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOf(all) { + virtualModifier= LevelThree; + useModMapMods=level1; + action= LockMods(modifiers=LevelThree); + }; + interpret Alt_L+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Alt_R+AnyOf(all) { + virtualModifier= Alt; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_L+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Meta_R+AnyOf(all) { + virtualModifier= Meta; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_L+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Super_R+AnyOf(all) { + virtualModifier= Super; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_L+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Hyper_R+AnyOf(all) { + virtualModifier= Hyper; + action= SetMods(modifiers=modMapMods,clearLocks); + }; + interpret Scroll_Lock+AnyOf(all) { + virtualModifier= ScrollLock; + action= LockMods(modifiers=modMapMods); + }; + interpret ISO_Level5_Shift+AnyOf(all) { + virtualModifier= LevelFive; + useModMapMods=level1; + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOf(all) { + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOf(all) { + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + interpret Mode_switch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= SetGroup(group=+1); + }; + interpret ISO_Level3_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelThree,clearLocks); + }; + interpret ISO_Level3_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelThree,clearLocks,latchToLock); + }; + interpret ISO_Level3_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelThree); + }; + interpret ISO_Group_Latch+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LatchGroup(group=2); + }; + interpret ISO_Next_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=+1); + }; + interpret ISO_Prev_Group+AnyOfOrNone(all) { + virtualModifier= AltGr; + useModMapMods=level1; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group+AnyOfOrNone(all) { + action= LockGroup(group=1); + }; + interpret ISO_Last_Group+AnyOfOrNone(all) { + action= LockGroup(group=2); + }; + interpret KP_1+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_End+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret KP_2+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_Down+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=+1); + }; + interpret KP_3+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_Next+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret KP_4+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_Left+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+0); + }; + interpret KP_6+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_Right+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+0); + }; + interpret KP_7+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_Home+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret KP_8+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_Up+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+0,y=-1); + }; + interpret KP_9+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_Prior+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret KP_5+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_Begin+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret KP_F2+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_Divide+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret KP_F3+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_Multiply+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret KP_F4+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Subtract+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=3); + }; + interpret KP_Separator+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_Add+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default,count=2); + }; + interpret KP_0+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Insert+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=lock); + }; + interpret KP_Decimal+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret KP_Delete+AnyOfOrNone(all) { + repeat= True; + action= LockPtrBtn(button=default,affect=unlock); + }; + interpret F25+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=1); + }; + interpret F26+AnyOfOrNone(all) { + repeat= True; + action= SetPtrDflt(affect=button,button=2); + }; + interpret F27+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=-1); + }; + interpret F29+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=-1); + }; + interpret F31+AnyOfOrNone(all) { + repeat= True; + action= PtrBtn(button=default); + }; + interpret F33+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=-1,y=+1); + }; + interpret F35+AnyOfOrNone(all) { + repeat= True; + action= MovePtr(x=+1,y=+1); + }; + interpret Pointer_Button_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default); + }; + interpret Pointer_Button1+AnyOfOrNone(all) { + action= PtrBtn(button=1); + }; + interpret Pointer_Button2+AnyOfOrNone(all) { + action= PtrBtn(button=2); + }; + interpret Pointer_Button3+AnyOfOrNone(all) { + action= PtrBtn(button=3); + }; + interpret Pointer_DblClick_Dflt+AnyOfOrNone(all) { + action= PtrBtn(button=default,count=2); + }; + interpret Pointer_DblClick1+AnyOfOrNone(all) { + action= PtrBtn(button=1,count=2); + }; + interpret Pointer_DblClick2+AnyOfOrNone(all) { + action= PtrBtn(button=2,count=2); + }; + interpret Pointer_DblClick3+AnyOfOrNone(all) { + action= PtrBtn(button=3,count=2); + }; + interpret Pointer_Drag_Dflt+AnyOfOrNone(all) { + action= LockPtrBtn(button=default,affect=both); + }; + interpret Pointer_Drag1+AnyOfOrNone(all) { + action= LockPtrBtn(button=1,affect=both); + }; + interpret Pointer_Drag2+AnyOfOrNone(all) { + action= LockPtrBtn(button=2,affect=both); + }; + interpret Pointer_Drag3+AnyOfOrNone(all) { + action= LockPtrBtn(button=3,affect=both); + }; + interpret Pointer_EnableKeys+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=+1); + }; + interpret Pointer_DfltBtnPrev+AnyOfOrNone(all) { + action= SetPtrDflt(affect=button,button=-1); + }; + interpret AccessX_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXKeys); + }; + interpret AccessX_Feedback_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AccessXFeedback); + }; + interpret RepeatKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=RepeatKeys); + }; + interpret SlowKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=SlowKeys); + }; + interpret BounceKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=BounceKeys); + }; + interpret StickyKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=StickyKeys); + }; + interpret MouseKeys_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeys); + }; + interpret MouseKeys_Accel_Enable+AnyOfOrNone(all) { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Overlay1_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay1); + }; + interpret Overlay2_Enable+AnyOfOrNone(all) { + action= LockControls(controls=Overlay2); + }; + interpret AudibleBell_Enable+AnyOfOrNone(all) { + action= LockControls(controls=AudibleBell); + }; + interpret Terminate_Server+AnyOfOrNone(all) { + action= Terminate(); + }; + interpret Alt_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Alt_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Alt,clearLocks); + }; + interpret Meta_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Meta_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Meta,clearLocks); + }; + interpret Super_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Super_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Super,clearLocks); + }; + interpret Hyper_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Hyper_R+AnyOfOrNone(all) { + action= SetMods(modifiers=Hyper,clearLocks); + }; + interpret Shift_L+AnyOfOrNone(all) { + action= SetMods(modifiers=Shift,clearLocks); + }; + interpret XF86Switch_VT_1+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=1,!same); + }; + interpret XF86Switch_VT_2+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=2,!same); + }; + interpret XF86Switch_VT_3+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=3,!same); + }; + interpret XF86Switch_VT_4+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=4,!same); + }; + interpret XF86Switch_VT_5+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=5,!same); + }; + interpret XF86Switch_VT_6+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=6,!same); + }; + interpret XF86Switch_VT_7+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=7,!same); + }; + interpret XF86Switch_VT_8+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=8,!same); + }; + interpret XF86Switch_VT_9+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=9,!same); + }; + interpret XF86Switch_VT_10+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=10,!same); + }; + interpret XF86Switch_VT_11+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=11,!same); + }; + interpret XF86Switch_VT_12+AnyOfOrNone(all) { + repeat= True; + action= SwitchScreen(screen=12,!same); + }; + interpret XF86LogGrabInfo+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x47,data[3]=0x72,data[4]=0x62,data[5]=0x73,data[6]=0x00); + }; + interpret XF86LogWindowTree+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x50,data[1]=0x72,data[2]=0x57,data[3]=0x69,data[4]=0x6e,data[5]=0x73,data[6]=0x00); + }; + interpret XF86Next_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2b,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret XF86Prev_VMode+AnyOfOrNone(all) { + repeat= True; + action= Private(type=0x86,data[0]=0x2d,data[1]=0x56,data[2]=0x4d,data[3]=0x6f,data[4]=0x64,data[5]=0x65,data[6]=0x00); + }; + interpret ISO_Level5_Shift+AnyOfOrNone(all) { + action= SetMods(modifiers=LevelFive,clearLocks); + }; + interpret ISO_Level5_Latch+AnyOfOrNone(all) { + action= LatchMods(modifiers=LevelFive,clearLocks,latchToLock); + }; + interpret ISO_Level5_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=LevelFive); + }; + interpret Caps_Lock+AnyOfOrNone(all) { + action= LockMods(modifiers=Lock); + }; + interpret Any+Exactly(Lock) { + action= LockMods(modifiers=Lock); + }; + interpret Any+AnyOf(all) { + action= SetMods(modifiers=modMapMods,clearLocks); + }; + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + indicator "Caps Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Lock; + }; + indicator "Num Lock" { + !allowExplicit; + whichModState= locked; + modifiers= NumLock; + }; + indicator "Scroll Lock" { + whichModState= locked; + modifiers= ScrollLock; + }; + indicator "Shift Lock" { + !allowExplicit; + whichModState= locked; + modifiers= Shift; + }; + indicator "Group 2" { + !allowExplicit; + groups= 0xfe; + }; + indicator "Mouse Keys" { + indicatorDrivesKeyboard; + controls= mouseKeys; + }; +}; + +xkb_symbols "pc+de+inet(evdev)+group(menu_toggle)+ctrl(nocaps)" { + + name[group1]="German"; + + key { [ Escape ] }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 1, exclam, onesuperior, exclamdown ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 2, quotedbl, twosuperior, oneeighth ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 3, section, threesuperior, sterling ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 4, dollar, onequarter, currency ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 5, percent, onehalf, threeeighths ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 6, ampersand, notsign, fiveeighths ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 7, slash, braceleft, seveneighths ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 8, parenleft, bracketleft, trademark ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 9, parenright, bracketright, plusminus ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ 0, equal, braceright, degree ] + }; + key { + type= "FOUR_LEVEL_PLUS_LOCK", + symbols[Group1]= [ ssharp, question, backslash, questiondown, U1E9E ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ dead_acute, dead_grave, dead_cedilla, dead_ogonek ] + }; + key { [ BackSpace, BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ q, Q, at, Greek_OMEGA ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ w, W, lstroke, Lstroke ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ e, E, EuroSign, EuroSign ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ r, R, paragraph, registered ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ t, T, tslash, Tslash ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ z, Z, leftarrow, yen ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ u, U, downarrow, uparrow ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ i, I, rightarrow, idotless ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ o, O, oslash, Oslash ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ p, P, thorn, THORN ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ plus, asterisk, asciitilde, macron ] + }; + key { [ Return ] }; + key { [ Control_L ] }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ a, A, ae, AE ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ s, S, U017F, U1E9E ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ d, D, eth, ETH ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ f, F, dstroke, ordfeminine ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ g, G, eng, ENG ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ h, H, hstroke, Hstroke ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ j, J, dead_belowdot, dead_abovedot ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ k, K, kra, ampersand ] + }; + key { + type= "FOUR_LEVEL_ALPHABETIC", + symbols[Group1]= [ l, L, lstroke, Lstroke ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ dead_circumflex, degree, U2032, U2033 ] + }; + key { [ Shift_L ] }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ numbersign, apostrophe, rightsinglequotemark, dead_breve ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ y, Y, guillemotright, U203A ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ x, X, guillemotleft, U2039 ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ c, C, cent, copyright ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ v, V, doublelowquotemark, singlelowquotemark ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ b, B, leftdoublequotemark, leftsinglequotemark ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ n, N, rightdoublequotemark, rightsinglequotemark ] + }; + key { + type= "FOUR_LEVEL_SEMIALPHABETIC", + symbols[Group1]= [ m, M, mu, masculine ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ comma, semicolon, periodcentered, multiply ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ period, colon, U2026, division ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ minus, underscore, endash, emdash ] + }; + key { [ Shift_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86ClearGrab ] + }; + key { [ Alt_L, Meta_L ] }; + key { [ space ] }; + key { [ Control_L, Control_L ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86Switch_VT_1 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86Switch_VT_2 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86Switch_VT_3 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86Switch_VT_4 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86Switch_VT_5 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86Switch_VT_6 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86Switch_VT_7 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86Switch_VT_8 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86Switch_VT_9 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86Switch_VT_10 ] + }; + key { [ Num_Lock ] }; + key { [ Scroll_Lock ] }; + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86Prev_VMode ] + }; + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86Next_VMode ] + }; + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Insert, KP_0 ] }; + key { + type= "KEYPAD", + symbols[Group1]= [ KP_Delete, KP_Separator ] + }; + key { + type= "ONE_LEVEL", + symbols[Group1]= [ ISO_Level3_Shift ], + actions[Group1]= [ SetMods(modifiers=LevelThree) ] + }; + key { + type= "FOUR_LEVEL", + symbols[Group1]= [ less, greater, bar, brokenbar ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86Switch_VT_11 ] + }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86Switch_VT_12 ] + }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Henkan_Mode ] }; + key { [ Hiragana_Katakana ] }; + key { [ Muhenkan ] }; + key { [ KP_Enter ] }; + key { [ Control_R ] }; + key { + type= "CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86Ungrab ] + }; + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { + type= "ONE_LEVEL", + symbols[Group1]= [ ISO_Level3_Shift ] + }; + key { [ Linefeed ] }; + key { [ Home ] }; + key { [ Up ] }; + key { [ Prior ] }; + key { [ Left ] }; + key { [ Right ] }; + key { [ End ] }; + key { [ Down ] }; + key { [ Next ] }; + key { [ Insert ] }; + key { [ Delete ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ KP_Equal ] }; + key { [ plusminus ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ XF86LaunchA ] }; + key { [ KP_Decimal, KP_Decimal ] }; + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + key { [ ISO_Next_Group, Menu ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ XF86Open ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + key { [ Mode_switch ] }; + key { [ NoSymbol, Alt_L ] }; + key { [ NoSymbol, Meta_L ] }; + key { [ NoSymbol, Super_L ] }; + key { [ NoSymbol, Hyper_L ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; + key { [ Print ] }; + key { [ XF86WebCam ] }; + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; + key { [ XF86Search ] }; + key { [ XF86Go ] }; + key { [ XF86Finance ] }; + key { [ XF86Game ] }; + key { [ XF86Shop ] }; + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; + modifier_map Control { }; + modifier_map Shift { }; + modifier_map Shift { }; + modifier_map Mod1 { }; + modifier_map Control { }; + modifier_map Mod2 { }; + modifier_map Mod5 { }; + modifier_map Control { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; + modifier_map Mod5 { }; + modifier_map Mod1 { }; + modifier_map Mod4 { }; + modifier_map Mod4 { }; +}; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/base b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/base new file mode 100644 index 0000000..5f02efa --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/base @@ -0,0 +1,1226 @@ +// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// +// 2002 Modifier: Ivan Pascal The XFree86 Project +// + +// If you want non-latin layouts implicitly include the en_US layout +// uncomment lines below +//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ +// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \ +// ru scc sy syr tel th tj tam ua uz + +// PC models +! $pcmodels = pc101 pc102 pc104 pc105 + +// Microsoft models (using MS geometry) +! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose + +// Nokia devices and keyboards +! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 + +// PC geometries - they have special geometry but symbols are mostly pc105 +! $pcgeometries = latitude + +// TypeMatrix geometries +! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 + +// Layouts that provide further specializations for the OLPC +! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us + +! $macbooks = macbook78 macbook79 +! $maclaptop = ibook powerbook macbook78 macbook79 +! $applealu = applealu_ansi applealu_iso applealu_jis +! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 + +! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us + +! $azerty = be fr +! $qwertz = al cz de hr hu ro si sk + + +// all layouts with 3rd and 4th groups +! $threelevellayouts = al az \ + be br bt \ + ca ch cs cz \ + de dk \ + ee es \ + fi fo fr \ + gb gr \ + hu \ + ie ir is it \ + latam \ + lk lt \ + mn mt \ + nl no \ + pl pt \ + ro \ + se sk \ + tr \ + us \ + vn \ + za + +! $thinkpads = thinkpad thinkpad60 thinkpadz60 + +! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ + sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ + sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb + +! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb + +// Sun Type_6_7 keyboards with custom layouts +! $sun_custom = ara be br ca ch cz de dk \ + ee es fi fr gb gr it jp \ + kr lt lv nl no pl pt ro \ + ru se sk tr tw ua us + +! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ + sun_type7 sun_type7_suncompat suncompat + +! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat + +! $htcdreamlayouts = us it de + +! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ + airkey \ + apple armada azonaRF2300 \ + benqx brother \ + btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ + cherryblue cherrybluea cherryblueb \ + cherrycyboard cherrycmexpert \ + chicony chicony0108 chicony0420 chicony9885 \ + compalfl90 \ + compaqeak8 compaqik7 compaqik13 compaqik18 \ + creativedw7000 \ + cymotionlinux \ + dell dellm65 inspiron dellusbmm \ + emachines ennyah_dkb1008 evdev \ + genius geniuscomfy2 \ + gyration honeywell_euroboard \ + hp250x hp5xx hp500fa hpdv5 \ + hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ + ibm_spacesaver ipaq inspiron intel \ + logiaccess logicda logicink \ + logiex110 logiclx300 \ + logiinkse logiinkseusb logiitc logiik \ + logitech_base itouch logiultrax \ + logitech_g15 \ + logidinovo logidinovoedge \ + microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ + microsoftoffice microsoftmult \ + mx1998 mx2500 mx2750 \ + oretec \ + pc105 \ + presario propeller \ + qtronix \ + rapidaccess rapidaccess2 thinkpad60 \ + samsung4500 samsung4510 \ + silvercrest \ + sk1300 sk2500 sk6200 sk7100 \ + sven sven303 symplon \ + toshiba_s3000 trust trustda \ + unitekkb1925 yahoo + +! $inetmediakbds = acer_ferrari4k acer_laptop btc5090 btc9019u cherryblueb \ + cherrybluea herrycyboard chicony042 compaqik13 compaqik18 \ + armada presario dellm65 inspiron dellusbmm diamond \ + ennyah_dkb1008 genius geniuscomfy2 hpi6 hpxe3gc hpxe3gf \ + hpxt1000 hpzt11xx hpdv5 hpxe4xxx hp5xx thinkpad60 ogitech_base \ + logidinovo logidinovoedge logitech_g15 mx1998 mx2500 mx2750 \ + microsoft4000 microsoft7000 microsoftprooem microsoftmult \ + propeller samsung4500 samsung4510 sk1300 sk2500 sk7100 \ + toshiba_s3000 trust trustda cymotionlinux silvercrest \ + emachines benqx unitekkb1925 creativedw7000 compalfl90 \ + pc105 a4techKB21 a4techKBS8 a4_rfkb23 asus_laptop btc6301urf \ + dexxa dtk2000 fscaa1667g geniuskb19e geniuscomfy latitude \ + microsoftpro precision_m scorpius sp_inet targa_v811 thinkpad \ + tm2030USB-102 tm2030USB-106 trust_slimline + +! $dvoraklayouts = br ca de ee es fr gb no pl se us + +! model = keycodes + amiga = amiga(de) + ataritt = ataritt(de) + empty = empty + $sun_jp = sun(type6_jp_usb) + $sun = sun(type6_usb) + pc98 = xfree98(pc98) + $applealu = macintosh(alukbd) + macintosh_hhk = macintosh(hhk) + macintosh_old = macintosh(old) + $macs = macintosh + thinkpadz60 = xfree86(thinkpadz60) + * = xfree86 + +! layout[1] = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! layout = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! option = keycodes + +! model layout = geometry + thinkpad us = thinkpad(us) + +! model = geometry + microsoftelite = microsoft(elite) + $msmodels = microsoft(natural) + dell101 = dell(dell101) + dellm65 = dell(dellm65) + latitude = dell(latitude) + flexpro = keytronic(FlexPro) + hp6000 = hp(omnibook) + hpmini110 = hp(mini110) + hpdv5 = hp(dv5) + omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) + $pcmodels = pc(%m) + $pcgeometries = pc(%m) + everex = everex(STEPnote) + thinkpad = thinkpad(intl) + thinkpad60 = thinkpad(60) + thinkpadz60 = thinkpad(60) + $tmgeometries = typematrix(%m) + winbook = winbook(XP5) + pc98 = nec(pc98) + $applealu = macintosh(%m) + $macbooks = macintosh(%m) + $macs = macintosh(macintosh) + hhk = hhk(basic) + kinesis = kinesis(model100) + $nokiamodels = nokia(%m) + sun_type6_jp = sun(type6jp) + sun_type6_usb = sun(type6) + sun_type6_euro_usb = sun(type6tuv) + sun_type6_jp_usb = sun(type6jp) + sun_type6_unix_usb = sun(type6unix) + sun_type7_jp_usb = sun(type6jp) + sun_type7_usb = sun(type7) + sun_type7_euro_usb = sun(type7tuv) + sun_type7_unix_usb = sun(type7unix) + * = pc(pc104) + +! model layout variant = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + classmate us intl = pc+us(classmate-intl) + classmate us alt-intl = pc+us(classmate-alt-intl) + classmate us altgr-intl = pc+us(classmate-altgr-intl) + nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) + * $sun_custom $sun_var = pc+sun_vndr/%l%(v) + +! model layout = symbols + * ar = pc+ara + * ben = pc+in(ben) + * bs = pc+ba + * cs = pc+rs + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt + * el = pc+gr + * en_US = pc+latin + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la + * kan = pc+in(kan) + * mi = pc+mao + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 + ataritt * = xfree68_vndr/ataritt(us)+%l%(v) + amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 + amiga * = xfree68_vndr/amiga(usa1)+%l%(v) + classmate us = pc+%l(classmate) + empty * = empty(basic) + * empty = empty(basic) + $sun $sun_custom = pc+sun_vndr/%l%(v) + pc98 nec_vndr/jp = nec_vndr/jp(pc98) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old en_US = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) + macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 + macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) + applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 + applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) + $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) + $macs en_US = pc+macintosh_vndr/us(extended) + $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) + nokiarx44 * = nokia_vndr/rx-44(%l) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) + nokiasu8w * = nokia_vndr/su-8w(%l) + olpc $olpclayouts = olpc+%l%(m) + olpc * = olpc+%l%(v) + olpcm $olpclayouts = olpc+%l%(m) + olpcm * = olpc+%l%(v) + $thinkpads br = pc+br(thinkpad) + sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) + ws003sh * = pc+sharp_vndr/ws003sh(basic) + ws007sh * = pc+sharp_vndr/ws007sh(basic) + ws011sh * = pc+sharp_vndr/ws011sh(basic) + ws020sh * = pc+sharp_vndr/ws020sh(basic) + htcdream $htcdreamlayouts = %l(htcdream) + * $nonlatin = pc+us+%l%(v):2 + * * = pc+%l%(v) + +! model layout[1] = symbols + * ar = pc+ara%(v[1]) + * ben = pc+in(ben) + * bs = pc+ba%(v[1]) + * cs = pc+rs%(v[1]) + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt%(v[1]) + * el = pc+gr%(v[1]) + * en_US = pc+latin%(v[1]) + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la%(v[1]) + * kan = pc+in(kan) + * mi = pc+mao%(v[1]) + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp%(v[1]) + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp%(v[1]) + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) + amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) + $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) + macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) + applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) + $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) + $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) + $thinkpads br = pc+%l[1](thinkpad) + * * = pc+%l[1]%(v[1]) + +! model layout[1] variant[1] = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + +! model layout[2] = symbols + * ar = +ara%(v[2]):2 + * ben = +in(ben):2 + * bs = +ba%(v[2]):2 + * cs = +rs%(v[2]):2 + * cz_qwerty = +cz(qwerty):2 + * dev = +in(deva):2 + * dvorak = +us(dvorak):2 + * dzdwi = +bt%(v[2]):2 + * el = +gr%(v[2]):2 + * en_US = +latin%(v[2]):2 + * guj = +in(guj):2 + * gur = +in(guru):2 + * iu = +ca(ike):2 + * lo = +la%(v[2]):2 + * kan = +in(kan):2 + * mi = +mao%(v[2]):2 + * ogham = +ie(ogam):2 + * ori = +ie(ori):2 + * sapmi = +no(smi):2 + * sr = +srp%(v[2]):2 + * syr = +sy(syc):2 + * tel = +in(tel):2 + * tml = +in(tam):2 + * yu = +srp%(v[2]):2 + * fr-latin9 = +fr(latin9):2 + * us_intl = +us(alt-intl):2 + * ben(basic) = +in(ben):2 + * ben(probhat) = +in(ben_probhat):2 + * dev(basic) = +in(deva):2 + * dvorak($dvoraklayouts) = +%v(dvorak):2 + * dvorak(basic) = +us(dvorak):2 + * dvorak(pl_basic) = +pl(dvorak):2 + * dvorak(pl) = +pl(dvorak_quotes):2 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 + * dzdwi(basic) = +bt(basic):2 + * fi(basic) = +fi(classic):2 + * ge(azerty_tskapo) = +fr(geo):2 + * guj(basic) = +in(guj):2 + * gur(basic) = +in(guru):2 + * ie(laptop) = +ie(basic):2 + * ie(CloGaelachLaptop) = +ie(CloGaelach):2 + * in(urd) = +in(urd-phonetic):2 + * iu(basic) = +ca(ike):2 + * lo(basic) = +la(basic):2 + * kan(basic) = +in(kan):2 + * mal(basic) = +in(mal):2 + * mal(mlplusnum) = +in(mal):2 + * ogham(basic) = +ie(ogam):2 + * ogham(laptop) = +ie(ogam):2 + * ogham(is434) = +ie(ogam_is434):2 + * ogham(is434laptop) = +ie(ogam_is434):2 + * ori(basic) = +in(ori):2 + * ro(de) = +ro(winkeys):2 + * ro(us) = +ro(std):2 + * ro(academic) = +ro(std):2 + * ro(std_comma) = +ro(std):2 + * ro(comma) = +ro(basic):2 + * ru(os) = +ru(os_legacy):2 + * pk(urd) = +pk(urd-phonetic):2 + * sapmi(basic) = +no(smi):2 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 + * sapmi(sefi) = +fi(smi):2 + * sin(phonetic-static) = +in(sin_phonetic):2 + * syr(basic) = +sy(syc):2 + * syr(phonetic) = +sy(syc_phonetic):2 + * tam(INSCRIPT) = +in(tam):2 + * tam(UNI) = +in(tam_unicode):2 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 + * tam(TAB) = +in(tam_TAB):2 + * tam(TSCII) = +in(tam_TSCII):2 + * tel(basic) = +in(tel):2 + * yu(basic) = +srp(latin):2 + * yu(unicode) = +srp(latinunicode):2 + * yu(yz) = +srp(latinyz):2 + * yu(unicodeyz) = +srp(latinunicodeyz):2 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 + nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 + $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 + * * = +%l[2]%(v[2]):2 + +! model layout[3] = symbols + * ar = +ara%(v[3]):3 + * ben = +in(ben):3 + * bs = +ba%(v[3]):3 + * cs = +rs%(v[3]):3 + * cz_qwerty = +cz(qwerty):3 + * dev = +in(deva):3 + * dvorak = +us(dvorak):3 + * dzdwi = +bt%(v[3]):3 + * el = +gr%(v[3]):3 + * en_US = +latin%(v[3]):3 + * guj = +in(guj):3 + * gur = +in(guru):3 + * iu = +ca(ike):3 + * lo = +la%(v[3]):3 + * kan = +in(kan):3 + * mi = +mao%(v[3]):3 + * ogham = +ie(ogam):3 + * ori = +ie(ori):3 + * sapmi = +no(smi):3 + * sr = +srp%(v[3]):3 + * syr = +sy(syc):3 + * tel = +in(tel):3 + * tml = +in(tam):3 + * yu = +srp%(v[3]):3 + * fr-latin9 = +fr(latin9):3 + * us_intl = +us(alt-intl):3 + * ben(basic) = +in(ben):3 + * ben(probhat) = +in(ben_probhat):3 + * dev(basic) = +in(deva):3 + * dvorak($dvoraklayouts) = +%v(dvorak):3 + * dvorak(basic) = +us(dvorak):3 + * dvorak(pl_basic) = +pl(dvorak):3 + * dvorak(pl) = +pl(dvorak_quotes):3 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 + * dzdwi(basic) = +bt(basic):3 + * fi(basic) = +fi(classic):3 + * ge(azerty_tskapo) = +fr(geo):3 + * guj(basic) = +in(guj):3 + * gur(basic) = +in(guru):3 + * ie(laptop) = +ie(basic):3 + * ie(CloGaelachLaptop) = +ie(CloGaelach):3 + * in(urd) = +in(urd-phonetic):3 + * iu(basic) = +ca(ike):3 + * lo(basic) = +la(basic):3 + * kan(basic) = +in(kan):3 + * mal(basic) = +in(mal):3 + * mal(mlplusnum) = +in(mal):3 + * ogham(basic) = +ie(ogam):3 + * ogham(laptop) = +ie(ogam):3 + * ogham(is434) = +ie(ogam_is434):3 + * ogham(is434laptop) = +ie(ogam_is434):3 + * ori(basic) = +in(ori):3 + * ro(de) = +ro(winkeys):3 + * ro(us) = +ro(std):3 + * ro(academic) = +ro(std):3 + * ro(std_comma) = +ro(std):3 + * ro(comma) = +ro(basic):3 + * ru(os) = +ru(os_legacy):3 + * pk(urd) = +pk(urd-phonetic):3 + * sapmi(basic) = +no(smi):3 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 + * sapmi(sefi) = +fi(smi):3 + * sin(phonetic-static) = +in(sin_phonetic):3 + * syr(basic) = +sy(syc):3 + * syr(phonetic) = +sy(syc_phonetic):3 + * tam(INSCRIPT) = +in(tam):3 + * tam(UNI) = +in(tam_unicode):3 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 + * tam(TAB) = +in(tam_TAB):3 + * tam(TSCII) = +in(tam_TSCII):3 + * tel(basic) = +in(tel):3 + * yu(basic) = +srp(latin):3 + * yu(unicode) = +srp(latinunicode):3 + * yu(yz) = +srp(latinyz):3 + * yu(unicodeyz) = +srp(latinunicodeyz):3 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 + nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 + $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 + * * = +%l[3]%(v[3]):3 + +! model layout[4] = symbols + * ar = +ara%(v[4]):4 + * ben = +in(ben):4 + * bs = +ba%(v[4]):4 + * cs = +rs%(v[4]):4 + * cz_qwerty = +cz(qwerty):4 + * dev = +in(deva):4 + * dvorak = +us(dvorak):4 + * dzdwi = +bt%(v[4]):4 + * el = +gr%(v[4]):4 + * en_US = +latin%(v[4]):4 + * guj = +in(guj):4 + * gur = +in(guru):4 + * iu = +ca(ike):4 + * lo = +la%(v[4]):4 + * kan = +in(kan):4 + * mi = +mao%(v[4]):4 + * ogham = +ie(ogam):4 + * ori = +ie(ori):4 + * sapmi = +no(smi):4 + * sr = +srp%(v[4]):4 + * syr = +sy(syc):4 + * tel = +in(tel):4 + * tml = +in(tam):4 + * yu = +srp%(v[4]):4 + * fr-latin9 = +fr(latin9):4 + * us_intl = +us(alt-intl):4 + * ben(basic) = +in(ben):4 + * ben(probhat) = +in(ben_probhat):4 + * dev(basic) = +in(deva):4 + * dvorak($dvoraklayouts) = +%v(dvorak):4 + * dvorak(basic) = +us(dvorak):4 + * dvorak(pl_basic) = +pl(dvorak):4 + * dvorak(pl) = +pl(dvorak_quotes):4 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 + * dzdwi(basic) = +bt(basic):4 + * fi(basic) = +fi(classic):4 + * ge(azerty_tskapo) = +fr(geo):4 + * guj(basic) = +in(guj):4 + * gur(basic) = +in(guru):4 + * ie(laptop) = +ie(basic):4 + * ie(CloGaelachLaptop) = +ie(CloGaelach):4 + * in(urd) = +in(urd-phonetic):4 + * iu(basic) = +ca(ike):4 + * lo(basic) = +la(basic):4 + * kan(basic) = +in(kan):4 + * mal(basic) = +in(mal):4 + * mal(mlplusnum) = +in(mal):4 + * ogham(basic) = +ie(ogam):4 + * ogham(laptop) = +ie(ogam):4 + * ogham(is434) = +ie(ogam_is434):4 + * ogham(is434laptop) = +ie(ogam_is434):4 + * ori(basic) = +in(ori):4 + * ro(de) = +ro(winkeys):4 + * ro(us) = +ro(std):4 + * ro(academic) = +ro(std):4 + * ro(std_comma) = +ro(std):4 + * ro(comma) = +ro(basic):4 + * ru(os) = +ru(os_legacy):4 + * pk(urd) = +pk(urd-phonetic):4 + * sapmi(basic) = +no(smi):4 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 + * sapmi(sefi) = +fi(smi):4 + * sin(phonetic-static) = +in(sin_phonetic):4 + * syr(basic) = +sy(syc):4 + * syr(phonetic) = +sy(syc_phonetic):4 + * tam(INSCRIPT) = +in(tam):4 + * tam(UNI) = +in(tam_unicode):4 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 + * tam(TAB) = +in(tam_TAB):4 + * tam(TSCII) = +in(tam_TSCII):4 + * tel(basic) = +in(tel):4 + * yu(basic) = +srp(latin):4 + * yu(unicode) = +srp(latinunicode):4 + * yu(yz) = +srp(latinyz):4 + * yu(unicodeyz) = +srp(latinunicodeyz):4 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 + nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 + $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 + * * = +%l[4]%(v[4]):4 + +! model layout[2] variant[2] = symbols + * ben basic = +in(ben):2 + * ben probhat = +in(ben_probhat):2 + * dev basic = +in(deva):2 + * dvorak $dvoraklayouts = +%v(dvorak):2 + * dvorak basic = +us(dvorak):2 + * dvorak pl_basic = +pl(dvorak):2 + * dvorak pl = +pl(dvorak_quotes):2 + * dvorak pl_altquotes = +pl(dvorak_altquotes):2 + * dzdwi basic = +bt(basic):2 + * fi basic = +fi(classic):2 + * ge azerty_tskapo = +fr(geo):2 + * guj basic = +in(guj):2 + * gur basic = +in(guru):2 + * ie laptop = +ie(basic):2 + * ie CloGaelachLaptop = +ie(CloGaelach):2 + * in urd = +in(urd-phonetic):2 + * iu basic = +ca(ike):2 + * lo basic = +la(basic):2 + * kan basic = +in(kan):2 + * mal basic = +in(mal):2 + * mal mlplusnum = +in(mal):2 + * ogham basic = +ie(ogam):2 + * ogham laptop = +ie(ogam):2 + * ogham is434 = +ie(ogam_is434):2 + * ogham is434laptop = +ie(ogam_is434):2 + * ori basic = +in(ori):2 + * ro de = +ro(winkeys):2 + * ro us = +ro(std):2 + * ro academic = +ro(std):2 + * ro std_comma = +ro(std):2 + * ro comma = +ro(basic):2 + * ru os = +ru(os_legacy):2 + * pk urd = +pk(urd-phonetic):2 + * sapmi basic = +no(smi):2 + * sapmi nodeadkeys = +no(smi_nodeadkeys):2 + * sapmi sefi = +fi(smi):2 + * sin phonetic-static = +in(sin_phonetic):2 + * syr basic = +sy(syc):2 + * syr phonetic = +sy(syc_phonetic):2 + * tam INSCRIPT = +in(tam):2 + * tam UNI = +in(tam_unicode):2 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 + * tam TAB = +in(tam_TAB):2 + * tam TSCII = +in(tam_TSCII):2 + * tel basic = +in(tel):2 + * yu basic = +srp(latin):2 + * yu unicode = +srp(latinunicode):2 + * yu yz = +srp(latinyz):2 + * yu unicodeyz = +srp(latinunicodeyz):2 + +! model layout[3] variant[3] = symbols + * ben basic = +in(ben):3 + * ben probhat = +in(ben_probhat):3 + * dev basic = +in(deva):3 + * dvorak $dvoraklayouts = +%v(dvorak):3 + * dvorak basic = +us(dvorak):3 + * dvorak pl_basic = +pl(dvorak):3 + * dvorak pl = +pl(dvorak_quotes):3 + * dvorak pl_altquotes = +pl(dvorak_altquotes):3 + * dzdwi basic = +bt(basic):3 + * fi basic = +fi(classic):3 + * ge azerty_tskapo = +fr(geo):3 + * guj basic = +in(guj):3 + * gur basic = +in(guru):3 + * ie laptop = +ie(basic):3 + * ie CloGaelachLaptop = +ie(CloGaelach):3 + * in urd = +in(urd-phonetic):3 + * iu basic = +ca(ike):3 + * lo basic = +la(basic):3 + * kan basic = +in(kan):3 + * mal basic = +in(mal):3 + * mal mlplusnum = +in(mal):3 + * ogham basic = +ie(ogam):3 + * ogham laptop = +ie(ogam):3 + * ogham is434 = +ie(ogam_is434):3 + * ogham is434laptop = +ie(ogam_is434):3 + * ori basic = +in(ori):3 + * ro de = +ro(winkeys):3 + * ro us = +ro(std):3 + * ro academic = +ro(std):3 + * ro std_comma = +ro(std):3 + * ro comma = +ro(basic):3 + * ru os = +ru(os_legacy):3 + * pk urd = +pk(urd-phonetic):3 + * sapmi basic = +no(smi):3 + * sapmi nodeadkeys = +no(smi_nodeadkeys):3 + * sapmi sefi = +fi(smi):3 + * sin phonetic-static = +in(sin_phonetic):3 + * syr basic = +sy(syc):3 + * syr phonetic = +sy(syc_phonetic):3 + * tam INSCRIPT = +in(tam):3 + * tam UNI = +in(tam_unicode):3 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 + * tam TAB = +in(tam_TAB):3 + * tam TSCII = +in(tam_TSCII):3 + * tel basic = +in(tel):3 + * yu basic = +srp(latin):3 + * yu unicode = +srp(latinunicode):3 + * yu yz = +srp(latinyz):3 + * yu unicodeyz = +srp(latinunicodeyz):3 + +! model layout[4] variant[4] = symbols + * ben basic = +in(ben):4 + * ben probhat = +in(ben_probhat):4 + * dev basic = +in(deva):4 + * dvorak $dvoraklayouts = +%v(dvorak):4 + * dvorak basic = +us(dvorak):4 + * dvorak pl_basic = +pl(dvorak):4 + * dvorak pl = +pl(dvorak_quotes):4 + * dvorak pl_altquotes = +pl(dvorak_altquotes):4 + * dzdwi basic = +bt(basic):4 + * fi basic = +fi(classic):4 + * ge azerty_tskapo = +fr(geo):4 + * guj basic = +in(guj):4 + * gur basic = +in(guru):4 + * ie laptop = +ie(basic):4 + * ie CloGaelachLaptop = +ie(CloGaelach):4 + * in urd = +in(urd-phonetic):4 + * iu basic = +ca(ike):4 + * lo basic = +la(basic):4 + * kan basic = +in(kan):4 + * mal basic = +in(mal):4 + * mal mlplusnum = +in(mal):4 + * ogham basic = +ie(ogam):4 + * ogham laptop = +ie(ogam):4 + * ogham is434 = +ie(ogam_is434):4 + * ogham is434laptop = +ie(ogam_is434):4 + * ori basic = +in(ori):4 + * ro de = +ro(winkeys):4 + * ro us = +ro(std):4 + * ro academic = +ro(std):4 + * ro std_comma = +ro(std):4 + * ro comma = +ro(basic):4 + * ru os = +ru(os_legacy):4 + * pk urd = +pk(urd-phonetic):4 + * sapmi basic = +no(smi):4 + * sapmi nodeadkeys = +no(smi_nodeadkeys):4 + * sapmi sefi = +fi(smi):4 + * sin phonetic-static = +in(sin_phonetic):4 + * syr basic = +sy(syc):4 + * syr phonetic = +sy(syc_phonetic):4 + * tam INSCRIPT = +in(tam):4 + * tam UNI = +in(tam_unicode):4 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 + * tam TAB = +in(tam_TAB):4 + * tam TSCII = +in(tam_TSCII):4 + * tel basic = +in(tel):4 + * yu basic = +srp(latin):4 + * yu unicode = +srp(latinunicode):4 + * yu yz = +srp(latinyz):4 + * yu unicodeyz = +srp(latinunicodeyz):4 + +! model = symbols + a4techKB21 = +inet(media_nav_common) + a4techKBS8 = +inet(media_nav_acpi_common) + a4_rfkb23 = +inet(media_nav_acpi_common) + asus_laptop = +inet(media_common) + acer_tm_800 = +inet(acer_laptop) + benqx730 = +inet(benqx) + benqx800 = +inet(benqx) + btc5126t = +inet(nav_acpi_common) + btc9116u = +inet(btc9019u) + btc6301urf = +inet(media_nav_acpi_common) + dellsk8125 = +inet(dell) + dellsk8135 = +inet(dell) + cherrybunlim = +inet(nav_common) + dexxa = +inet(media_nav_common) + dtk2000 = +inet(media_nav_acpi_common) + fscaa1667g = +inet(media_nav_common) + geniuskb19e = +inet(media_nav_acpi_common) + geniuscomfy = +inet(media_nav_acpi_common) + geniuskkb2050hs = +inet(dellusbmm) + hpnx9020 = +inet(hpi6) + latitude = +inet(media_common) + logicd = +inet(logitech_base) + logicd_it = +inet(logitech_base) + logicd_nav = +inet(logitech_base) + logicd_opt = +inet(logitech_base) + logiultrax = +inet(logitech_base) + logiclx300 = +inet(logiex110) + logii350 = +inet(logiex110) + logimel = +inet(logiex110) + logicdit = +inet(logicd) + logicdo = +inet(logicd) + logicdp = +inet(logicd) + logicdpa = +inet(logicda) + logiciink = +inet(logicink) + ltcd = +inet(logicda) + microsoftccurve2k = +inet(microsoftprooem) + microsoftpro = +inet(media_nav_acpi_common) + precision_m = +inet(media_nav_common) + scorpius = +inet(media_nav_acpi_common) + sp_inet = +inet(media_nav_acpi_common) + targa_v811 = +inet(media_nav_acpi_common) + thinkpad = +inet(media_nav_common) + thinkpadz60 = +inet(thinkpad60) + tm2030USB-102 = +inet(media_nav_acpi_common) + tm2030USB-106 = +inet(media_nav_acpi_common) + trust_slimline = +inet(media_nav_acpi_common) + vsonku306 = +inet(microsoftprooem) + $inetkbds = +inet(%m) + $maclaptop = +inet(apple)+level3(enter_switch) + $applealu = +inet(apple) + $macs = +inet(apple) + sun_type7_jp_usb = +sun_vndr/solaris(defaults_type7jp) + $sun = +sun_vndr/solaris(defaults) + +! model layout = symbols + $inetmediakbds jp = +jp(henkan) + +! layout variant = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[1] variant[1] = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[2] variant[2] = compat + de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + jp $sun_compat = +complete+japan(kana_lock):2 + +! layout[3] variant[3] = compat + de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + jp $sun_compat = +complete+japan(kana_lock):3 + +! layout[4] variant[4] = compat + de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + jp $sun_compat = +complete+japan(kana_lock):4 + +! model layout = compat + pc98 nec_vndr/jp = pc98(basic) + * jp = complete+japan + olpc * = olpc + olpcm * = olpc + * * = complete + +! model layout[1] = compat + * * = complete + +! model = types + $macs = complete+numpad(mac) + $applealu = complete+numpad(mac) + $nokiamodels = complete+nokia + * = complete + +! layout option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) + * misc:typo = +typo(base) + +! layout[1] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 + * misc:typo = +typo(base):1 + +! layout[2] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 + * misc:typo = +typo(base):2 + +! layout[3] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 + * misc:typo = +typo(base):3 + +! layout[4] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 + * misc:typo = +typo(base):4 + +! option = symbols + grp:shift_toggle = +group(shifts_toggle) + altwin:menu = +altwin(menu) + altwin:meta_alt = +altwin(meta_alt) + altwin:alt_win = +altwin(alt_win) + altwin:ctrl_win = +altwin(ctrl_win) + altwin:ctrl_alt_win = +altwin(ctrl_alt_win) + altwin:meta_win = +altwin(meta_win) + altwin:left_meta_win = +altwin(left_meta_win) + altwin:hyper_win = +altwin(hyper_win) + altwin:alt_super_win = +altwin(alt_super_win) + altwin:swap_alt_win = +altwin(swap_alt_win) + grab:debug = +srvr_ctrl(grab_debug) + grp:switch = +group(switch) + grp:lswitch = +group(lswitch) + grp:win_switch = +group(win_switch) + grp:lwin_switch = +group(lwin_switch) + grp:rwin_switch = +group(rwin_switch) + grp:toggle = +group(toggle) + grp:shifts_toggle = +group(shifts_toggle) + grp:ctrls_toggle = +group(ctrls_toggle) + grp:alts_toggle = +group(alts_toggle) + grp:caps_toggle = +capslock(grouplock) + grp:caps_switch = +capslock(groupshift) + grp:shift_caps_toggle = +group(shift_caps_toggle) + grp:shift_caps_switch = +group(shift_caps_switch) + grp:win_space_toggle = +group(win_space_toggle) + grp:win_menu_switch = +group(win_menu_switch) + grp:alt_caps_toggle = +group(alt_caps_toggle) + grp:alt_space_toggle = +group(alt_space_toggle) + grp:menu_toggle = +group(menu_toggle) + grp:lwin_toggle = +group(lwin_toggle) + grp:rwin_toggle = +group(rwin_toggle) + grp:lshift_toggle = +group(lshift_toggle) + grp:rshift_toggle = +group(rshift_toggle) + grp:rctrl_switch = +group(rctrl_switch) + grp:lctrl_toggle = +group(lctrl_toggle) + grp:rctrl_toggle = +group(rctrl_toggle) + grp:lalt_toggle = +group(lalt_toggle) + grp:sclk_toggle = +group(sclk_toggle) + grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) + grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) + grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) + grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) + grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) + grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) + grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) + grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) + grp:alt_shift_toggle = +group(alt_shift_toggle) + grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) + lv3:switch = +level3(switch) + lv3:ralt_switch = +level3(ralt_switch) + lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) + lv3:ralt_alt = +level3(ralt_alt) + lv3:lalt_switch = +level3(lalt_switch) + lv3:alt_switch = +level3(alt_switch) + lv3:menu_switch = +level3(menu_switch) + lv3:win_switch = +level3(win_switch) + lv3:lwin_switch = +level3(lwin_switch) + lv3:rwin_switch = +level3(rwin_switch) + lv3:enter_switch = +level3(enter_switch) + caps:capslock = +capslock(capslock) + caps:numlock = +capslock(numlock) + caps:shiftlock = +capslock(shiftlock) + caps:swapescape = +capslock(swapescape) + caps:escape = +capslock(escape) + caps:backspace = +capslock(backspace) + caps:super = +capslock(super) + caps:hyper = +capslock(hyper) + caps:none = +capslock(none) + caps:ctrl_modifier = +capslock(ctrl_modifier) + ctrl:nocaps = +ctrl(nocaps) + ctrl:lctrl_meta = +ctrl(lctrl_meta) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ac_ctrl = +ctrl(ac_ctrl) + ctrl:aa_ctrl = +ctrl(aa_ctrl) + ctrl:rctrl_ralt = +ctrl(rctrl_ralt) + ctrl:menu_rctrl = +ctrl(menu_rctrl) + ctrl:ralt_rctrl = +ctrl(ralt_rctrl) + ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) + ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) + ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) + ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) + compose:ralt = +compose(ralt) + compose:lwin = +compose(lwin) + compose:lwin-altgr = +compose(lwin-altgr) + compose:rwin = +compose(rwin) + compose:rwin-altgr = +compose(rwin-altgr) + compose:menu = +compose(menu) + compose:menu-altgr = +compose(menu-altgr) + compose:lctrl = +compose(lctrl) + compose:lctrl-altgr = +compose(lctrl-altgr) + compose:rctrl = +compose(rctrl) + compose:rctrl-altgr = +compose(rctrl-altgr) + compose:caps = +compose(caps) + compose:caps-altgr = +compose(caps-altgr) + compose:102 = +compose(102) + compose:102-altgr = +compose(102-altgr) + compose:paus = +compose(paus) + compose:prsc = +compose(prsc) + compose:sclk = +compose(sclk) + srvrkeys:none = +srvr_ctrl(no_srvr_keys) + eurosign:e = +eurosign(e) + eurosign:2 = +eurosign(2) + eurosign:4 = +eurosign(4) + eurosign:5 = +eurosign(5) + rupeesign:4 = +rupeesign(4) + keypad:oss = +keypad(oss) + keypad:legacy = +keypad(legacy) + keypad:legacy_wang = +keypad(legacy_wang) + keypad:oss_wang = +keypad(oss_wang) + keypad:future = +keypad(future) + keypad:future_wang = +keypad(future_wang) + keypad:hex = +keypad(ops)+keypad(hex) + keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) + nbsp:none = +nbsp(none) + nbsp:level2 = +nbsp(level2) + nbsp:level3 = +nbsp(level3) + nbsp:level3s = +nbsp(level3s) + nbsp:level3n = +nbsp(level3n) + nbsp:level4 = +nbsp(level4) + nbsp:level4n = +nbsp(level4n) + nbsp:level4nl = +nbsp(level4nl) + japan:nicola_f_bs = +jp(nicola_f_bs) + japan:hztg_escape = +jp(hztg_escape) + kpdl:dot = +kpdl(dot) + kpdl:comma = +kpdl(comma) + kpdl:dotoss = +kpdl(dotoss) + kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) + kpdl:commaoss = +kpdl(commaoss) + kpdl:momayyezoss = +kpdl(momayyezoss) + kpdl:kposs = +kpdl(kposs) + kpdl:semi = +kpdl(semi) + shift:breaks_caps = +shift(breaks_caps) + esperanto:qwerty = +epo(qwerty) + esperanto:dvorak = +epo(dvorak) + esperanto:colemak = +epo(colemak) + terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) + keypad:pointerkeys = +keypad(pointerkeys) + apple:alupckeys = +macintosh_vndr/apple(alupckeys) + shift:both_capslock = +shift(both_capslock) + shift:lshift_both_capslock = +shift(lshift_both_capslock) + shift:rshift_both_capslock = +shift(rshift_both_capslock) + shift:both_capslock_cancel = +shift(both_capslock_cancel) + shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) + shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) + shift:both_shiftlock = +shift(both_shiftlock) + shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) + shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) + solaris:sun_compat = +sun_vndr/solaris(sun_compat) + lv3:caps_switch = +level3(caps_switch) + lv3:bksl_switch = +level3(bksl_switch) + lv3:lsgt_switch = +level3(lsgt_switch) + lv3:caps_switch_latch = +level3(caps_switch_latch) + lv3:bksl_switch_latch = +level3(bksl_switch_latch) + lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) + lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) + lv5:ralt_switch_lock = +level5(ralt_switch_lock) + lv5:lwin_switch_lock = +level5(lwin_switch_lock) + lv5:rwin_switch_lock = +level5(rwin_switch_lock) + lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) + lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) + lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) + lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) + + + +! option = compat + grp_led:num = +lednum(group_lock) + grp_led:caps = +ledcaps(group_lock) + grp_led:scroll = +ledscroll(group_lock) + japan:kana_lock = +japan(kana_lock) + caps:shiftlock = +ledcaps(shift_lock) + grab:break_actions = +xfree86(grab_break) + + +! option = types + caps:internal = +caps(internal) + caps:internal_nocancel = +caps(internal_nocancel) + caps:shift = +caps(shift) + caps:shift_nocancel = +caps(shift_nocancel) + numpad:pc = +numpad(pc) + numpad:mac = +numpad(mac) + numpad:microsoft = +numpad(microsoft) + numpad:shift3 = +numpad(shift3) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/evdev b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/evdev new file mode 100644 index 0000000..f58e5b2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/evdev @@ -0,0 +1,1115 @@ +// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// +// 2002 Modifier: Ivan Pascal The XFree86 Project +// + +// If you want non-latin layouts implicitly include the en_US layout +// uncomment lines below +//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ +// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \ +// ru scc sy syr tel th tj tam ua uz + +// PC models +! $pcmodels = pc101 pc102 pc104 pc105 + +// Microsoft models (using MS geometry) +! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose + +// Nokia devices and keyboards +! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 + +// PC geometries - they have special geometry but symbols are mostly pc105 +! $pcgeometries = latitude + +// TypeMatrix geometries +! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 + +// Layouts that provide further specializations for the OLPC +! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us + +! $macbooks = macbook78 macbook79 +! $maclaptop = ibook powerbook macbook78 macbook79 +! $applealu = applealu_ansi applealu_iso applealu_jis +! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 + +! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us + +! $azerty = be fr +! $qwertz = al cz de hr hu ro si sk + + +// all layouts with 3rd and 4th groups +! $threelevellayouts = al az \ + be br bt \ + ca ch cs cz \ + de dk \ + ee es \ + fi fo fr \ + gb gr \ + hu \ + ie ir is it \ + latam \ + lk lt \ + mn mt \ + nl no \ + pl pt \ + ro \ + se sk \ + tr \ + us \ + vn \ + za + +! $thinkpads = thinkpad thinkpad60 thinkpadz60 + +! $sun = sun_type6_jp sun_type6_usb sun_type6_euro_usb \ + sun_type6_jp_usb sun_type6_unix_usb sun_type7_jp_usb \ + sun_type7_usb sun_type7_euro_usb sun_type7_unix_usb + +! $sun_jp = sun_type6_jp sun_type6_jp_usb sun_type7_jp_usb + +// Sun Type_6_7 keyboards with custom layouts +! $sun_custom = ara be br ca ch cz de dk \ + ee es fi fr gb gr it jp \ + kr lt lv nl no pl pt ro \ + ru se sk tr tw ua us + +! $sun_var = sun_type6 sun_type6_suncompat sun_type6_de sun_type6_fr \ + sun_type7 sun_type7_suncompat suncompat + +! $sun_compat = sun_type6 sun_type6_suncompat sun_type7_suncompat suncompat + +! $htcdreamlayouts = us it de + +! $evdevkbds = ibm_spacesaver + +! $dvoraklayouts = br ca de ee es fr gb no pl se us + +! model = keycodes + pc98 = evdev(pc98) + applealu_jis = evdev+macintosh(jisevdev) + olpc = evdev+olpc(olpc) + olpcm = evdev+olpc(olpcm) + * = evdev + +! layout[1] = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! layout = keycodes + $azerty = +aliases(azerty) + $qwertz = +aliases(qwertz) + * = +aliases(qwerty) + +! option = keycodes + +! model layout = geometry + thinkpad us = thinkpad(us) + +! model = geometry + microsoftelite = microsoft(elite) + $msmodels = microsoft(natural) + dell101 = dell(dell101) + dellm65 = dell(dellm65) + latitude = dell(latitude) + flexpro = keytronic(FlexPro) + hp6000 = hp(omnibook) + hpmini110 = hp(mini110) + hpdv5 = hp(dv5) + omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) + $pcmodels = pc(%m) + $pcgeometries = pc(%m) + everex = everex(STEPnote) + thinkpad = thinkpad(intl) + thinkpad60 = thinkpad(60) + thinkpadz60 = thinkpad(60) + $tmgeometries = typematrix(%m) + winbook = winbook(XP5) + pc98 = nec(pc98) + $applealu = macintosh(%m) + $macbooks = macintosh(%m) + $macs = macintosh(macintosh) + hhk = hhk(basic) + kinesis = kinesis(model100) + $nokiamodels = nokia(%m) + sun_type6_jp = sun(type6jp) + sun_type6_usb = sun(type6) + sun_type6_euro_usb = sun(type6tuv) + sun_type6_jp_usb = sun(type6jp) + sun_type6_unix_usb = sun(type6unix) + sun_type7_jp_usb = sun(type6jp) + sun_type7_usb = sun(type7) + sun_type7_euro_usb = sun(type7tuv) + sun_type7_unix_usb = sun(type7unix) + * = pc(pc104) + +! model layout variant = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + classmate us intl = pc+us(classmate-intl) + classmate us alt-intl = pc+us(classmate-alt-intl) + classmate us altgr-intl = pc+us(classmate-altgr-intl) + nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) + * $sun_custom $sun_var = pc+sun_vndr/%l%(v) + +! model layout = symbols + * ar = pc+ara + * ben = pc+in(ben) + * bs = pc+ba + * cs = pc+rs + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt + * el = pc+gr + * en_US = pc+latin + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la + * kan = pc+in(kan) + * mi = pc+mao + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 + ataritt * = xfree68_vndr/ataritt(us)+%l%(v) + amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 + amiga * = xfree68_vndr/amiga(usa1)+%l%(v) + classmate us = pc+%l(classmate) + empty * = empty(basic) + * empty = empty(basic) + $sun $sun_custom = pc+sun_vndr/%l%(v) + pc98 nec_vndr/jp = nec_vndr/jp(pc98) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old en_US = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) + macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 + macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) + applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 + applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) + $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) + $macs en_US = pc+macintosh_vndr/us(extended) + $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) + nokiarx44 * = nokia_vndr/rx-44(%l) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) + nokiasu8w * = nokia_vndr/su-8w(%l) + olpc $olpclayouts = olpc+%l%(m) + olpc * = olpc+%l%(v) + olpcm $olpclayouts = olpc+%l%(m) + olpcm * = olpc+%l%(v) + $thinkpads br = pc+br(thinkpad) + sl-c3x00 * = pc+sharp_vndr/sl-c3x00(basic) + ws003sh * = pc+sharp_vndr/ws003sh(basic) + ws007sh * = pc+sharp_vndr/ws007sh(basic) + ws011sh * = pc+sharp_vndr/ws011sh(basic) + ws020sh * = pc+sharp_vndr/ws020sh(basic) + htcdream $htcdreamlayouts = %l(htcdream) + * $nonlatin = pc+us+%l%(v):2 + * * = pc+%l%(v) + +! model layout[1] = symbols + * ar = pc+ara%(v[1]) + * ben = pc+in(ben) + * bs = pc+ba%(v[1]) + * cs = pc+rs%(v[1]) + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt%(v[1]) + * el = pc+gr%(v[1]) + * en_US = pc+latin%(v[1]) + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la%(v[1]) + * kan = pc+in(kan) + * mi = pc+mao%(v[1]) + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp%(v[1]) + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp%(v[1]) + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) + amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) + $sun $sun_custom = pc+sun_vndr/%l[1]%(v[1]) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) + macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) + applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) + $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) + $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) + $thinkpads br = pc+%l[1](thinkpad) + * * = pc+%l[1]%(v[1]) + +! model layout[1] variant[1] = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + +! model layout[2] = symbols + * ar = +ara%(v[2]):2 + * ben = +in(ben):2 + * bs = +ba%(v[2]):2 + * cs = +rs%(v[2]):2 + * cz_qwerty = +cz(qwerty):2 + * dev = +in(deva):2 + * dvorak = +us(dvorak):2 + * dzdwi = +bt%(v[2]):2 + * el = +gr%(v[2]):2 + * en_US = +latin%(v[2]):2 + * guj = +in(guj):2 + * gur = +in(guru):2 + * iu = +ca(ike):2 + * lo = +la%(v[2]):2 + * kan = +in(kan):2 + * mi = +mao%(v[2]):2 + * ogham = +ie(ogam):2 + * ori = +ie(ori):2 + * sapmi = +no(smi):2 + * sr = +srp%(v[2]):2 + * syr = +sy(syc):2 + * tel = +in(tel):2 + * tml = +in(tam):2 + * yu = +srp%(v[2]):2 + * fr-latin9 = +fr(latin9):2 + * us_intl = +us(alt-intl):2 + * ben(basic) = +in(ben):2 + * ben(probhat) = +in(ben_probhat):2 + * dev(basic) = +in(deva):2 + * dvorak($dvoraklayouts) = +%v(dvorak):2 + * dvorak(basic) = +us(dvorak):2 + * dvorak(pl_basic) = +pl(dvorak):2 + * dvorak(pl) = +pl(dvorak_quotes):2 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 + * dzdwi(basic) = +bt(basic):2 + * fi(basic) = +fi(classic):2 + * ge(azerty_tskapo) = +fr(geo):2 + * guj(basic) = +in(guj):2 + * gur(basic) = +in(guru):2 + * ie(laptop) = +ie(basic):2 + * ie(CloGaelachLaptop) = +ie(CloGaelach):2 + * in(urd) = +in(urd-phonetic):2 + * iu(basic) = +ca(ike):2 + * lo(basic) = +la(basic):2 + * kan(basic) = +in(kan):2 + * mal(basic) = +in(mal):2 + * mal(mlplusnum) = +in(mal):2 + * ogham(basic) = +ie(ogam):2 + * ogham(laptop) = +ie(ogam):2 + * ogham(is434) = +ie(ogam_is434):2 + * ogham(is434laptop) = +ie(ogam_is434):2 + * ori(basic) = +in(ori):2 + * ro(de) = +ro(winkeys):2 + * ro(us) = +ro(std):2 + * ro(academic) = +ro(std):2 + * ro(std_comma) = +ro(std):2 + * ro(comma) = +ro(basic):2 + * ru(os) = +ru(os_legacy):2 + * pk(urd) = +pk(urd-phonetic):2 + * sapmi(basic) = +no(smi):2 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 + * sapmi(sefi) = +fi(smi):2 + * sin(phonetic-static) = +in(sin_phonetic):2 + * syr(basic) = +sy(syc):2 + * syr(phonetic) = +sy(syc_phonetic):2 + * tam(INSCRIPT) = +in(tam):2 + * tam(UNI) = +in(tam_unicode):2 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 + * tam(TAB) = +in(tam_TAB):2 + * tam(TSCII) = +in(tam_TSCII):2 + * tel(basic) = +in(tel):2 + * yu(basic) = +srp(latin):2 + * yu(unicode) = +srp(latinunicode):2 + * yu(yz) = +srp(latinyz):2 + * yu(unicodeyz) = +srp(latinunicodeyz):2 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 + nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 + $sun $sun_custom = +sun_vndr/%l[2]%(v[2]):2 + * * = +%l[2]%(v[2]):2 + +! model layout[3] = symbols + * ar = +ara%(v[3]):3 + * ben = +in(ben):3 + * bs = +ba%(v[3]):3 + * cs = +rs%(v[3]):3 + * cz_qwerty = +cz(qwerty):3 + * dev = +in(deva):3 + * dvorak = +us(dvorak):3 + * dzdwi = +bt%(v[3]):3 + * el = +gr%(v[3]):3 + * en_US = +latin%(v[3]):3 + * guj = +in(guj):3 + * gur = +in(guru):3 + * iu = +ca(ike):3 + * lo = +la%(v[3]):3 + * kan = +in(kan):3 + * mi = +mao%(v[3]):3 + * ogham = +ie(ogam):3 + * ori = +ie(ori):3 + * sapmi = +no(smi):3 + * sr = +srp%(v[3]):3 + * syr = +sy(syc):3 + * tel = +in(tel):3 + * tml = +in(tam):3 + * yu = +srp%(v[3]):3 + * fr-latin9 = +fr(latin9):3 + * us_intl = +us(alt-intl):3 + * ben(basic) = +in(ben):3 + * ben(probhat) = +in(ben_probhat):3 + * dev(basic) = +in(deva):3 + * dvorak($dvoraklayouts) = +%v(dvorak):3 + * dvorak(basic) = +us(dvorak):3 + * dvorak(pl_basic) = +pl(dvorak):3 + * dvorak(pl) = +pl(dvorak_quotes):3 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 + * dzdwi(basic) = +bt(basic):3 + * fi(basic) = +fi(classic):3 + * ge(azerty_tskapo) = +fr(geo):3 + * guj(basic) = +in(guj):3 + * gur(basic) = +in(guru):3 + * ie(laptop) = +ie(basic):3 + * ie(CloGaelachLaptop) = +ie(CloGaelach):3 + * in(urd) = +in(urd-phonetic):3 + * iu(basic) = +ca(ike):3 + * lo(basic) = +la(basic):3 + * kan(basic) = +in(kan):3 + * mal(basic) = +in(mal):3 + * mal(mlplusnum) = +in(mal):3 + * ogham(basic) = +ie(ogam):3 + * ogham(laptop) = +ie(ogam):3 + * ogham(is434) = +ie(ogam_is434):3 + * ogham(is434laptop) = +ie(ogam_is434):3 + * ori(basic) = +in(ori):3 + * ro(de) = +ro(winkeys):3 + * ro(us) = +ro(std):3 + * ro(academic) = +ro(std):3 + * ro(std_comma) = +ro(std):3 + * ro(comma) = +ro(basic):3 + * ru(os) = +ru(os_legacy):3 + * pk(urd) = +pk(urd-phonetic):3 + * sapmi(basic) = +no(smi):3 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 + * sapmi(sefi) = +fi(smi):3 + * sin(phonetic-static) = +in(sin_phonetic):3 + * syr(basic) = +sy(syc):3 + * syr(phonetic) = +sy(syc_phonetic):3 + * tam(INSCRIPT) = +in(tam):3 + * tam(UNI) = +in(tam_unicode):3 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 + * tam(TAB) = +in(tam_TAB):3 + * tam(TSCII) = +in(tam_TSCII):3 + * tel(basic) = +in(tel):3 + * yu(basic) = +srp(latin):3 + * yu(unicode) = +srp(latinunicode):3 + * yu(yz) = +srp(latinyz):3 + * yu(unicodeyz) = +srp(latinunicodeyz):3 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 + nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 + $sun $sun_custom = +sun_vndr/%l[3]%(v[3]):3 + * * = +%l[3]%(v[3]):3 + +! model layout[4] = symbols + * ar = +ara%(v[4]):4 + * ben = +in(ben):4 + * bs = +ba%(v[4]):4 + * cs = +rs%(v[4]):4 + * cz_qwerty = +cz(qwerty):4 + * dev = +in(deva):4 + * dvorak = +us(dvorak):4 + * dzdwi = +bt%(v[4]):4 + * el = +gr%(v[4]):4 + * en_US = +latin%(v[4]):4 + * guj = +in(guj):4 + * gur = +in(guru):4 + * iu = +ca(ike):4 + * lo = +la%(v[4]):4 + * kan = +in(kan):4 + * mi = +mao%(v[4]):4 + * ogham = +ie(ogam):4 + * ori = +ie(ori):4 + * sapmi = +no(smi):4 + * sr = +srp%(v[4]):4 + * syr = +sy(syc):4 + * tel = +in(tel):4 + * tml = +in(tam):4 + * yu = +srp%(v[4]):4 + * fr-latin9 = +fr(latin9):4 + * us_intl = +us(alt-intl):4 + * ben(basic) = +in(ben):4 + * ben(probhat) = +in(ben_probhat):4 + * dev(basic) = +in(deva):4 + * dvorak($dvoraklayouts) = +%v(dvorak):4 + * dvorak(basic) = +us(dvorak):4 + * dvorak(pl_basic) = +pl(dvorak):4 + * dvorak(pl) = +pl(dvorak_quotes):4 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 + * dzdwi(basic) = +bt(basic):4 + * fi(basic) = +fi(classic):4 + * ge(azerty_tskapo) = +fr(geo):4 + * guj(basic) = +in(guj):4 + * gur(basic) = +in(guru):4 + * ie(laptop) = +ie(basic):4 + * ie(CloGaelachLaptop) = +ie(CloGaelach):4 + * in(urd) = +in(urd-phonetic):4 + * iu(basic) = +ca(ike):4 + * lo(basic) = +la(basic):4 + * kan(basic) = +in(kan):4 + * mal(basic) = +in(mal):4 + * mal(mlplusnum) = +in(mal):4 + * ogham(basic) = +ie(ogam):4 + * ogham(laptop) = +ie(ogam):4 + * ogham(is434) = +ie(ogam_is434):4 + * ogham(is434laptop) = +ie(ogam_is434):4 + * ori(basic) = +in(ori):4 + * ro(de) = +ro(winkeys):4 + * ro(us) = +ro(std):4 + * ro(academic) = +ro(std):4 + * ro(std_comma) = +ro(std):4 + * ro(comma) = +ro(basic):4 + * ru(os) = +ru(os_legacy):4 + * pk(urd) = +pk(urd-phonetic):4 + * sapmi(basic) = +no(smi):4 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 + * sapmi(sefi) = +fi(smi):4 + * sin(phonetic-static) = +in(sin_phonetic):4 + * syr(basic) = +sy(syc):4 + * syr(phonetic) = +sy(syc_phonetic):4 + * tam(INSCRIPT) = +in(tam):4 + * tam(UNI) = +in(tam_unicode):4 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 + * tam(TAB) = +in(tam_TAB):4 + * tam(TSCII) = +in(tam_TSCII):4 + * tel(basic) = +in(tel):4 + * yu(basic) = +srp(latin):4 + * yu(unicode) = +srp(latinunicode):4 + * yu(yz) = +srp(latinyz):4 + * yu(unicodeyz) = +srp(latinunicodeyz):4 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 + nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 + $sun $sun_custom = +sun_vndr/%l[4]%(v[4]):4 + * * = +%l[4]%(v[4]):4 + +! model layout[2] variant[2] = symbols + * ben basic = +in(ben):2 + * ben probhat = +in(ben_probhat):2 + * dev basic = +in(deva):2 + * dvorak $dvoraklayouts = +%v(dvorak):2 + * dvorak basic = +us(dvorak):2 + * dvorak pl_basic = +pl(dvorak):2 + * dvorak pl = +pl(dvorak_quotes):2 + * dvorak pl_altquotes = +pl(dvorak_altquotes):2 + * dzdwi basic = +bt(basic):2 + * fi basic = +fi(classic):2 + * ge azerty_tskapo = +fr(geo):2 + * guj basic = +in(guj):2 + * gur basic = +in(guru):2 + * ie laptop = +ie(basic):2 + * ie CloGaelachLaptop = +ie(CloGaelach):2 + * in urd = +in(urd-phonetic):2 + * iu basic = +ca(ike):2 + * lo basic = +la(basic):2 + * kan basic = +in(kan):2 + * mal basic = +in(mal):2 + * mal mlplusnum = +in(mal):2 + * ogham basic = +ie(ogam):2 + * ogham laptop = +ie(ogam):2 + * ogham is434 = +ie(ogam_is434):2 + * ogham is434laptop = +ie(ogam_is434):2 + * ori basic = +in(ori):2 + * ro de = +ro(winkeys):2 + * ro us = +ro(std):2 + * ro academic = +ro(std):2 + * ro std_comma = +ro(std):2 + * ro comma = +ro(basic):2 + * ru os = +ru(os_legacy):2 + * pk urd = +pk(urd-phonetic):2 + * sapmi basic = +no(smi):2 + * sapmi nodeadkeys = +no(smi_nodeadkeys):2 + * sapmi sefi = +fi(smi):2 + * sin phonetic-static = +in(sin_phonetic):2 + * syr basic = +sy(syc):2 + * syr phonetic = +sy(syc_phonetic):2 + * tam INSCRIPT = +in(tam):2 + * tam UNI = +in(tam_unicode):2 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 + * tam TAB = +in(tam_TAB):2 + * tam TSCII = +in(tam_TSCII):2 + * tel basic = +in(tel):2 + * yu basic = +srp(latin):2 + * yu unicode = +srp(latinunicode):2 + * yu yz = +srp(latinyz):2 + * yu unicodeyz = +srp(latinunicodeyz):2 + +! model layout[3] variant[3] = symbols + * ben basic = +in(ben):3 + * ben probhat = +in(ben_probhat):3 + * dev basic = +in(deva):3 + * dvorak $dvoraklayouts = +%v(dvorak):3 + * dvorak basic = +us(dvorak):3 + * dvorak pl_basic = +pl(dvorak):3 + * dvorak pl = +pl(dvorak_quotes):3 + * dvorak pl_altquotes = +pl(dvorak_altquotes):3 + * dzdwi basic = +bt(basic):3 + * fi basic = +fi(classic):3 + * ge azerty_tskapo = +fr(geo):3 + * guj basic = +in(guj):3 + * gur basic = +in(guru):3 + * ie laptop = +ie(basic):3 + * ie CloGaelachLaptop = +ie(CloGaelach):3 + * in urd = +in(urd-phonetic):3 + * iu basic = +ca(ike):3 + * lo basic = +la(basic):3 + * kan basic = +in(kan):3 + * mal basic = +in(mal):3 + * mal mlplusnum = +in(mal):3 + * ogham basic = +ie(ogam):3 + * ogham laptop = +ie(ogam):3 + * ogham is434 = +ie(ogam_is434):3 + * ogham is434laptop = +ie(ogam_is434):3 + * ori basic = +in(ori):3 + * ro de = +ro(winkeys):3 + * ro us = +ro(std):3 + * ro academic = +ro(std):3 + * ro std_comma = +ro(std):3 + * ro comma = +ro(basic):3 + * ru os = +ru(os_legacy):3 + * pk urd = +pk(urd-phonetic):3 + * sapmi basic = +no(smi):3 + * sapmi nodeadkeys = +no(smi_nodeadkeys):3 + * sapmi sefi = +fi(smi):3 + * sin phonetic-static = +in(sin_phonetic):3 + * syr basic = +sy(syc):3 + * syr phonetic = +sy(syc_phonetic):3 + * tam INSCRIPT = +in(tam):3 + * tam UNI = +in(tam_unicode):3 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 + * tam TAB = +in(tam_TAB):3 + * tam TSCII = +in(tam_TSCII):3 + * tel basic = +in(tel):3 + * yu basic = +srp(latin):3 + * yu unicode = +srp(latinunicode):3 + * yu yz = +srp(latinyz):3 + * yu unicodeyz = +srp(latinunicodeyz):3 + +! model layout[4] variant[4] = symbols + * ben basic = +in(ben):4 + * ben probhat = +in(ben_probhat):4 + * dev basic = +in(deva):4 + * dvorak $dvoraklayouts = +%v(dvorak):4 + * dvorak basic = +us(dvorak):4 + * dvorak pl_basic = +pl(dvorak):4 + * dvorak pl = +pl(dvorak_quotes):4 + * dvorak pl_altquotes = +pl(dvorak_altquotes):4 + * dzdwi basic = +bt(basic):4 + * fi basic = +fi(classic):4 + * ge azerty_tskapo = +fr(geo):4 + * guj basic = +in(guj):4 + * gur basic = +in(guru):4 + * ie laptop = +ie(basic):4 + * ie CloGaelachLaptop = +ie(CloGaelach):4 + * in urd = +in(urd-phonetic):4 + * iu basic = +ca(ike):4 + * lo basic = +la(basic):4 + * kan basic = +in(kan):4 + * mal basic = +in(mal):4 + * mal mlplusnum = +in(mal):4 + * ogham basic = +ie(ogam):4 + * ogham laptop = +ie(ogam):4 + * ogham is434 = +ie(ogam_is434):4 + * ogham is434laptop = +ie(ogam_is434):4 + * ori basic = +in(ori):4 + * ro de = +ro(winkeys):4 + * ro us = +ro(std):4 + * ro academic = +ro(std):4 + * ro std_comma = +ro(std):4 + * ro comma = +ro(basic):4 + * ru os = +ru(os_legacy):4 + * pk urd = +pk(urd-phonetic):4 + * sapmi basic = +no(smi):4 + * sapmi nodeadkeys = +no(smi_nodeadkeys):4 + * sapmi sefi = +fi(smi):4 + * sin phonetic-static = +in(sin_phonetic):4 + * syr basic = +sy(syc):4 + * syr phonetic = +sy(syc_phonetic):4 + * tam INSCRIPT = +in(tam):4 + * tam UNI = +in(tam_unicode):4 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 + * tam TAB = +in(tam_TAB):4 + * tam TSCII = +in(tam_TSCII):4 + * tel basic = +in(tel):4 + * yu basic = +srp(latin):4 + * yu unicode = +srp(latinunicode):4 + * yu yz = +srp(latinyz):4 + * yu unicodeyz = +srp(latinunicodeyz):4 + +! model = symbols + $evdevkbds = +inet(evdev)+inet(%m) + applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys) + * = +inet(evdev) + +! model layout = symbols + +! layout variant = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[1] variant[1] = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + de adnw = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + jp $sun_compat = complete+japan(kana_lock) + +! layout[2] variant[2] = compat + de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + de adnw = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + jp $sun_compat = +complete+japan(kana_lock):2 + +! layout[3] variant[3] = compat + de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + de adnw = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + jp $sun_compat = +complete+japan(kana_lock):3 + +! layout[4] variant[4] = compat + de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + de adnw = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + jp $sun_compat = +complete+japan(kana_lock):4 + +! model layout = compat + pc98 nec_vndr/jp = pc98(basic) + * jp = complete+japan + olpc * = olpc + olpcm * = olpc + * * = complete + +! model layout[1] = compat + * * = complete + +! model = types + $macs = complete+numpad(mac) + $applealu = complete+numpad(mac) + $nokiamodels = complete+nokia + * = complete + +! layout option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) + * misc:typo = +typo(base) + +! layout[1] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 + * misc:typo = +typo(base):1 + +! layout[2] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 + * misc:typo = +typo(base):2 + +! layout[3] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 + * misc:typo = +typo(base):3 + +! layout[4] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 + * misc:typo = +typo(base):4 + +! option = symbols + grp:shift_toggle = +group(shifts_toggle) + altwin:menu = +altwin(menu) + altwin:meta_alt = +altwin(meta_alt) + altwin:alt_win = +altwin(alt_win) + altwin:ctrl_win = +altwin(ctrl_win) + altwin:ctrl_alt_win = +altwin(ctrl_alt_win) + altwin:meta_win = +altwin(meta_win) + altwin:left_meta_win = +altwin(left_meta_win) + altwin:hyper_win = +altwin(hyper_win) + altwin:alt_super_win = +altwin(alt_super_win) + altwin:swap_alt_win = +altwin(swap_alt_win) + grab:debug = +srvr_ctrl(grab_debug) + grp:switch = +group(switch) + grp:lswitch = +group(lswitch) + grp:win_switch = +group(win_switch) + grp:lwin_switch = +group(lwin_switch) + grp:rwin_switch = +group(rwin_switch) + grp:toggle = +group(toggle) + grp:shifts_toggle = +group(shifts_toggle) + grp:ctrls_toggle = +group(ctrls_toggle) + grp:alts_toggle = +group(alts_toggle) + grp:caps_toggle = +capslock(grouplock) + grp:caps_switch = +capslock(groupshift) + grp:shift_caps_toggle = +group(shift_caps_toggle) + grp:shift_caps_switch = +group(shift_caps_switch) + grp:win_space_toggle = +group(win_space_toggle) + grp:win_menu_switch = +group(win_menu_switch) + grp:alt_caps_toggle = +group(alt_caps_toggle) + grp:alt_space_toggle = +group(alt_space_toggle) + grp:menu_toggle = +group(menu_toggle) + grp:lwin_toggle = +group(lwin_toggle) + grp:rwin_toggle = +group(rwin_toggle) + grp:lshift_toggle = +group(lshift_toggle) + grp:rshift_toggle = +group(rshift_toggle) + grp:rctrl_switch = +group(rctrl_switch) + grp:lctrl_toggle = +group(lctrl_toggle) + grp:rctrl_toggle = +group(rctrl_toggle) + grp:lalt_toggle = +group(lalt_toggle) + grp:sclk_toggle = +group(sclk_toggle) + grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) + grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) + grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) + grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) + grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) + grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) + grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) + grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) + grp:alt_shift_toggle = +group(alt_shift_toggle) + grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) + lv3:switch = +level3(switch) + lv3:ralt_switch = +level3(ralt_switch) + lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) + lv3:ralt_alt = +level3(ralt_alt) + lv3:lalt_switch = +level3(lalt_switch) + lv3:alt_switch = +level3(alt_switch) + lv3:menu_switch = +level3(menu_switch) + lv3:win_switch = +level3(win_switch) + lv3:lwin_switch = +level3(lwin_switch) + lv3:rwin_switch = +level3(rwin_switch) + lv3:enter_switch = +level3(enter_switch) + caps:capslock = +capslock(capslock) + caps:numlock = +capslock(numlock) + caps:shiftlock = +capslock(shiftlock) + caps:swapescape = +capslock(swapescape) + caps:escape = +capslock(escape) + caps:backspace = +capslock(backspace) + caps:super = +capslock(super) + caps:hyper = +capslock(hyper) + caps:none = +capslock(none) + caps:ctrl_modifier = +capslock(ctrl_modifier) + ctrl:nocaps = +ctrl(nocaps) + ctrl:lctrl_meta = +ctrl(lctrl_meta) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ac_ctrl = +ctrl(ac_ctrl) + ctrl:aa_ctrl = +ctrl(aa_ctrl) + ctrl:rctrl_ralt = +ctrl(rctrl_ralt) + ctrl:menu_rctrl = +ctrl(menu_rctrl) + ctrl:ralt_rctrl = +ctrl(ralt_rctrl) + ctrl:swap_lalt_lctl = +ctrl(swap_lalt_lctl) + ctrl:swap_lwin_lctl = +ctrl(swap_lwin_lctl) + ctrl:swap_rwin_rctl = +ctrl(swap_rwin_rctl) + ctrl:swap_lalt_lctl_lwin = +ctrl(swap_lalt_lctl_lwin) + compose:ralt = +compose(ralt) + compose:lwin = +compose(lwin) + compose:lwin-altgr = +compose(lwin-altgr) + compose:rwin = +compose(rwin) + compose:rwin-altgr = +compose(rwin-altgr) + compose:menu = +compose(menu) + compose:menu-altgr = +compose(menu-altgr) + compose:lctrl = +compose(lctrl) + compose:lctrl-altgr = +compose(lctrl-altgr) + compose:rctrl = +compose(rctrl) + compose:rctrl-altgr = +compose(rctrl-altgr) + compose:caps = +compose(caps) + compose:caps-altgr = +compose(caps-altgr) + compose:102 = +compose(102) + compose:102-altgr = +compose(102-altgr) + compose:paus = +compose(paus) + compose:prsc = +compose(prsc) + compose:sclk = +compose(sclk) + srvrkeys:none = +srvr_ctrl(no_srvr_keys) + eurosign:e = +eurosign(e) + eurosign:2 = +eurosign(2) + eurosign:4 = +eurosign(4) + eurosign:5 = +eurosign(5) + rupeesign:4 = +rupeesign(4) + keypad:oss = +keypad(oss) + keypad:legacy = +keypad(legacy) + keypad:legacy_wang = +keypad(legacy_wang) + keypad:oss_wang = +keypad(oss_wang) + keypad:future = +keypad(future) + keypad:future_wang = +keypad(future_wang) + keypad:hex = +keypad(ops)+keypad(hex) + keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) + nbsp:none = +nbsp(none) + nbsp:level2 = +nbsp(level2) + nbsp:level3 = +nbsp(level3) + nbsp:level3s = +nbsp(level3s) + nbsp:level3n = +nbsp(level3n) + nbsp:level4 = +nbsp(level4) + nbsp:level4n = +nbsp(level4n) + nbsp:level4nl = +nbsp(level4nl) + japan:nicola_f_bs = +jp(nicola_f_bs) + japan:hztg_escape = +jp(hztg_escape) + kpdl:dot = +kpdl(dot) + kpdl:comma = +kpdl(comma) + kpdl:dotoss = +kpdl(dotoss) + kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) + kpdl:commaoss = +kpdl(commaoss) + kpdl:momayyezoss = +kpdl(momayyezoss) + kpdl:kposs = +kpdl(kposs) + kpdl:semi = +kpdl(semi) + shift:breaks_caps = +shift(breaks_caps) + esperanto:qwerty = +epo(qwerty) + esperanto:dvorak = +epo(dvorak) + esperanto:colemak = +epo(colemak) + terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) + keypad:pointerkeys = +keypad(pointerkeys) + apple:alupckeys = +macintosh_vndr/apple(alupckeys) + shift:both_capslock = +shift(both_capslock) + shift:lshift_both_capslock = +shift(lshift_both_capslock) + shift:rshift_both_capslock = +shift(rshift_both_capslock) + shift:both_capslock_cancel = +shift(both_capslock_cancel) + shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) + shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) + shift:both_shiftlock = +shift(both_shiftlock) + shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) + shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) + solaris:sun_compat = +sun_vndr/solaris(sun_compat) + lv3:caps_switch = +level3(caps_switch) + lv3:bksl_switch = +level3(bksl_switch) + lv3:lsgt_switch = +level3(lsgt_switch) + lv3:caps_switch_latch = +level3(caps_switch_latch) + lv3:bksl_switch_latch = +level3(bksl_switch_latch) + lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) + lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) + lv5:ralt_switch_lock = +level5(ralt_switch_lock) + lv5:lwin_switch_lock = +level5(lwin_switch_lock) + lv5:rwin_switch_lock = +level5(rwin_switch_lock) + lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) + lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) + lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) + lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) + + + +! option = compat + grp_led:num = +lednum(group_lock) + grp_led:caps = +ledcaps(group_lock) + grp_led:scroll = +ledscroll(group_lock) + japan:kana_lock = +japan(kana_lock) + caps:shiftlock = +ledcaps(shift_lock) + grab:break_actions = +xfree86(grab_break) + + +! option = types + caps:internal = +caps(internal) + caps:internal_nocancel = +caps(internal_nocancel) + caps:shift = +caps(shift) + caps:shift_nocancel = +caps(shift_nocancel) + numpad:pc = +numpad(pc) + numpad:mac = +numpad(mac) + numpad:microsoft = +numpad(microsoft) + numpad:shift3 = +numpad(shift3) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/evdev-xkbcommon b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/evdev-xkbcommon new file mode 100644 index 0000000..bde6ad2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/evdev-xkbcommon @@ -0,0 +1,1092 @@ +// DO NOT EDIT THIS FILE - IT WAS AUTOGENERATED BY merge.sh FROM rules/*.part +// +// Rules for resolving XKB components for use with XFree86 +// Copyright 1996 by Joseph Moss +// +// 2002 Modifier: Ivan Pascal The XFree86 Project +// + +// If you want non-latin layouts implicitly include the en_US layout +// uncomment lines below +//! $nonlatin = am ara ben bd bg bt by cs deva ge gh gr guj guru il \ +// in ir iku jp kan kh kr la lao lk mk mm mn mv mal ori pk \ +// ru scc sy syr tel th tj tam ua uz + +// PC models +! $pcmodels = pc101 pc102 pc104 pc105 + +// Microsoft models (using MS geometry) +! $msmodels = microsoft microsoft4000 microsoft7000 microsoftpro microsoftprousb microsoftprose + +// Nokia devices and keyboards +! $nokiamodels = nokiasu8w nokiarx44 nokiarx51 + +// PC geometries - they have special geometry but symbols are mostly pc105 +! $pcgeometries = latitude + +// TypeMatrix geometries +! $tmgeometries = tm2020 tm2030PS2 tm2030USB tm2030USB-102 tm2030USB-106 + +// Layouts that provide further specializations for the OLPC +! $olpclayouts = af am ara br ca es et fr it kh kz in mn np ru th tr us + +! $macbooks = macbook78 macbook79 +! $maclaptop = ibook powerbook macbook78 macbook79 +! $applealu = applealu_ansi applealu_iso applealu_jis +! $macs = macintosh macintosh_old ibook powerbook macbook78 macbook79 + +! $macvendorlayouts = ch de dk fi fr gb is it latam nl no pt se us + +! $azerty = be fr +! $qwertz = al cz de hr hu ro si sk + +! $inetkbds = acer_c300 acer_ferrari4k acer_laptop \ + airkey \ + apple armada azonaRF2300 \ + benqx brother \ + btc5113rf btc9000 btc9000a btc9001ah btc5090 btc9019u \ + cherryblue cherrybluea cherryblueb \ + cherrycyboard cherrycmexpert \ + chicony chicony0108 chicony0420 chicony9885 \ + compalfl90 \ + compaqeak8 compaqik7 compaqik13 compaqik18 \ + creativedw7000 \ + cymotionlinux \ + dell dellm65 inspiron dellusbmm \ + emachines ennyah_dkb1008 evdev \ + genius geniuscomfy2 \ + gyration honeywell_euroboard \ + hp250x hp5xx hp500fa hpdv5 \ + hpi6 hpxe3gc hpxe3gf hpxe4xxx hpxt1000 hpzt11xx htcdream \ + ibm_spacesaver ipaq inspiron intel \ + logiaccess logicda logicink \ + logiex110 logiclx300 \ + logiinkse logiinkseusb logiitc logiik \ + logitech_base itouch logiultrax \ + logitech_g15 \ + logidinovo logidinovoedge \ + microsoft4000 microsoft7000 microsoftinet microsoftprousb microsoftprooem microsoftprose \ + microsoftoffice microsoftmult \ + mx1998 mx2500 mx2750 \ + oretec \ + pc105 \ + presario propeller \ + qtronix \ + rapidaccess rapidaccess2 thinkpad60 \ + samsung4500 samsung4510 \ + silvercrest \ + sk1300 sk2500 sk6200 sk7100 \ + sven sven303 symplon \ + toshiba_s3000 trust trustda \ + unitekkb1925 yahoo + +// all layouts with 3rd and 4th groups +! $threelevellayouts = al az \ + be br bt \ + ca ch cs cz \ + de dk \ + ee es \ + fi fo fr \ + gb gr \ + hu \ + ie ir is it \ + latam \ + lk lt \ + mn mt \ + nl no \ + pl pt \ + ro \ + se sk \ + tr \ + us \ + vn \ + za + +! $evdevkbds = ibm_spacesaver + +! $thinkpads = thinkpad thinkpad60 thinkpadz60 + +! $sun_t6_custom = ara be br ca ch cz de dk \ + ee es fi fr gb gr it kr \ + lt lv nl no pl pt ro ru \ + se sk tr tw ua + +! $htcdreamlayouts = us it de + +! $dvoraklayouts = br ca de ee es fr gb no pl se us + +! model = keycodes + * = evdev-xkbcommon + +! layout[1] = keycodes + $azerty = +aliases-xkbcommon(azerty) + $qwertz = +aliases-xkbcommon(qwertz) + * = +aliases-xkbcommon(qwerty) + +! layout = keycodes + $azerty = +aliases-xkbcommon(azerty) + $qwertz = +aliases-xkbcommon(qwertz) + * = +aliases-xkbcommon(qwerty) + +! model layout = geometry + thinkpad us = thinkpad(us) + +! model = geometry + microsoftelite = microsoft(elite) + $msmodels = microsoft(natural) + dell101 = dell(dell101) + dellm65 = dell(dellm65) + latitude = dell(latitude) + flexpro = keytronic(FlexPro) + hp6000 = hp(omnibook) + hpmini110 = hp(mini110) + hpdv5 = hp(dv5) + omnikey101 = northgate(omnikey101) + sanwaskbkg3 = sanwa(sanwaskbkg3) + $pcmodels = pc(%m) + $pcgeometries = pc(%m) + everex = everex(STEPnote) + thinkpad = thinkpad(intl) + thinkpad60 = thinkpad(60) + thinkpadz60 = thinkpad(60) + $tmgeometries = typematrix(%m) + winbook = winbook(XP5) + pc98 = nec(pc98) + $applealu = macintosh(%m) + $macbooks = macintosh(%m) + $macs = macintosh(macintosh) + hhk = hhk(basic) + kinesis = kinesis(model100) + $nokiamodels = nokia(%m) + * = pc(pc104) + +! model layout variant = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + classmate us intl = pc+us(classmate-intl) + classmate us alt-intl = pc+us(classmate-alt-intl) + classmate us altgr-intl = pc+us(classmate-altgr-intl) + nokiarx51 cz qwerty = nokia_vndr/rx-51(cz_qwerty) + +! model layout = symbols + * ar = pc+ara + * ben = pc+in(ben) + * bs = pc+ba + * cs = pc+rs + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt + * el = pc+gr + * en_US = pc+latin + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la + * kan = pc+in(kan) + * mi = pc+mao + * ml = pc+in(mal) + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt $nonlatin = xfree68_vndr/ataritt(us)+%l%(v):2 + ataritt * = xfree68_vndr/ataritt(us)+%l%(v) + amiga $nonlatin = xfree68_vndr/amiga(usa1)+%l%(v):2 + amiga * = xfree68_vndr/amiga(usa1)+%l%(v) + classmate us = pc+%l(classmate) + empty * = empty(basic) + * empty = empty(basic) + sun4 $nonlatin = latin+sun_vndr/us(type4)+%l%(v):2 + sun4 * = latin+sun_vndr/us(type4)+%l%(v) + sun5 $nonlatin = latin+sun_vndr/us(type5)+%l%(v):2 + sun5 * = latin+sun_vndr/us(type5)+%l%(v) + sun6 us = pc+sun_vndr/us(type6) + sun6 en_US = pc+sun_vndr/us(type6)+iso9995-3(basic) + sun6 $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v) + sun6 * = pc+sun_vndr/us(type6)+%l%(v) + sun6euro us = pc+sun_vndr/us(type6) + sun6euro en_US = pc+sun_vndr/us(type6)+iso9995-3(basic) + sun6euro $sun_t6_custom = pc+sun_vndr/us(type6)+sun_vndr/%l%(v) + sun6euro * = pc+sun_vndr/us(type6)+%l%(v) + pc98 nec_vndr/jp = nec_vndr/jp(pc98) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old en_US = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l%(v) + macintosh_old $nonlatin = macintosh_vndr/us(oldmac)+%l%(v):2 + macintosh_old * = macintosh_vndr/us(oldmac)+%l%(v) + applealu_jis jp = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac)+macintosh_vndr/jp(mac):2 + applealu_jis * = macintosh_vndr/apple(alukbd)+%l%(v)+macintosh_vndr/jp(mac):2 + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l%(v) + $applealu * = macintosh_vndr/apple(alukbd)+%l%(v) + $macs en_US = pc+macintosh_vndr/us(extended) + $macs $macvendorlayouts = pc+macintosh_vndr/%l%(v) + nokiarx44 * = nokia_vndr/rx-44(%l) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l%_v) + nokiasu8w * = nokia_vndr/su-8w(%l) + olpc $olpclayouts = olpc+%l%(m) + olpc * = olpc+%l%(v) + $thinkpads br = pc+br(thinkpad) + htcdream $htcdreamlayouts = %l(htcdream) + * $nonlatin = pc+us+%l%(v):2 + * * = pc+%l%(v) + +! model layout[1] = symbols + * ar = pc+ara%(v[1]) + * ben = pc+in(ben) + * bs = pc+ba%(v[1]) + * cs = pc+rs%(v[1]) + * cz_qwerty = pc+cz(qwerty) + * dev = pc+in(deva) + * dvorak = pc+us(dvorak) + * dzdwi = pc+bt%(v[1]) + * el = pc+gr%(v[1]) + * en_US = pc+latin%(v[1]) + * guj = pc+in(guj) + * gur = pc+in(guru) + * iu = pc+ca(ike) + * lo = pc+la%(v[1]) + * kan = pc+in(kan) + * mi = pc+mao%(v[1]) + * ml = pc+in(mal) + * ogham = pc+ie(ogam) + * ori = pc+ie(ori) + * sapmi = pc+no(smi) + * sr = pc+srp%(v[1]) + * syr = pc+sy(syc) + * tel = pc+in(tel) + * tml = pc+in(tam) + * yu = pc+srp%(v[1]) + * fr-latin9 = pc+fr(latin9) + * us_intl = pc+us(alt-intl) + * ben(basic) = pc+in(ben) + * ben(probhat) = pc+in(ben_probhat) + * dev(basic) = pc+in(deva) + * dvorak($dvoraklayouts) = pc+%v(dvorak) + * dvorak(basic) = pc+us(dvorak) + * dvorak(pl_basic) = pc+pl(dvorak) + * dvorak(pl) = pc+pl(dvorak_quotes) + * dvorak(pl_altquotes) = pc+pl(dvorak_altquotes) + * dzdwi(basic) = pc+bt(basic) + * fi(basic) = pc+fi(classic) + * ge(azerty_tskapo) = pc+fr(geo) + * guj(basic) = pc+in(guj) + * gur(basic) = pc+in(guru) + * ie(laptop) = pc+ie(basic) + * ie(CloGaelachLaptop) = pc+ie(CloGaelach) + * in(urd) = pc+in(urd-phonetic) + * iu(basic) = pc+ca(ike) + * lo(basic) = pc+la(basic) + * kan(basic) = pc+in(kan) + * mal(basic) = pc+in(mal) + * mal(mlplusnum) = pc+in(mal) + * ogham(basic) = pc+ie(ogam) + * ogham(laptop) = pc+ie(ogam) + * ogham(is434) = pc+ie(ogam_is434) + * ogham(is434laptop) = pc+ie(ogam_is434) + * ori(basic) = pc+in(ori) + * ro(de) = pc+ro(winkeys) + * ro(us) = pc+ro(std) + * ro(academic) = pc+ro(std) + * ro(std_comma) = pc+ro(std) + * ro(comma) = pc+ro(basic) + * ru(os) = pc+ru(os_legacy) + * pk(urd) = pc+pk(urd-phonetic) + * sapmi(basic) = pc+no(smi) + * sapmi(nodeadkeys) = pc+no(smi_nodeadkeys) + * sapmi(sefi) = pc+fi(smi) + * sin(phonetic-static) = pc+in(sin_phonetic) + * syr(basic) = pc+sy(syc) + * syr(phonetic) = pc+sy(syc_phonetic) + * tam(INSCRIPT) = pc+in(tam) + * tam(UNI) = pc+in(tam_unicode) + * tam(NUMERAL-KEYBOARD) = pc+in(tam_keyboard_with_numerals) + * tam(TAB) = pc+in(tam_TAB) + * tam(TSCII) = pc+in(tam_TSCII) + * tel(basic) = pc+in(tel) + * yu(basic) = pc+srp(latin) + * yu(unicode) = pc+srp(latinunicode) + * yu(yz) = pc+srp(latinyz) + * yu(unicodeyz) = pc+srp(latinunicodeyz) + ataritt * = xfree68_vndr/ataritt(us)+%l[1]%(v[1]) + amiga * = xfree68_vndr/amiga(usa1)+%l[1]%(v[1]) + sun4 * = latin+sun_vndr/us(type4)+%l[1]%(v[1]) + sun5 * = latin+sun_vndr/us(type5)+%l[1]%(v[1]) + macintosh_old us = macintosh_vndr/us(oldmac) + macintosh_old $macvendorlayouts = macintosh_vndr/us(oldmac)+macintosh_vndr/%l[1]%(v[1]) + macintosh_old * = macintosh_vndr/us(oldmac)+%l[1]%(v[1]) + applealu_jis us = macintosh_vndr/apple(alukbd)+macintosh_vndr/jp(usmac) + $applealu $macvendorlayouts = macintosh_vndr/apple(alukbd)+macintosh_vndr/%l[1]%(v[1]) + $applealu * = macintosh_vndr/apple(alukbd)+%l[1]%(v[1]) + $macs $macvendorlayouts = pc+macintosh_vndr/%l[1]%(v[1]) + nokiarx51 cz(qwerty) = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(cz_qwerty) + nokiarx51 * = nokia_vndr/rx-51(common)+nokia_vndr/rx-51(%l[1]%_v[1]) + $thinkpads br = pc+%l[1](thinkpad) + * * = pc+%l[1]%(v[1]) + +! model layout[1] variant[1] = symbols + * ben basic = pc+in(ben) + * ben probhat = pc+in(ben_probhat) + * dev basic = pc+in(deva) + * dvorak $dvoraklayouts = pc+%v(dvorak) + * dvorak basic = pc+us(dvorak) + * dvorak pl_basic = pc+pl(dvorak) + * dvorak pl = pc+pl(dvorak_quotes) + * dvorak pl_altquotes = pc+pl(dvorak_altquotes) + * dzdwi basic = pc+bt(basic) + * fi basic = pc+fi(classic) + * ge azerty_tskapo = pc+fr(geo) + * guj basic = pc+in(guj) + * gur basic = pc+in(guru) + * ie laptop = pc+ie(basic) + * ie CloGaelachLaptop = pc+ie(CloGaelach) + * in urd = pc+in(urd-phonetic) + * iu basic = pc+ca(ike) + * lo basic = pc+la(basic) + * kan basic = pc+in(kan) + * mal basic = pc+in(mal) + * mal mlplusnum = pc+in(mal) + * ogham basic = pc+ie(ogam) + * ogham laptop = pc+ie(ogam) + * ogham is434 = pc+ie(ogam_is434) + * ogham is434laptop = pc+ie(ogam_is434) + * ori basic = pc+in(ori) + * ro de = pc+ro(winkeys) + * ro us = pc+ro(std) + * ro academic = pc+ro(std) + * ro std_comma = pc+ro(std) + * ro comma = pc+ro(basic) + * ru os = pc+ru(os_legacy) + * pk urd = pc+pk(urd-phonetic) + * sapmi basic = pc+no(smi) + * sapmi nodeadkeys = pc+no(smi_nodeadkeys) + * sapmi sefi = pc+fi(smi) + * sin phonetic-static = pc+in(sin_phonetic) + * syr basic = pc+sy(syc) + * syr phonetic = pc+sy(syc_phonetic) + * tam INSCRIPT = pc+in(tam) + * tam UNI = pc+in(tam_unicode) + * tam NUMERAL-KEYBOARD = pc+in(tam_keyboard_with_numerals) + * tam TAB = pc+in(tam_TAB) + * tam TSCII = pc+in(tam_TSCII) + * tel basic = pc+in(tel) + * yu basic = pc+srp(latin) + * yu unicode = pc+srp(latinunicode) + * yu yz = pc+srp(latinyz) + * yu unicodeyz = pc+srp(latinunicodeyz) + +! model layout[2] = symbols + * ar = +ara%(v[2]):2 + * ben = +in(ben):2 + * bs = +ba%(v[2]):2 + * cs = +rs%(v[2]):2 + * cz_qwerty = +cz(qwerty):2 + * dev = +in(deva):2 + * dvorak = +us(dvorak):2 + * dzdwi = +bt%(v[2]):2 + * el = +gr%(v[2]):2 + * en_US = +latin%(v[2]):2 + * guj = +in(guj):2 + * gur = +in(guru):2 + * iu = +ca(ike):2 + * lo = +la%(v[2]):2 + * kan = +in(kan):2 + * mi = +mao%(v[2]):2 + * ml = +in(mal):2 + * ogham = +ie(ogam):2 + * ori = +ie(ori):2 + * sapmi = +no(smi):2 + * sr = +srp%(v[2]):2 + * syr = +sy(syc):2 + * tel = +in(tel):2 + * tml = +in(tam):2 + * yu = +srp%(v[2]):2 + * fr-latin9 = +fr(latin9):2 + * us_intl = +us(alt-intl):2 + * ben(basic) = +in(ben):2 + * ben(probhat) = +in(ben_probhat):2 + * dev(basic) = +in(deva):2 + * dvorak($dvoraklayouts) = +%v(dvorak):2 + * dvorak(basic) = +us(dvorak):2 + * dvorak(pl_basic) = +pl(dvorak):2 + * dvorak(pl) = +pl(dvorak_quotes):2 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):2 + * dzdwi(basic) = +bt(basic):2 + * fi(basic) = +fi(classic):2 + * ge(azerty_tskapo) = +fr(geo):2 + * guj(basic) = +in(guj):2 + * gur(basic) = +in(guru):2 + * ie(laptop) = +ie(basic):2 + * ie(CloGaelachLaptop) = +ie(CloGaelach):2 + * in(urd) = +in(urd-phonetic):2 + * iu(basic) = +ca(ike):2 + * lo(basic) = +la(basic):2 + * kan(basic) = +in(kan):2 + * mal(basic) = +in(mal):2 + * mal(mlplusnum) = +in(mal):2 + * ogham(basic) = +ie(ogam):2 + * ogham(laptop) = +ie(ogam):2 + * ogham(is434) = +ie(ogam_is434):2 + * ogham(is434laptop) = +ie(ogam_is434):2 + * ori(basic) = +in(ori):2 + * ro(de) = +ro(winkeys):2 + * ro(us) = +ro(std):2 + * ro(academic) = +ro(std):2 + * ro(std_comma) = +ro(std):2 + * ro(comma) = +ro(basic):2 + * ru(os) = +ru(os_legacy):2 + * pk(urd) = +pk(urd-phonetic):2 + * sapmi(basic) = +no(smi):2 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):2 + * sapmi(sefi) = +fi(smi):2 + * sin(phonetic-static) = +in(sin_phonetic):2 + * syr(basic) = +sy(syc):2 + * syr(phonetic) = +sy(syc_phonetic):2 + * tam(INSCRIPT) = +in(tam):2 + * tam(UNI) = +in(tam_unicode):2 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):2 + * tam(TAB) = +in(tam_TAB):2 + * tam(TSCII) = +in(tam_TSCII):2 + * tel(basic) = +in(tel):2 + * yu(basic) = +srp(latin):2 + * yu(unicode) = +srp(latinunicode):2 + * yu(yz) = +srp(latinyz):2 + * yu(unicodeyz) = +srp(latinunicodeyz):2 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):2 + nokiarx51 * = +nokia_vndr/rx-51(%l[2]%_v[2]):2 + * * = +%l[2]%(v[2]):2 + +! model layout[3] = symbols + * ar = +ara%(v[3]):3 + * ben = +in(ben):3 + * bs = +ba%(v[3]):3 + * cs = +rs%(v[3]):3 + * cz_qwerty = +cz(qwerty):3 + * dev = +in(deva):3 + * dvorak = +us(dvorak):3 + * dzdwi = +bt%(v[3]):3 + * el = +gr%(v[3]):3 + * en_US = +latin%(v[3]):3 + * guj = +in(guj):3 + * gur = +in(guru):3 + * iu = +ca(ike):3 + * lo = +la%(v[3]):3 + * kan = +in(kan):3 + * mi = +mao%(v[3]):3 + * ml = +in(mal):3 + * ogham = +ie(ogam):3 + * ori = +ie(ori):3 + * sapmi = +no(smi):3 + * sr = +srp%(v[3]):3 + * syr = +sy(syc):3 + * tel = +in(tel):3 + * tml = +in(tam):3 + * yu = +srp%(v[3]):3 + * fr-latin9 = +fr(latin9):3 + * us_intl = +us(alt-intl):3 + * ben(basic) = +in(ben):3 + * ben(probhat) = +in(ben_probhat):3 + * dev(basic) = +in(deva):3 + * dvorak($dvoraklayouts) = +%v(dvorak):3 + * dvorak(basic) = +us(dvorak):3 + * dvorak(pl_basic) = +pl(dvorak):3 + * dvorak(pl) = +pl(dvorak_quotes):3 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):3 + * dzdwi(basic) = +bt(basic):3 + * fi(basic) = +fi(classic):3 + * ge(azerty_tskapo) = +fr(geo):3 + * guj(basic) = +in(guj):3 + * gur(basic) = +in(guru):3 + * ie(laptop) = +ie(basic):3 + * ie(CloGaelachLaptop) = +ie(CloGaelach):3 + * in(urd) = +in(urd-phonetic):3 + * iu(basic) = +ca(ike):3 + * lo(basic) = +la(basic):3 + * kan(basic) = +in(kan):3 + * mal(basic) = +in(mal):3 + * mal(mlplusnum) = +in(mal):3 + * ogham(basic) = +ie(ogam):3 + * ogham(laptop) = +ie(ogam):3 + * ogham(is434) = +ie(ogam_is434):3 + * ogham(is434laptop) = +ie(ogam_is434):3 + * ori(basic) = +in(ori):3 + * ro(de) = +ro(winkeys):3 + * ro(us) = +ro(std):3 + * ro(academic) = +ro(std):3 + * ro(std_comma) = +ro(std):3 + * ro(comma) = +ro(basic):3 + * ru(os) = +ru(os_legacy):3 + * pk(urd) = +pk(urd-phonetic):3 + * sapmi(basic) = +no(smi):3 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):3 + * sapmi(sefi) = +fi(smi):3 + * sin(phonetic-static) = +in(sin_phonetic):3 + * syr(basic) = +sy(syc):3 + * syr(phonetic) = +sy(syc_phonetic):3 + * tam(INSCRIPT) = +in(tam):3 + * tam(UNI) = +in(tam_unicode):3 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):3 + * tam(TAB) = +in(tam_TAB):3 + * tam(TSCII) = +in(tam_TSCII):3 + * tel(basic) = +in(tel):3 + * yu(basic) = +srp(latin):3 + * yu(unicode) = +srp(latinunicode):3 + * yu(yz) = +srp(latinyz):3 + * yu(unicodeyz) = +srp(latinunicodeyz):3 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):3 + nokiarx51 * = +nokia_vndr/rx-51(%l[3]%_v[3]):3 + * * = +%l[3]%(v[3]):3 + +! model layout[4] = symbols + * ar = +ara%(v[4]):4 + * ben = +in(ben):4 + * bs = +ba%(v[4]):4 + * cs = +rs%(v[4]):4 + * cz_qwerty = +cz(qwerty):4 + * dev = +in(deva):4 + * dvorak = +us(dvorak):4 + * dzdwi = +bt%(v[4]):4 + * el = +gr%(v[4]):4 + * en_US = +latin%(v[4]):4 + * guj = +in(guj):4 + * gur = +in(guru):4 + * iu = +ca(ike):4 + * lo = +la%(v[4]):4 + * kan = +in(kan):4 + * mi = +mao%(v[4]):4 + * ml = +in(mal):4 + * ogham = +ie(ogam):4 + * ori = +ie(ori):4 + * sapmi = +no(smi):4 + * sr = +srp%(v[4]):4 + * syr = +sy(syc):4 + * tel = +in(tel):4 + * tml = +in(tam):4 + * yu = +srp%(v[4]):4 + * fr-latin9 = +fr(latin9):4 + * us_intl = +us(alt-intl):4 + * ben(basic) = +in(ben):4 + * ben(probhat) = +in(ben_probhat):4 + * dev(basic) = +in(deva):4 + * dvorak($dvoraklayouts) = +%v(dvorak):4 + * dvorak(basic) = +us(dvorak):4 + * dvorak(pl_basic) = +pl(dvorak):4 + * dvorak(pl) = +pl(dvorak_quotes):4 + * dvorak(pl_altquotes) = +pl(dvorak_altquotes):4 + * dzdwi(basic) = +bt(basic):4 + * fi(basic) = +fi(classic):4 + * ge(azerty_tskapo) = +fr(geo):4 + * guj(basic) = +in(guj):4 + * gur(basic) = +in(guru):4 + * ie(laptop) = +ie(basic):4 + * ie(CloGaelachLaptop) = +ie(CloGaelach):4 + * in(urd) = +in(urd-phonetic):4 + * iu(basic) = +ca(ike):4 + * lo(basic) = +la(basic):4 + * kan(basic) = +in(kan):4 + * mal(basic) = +in(mal):4 + * mal(mlplusnum) = +in(mal):4 + * ogham(basic) = +ie(ogam):4 + * ogham(laptop) = +ie(ogam):4 + * ogham(is434) = +ie(ogam_is434):4 + * ogham(is434laptop) = +ie(ogam_is434):4 + * ori(basic) = +in(ori):4 + * ro(de) = +ro(winkeys):4 + * ro(us) = +ro(std):4 + * ro(academic) = +ro(std):4 + * ro(std_comma) = +ro(std):4 + * ro(comma) = +ro(basic):4 + * ru(os) = +ru(os_legacy):4 + * pk(urd) = +pk(urd-phonetic):4 + * sapmi(basic) = +no(smi):4 + * sapmi(nodeadkeys) = +no(smi_nodeadkeys):4 + * sapmi(sefi) = +fi(smi):4 + * sin(phonetic-static) = +in(sin_phonetic):4 + * syr(basic) = +sy(syc):4 + * syr(phonetic) = +sy(syc_phonetic):4 + * tam(INSCRIPT) = +in(tam):4 + * tam(UNI) = +in(tam_unicode):4 + * tam(NUMERAL-KEYBOARD) = +in(tam_keyboard_with_numerals):4 + * tam(TAB) = +in(tam_TAB):4 + * tam(TSCII) = +in(tam_TSCII):4 + * tel(basic) = +in(tel):4 + * yu(basic) = +srp(latin):4 + * yu(unicode) = +srp(latinunicode):4 + * yu(yz) = +srp(latinyz):4 + * yu(unicodeyz) = +srp(latinunicodeyz):4 + nokiarx51 cz(qwerty) = +nokia_vndr/rx-51(cz_qwerty):4 + nokiarx51 * = +nokia_vndr/rx-51(%l[4]%_v[4]):4 + * * = +%l[4]%(v[4]):4 + +! model layout[2] variant[2] = symbols + * ben basic = +in(ben):2 + * ben probhat = +in(ben_probhat):2 + * dev basic = +in(deva):2 + * dvorak $dvoraklayouts = +%v(dvorak):2 + * dvorak basic = +us(dvorak):2 + * dvorak pl_basic = +pl(dvorak):2 + * dvorak pl = +pl(dvorak_quotes):2 + * dvorak pl_altquotes = +pl(dvorak_altquotes):2 + * dzdwi basic = +bt(basic):2 + * fi basic = +fi(classic):2 + * ge azerty_tskapo = +fr(geo):2 + * guj basic = +in(guj):2 + * gur basic = +in(guru):2 + * ie laptop = +ie(basic):2 + * ie CloGaelachLaptop = +ie(CloGaelach):2 + * in urd = +in(urd-phonetic):2 + * iu basic = +ca(ike):2 + * lo basic = +la(basic):2 + * kan basic = +in(kan):2 + * mal basic = +in(mal):2 + * mal mlplusnum = +in(mal):2 + * ogham basic = +ie(ogam):2 + * ogham laptop = +ie(ogam):2 + * ogham is434 = +ie(ogam_is434):2 + * ogham is434laptop = +ie(ogam_is434):2 + * ori basic = +in(ori):2 + * ro de = +ro(winkeys):2 + * ro us = +ro(std):2 + * ro academic = +ro(std):2 + * ro std_comma = +ro(std):2 + * ro comma = +ro(basic):2 + * ru os = +ru(os_legacy):2 + * pk urd = +pk(urd-phonetic):2 + * sapmi basic = +no(smi):2 + * sapmi nodeadkeys = +no(smi_nodeadkeys):2 + * sapmi sefi = +fi(smi):2 + * sin phonetic-static = +in(sin_phonetic):2 + * syr basic = +sy(syc):2 + * syr phonetic = +sy(syc_phonetic):2 + * tam INSCRIPT = +in(tam):2 + * tam UNI = +in(tam_unicode):2 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):2 + * tam TAB = +in(tam_TAB):2 + * tam TSCII = +in(tam_TSCII):2 + * tel basic = +in(tel):2 + * yu basic = +srp(latin):2 + * yu unicode = +srp(latinunicode):2 + * yu yz = +srp(latinyz):2 + * yu unicodeyz = +srp(latinunicodeyz):2 + +! model layout[3] variant[3] = symbols + * ben basic = +in(ben):3 + * ben probhat = +in(ben_probhat):3 + * dev basic = +in(deva):3 + * dvorak $dvoraklayouts = +%v(dvorak):3 + * dvorak basic = +us(dvorak):3 + * dvorak pl_basic = +pl(dvorak):3 + * dvorak pl = +pl(dvorak_quotes):3 + * dvorak pl_altquotes = +pl(dvorak_altquotes):3 + * dzdwi basic = +bt(basic):3 + * fi basic = +fi(classic):3 + * ge azerty_tskapo = +fr(geo):3 + * guj basic = +in(guj):3 + * gur basic = +in(guru):3 + * ie laptop = +ie(basic):3 + * ie CloGaelachLaptop = +ie(CloGaelach):3 + * in urd = +in(urd-phonetic):3 + * iu basic = +ca(ike):3 + * lo basic = +la(basic):3 + * kan basic = +in(kan):3 + * mal basic = +in(mal):3 + * mal mlplusnum = +in(mal):3 + * ogham basic = +ie(ogam):3 + * ogham laptop = +ie(ogam):3 + * ogham is434 = +ie(ogam_is434):3 + * ogham is434laptop = +ie(ogam_is434):3 + * ori basic = +in(ori):3 + * ro de = +ro(winkeys):3 + * ro us = +ro(std):3 + * ro academic = +ro(std):3 + * ro std_comma = +ro(std):3 + * ro comma = +ro(basic):3 + * ru os = +ru(os_legacy):3 + * pk urd = +pk(urd-phonetic):3 + * sapmi basic = +no(smi):3 + * sapmi nodeadkeys = +no(smi_nodeadkeys):3 + * sapmi sefi = +fi(smi):3 + * sin phonetic-static = +in(sin_phonetic):3 + * syr basic = +sy(syc):3 + * syr phonetic = +sy(syc_phonetic):3 + * tam INSCRIPT = +in(tam):3 + * tam UNI = +in(tam_unicode):3 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):3 + * tam TAB = +in(tam_TAB):3 + * tam TSCII = +in(tam_TSCII):3 + * tel basic = +in(tel):3 + * yu basic = +srp(latin):3 + * yu unicode = +srp(latinunicode):3 + * yu yz = +srp(latinyz):3 + * yu unicodeyz = +srp(latinunicodeyz):3 + +! model layout[4] variant[4] = symbols + * ben basic = +in(ben):4 + * ben probhat = +in(ben_probhat):4 + * dev basic = +in(deva):4 + * dvorak $dvoraklayouts = +%v(dvorak):4 + * dvorak basic = +us(dvorak):4 + * dvorak pl_basic = +pl(dvorak):4 + * dvorak pl = +pl(dvorak_quotes):4 + * dvorak pl_altquotes = +pl(dvorak_altquotes):4 + * dzdwi basic = +bt(basic):4 + * fi basic = +fi(classic):4 + * ge azerty_tskapo = +fr(geo):4 + * guj basic = +in(guj):4 + * gur basic = +in(guru):4 + * ie laptop = +ie(basic):4 + * ie CloGaelachLaptop = +ie(CloGaelach):4 + * in urd = +in(urd-phonetic):4 + * iu basic = +ca(ike):4 + * lo basic = +la(basic):4 + * kan basic = +in(kan):4 + * mal basic = +in(mal):4 + * mal mlplusnum = +in(mal):4 + * ogham basic = +ie(ogam):4 + * ogham laptop = +ie(ogam):4 + * ogham is434 = +ie(ogam_is434):4 + * ogham is434laptop = +ie(ogam_is434):4 + * ori basic = +in(ori):4 + * ro de = +ro(winkeys):4 + * ro us = +ro(std):4 + * ro academic = +ro(std):4 + * ro std_comma = +ro(std):4 + * ro comma = +ro(basic):4 + * ru os = +ru(os_legacy):4 + * pk urd = +pk(urd-phonetic):4 + * sapmi basic = +no(smi):4 + * sapmi nodeadkeys = +no(smi_nodeadkeys):4 + * sapmi sefi = +fi(smi):4 + * sin phonetic-static = +in(sin_phonetic):4 + * syr basic = +sy(syc):4 + * syr phonetic = +sy(syc_phonetic):4 + * tam INSCRIPT = +in(tam):4 + * tam UNI = +in(tam_unicode):4 + * tam NUMERAL-KEYBOARD = +in(tam_keyboard_with_numerals):4 + * tam TAB = +in(tam_TAB):4 + * tam TSCII = +in(tam_TSCII):4 + * tel basic = +in(tel):4 + * yu basic = +srp(latin):4 + * yu unicode = +srp(latinunicode):4 + * yu yz = +srp(latinyz):4 + * yu unicodeyz = +srp(latinunicodeyz):4 + +! model = symbols + $evdevkbds = +inet(evdev)+inet(%m) + applealu_jis = +inet(evdev)+macintosh_vndr/jp(alujiskeys) + * = +inet(evdev) + +! layout variant = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + +! layout[1] variant[1] = compat + de neo = +caps(caps_lock)+misc(assign_shift_left_action)+level5(level5_lock) + +! layout[2] variant[2] = compat + de neo = +caps(caps_lock):2+misc(assign_shift_left_action):2+level5(level5_lock):2 + +! layout[3] variant[3] = compat + de neo = +caps(caps_lock):3+misc(assign_shift_left_action):3+level5(level5_lock):3 + +! layout[4] variant[4] = compat + de neo = +caps(caps_lock):4+misc(assign_shift_left_action):4+level5(level5_lock):4 + +! model layout = compat + pc98 nec_vndr/jp = pc98(basic) + * jp = complete+japan + olpc * = olpc + * * = complete + +! model layout[1] = compat + * * = complete + +! model = types + $macs = complete+numpad(mac) + $applealu = complete+numpad(mac) + $nokiamodels = complete+nokia + * = complete + +! layout option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle) + * misc:typo = +typo(base) + +! layout[1] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):1 + * misc:typo = +typo(base):1 + +! layout[2] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):2 + * misc:typo = +typo(base):2 + +! layout[3] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):3 + * misc:typo = +typo(base):3 + +! layout[4] option = symbols + $threelevellayouts grp:alts_toggle = +level3(ralt_switch_for_alts_toggle):4 + * misc:typo = +typo(base):4 + +! option = symbols + grp:shift_toggle = +group(shifts_toggle) + altwin:menu = +altwin(menu) + altwin:meta_alt = +altwin(meta_alt) + altwin:ctrl_win = +altwin(ctrl_win) + altwin:ctrl_alt_win = +altwin(ctrl_alt_win) + altwin:meta_win = +altwin(meta_win) + altwin:left_meta_win = +altwin(left_meta_win) + altwin:hyper_win = +altwin(hyper_win) + altwin:alt_super_win = +altwin(alt_super_win) + altwin:swap_lalt_lwin = +altwin(swap_lalt_lwin) + grp:switch = +group(switch) + grp:lswitch = +group(lswitch) + grp:win_switch = +group(win_switch) + grp:lwin_switch = +group(lwin_switch) + grp:rwin_switch = +group(rwin_switch) + grp:toggle = +group(toggle) + grp:shifts_toggle = +group(shifts_toggle) + grp:ctrls_toggle = +group(ctrls_toggle) + grp:alts_toggle = +group(alts_toggle) + grp:caps_toggle = +capslock(grouplock) + grp:caps_switch = +capslock(groupshift) + grp:shift_caps_toggle = +group(shift_caps_toggle) + grp:shift_caps_switch = +group(shift_caps_switch) + grp:win_menu_switch = +group(win_menu_switch) + grp:alt_caps_toggle = +group(alt_caps_toggle) + grp:alt_space_toggle = +group(alt_space_toggle) + grp:menu_toggle = +group(menu_toggle) + grp:lwin_toggle = +group(lwin_toggle) + grp:rwin_toggle = +group(rwin_toggle) + grp:lshift_toggle = +group(lshift_toggle) + grp:rshift_toggle = +group(rshift_toggle) + grp:rctrl_switch = +group(rctrl_switch) + grp:lctrl_toggle = +group(lctrl_toggle) + grp:rctrl_toggle = +group(rctrl_toggle) + grp:lalt_toggle = +group(lalt_toggle) + grp:sclk_toggle = +group(sclk_toggle) + grp:lctrl_rctrl_switch = +group(lctrl_rctrl_switch) + grp:lctrl_lwin_rctrl_menu = +group(lctrl_lwin_rctrl_menu) + grp:lctrl_lalt_toggle = +group(lctrl_lalt_toggle) + grp:rctrl_ralt_toggle = +group(rctrl_ralt_toggle) + grp:ctrl_alt_toggle = +group(ctrl_alt_toggle) + grp:ctrl_alt_toggle_bidir = +group(ctrl_alt_toggle_bidir) + grp:lctrl_lshift_toggle = +group(lctrl_lshift_toggle) + grp:rctrl_rshift_toggle = +group(rctrl_rshift_toggle) + grp:ctrl_shift_toggle = +group(ctrl_shift_toggle) + grp:ctrl_shift_toggle_bidir = +group(ctrl_shift_toggle_bidir) + grp:lalt_lshift_toggle = +group(lalt_lshift_toggle) + grp:ralt_rshift_toggle = +group(ralt_rshift_toggle) + grp:alt_shift_toggle = +group(alt_shift_toggle) + grp:alt_shift_toggle_bidir = +group(alt_shift_toggle_bidir) + lv3:switch = +level3(switch) + lv3:ralt_switch = +level3(ralt_switch) + lv3:ralt_switch_multikey = +level3(ralt_switch_multikey) + lv3:ralt_alt = +level3(ralt_alt) + lv3:lalt_switch = +level3(lalt_switch) + lv3:alt_switch = +level3(alt_switch) + lv3:menu_switch = +level3(menu_switch) + lv3:win_switch = +level3(win_switch) + lv3:lwin_switch = +level3(lwin_switch) + lv3:rwin_switch = +level3(rwin_switch) + lv3:enter_switch = +level3(enter_switch) + caps:capslock = +capslock(capslock) + caps:numlock = +capslock(numlock) + caps:shiftlock = +capslock(shiftlock) + caps:swapescape = +capslock(swapescape) + caps:escape = +capslock(escape) + caps:backspace = +capslock(backspace) + caps:super = +capslock(super) + caps:hyper = +capslock(hyper) + caps:none = +capslock(none) + caps:ctrl_modifier = +capslock(ctrl_modifier) + ctrl:nocaps = +ctrl(nocaps) + ctrl:lctrl_meta = +ctrl(lctrl_meta) + ctrl:swapcaps = +ctrl(swapcaps) + ctrl:ac_ctrl = +ctrl(ac_ctrl) + ctrl:aa_ctrl = +ctrl(aa_ctrl) + ctrl:rctrl_ralt = +ctrl(rctrl_ralt) + ctrl:menu_rctrl = +ctrl(menu_rctrl) + ctrl:ralt_rctrl = +ctrl(ralt_rctrl) + compose:ralt = +compose(ralt) + compose:lwin = +compose(lwin) + compose:rwin = +compose(rwin) + compose:menu = +compose(menu) + compose:lctrl = +compose(lctrl) + compose:rctrl = +compose(rctrl) + compose:caps = +compose(caps) + compose:102 = +compose(102) + compose:paus = +compose(paus) + compose:prsc = +compose(prsc) + compose:sclk = +compose(sclk) + srvrkeys:none = +srvr_ctrl(no_srvr_keys) + eurosign:e = +eurosign(e) + eurosign:2 = +eurosign(2) + eurosign:4 = +eurosign(4) + eurosign:5 = +eurosign(5) + rupeesign:4 = +rupeesign(4) + keypad:oss = +keypad(oss) + keypad:legacy = +keypad(legacy) + keypad:legacy_wang = +keypad(legacy_wang) + keypad:oss_wang = +keypad(oss_wang) + keypad:future = +keypad(future) + keypad:future_wang = +keypad(future_wang) + keypad:hex = +keypad(ops)+keypad(hex) + keypad:atm = +keypad(ops)+keypad(hex)+keypad(atm) + nbsp:none = +nbsp(none) + nbsp:level2 = +nbsp(level2) + nbsp:level3 = +nbsp(level3) + nbsp:level3s = +nbsp(level3s) + nbsp:level3n = +nbsp(level3n) + nbsp:level4 = +nbsp(level4) + nbsp:level4n = +nbsp(level4n) + nbsp:level4nl = +nbsp(level4nl) + japan:nicola_f_bs = +jp(nicola_f_bs) + japan:hztg_escape = +jp(hztg_escape) + kpdl:dot = +kpdl(dot) + kpdl:comma = +kpdl(comma) + kpdl:dotoss = +kpdl(dotoss) + kpdl:dotoss_latin9 = +kpdl(dotoss_latin9) + kpdl:commaoss = +kpdl(commaoss) + kpdl:momayyezoss = +kpdl(momayyezoss) + kpdl:kposs = +kpdl(kposs) + kpdl:semi = +kpdl(semi) + shift:breaks_caps = +shift(breaks_caps) + esperanto:qwerty = +epo(qwerty) + esperanto:dvorak = +epo(dvorak) + terminate:ctrl_alt_bksp = +terminate(ctrl_alt_bksp) + keypad:pointerkeys = +keypad(pointerkeys) + apple:alupckeys = +macintosh_vndr/apple(alupckeys) + shift:both_capslock = +shift(both_capslock) + shift:lshift_both_capslock = +shift(lshift_both_capslock) + shift:rshift_both_capslock = +shift(rshift_both_capslock) + shift:both_capslock_cancel = +shift(both_capslock_cancel) + shift:lshift_both_capslock_cancel = +shift(lshift_both_capslock_cancel) + shift:rshift_both_capslock_cancel = +shift(rshift_both_capslock_cancel) + shift:both_shiftlock = +shift(both_shiftlock) + shift:lshift_both_shiftlock = +shift(lshift_both_shiftlock) + shift:rshift_both_shiftlock = +shift(rshift_both_shiftlock) + lv3:caps_switch = +level3(caps_switch) + lv3:bksl_switch = +level3(bksl_switch) + lv3:lsgt_switch = +level3(lsgt_switch) + lv3:caps_switch_latch = +level3(caps_switch_latch) + lv3:bksl_switch_latch = +level3(bksl_switch_latch) + lv3:lsgt_switch_latch = +level3(lsgt_switch_latch) + lv5:lsgt_switch_lock = +level5(lsgt_switch_lock) + lv5:ralt_switch_lock = +level5(ralt_switch_lock) + lv5:lwin_switch_lock = +level5(lwin_switch_lock) + lv5:rwin_switch_lock = +level5(rwin_switch_lock) + lv5:lsgt_switch_lock_cancel = +level5(lsgt_switch_lock_cancel) + lv5:ralt_switch_lock_cancel = +level5(ralt_switch_lock_cancel) + lv5:lwin_switch_lock_cancel = +level5(lwin_switch_lock_cancel) + lv5:rwin_switch_lock_cancel = +level5(rwin_switch_lock_cancel) + + + +! option = compat + grp_led:num = +lednum(group_lock) + grp_led:caps = +ledcaps(group_lock) + grp_led:scroll = +ledscroll(group_lock) + caps:shiftlock = +ledcaps(shift_lock) + grab:break_actions = +xfree86(grab_break) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/groups b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/groups new file mode 100644 index 0000000..15dc3c5 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/groups @@ -0,0 +1,20 @@ +! $model_group = pc101 pc102 \ + pc104\ + pc105\ + pc106 +! $layout_group = ar br cr us +! $variant_group = + +! model = keycodes + $model_group = something(%m) + * = default_keycodes + +! layout variant = symbols + $layout_group * = my_symbols+%(v) + * * = default_symbols + +! model = types + * = default_types + +! model = compat + * = default_compat diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/index b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/index new file mode 100644 index 0000000..cc97ad1 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/index @@ -0,0 +1,28 @@ +! $layouts = al az br cn us + +! layout option = symbols + $layouts some:opt = +extra + +! layout[1] option = symbols + $layouts some:opt = +extra:1 + +! layout[2] option = symbols + $layouts some:opt = +extra:2 + +! layout[3] option = symbols + $layouts some:opt = +extra:3 + +! layout[4] option = symbols + $layouts some:opt = +extra:4 + +! model = symbols + * = default_symbols + +! model = keycodes + * = default_keycodes + +! model = types + * = default_types + +! model = compat + * = default_compat diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/multiple-options b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/multiple-options new file mode 100644 index 0000000..afbdc9f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/multiple-options @@ -0,0 +1,27 @@ +! model = keycodes + my_model = my_keycodes + * = default_keycodes + +! layout variant = symbols + my_layout my_variant = my_symbols+extra_variant + +! layout = symbols + my_layout = my_symbols + * = default_symbols + +! model = types + my_model = my_types + * = default_types + +! model = compat + my_model = my_compat + * = default_compat + +! option = compat + option111 = +substring + option1 = +some:compat + option11 = +group(bla) + +! option = symbols + option3 = +compose(foo)+keypad(bar) + colon:opt = +altwin(menu) diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/simple b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/simple new file mode 100644 index 0000000..446954e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/rules/simple @@ -0,0 +1,21 @@ +! model = keycodes + my_model = my_keycodes + * = default_keycodes + +! layout variant = symbols + my_layout my_variant = my_symbols+extra_variant + +! layout = symbols + my_layout = my_symbols + * = default_symbols + +! model = types + my_model = my_types + * = default_types + +! model = compat + my_model = my_compat + * = default_compat + +! option = compat + my_option = |some:compat diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/altwin b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/altwin new file mode 100644 index 0000000..76a289a --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/altwin @@ -0,0 +1,109 @@ +// Meta is mapped to second level of Alt keys. +partial modifier_keys +xkb_symbols "meta_alt" { + key { [ Alt_L, Meta_L ] }; + key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Alt_R, Meta_R ] }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; +// modifier_map Mod4 {}; +}; + +// Alt is mapped to the Win keys (and the usual Alt keys). +partial modifier_keys +xkb_symbols "alt_win" { + key { [ Alt_L ] }; + key { [ Alt_R ] }; + modifier_map Mod1 { , }; +}; + +// Ctrl is mapped to the Win keys (and the usual Ctrl keys). +partial modifier_keys +xkb_symbols "ctrl_win" { + key { [ Control_L ] }; + key { [ Control_R ] }; + modifier_map Control { , }; +}; + +// Ctrl is mapped to the Alt keys, Alt to the Win keys, and Win to the Ctrl keys. +partial modifier_keys +xkb_symbols "ctrl_alt_win" { + key { [ Control_L, Control_L ] }; + key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Control_R, Control_R ] }; + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + modifier_map Control { , }; + modifier_map Mod1 { , }; + modifier_map Mod4 { , }; +}; + +// Meta is mapped to the Win keys. +partial modifier_keys +xkb_symbols "meta_win" { + key { [ Alt_L, Alt_L ] }; + key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Alt_R, Alt_R ] }; + key { [ Meta_L ] }; + key { [ Meta_R ] }; + modifier_map Mod1 { Alt_L, Alt_R }; + modifier_map Mod4 { , Meta_L, Meta_R }; +}; + +// Meta is mapped to the left Win key. +partial modifier_keys +xkb_symbols "left_meta_win" { + key { [ Alt_L, Alt_L ] }; + key { [ Meta_L ] }; + modifier_map Mod1 { Alt_L }; + modifier_map Mod4 { , Meta_L }; +}; + +// Hyper is mapped to the Win keys. +partial modifier_keys +xkb_symbols "hyper_win" { + key { [ Hyper_L ] }; + key { [ Hyper_R ] }; + modifier_map Mod4 { Hyper_L, Hyper_R }; +}; + +// Menu is mapped to the Menu key. +partial modifier_keys +xkb_symbols "menu" { + key { [ Menu ] }; +}; + +// Layout for Tux key caps with additional right Alt key +partial modifier_keys +xkb_symbols "alt_super_win" { + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_L ]}; + key { [ Super_R ] }; + modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R }; + modifier_map Mod4 { Super_L, Super_R }; +}; + +// Swap the Alt and Win keys. +partial modifier_keys +xkb_symbols "swap_alt_win" { + include "altwin(swap_lalt_lwin)" + include "altwin(swap_ralt_rwin)" +}; + +// Swap the left Alt and Win keys. +hidden partial modifier_keys +xkb_symbols "swap_lalt_lwin" { + key { type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Super_L ] }; + key { [ Alt_L, Meta_L ] }; +}; + +// Swap the right Alt and Win keys. +hidden partial modifier_keys +xkb_symbols "swap_ralt_rwin" { + key { type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Super_R ] }; + key { [ Alt_R, Meta_R ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ca b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ca new file mode 100644 index 0000000..2ba48b4 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ca @@ -0,0 +1,529 @@ +default partial +xkb_symbols "fr" { + name[Group1] = "French (Canada)"; + + key { [ numbersign, bar, backslash ] }; + key { [ 1, exclam, plusminus ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, slash, sterling ] }; + key { [ 4, dollar, cent ] }; + key { [ 5, percent, currency ] }; + key { [ 6, question, notsign ] }; + key { [ 7, ampersand, brokenbar ] }; + key { [ 8, asterisk, twosuperior ] }; + key { [ 9, parenleft, threesuperior ] }; + key { [ 0, parenright, onequarter ] }; + key { [ minus, underscore, onehalf ] }; + key { [ equal, plus, threequarters ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O, section ] }; + key { [ p, P, paragraph ] }; + key { [dead_circumflex, dead_circumflex, bracketleft ] }; + key { [ dead_cedilla, dead_diaeresis, bracketright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon, asciitilde ] }; + key { [dead_grave, dead_grave, braceleft ] }; + key { [ less, greater, braceright ] }; + + key { [guillemotleft, guillemotright, degree] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M, mu ] }; + key { [ comma, apostrophe, macron ] }; + key { [ period, period, hyphen ] }; + key { [ eacute, Eacute, dead_acute ] }; + + key { [ space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +xkb_symbols "fr-dvorak" { + name[Group1] = "French (Canada, Dvorak)"; + + key { [ numbersign, bar, backslash ] }; + key { [ 1, exclam, plusminus ] }; + key { [ 2, quotedbl, at ] }; + key { [ 3, slash, sterling ] }; + key { [ 4, dollar, cent ] }; + key { [ 5, percent, currency ] }; + key { [ 6, question, notsign ] }; + key { [ 7, ampersand, brokenbar ] }; + key { [ 8, asterisk, twosuperior ] }; + key { [ 9, parenleft, threesuperior ] }; + key { [ 0, parenright, onequarter ] }; + key { [dead_circumflex, dead_circumflex, bracketleft ] }; + key { [ dead_cedilla, dead_diaeresis, bracketright ] }; + + key { [dead_grave, dead_grave, braceleft ] }; + key { [ comma, apostrophe, macron ] }; + key { [ period, period, hyphen ] }; + key { [ p, P, paragraph ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ eacute, Eacute, dead_acute ] }; + key { [ equal, plus, threequarters ] }; + + key { [ a, A ] }; + key { [ o, O, section ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, underscore, onehalf ] }; + key { [ less, greater, braceright ] }; + + key { [guillemotleft, guillemotright, degree] }; + key { [ semicolon, colon, asciitilde ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M, mu ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; + + key { [ space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +partial +xkb_symbols "fr-legacy" { + + include "ca(fr)" + + name[Group1] = "French (Canada, legacy)"; + + key { [ degree, degree, notsign ] }; + key { [ 1, exclam, onesuperior ] }; + + key { [ 3, numbersign, threesuperior ] }; + key { [ 4, dollar, onequarter ] }; + key { [ 5, percent, onehalf ] }; + key { [ 6, question, threequarters ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, bracketleft ] }; + key { [ 9, parenleft, bracketright, plusminus ] }; + key { [ 0, parenright, braceright ] }; + key { [ minus, underscore, bar, questiondown] }; + key { [ equal, plus, dead_cedilla ] }; + + key { [ r, R, paragraph, registered ] }; + key { [ y, Y, yen ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [dead_circumflex, dead_circumflex, degree ] }; + key { [ ccedilla, Ccedilla, dead_tilde, dead_diaeresis ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, ordfeminine ] }; + key { [ semicolon, colon, dead_acute, dead_acute ] }; + key { [ egrave, Egrave ] }; + key { [ agrave, Agrave, dead_grave ] }; + + key { [ ugrave, Ugrave, backslash, bar ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ c, C, cent, copyright ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, apostrophe, less ] }; + key { [ period, period, greater ] }; + key { [ eacute, Eacute, slash ] }; +}; + +partial +xkb_symbols "multi" { + + include "ca(fr)" + + name[Group1] = "Canadian Multilingual (first part)"; + + key { [ slash, backslash, bar ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, question ] }; + key { [ 7, ampersand, braceleft ] }; + key { [ 8, asterisk, braceright ] }; + key { [ 9, parenleft, bracketleft ] }; + key { [ 0, parenright, bracketright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus, notsign ] }; + + key { [ o, O ] }; + key { [ p, P ] }; + key { [dead_circumflex, dead_diaeresis, dead_grave ] }; + key { [ ccedilla, Ccedilla, asciitilde ] }; + + key { [ semicolon, colon, degree ] }; + key { [ egrave, Egrave ] }; + key { [ agrave, Agrave ] }; + + key { [ ugrave, Ugrave ] }; + key { [ z, Z, guillemotleft ] }; + key { [ x, X, guillemotright ] }; + key { [ comma, apostrophe, less ] }; + key { [ period, quotedbl, greater ] }; + key { [ eacute, Eacute ] }; +}; + +partial +xkb_symbols "multi-2gr" { + + name[Group1] = "Canadian Multilingual (second part)"; + + key { [ NoSymbol, hyphen ] }; + key { [ onesuperior, exclamdown ] }; + key { [ twosuperior, NoSymbol ] }; + key { [ threesuperior, sterling ] }; + key { [ onequarter, currency ] }; + key { [ onehalf,threeeighths ] }; + key { [ threequarters, fiveeighths ] }; + key { [ NoSymbol,seveneighths ] }; + key { [ NoSymbol, trademark ] }; + key { [ NoSymbol, plusminus ] }; + + key { [ NoSymbol, questiondown] }; + key { [ dead_cedilla, dead_ogonek ] }; + + key { [ NoSymbol, Greek_OMEGA ] }; + key { [ lstroke, Lstroke ] }; + key { [ oe, OE ] }; + key { [ paragraph, registered ] }; + key { [ tslash, Tslash ] }; + key { [ leftarrow, yen ] }; + key { [ downarrow, uparrow ] }; + key { [ rightarrow, idotless ] }; + key { [ oslash, Ooblique ] }; + key { [ thorn, THORN ] }; + key { [ NoSymbol, dead_abovering ] }; + key { [ dead_tilde, dead_macron ] }; + + key { [ ae, AE ] }; + key { [ ssharp, section ] }; + key { [ eth, ETH ] }; + key { [ NoSymbol, ordfeminine ] }; + key { [ eng, ENG ] }; + key { [ hstroke, Hstroke ] }; + key { [ U0133, U0132 ] }; + key { [ kra, NoSymbol ] }; + key { [ U0140, U013F ] }; + key { [ dead_acute, dead_doubleacute ] }; + key { [ NoSymbol, dead_caron ] }; + key { [ NoSymbol, dead_breve ] }; + + + key { [ NoSymbol, brokenbar ] }; + + key { [ cent, copyright ] }; + key { [ leftdoublequotemark, leftsinglequotemark ] }; + key { [ rightdoublequotemark, rightsinglequotemark ] }; + key { [ U0149, U266A ] }; + key { [ mu, masculine ] }; + key { [ Greek_horizbar, multiply ] }; + key { [ periodcentered, division ] }; + key { [ NoSymbol, dead_abovedot ] }; +}; + +// based on +// Inuktitut keyboard for X11 +// written by Pablo Saratxaga + +alphanumeric_keys +xkb_symbols "ike" { + + name[Group1]= "Inuktitut"; + + key { [ 0x01001595, 1 ] }; + key { [ 0x01001449, 2 ] }; + key { [ 0x01001550, 3 ] }; + key { [ 0x01001483, 4 ] }; + key { [ 0x01001466, 5 ] }; + key { [ 0x01001585, 6 ] }; + key { [ 0x010014bb, 7 ] }; + key { [ 0x010014d0, 8 ] }; + key { [ 0x010014ea, 9 ] }; + key { [ 0x0100153e, 0 ] }; + key { [ minus, underscore ] }; + key { [ 0x0100155d, equal ] }; + + key { [ 0x0100158f, 0x0100148b ] }; + key { [ 0x01001403, 0x01001431 ] }; + key { [ 0x0100157f, 0x01001546 ] }; + key { [ 0x0100146d, 0x01001596 ] }; + key { [ 0x0100144e, 0x01001671 ] }; + key { [ 0x010014ef, 0x01001673 ] }; + key { [ 0x010014a5, 0x01001675 ] }; + key { [ 0x010014c2, 0x010015a4 ] }; + key { [ 0x010014d5, 0x010015a0 ] }; + key { [ 0x01001528, 0x010015a6 ] }; + key { [ 0x010014a1, 0x01001505 ] }; + key { [ dead_abovedot, 0x0100141e] }; + + key { [ 0x01001591, 0x0100148d ] }; + key { [ 0x01001405, 0x01001433 ] }; + key { [ 0x01001581, 0x01001548 ] }; + key { [ 0x0100146f, 0x01001555 ] }; + key { [ 0x01001450, parenleft ] }; + key { [ 0x010014f1, parenright ] }; + key { [ 0x010014a7, 0x0100152a ] }; + key { [ 0x010014c4, 0x01001557 ] }; + key { [ 0x010014d7, 0x010015a2 ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ 0x01001593, 0x01001490 ] }; + key { [ 0x0100140a, 0x01001438 ] }; + key { [ 0x01001583, 0x0100154b ] }; + key { [ 0x01001472, question ] }; + key { [ 0x01001455, 0x0100157c ] }; + key { [ 0x010014f4, 0x010014c7 ] }; + key { [ 0x010014aa, 0x010014da ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ 0x0100152d, 0x01001559 ] }; + + key { [ 0x0100157b, 0x01001575 ] }; + key { [ 0x01001579, 0x01001577 ] }; + key { [ backslash, bar ] }; +}; + +partial +xkb_symbols "multix" { + + name[Group1] = "Canadian Multilingual"; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ slash, backslash, bar, NoSymbol, + NoSymbol, hyphen ] }; + key { [ 1, exclam, plusminus, NoSymbol, + onesuperior, exclamdown ] }; + key { [ 2, at, at, NoSymbol, + twosuperior, NoSymbol ] }; + key { [ 3, numbersign, sterling, NoSymbol, + threesuperior, sterling ] }; + key { [ 4, dollar, cent, NoSymbol, + onequarter, currency ] }; + key { [ 5, percent, currency, NoSymbol, + onehalf, threeeighths ] }; + key { [ 6, question, notsign, NoSymbol, + threequarters, fiveeighths ] }; + key { [ 7, ampersand, braceleft, NoSymbol, + NoSymbol, seveneighths ] }; + key { [ 8, asterisk, braceright, NoSymbol, + NoSymbol, trademark ] }; + key { [ 9, parenleft, bracketleft, NoSymbol, + NoSymbol, plusminus ] }; + key { [ 0, parenright, bracketright, NoSymbol ] }; + key { [ minus, underscore, onehalf, NoSymbol, + NoSymbol, questiondown] }; + key { [ equal, plus, notsign, NoSymbol, + dead_cedilla, dead_ogonek ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ q, Q, NoSymbol, NoSymbol, + NoSymbol, Greek_OMEGA ] }; + key { [ w, W, NoSymbol, NoSymbol, + lstroke, Lstroke ] }; + key { [ e, E, NoSymbol, NoSymbol, + oe, OE ] }; + key { [ r, R, NoSymbol, NoSymbol, + paragraph, registered ] }; + key { [ t, T, NoSymbol, NoSymbol, + tslash, Tslash ] }; + key { [ y, Y, NoSymbol, NoSymbol, + leftarrow, yen ] }; + key { [ u, U, NoSymbol, NoSymbol, + downarrow, uparrow ] }; + key { [ i, I, NoSymbol, NoSymbol, + rightarrow, idotless ] }; + key { [ o, O, section, NoSymbol, + oslash, Ooblique ] }; + key { [ p, P, paragraph, NoSymbol, + thorn, THORN ] }; + + key.type[group1]="EIGHT_LEVEL"; + key { [dead_circumflex, dead_diaeresis, dead_grave, NoSymbol, + NoSymbol, dead_abovering ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ ccedilla, Ccedilla, asciitilde, NoSymbol, + dead_tilde, dead_macron ] }; + + key { [ a, A, NoSymbol, NoSymbol, + ae, AE ] }; + key { [ s, S, NoSymbol, NoSymbol, + ssharp, section ] }; + key { [ d, D, NoSymbol, NoSymbol, + eth, ETH ] }; + key { [ f, F, NoSymbol, NoSymbol, + NoSymbol, ordfeminine ] }; + key { [ g, G, NoSymbol, NoSymbol, + eng, ENG ] }; + key { [ h, H, NoSymbol, NoSymbol, + hstroke, Hstroke ] }; + key { [ j, J, NoSymbol, NoSymbol, + U0133, U0132 ] }; + key { [ k, K, NoSymbol, NoSymbol, + kra, NoSymbol ] }; + key { [ l, L, NoSymbol, NoSymbol, + U0140, U013F ] }; + + key.type[group1]="EIGHT_LEVEL"; + key { [ semicolon, colon, degree, NoSymbol, + dead_acute, dead_doubleacute ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ egrave, Egrave, braceleft, NoSymbol, + NoSymbol, dead_caron ] }; + key { [ agrave, Agrave, braceright, NoSymbol, + NoSymbol, dead_breve ] }; + + key { [ ugrave, Ugrave, degree, NoSymbol, + NoSymbol, brokenbar ] }; + + key.type[group1]="FOUR_LEVEL_SEMIALPHABETIC"; + key { [ z, Z, guillemotleft, NoSymbol ] }; + key { [ x, X, guillemotright, NoSymbol ] }; + + key.type[group1]="EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ c, C, NoSymbol, NoSymbol, + cent, copyright ] }; + key { [ v, V, NoSymbol, NoSymbol, + leftdoublequotemark, leftsinglequotemark ] }; + key { [ b, B, NoSymbol, NoSymbol, + rightdoublequotemark, rightsinglequotemark ] }; + key { [ n, N, NoSymbol, NoSymbol, + U0149, U266A ] }; + key { [ m, M, mu, NoSymbol, + mu, masculine ] }; + key { [ comma, apostrophe, less, NoSymbol, + Greek_horizbar, multiply ] }; + key { [ period, quotedbl, greater, NoSymbol, + periodcentered, division ] }; + key { [ eacute, Eacute, dead_acute, NoSymbol, + NoSymbol, dead_abovedot ] }; + + include "nbsp(level3s)" + + modifier_map Control{ Control_L }; + + include "level3(ralt_switch)" + include "level5(rctrl_switch)" +}; + +// OLPC Section +xkb_symbols "olpc" { + + include "ca(fr)" + + key { [ 2, quotedbl, ograve, Ograve ] }; + key { [ 3, slash, at, VoidSymbol ] }; + + key { [ e, E, EuroSign, VoidSymbol] }; + + key { [ period, period, 0x1002010 ] }; + + key { [ guillemotleft, guillemotright, degree, VoidSymbol ] }; +}; + +partial alphanumeric_keys +xkb_symbols "eng" { + include "us(basic)" + name[Group1] = "English (Canada)"; +}; + +// EXTRAS: + +partial alphanumeric_keys +xkb_symbols "kut" { + + // Ejective U0313 and acute accents are taken from shs layout. + include "ca(shs)" + + name[Group1]= "Kutenai"; + + // Alveolar Click + key { [ t, T,U01C2 ,U01C2 ] }; + + //Cent sign + key { [ c, C,U00A2,U00A2 ] }; + + //Mid dot + key { [ period, greater,U00B7 ] }; + + //Glottal stop + key { [ slash, question, U0294 ] }; + + //COMBINING COMMA ABOVE RIGHT + key { [ apostrophe, quotedbl, U0315,U0315 ] }; + + //MODIFIER LETTER RIGHT HALF RING + key { [ semicolon, colon,U02BE,U02BE ] }; +}; + +// Secwepemctsin keyboard for X11 +// written by Neskie Manuel +partial alphanumeric_keys +xkb_symbols "shs" { + + include "us" + + name[Group1]= "Secwepemctsin"; + + // Using a "dead key" to get a COMBINING COMMA ABOVE + // for ejectives on q, l, t, s, m, g, k, p, w, y, r. + // The Compose key is used for the other acutes and grave. + + key { [ comma, less, U0313 ] }; + key { [ a, A, aacute, Aacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + + include "level3(ralt_switch)" + include "compose(rctrl)" +}; + + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ca(sun_type6)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/capslock b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/capslock new file mode 100644 index 0000000..3f4a0cd --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/capslock @@ -0,0 +1,74 @@ +default hidden partial modifier_keys +xkb_symbols "capslock" { + replace key { [ Caps_Lock ] }; + modifier_map Lock { Caps_Lock }; +}; + +hidden partial modifier_keys +xkb_symbols "shiftlock" { + replace key { [ Shift_Lock ] }; + modifier_map Shift { Shift_Lock }; +}; + +hidden partial modifier_keys +xkb_symbols "grouplock" { + replace key { [ ISO_Next_Group, Caps_Lock ] }; +}; + +hidden partial modifier_keys +xkb_symbols "swapescape" { + key { [ Escape ] }; + key { [ Caps_Lock ] }; +}; + +hidden partial modifier_keys +xkb_symbols "groupshift" { + key { + type[Group1] = "PC_ALT_LEVEL2", + [ Mode_switch, Caps_Lock ] + }; +}; + +hidden partial modifier_keys +xkb_symbols "escape" { + key { [ Escape ] }; +}; + +hidden partial modifier_keys +xkb_symbols "backspace" { + key { [ BackSpace ] }; +}; + +hidden partial modifier_keys +xkb_symbols "super" { + key { [ Super_L ] }; + modifier_map Mod4 { }; +}; + +hidden partial modifier_keys +xkb_symbols "hyper" { + key { [ Hyper_L ] }; + modifier_map Mod4 { }; +}; + +hidden partial modifier_keys +xkb_symbols "none" { + key { [ VoidSymbol ] }; +}; + +hidden partial modifier_keys +xkb_symbols "numlock" { + key { [ Num_Lock ] }; +}; + +// This changes the key to become a Control modifier, +// but it will still produce the Caps_Lock keysym. +hidden partial modifier_keys +xkb_symbols "ctrl_modifier" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ Caps_Lock ], + actions[Group1] = [ SetMods(modifiers=Control) ] + }; + modifier_map Control { }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ch b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ch new file mode 100644 index 0000000..62c69f9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ch @@ -0,0 +1,216 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + include "latin" + name[Group1]= "German (Switzerland)"; + + key { [ section, degree ] }; + key { [ 1, plus, bar, exclamdown ] }; + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 3, asterisk, numbersign ] }; + key { [ 4, ccedilla ] }; + key { [ 5, percent ] }; + key { [ 6, ampersand, notsign ] }; + key { [ 7, slash, bar ] }; + key { [ 8, parenleft, cent ] }; + key { [ 9, parenright ] }; + key { [ 0, equal ] }; + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + + key { [ e, E, EuroSign ] }; + key { [ z, Z ] }; + key { [ udiaeresis, egrave, bracketleft ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; + + key { [ odiaeresis, eacute ] }; + key { [ adiaeresis, agrave, braceleft ] }; + key { [ dollar, sterling, braceright ] }; + + key { [ less, greater, backslash, brokenbar ] }; + key { [ y, Y ] }; + key { [ comma, semicolon ] }; + key { [ period, colon ] }; + key { [ minus, underscore ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + include "ch(basic)" + + name[Group1]= "German (Switzerland, legacy)"; + key { [ 7, slash, brokenbar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "de" { + include "ch(basic)" +}; + +partial alphanumeric_keys +xkb_symbols "de_Sundeadkeys" { + // modify the basic Swiss German layout to use Sun dead keys + include "ch(basic)" + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "de_sundeadkeys" { + include "ch(de_Sundeadkeys)" + name[Group1]= "German (Switzerland, Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "de_nodeadkeys" { + // modify the basic Swiss German layout not to have any dead keys + include "ch(basic)" + name[Group1]= "German (Switzerland, eliminate dead keys)"; + key { [ apostrophe, question, acute ] }; + key { [ asciicircum, grave, asciitilde ] }; + key { [ diaeresis, exclam, bracketright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "fr" { + + include "ch(basic)" + name[Group1]= "French (Switzerland)"; + + override key { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ agrave, adiaeresis, braceleft ] + }; +}; + +partial alphanumeric_keys +xkb_symbols "fr_Sundeadkeys" { + // modify the basic Swiss French layout to use Sun dead keys + include "ch(fr)" + key { [ apostrophe, question, dead_acute ] }; + key { [ dead_circumflex, dead_grave, dead_tilde ] }; + key { [ dead_diaeresis, exclam, bracketright ] }; +}; + +partial alphanumeric_keys +xkb_symbols "fr_sundeadkeys" { + include "ch(fr_Sundeadkeys)" + name[Group1]= "French (Switzerland, Sun dead keys)"; +}; + +partial alphanumeric_keys +xkb_symbols "fr_nodeadkeys" { + // modify the basic Swiss French layout not to have any dead keys + include "ch(fr)" + name[Group1]= "French (Switzerland, eliminate dead keys)"; + key { [ apostrophe, question, acute ] }; + key { [ asciicircum, grave, asciitilde ] }; + key { [ diaeresis, exclam, bracketright ] }; +}; + +// Copied from macintosh_vndr/ch +// 03.01.2003 +// Andreas Tobler +// modified for Swiss German Apple Extended Keyboard II + +partial alphanumeric_keys +xkb_symbols "de_mac" { + + name[Group1]= "German (Switzerland, Macintosh)"; + + key { [ 1, plus, plusminus, infinity ] }; + key { [ 2, quotedbl, leftdoublequotemark, rightdoublequotemark ] }; + key { [ 3, asterisk, numbersign, leftcaret ] }; + // not displayed here + key { [ 4, ccedilla, Ccedilla, slash ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, Ograve ] }; + key { [ 9, parenright, braceright, Ocircumflex ] }; + key { [ 0, equal, notequal, Uacute ] }; + key { [ apostrophe, question, questiondown, NoSymbol ] }; + key { [ dead_circumflex,dead_grave, dead_acute, asciicircum ] }; + key { [ q, Q, oe, OE ] }; + key { [ w, W, Greek_SIGMA, Aacute ] }; + key { [ e, E, EuroSign, Ediaeresis ] }; + key { [ r, R, registered, Egrave ] }; + key { [ t, T, dagger, Icircumflex ] }; + key { [ z, Z, Greek_OMEGA, Iacute ] }; + key { [ u, U, degree, Ugrave ] }; + key { [ i, I, exclamdown, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, Greek_pi, Greek_PI ] }; + key { [ udiaeresis, egrave, section, ydiaeresis ] }; + key { [ dead_diaeresis, exclam, grave, apostrophe ] }; + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, NoSymbol ] }; + // ligature fl + key { [ d, D, Greek_sigma, NoSymbol ] }; + // partialderivative is not available here att + key { [ f, F, function, doubledagger ] }; + key { [ g, G, at, comma ] }; + key { [ h, H, ordfeminine, periodcentered ] }; + key { [ j, J, masculine, eth ] }; + key { [ k, K, Greek_DELTA, macron ] }; + key { [ l, L, notsign, caret ] }; + key { [ odiaeresis, eacute, cent, breve ] }; + key { [ adiaeresis, agrave, ae, AE ] }; + key { [ y, Y, yen, Ydiaeresis ] }; + key { [ x, X, similarequal, trademark ] }; + key { [ c, C, copyright, NoSymbol ] }; + key { [ v, V, radical, diamond ] }; + key { [ b, B, integral, NoSymbol ] }; + key { [ n, N, dead_tilde, enopencircbullet ] }; + // to be fixed att + key { [ m, M, mu, dead_abovering ] }; + // not sure att + key { [ comma, semicolon, guillemotleft, guillemotright ] }; + key { [ period, colon, ellipsis, division ] }; + key { [ minus, underscore, hyphen, emdash ] }; + key { [ section, degree, NoSymbol, NoSymbol ] }; + // ligature fi // per mille + key { [ space, nobreakspace, nobreakspace ] }; + key { [ less, greater, lessthanequal, greaterthanequal ] }; + key { [ dollar, sterling, paragraph, enfilledcircbullet ] }; + + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "fr_mac" { + + include "ch(de_mac)" + name[Group1]= "French (Switzerland, Macintosh)"; + + override key { + [ egrave, udiaeresis, bracketleft ] + }; + override key { + [ eacute, odiaeresis ] + }; + override key { + [ agrave, adiaeresis, braceleft ] + }; +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6_de" { + include "sun_vndr/ch(sun_type6_de)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6_fr" { + include "sun_vndr/ch(sun_type6_fr)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ctrl b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ctrl new file mode 100644 index 0000000..dd68add --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ctrl @@ -0,0 +1,87 @@ +// Eliminate CapsLock, making it another Ctrl. +partial modifier_keys +xkb_symbols "nocaps" { + replace key { [ Control_L, Control_L ] }; + modifier_map Control { , }; +}; + +// Make the left Ctrl key a left Meta. +xkb_symbols "lctrl_meta" { + replace key { [ Meta_L ] }; +}; + +// Swap the functions of the CapsLock key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swapcaps" { + replace key { [ Control_L ] }; + replace key { [ Caps_Lock ] }; +}; + +// Move Ctrl to the leftmost key on the middle row and CapsLock to the +// leftmost key on the bottom row. Only works if the geometry or keycodes +// file has defined appropriate aliases for the keys in question. +partial modifier_keys +xkb_symbols "ac_ctrl" { + replace key { [ Control_L ] }; + replace key { [ Caps_Lock ] }; +}; + +// Move Ctrl to the leftmost key on the bottom row and CapsLock to the +// leftmost key on the middle row. Only works if the geometry or keycodes +// file has defined appropriate aliases for the keys in question. +partial modifier_keys +xkb_symbols "aa_ctrl" { + replace key { [ Control_L ] }; + replace key { [ Caps_Lock ] }; +}; + +// Right Ctrl key functions as another right Alt. +partial modifier_keys +xkb_symbols "rctrl_ralt" { + key { symbols[Group1]= [ Alt_R ] }; +}; + +// Menu key functions as another right Ctrl. +partial modifier_keys +xkb_symbols "menu_rctrl" { + replace key { [ Control_R, Control_R ] }; + modifier_map Control { Control_L, }; +}; + +// Right Alt key functions as another right Ctrl. +partial modifier_keys +xkb_symbols "ralt_rctrl" { + replace key { type[Group1] = "TWO_LEVEL", + symbols[Group1] = [ Control_R, Control_R ] }; + modifier_map Control { }; +}; + +// Swap the functions of the left Alt key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lalt_lctl" { + replace key { [ Control_L, Control_L ] }; + replace key { [ Alt_L, Meta_L ] }; +}; + +// Swap the functions of the left Win key and the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lwin_lctl" { + replace key { [ Control_L ] }; + replace key { [ Super_L ] }; +}; + +// Swap the functions of the right Win key and the right Ctrl key. +partial modifier_keys +xkb_symbols "swap_rwin_rctl" { + replace key { [ Control_R ] }; + replace key { [ Super_R ] }; +}; + +// Map Ctrl to the left Alt key, Alt to the left Win key, +// and Super to the left Ctrl key. +partial modifier_keys +xkb_symbols "swap_lalt_lctl_lwin" { + replace key { [ Control_L, Control_L ] }; + replace key { [ Alt_L, Meta_L ] }; + replace key { [ Super_L ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/cz b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/cz new file mode 100644 index 0000000..97ab3cf --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/cz @@ -0,0 +1,185 @@ +default partial alphanumeric_keys +xkb_symbols "basic" { + + // This layout conforms to a new Czech compromise standard + // designed to satisfy most Unix, Windows and Mac users. + // 2001 by Kamil Toman + + include "latin" + name[Group1]= "Czech"; + + key { [ semicolon, dead_abovering, grave, asciitilde ] }; + key { [ plus, 1, exclam, dead_tilde ] }; + key { [ ecaron, 2, at, dead_caron ] }; + key { [ scaron, 3, numbersign, dead_circumflex ] }; + key { [ ccaron, 4, dollar, dead_breve ] }; + key { [ rcaron, 5, percent, dead_abovering]}; + key { [ zcaron, 6, asciicircum, dead_ogonek ] }; + key { [ yacute, 7, ampersand, dead_grave ] }; + key { [ aacute, 8, asterisk, dead_abovedot] }; + key { [ iacute, 9, braceleft, dead_acute ] }; + key { [ eacute, 0, braceright, dead_doubleacute ] }; + key { [ equal, percent, NoSymbol, dead_diaeresis]}; + key { [dead_acute, dead_caron, dead_macron, dead_cedilla ] }; + + key { [ q, Q, backslash, NoSymbol ] }; + key { [ w, W, bar, Nosymbol ] }; + key { [ e, E, EuroSign, NoSymbol ] }; + key { [ r, R, NoSymbol, NoSymbol ] }; + key { [ t, T, NoSymbol, NoSymbol ] }; + key { [ z, Z, NoSymbol, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol ] }; + key { [ i, I, NoSymbol, NoSymbol ] }; + key { [ o, O, NoSymbol, NoSymbol ] }; + key { [ p, P, NoSymbol, NoSymbol ] }; + + key { [ uacute, slash, bracketleft, division ] }; + key { [parenright, parenleft, bracketright, multiply ] }; + + key { [ a, A, asciitilde, NoSymbol ] }; + key { [ s, S, dstroke, NoSymbol ] }; + key { [ d, D, Dstroke, NoSymbol ] }; + key { [ f, F, bracketleft, NoSymbol ] }; + key { [ g, G, bracketright, NoSymbol ] }; + key { [ h, H, grave, NoSymbol ] }; + key { [ j, J, apostrophe, NoSymbol ] }; + key { [ k, K, lstroke, NoSymbol ] }; + key { [ l, L, Lstroke, NoSymbol ] }; + + key { [ uring, quotedbl, dollar, NoSymbol ] }; + key { [ section, exclam, apostrophe, ssharp ] }; + key { [ EuroSign, dead_diaeresis, NoSymbol, NoSymbol ] }; + key { [dead_diaeresis, apostrophe, backslash, bar ] }; + + key { [ backslash, bar, slash, NoSymbol ] }; + key { [ y, Y, degree, NoSymbol ] }; + key { [ x, X, numbersign, Nosymbol ] }; + key { [ c, C, ampersand, NoSymbol ] }; + key { [ v, V, at, NoSymbol ] }; + key { [ b, B, braceleft, NoSymbol ] }; + key { [ n, N, braceright, NoSymbol ] }; + key { [ m, M, asciicircum, NoSymbol ] }; + key { [ comma, question, less, NoSymbol ] }; + key { [ period, colon, greater, NoSymbol ] }; + key { [ minus, underscore, asterisk, NoSymbol ] }; + + key { [ space, space, space, space ] }; + + include "level3(ralt_switch)" +}; + +xkb_symbols "bksl" { + + // Use instead of (useful for keyboards without key). + + include "cz(basic)" + name[Group1]= "Czech (with <\|> key)"; + + key { [ backslash, bar, slash, NoSymbol ] }; +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + + // This layout represents the actual Czech keyboards; + // it complies with the symbols printed on the keys. + // 2011 by Lukáš Mojžíš + + include "cz(basic)" + name[Group1]= "Czech (qwerty)"; + + key { [ z, Z, degree, NoSymbol ] }; + key { [ uring, quotedbl, semicolon, colon ] }; + key { [ section, exclam, apostrophe, ssharp ] }; + key { [ y, Y, NoSymbol, NoSymbol ] }; + key { [ uacute, slash, bracketleft, braceleft ] }; + key { [parenright, parenleft, bracketright, braceright ] }; + key { [ iacute, 9, parenleft, dead_acute ] }; + key { [ eacute, 0, parenright, dead_doubleacute ] }; +}; + +xkb_symbols "qwerty_bksl" { + + // Use instead of (useful for keyboards without key). + + include "cz(qwerty)" + name[Group1]= "Czech (qwerty, extended Backslash)"; + + key { [ backslash, bar, slash, NoSymbol ] }; +}; + +partial alphanumeric_keys alternate_group +xkb_symbols "ucw" { + + // This layout is usually used as the second group, + // it contains accented characters only, no 'latin' set. + // 2008 by Milan Vancura + + name[Group1]= "Czech (UCW layout, accented letters only)"; + + key { [zcaron, Zcaron ] }; + key { [ssharp ] }; + key { [ccaron, Ccaron ] }; + key { [ccedilla, Ccedilla ] }; + key { [ntilde, Ntilde ] }; + key { [ncaron, Ncaron ] }; + key { [lacute, Lacute ] }; + + key { [aacute, Aacute ] }; + key { [scaron, Scaron ] }; + key { [dcaron, Dcaron ] }; + key { [ediaeresis, Ediaeresis ] }; + key { [racute, Racute ] }; + key { [uacute, Uacute ] }; + key { [udiaeresis, Udiaeresis ] }; + key { [ocircumflex, Ocircumflex ] }; + key { [lcaron, Lcaron ] }; + + key { [adiaeresis, Adiaeresis ] }; + key { [ecaron, Ecaron ] }; + key { [eacute, Eacute ] }; + key { [rcaron, Rcaron ] }; + key { [tcaron, Tcaron ] }; + key { [yacute, Yacute ] }; + key { [uring, Uring ] }; + key { [iacute, Iacute ] }; + key { [oacute, Oacute ] }; + key { [odiaeresis, Odiaeresis ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dvorak-ucw" { + + // US Dvorak layout extended with UCW, + // AltGr produces accented characters. + + include "us(dvorak)" + name[Group1]= "Czech (US Dvorak with CZ UCW support)"; + + key { [ j, J, eacute, Eacute ] }; + key { [ k, K, uacute, Uacute ] }; + key { [ z, Z, zcaron, Zcaron ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, ecaron, Ecaron ] }; + key { [ u, U, uring, Uring ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ d, D, dcaron, Dcaron ] }; + key { [ t, T, tcaron, Tcaron ] }; + key { [ n, N, ncaron, Ncaron ] }; + key { [ s, S, scaron, Scaron ] }; + + key { [ y, Y, yacute, Yacute ] }; + key { [ c, C, ccaron, Ccaron ] }; + key { [ r, R, rcaron, Rcaron ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/cz(sun_type6)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/de b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/de new file mode 100644 index 0000000..944732e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/de @@ -0,0 +1,806 @@ +// based on a keyboard map from an 'xkb/symbols/de' file + +default +xkb_symbols "basic" { + + include "latin(type4)" + + name[Group1]="German"; + + key { [ 2, quotedbl, twosuperior, oneeighth ] }; + key { [ 3, section, threesuperior, sterling ] }; + key { [ 4, dollar, onequarter, currency ] }; + + key {type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]= + [ssharp, question, backslash, questiondown, 0x1001E9E ]}; +// The unicode capital letter sharp s U+1E9E is transformed to "SS" +// to match the rules for capitalizing sharp s in german. +// If the capital sharp s is needed, delete the line +// starting with from /usr/share/X11/locale/iso8859-15/Compose. +// If both doubled S and capital sharp s are needed, use 0x1001E9E +// for capital sharp s and some free unicode codepoint like 0x1001E9C +// for doubled S. Don`t forget to change this in the Compose file, too. + + key { [dead_acute, dead_grave, dead_cedilla, dead_ogonek ] }; + + key { [ e, E, EuroSign, EuroSign ] }; + key { [ z, Z, leftarrow, yen ] }; + key { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + + key { [ s, S, U017F, U1E9E ] }; + key { [ j, J, dead_belowdot, dead_abovedot ] }; + key { [odiaeresis, Odiaeresis, dead_doubleacute, dead_belowdot ] }; + key { [adiaeresis, Adiaeresis, dead_circumflex, dead_caron ] }; + key { [dead_circumflex, degree, U2032, U2033 ] }; + + key { [numbersign, apostrophe, rightsinglequotemark, dead_breve ] }; + key { [ y, Y, guillemotright, U203A ] }; + key { [ x, X, guillemotleft, U2039 ] }; + key { [ v, V, doublelowquotemark, singlelowquotemark ] }; + key { [ b, B, leftdoublequotemark, leftsinglequotemark ] }; + key { [ n, N, rightdoublequotemark, rightsinglequotemark ] }; + key { [ comma, semicolon, periodcentered, multiply ] }; + key { [ period, colon, U2026, division ] }; + key { [ minus, underscore, endash, emdash ] }; + + include "kpdl(comma)" + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + // previous standard German layout with tilde as dead key + + include "de(basic)" + name[Group1]="German (legacy)"; + + key { [ plus, asterisk, dead_tilde, dead_macron ] }; +}; + +partial alphanumeric_keys +xkb_symbols "nodeadkeys" { + + // modify the basic German layout to not have any dead keys + + include "de(basic)" + name[Group1]="German (eliminate dead keys)"; + + key { [asciicircum, degree, notsign, notsign ] }; + key { [ acute, grave, cedilla, cedilla ] }; + key { [udiaeresis, Udiaeresis, diaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [odiaeresis, Odiaeresis, doubleacute, doubleacute ] }; + key { [adiaeresis, Adiaeresis, asciicircum, asciicircum ] }; + key { [numbersign, apostrophe, grave, grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadgraveacute" { + // modify the basic German layout to have only acute and grave + // as dead keys (tilde and circumflex are needed as spacing characters + // in many programming languages) + + include "de(basic)" + name[Group1]="German (dead grave acute)"; + + key { [asciicircum, degree, notsign, notsign ] }; + key { [ plus, asterisk, asciitilde, dead_macron ] }; + key { [numbersign, apostrophe, grave, grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "deadacute" { + // modify the basic German layout to have only acute as + // dead keys (ASCII grave, tilde and circumflex are needed as + // spacing characters in many programming languages and text formatters) + + include "de(deadgraveacute)" + + name[Group1]="German (dead acute)"; + + key { [dead_acute, grave, dead_cedilla, dead_ogonek ] }; + key { [numbersign, apostrophe, dead_grave, dead_grave ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "T3" { + name[Group1]="German (T3)"; + + key.type[Group1] = "EIGHT_LEVEL"; + key { [ dead_circumflex, degree, multiply, NoSymbol, U204A, hyphen, bar, NoSymbol ] }; + key { [ 1, exclam, rightsinglequotemark, NoSymbol, onesuperior, exclamdown, U02B9, NoSymbol ] }; + key { [ 2, quotedbl, twosuperior, NoSymbol, twosuperior, currency, U02BA, NoSymbol ] }; + key { [ 3, section, threesuperior, NoSymbol, threesuperior, sterling, U02BF, NoSymbol ] }; + key { [ 4, dollar, emdash, NoSymbol, onequarter, 0x20AC, U02BE, NoSymbol ] }; + key { [ 5, percent, exclamdown, NoSymbol, onehalf, uparrow, U02C1, NoSymbol ] }; + key { [ 6, ampersand, questiondown, NoSymbol, threequarters, downarrow, U02C0, NoSymbol ] }; + key { [ 7, slash, braceleft, NoSymbol, oneeighth, leftarrow, braceleft, NoSymbol ] }; + key { [ 8, parenleft, bracketleft, NoSymbol, threeeighths, rightarrow, braceright, NoSymbol ] }; + key { [ 9, parenright, bracketright, NoSymbol, fiveeighths, plusminus, bracketleft, NoSymbol ] }; + key { [ 0, equal, braceright, NoSymbol, seveneighths, trademark, bracketright, NoSymbol ] }; + key { [ ssharp, question, backslash, NoSymbol, backslash, questiondown, U02BB, NoSymbol ] }; + key { [ dead_acute, dead_grave, dead_abovedot, NoSymbol, dead_cedilla, dead_ogonek, notsign, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; + key { [ q, Q, at, NoSymbol, U0242, U0241, U030D, NoSymbol ] }; + key { [ w, W, dead_caron, NoSymbol, U02B7, U2126, dead_abovedot, NoSymbol ] }; + key { [ e, E, EuroSign, NoSymbol, oe, OE, dead_breve, NoSymbol ] }; + key { [ r, R, dead_diaeresis, NoSymbol, paragraph, registered, dead_circumflex, NoSymbol ] }; + key { [ t, T, dead_macron, NoSymbol, UA78C, UA78B, dead_diaeresis, NoSymbol ] }; + key { [ z, Z, dead_doubleacute, NoSymbol, U027C, yen, dead_invertedbreve, NoSymbol ] }; + key { [ u, U, dead_breve, NoSymbol, U0223, U0222, dead_caron, NoSymbol ] }; + key { [ i, I, dead_tilde, NoSymbol, idotless, U214D, dead_abovecomma, NoSymbol ] }; + key { [ o, O, dead_abovering, NoSymbol, oslash, Oslash, dead_horn, NoSymbol ] }; + key { [ p, P, dead_hook, NoSymbol, thorn, THORN, dead_hook, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, dead_horn, NoSymbol, U017F, dead_abovering, dead_grave, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ plus, asterisk, asciitilde, NoSymbol, dead_tilde, dead_macron, at, NoSymbol ] }; + + key.type[Group1] = "ONE_LEVEL"; + key { [ Caps_Lock ] }; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; + key { [ a, A, lessthanequal, NoSymbol, ae, AE, U0329, NoSymbol ] }; + key { [ s, S, greaterthanequal, NoSymbol, ssharp, section, dead_belowdot, NoSymbol ] }; + key { [ d, D, U2300, NoSymbol, eth, ETH, dead_belowbreve, NoSymbol ] }; + key { [ f, F, minutes, NoSymbol, U0294, ordfeminine, dead_belowcircumflex, NoSymbol ] }; + key { [ g, G, seconds, NoSymbol, eng, ENG, dead_belowmacron, NoSymbol ] }; + key { [ h, H, U1E9E, NoSymbol, U0272, U019D, U0332, NoSymbol ] }; + key { [ j, J, dead_cedilla, NoSymbol, U0133, U0132, dead_belowring, NoSymbol ] }; + key { [ k, K, dead_belowcomma, NoSymbol, kra, dead_belowcomma, dead_stroke, NoSymbol ] }; + key { [ l, L, dead_ogonek, NoSymbol, lstroke, Lstroke, U0338, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, dead_belowdot, NoSymbol, dead_acute, dead_doubleacute, degree, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, dead_stroke, NoSymbol, U019B, U1E9E, minutes, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ numbersign, apostrophe, registered, NoSymbol, schwa, SCHWA, seconds, NoSymbol ] }; + + key { [ less, greater, bar, NoSymbol, U0149, brokenbar, U266A, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL_ALPHABETIC"; + key { [ y, Y, U203A, NoSymbol, U0292, U01B7, guillemotleft, NoSymbol ] }; + key { [ x, X, guillemotright, NoSymbol, doublelowquotemark, singlelowquotemark, guillemotright, NoSymbol ] }; + key { [ c, C, copyright, NoSymbol, cent, copyright, Greek_horizbar, NoSymbol ] }; + key { [ v, V, guillemotleft, NoSymbol, leftdoublequotemark, leftsinglequotemark, U2039, NoSymbol ] }; + key { [ b, B, U2039, NoSymbol, rightdoublequotemark, rightsinglequotemark, U203A, NoSymbol ] }; + key { [ n, N, endash, NoSymbol, U019E, U0220, endash, NoSymbol ] }; + key { [ m, M, Greek_mu, NoSymbol, mu, masculine, emdash, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ comma, semicolon, U02BB, NoSymbol, ellipsis, multiply, dollar, NoSymbol ] }; + key { [ period, colon, U200C, NoSymbol, periodcentered, division, numbersign, NoSymbol ] }; + key { [ minus, underscore, hyphen, NoSymbol, U0140, U013F, U2011, NoSymbol ] }; + + key { [ space, space, nobreakspace, NoSymbol, U202F, U200C, nobreakspace, NoSymbol ] }; + + include "kpdl(comma)" + + include "level5(modifier_mapping)" + include "level3(modifier_mapping)" + key.type[Group1] = "THREE_LEVEL"; + key { [ Shift_L, Shift_L, ISO_Level5_Latch ] }; + key { [ Shift_R, Shift_R, ISO_Level5_Latch ] }; + key { [ ISO_Level3_Latch, ISO_Level5_Latch, ISO_Level5_Latch ] }; + }; + +partial alphanumeric_keys +xkb_symbols "ro" { + // add romanian-specific letters to the basic German layout. + // Romanian symbols are accessible with combination of and + // 'a', 's', 't', 'i', 'ä (ä)' (+ for capital letters). + // To view romanian-specific symbols, add "export LC_CTYPE=ro_RO" + // or "export LC_CTYPE=de_DE.utf8" to your .profile. + + include "de(basic)" + + name[Group1]="Romanian (Germany)"; + + key { [ t, T, tcedilla, Tcedilla ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ adiaeresis, Adiaeresis, abreve, Abreve ] }; +}; + +partial alphanumeric_keys +xkb_symbols "ro_nodeadkeys" { + // add romanian-specific letters to the German nodeadkeys layout. + // Read the comment for de_ro ! + + include "de(nodeadkeys)" + name[Group1]="Romanian (Germany, eliminate dead keys)"; + + key { [ t, T, tcedilla, Tcedilla ] }; + key { [ i, I, icircumflex, Icircumflex ] }; + key { [ a, A, acircumflex, Acircumflex ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ adiaeresis, Adiaeresis, abreve, Abreve ] }; +}; + +// German Dvorak keymap by Thorsten Staerk (www.staerk.de/thorsten) +// Have acute and grave as dead keys, tilde and circumflex alive as they are needed +// in many programming languages. +// to use this keymap, use a 105-key-keyboard and the command setxkbmap -model pc105 -layout dvorak -variant de +// source: http://www-lehre.informatik.uni-osnabrueck.de/~rfreund/dvorak.php +partial alphanumeric_keys +xkb_symbols "dvorak" { + include "us(dvorak)" + + name[Group1]="German (Dvorak)"; + + key { [ asciicircum, degree ] }; + + key { [ 1, exclam, onesuperior ] }; + key { [ 2, quotedbl, twosuperior ] }; + key { [ 3, section, threesuperior ] }; + key { [ 4, dollar, bar ] }; + key { [ 5, percent, bar ] }; + key { [ 6, ampersand, brokenbar ] }; + key { [ 7, slash, braceleft ] }; + key { [ 8, parenleft, bracketleft ] }; + key { [ 9, parenright, bracketright ] }; + key { [ 0, equal, braceright ] }; + key { [ plus, asterisk, asciitilde ] }; + key { [ less, greater, dead_grave ] }; + + key { [ udiaeresis, Udiaeresis, at ] }; + key { [ comma, semicolon, dead_diaeresis ] }; + key { [ period, colon ] }; + key { [ c, C, copyright, Cacute ] }; + key { [ t, T, trademark ] }; + key { [ z, Z, zabovedot, Zabovedot ] }; + key { [ question, ssharp ] }; + key { [ slash, backslash, dead_acute ] }; + + key { [ a, A, at, aogonek ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, EuroSign, eogonek ] }; + key { [ i, I ] }; + key { [ u, U ] }; + key { [ h, H ] }; + key { [ d, D ] }; + key { [ r, R, registered ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute] }; + key { [ l, L, lstroke, Lstroke ] }; + + key { [ odiaeresis, Odiaeresis ] }; + key { [ q, Q, at ] }; + key { [ m, M, mu ] }; + key { [ numbersign, apostrophe ] }; + + key { [ minus, underscore, hyphen, diaeresis] }; + + key { [ adiaeresis, Adiaeresis, bar ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "Sundeadkeys" { + + // For naming consistency + + include "de(basic)" + +}; + +partial alphanumeric_keys +xkb_symbols "sundeadkeys" { + + // For naming consistency + + include "de(Sundeadkeys)" + + name[Group1]="German (Sun dead keys)"; +}; + + +// German Neo-Layout Version 2 +// adopted 2004 by Hanno Behrens +// inspired by Dvorak/de-ergo http://www.goebel-consult.de/de-ergo/ +// +// Authors: +// Stephan Hilb +// +// Benjamin Kellermann +// Erik Streb +// and many other contributors +// +// http://www.neo-layout.org +// +// $Revision$, $Date$ + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo_base" { + + // Levels in Neo jargon + // -------------------------------------------------------------- + // Ebene 1: normal + // Ebene 2: Shift + // Ebene 3: Mod3 + // Ebene 4: Mod4 (for marking something use Shift + Mod4) + // Ebene 5: Shift + Mod3 + // Ebene 6: Mod3 + Mod4 + // Compose (not a level): Mod3 + Tab + // Feststelltaste (Capslock): Shift + Shift + // Mod4-Lock: Mod4 + Mod4 + // Mod4-Lock: Shift + Mod3 + Tab + + // Legend + // =============== + // Levels in Xkbmap jargon to be found here in the definitions. + // These are the levels used, and Xorg's translations: + // -------------------------------------------------------------- + // Xorg: Level1 Level2 Level3 Level4 Level5 Level6 Level7 Level8 + // Neo: Ebene1 Ebene2 Ebene3 Ebene5 Ebene4 Pseudo-Ebene Ebene6 ??? + // Keys (Neo): None Shift Mod3 Mod3 + Shift Mod4 Mod4 + Shift Mod3 + Mod4 Mod3 + Mod4 + Shift + + + // Alphanumeric-keys + // =============== + key.type[Group1] = "EIGHT_LEVEL"; + + // Tab as Multi_key (Compose) + // -------------------------------------------------------------- + key { [ Tab, ISO_Left_Tab, Multi_key, ISO_Level5_Lock, NoSymbol, NoSymbol, NoSymbol, ISO_Level5_Lock ] }; + + + // Number row + // -------------------------------------------------------------- + key { [ dead_circumflex, dead_caron, U21BB, U02DE, dead_abovedot, Pointer_EnableKeys, dead_belowdot, NoSymbol ] }; + + key { [ 1, degree, onesuperior, onesubscript, ordfeminine, NoSymbol, notsign, NoSymbol ] }; + key { [ 2, section, twosuperior, twosubscript, masculine, NoSymbol, logicalor, NoSymbol ] }; + key { [ 3, U2113, threesuperior, threesubscript, numerosign, NoSymbol, logicaland, NoSymbol ] }; + key { [ 4, guillemotright, U203A, femalesymbol, NoSymbol, NoSymbol, U22A5, NoSymbol ] }; + key { [ 5, guillemotleft, U2039, malesymbol, periodcentered, NoSymbol, U2221, NoSymbol ] }; + key { [ 6, dollar, cent, U26A5, sterling, NoSymbol, U2225, NoSymbol ] }; + + key { [ 7, EuroSign, yen, U03F0, currency, NoSymbol, rightarrow, NoSymbol ] }; + key { [ 8, doublelowquotemark, singlelowquotemark, U27E8, Tab, ISO_Left_Tab, U221E, NoSymbol ] }; + key { [ 9, leftdoublequotemark, leftsinglequotemark, U27E9, KP_Divide, KP_Divide, variation, NoSymbol ] }; + key { [ 0, rightdoublequotemark, rightsinglequotemark, zerosubscript, KP_Multiply, KP_Multiply, emptyset, NoSymbol ] }; + + key { [ minus, emdash, NoSymbol, U2011, KP_Subtract, KP_Subtract, hyphen, NoSymbol ] }; + key { [ dead_grave, dead_cedilla, dead_abovering, dead_dasia, dead_diaeresis, NoSymbol, dead_macron, NoSymbol ] }; + + // Top row + // -------------------------------------------------------------- + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ x, X, ellipsis, Greek_xi, Prior, Prior, Greek_XI, NoSymbol ] }; + key { [ v, V, underscore, NoSymbol, BackSpace, BackSpace, radical, NoSymbol ] }; + key { [ l, L, bracketleft, Greek_lambda, Up, Up, Greek_LAMBDA, NoSymbol ] }; + key { [ c, C, bracketright, Greek_chi, Delete, Delete, U2102, NoSymbol ] }; + key { [ w, W, asciicircum, Greek_omega, Next, Next, Greek_OMEGA, NoSymbol ] }; + + key { [ k, K, exclam, Greek_kappa, exclamdown, NoSymbol, multiply, NoSymbol ] }; + key { [ h, H, less, Greek_psi, KP_7, KP_7, Greek_PSI, NoSymbol ] }; + key { [ g, G, greater, Greek_gamma, KP_8, KP_8, Greek_GAMMA, NoSymbol ] }; + key { [ f, F, equal, Greek_phi, KP_9, KP_9, Greek_PHI, NoSymbol ] }; + key { [ q, Q, ampersand, U03D5, KP_Add, KP_Add, U211A, NoSymbol ] }; + + key { [ ssharp, U1E9E, U017F, Greek_finalsmallsigma, U2212, NoSymbol, jot, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL"; + key { [ dead_acute, dead_tilde, dead_stroke, dead_psili, dead_doubleacute, NoSymbol, dead_breve, NoSymbol ] }; + + // Middle row + // -------------------------------------------------------------- + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ u, U, backslash, NoSymbol, Home, Home, includedin, NoSymbol ] }; + key { [ i, I, slash, Greek_iota, Left, Left, integral, NoSymbol ] }; + key { [ a, A, braceleft, Greek_alpha, Down, Down, U2200, NoSymbol ] }; + key { [ e, E, braceright, Greek_epsilon, Right, Right, U2203, NoSymbol ] }; + key { [ o, O, asterisk, Greek_omicron, End, End, elementof, NoSymbol ] }; + + key { [ s, S, question, Greek_sigma, questiondown, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ n, N, parenleft, Greek_nu, KP_4, KP_4, U2115, NoSymbol ] }; + key { [ r, R, parenright, Greek_rho, KP_5, KP_5, U211D, NoSymbol ] }; + key { [ t, T, minus, Greek_tau, KP_6, KP_6, partialderivative, NoSymbol ] }; + key { [ d, D, colon, Greek_delta, KP_Separator, comma, Greek_DELTA, NoSymbol ] }; + + key { [ y, Y, at, Greek_upsilon, period, KP_Decimal, nabla, NoSymbol ] }; + + // Bottom row + // -------------------------------------------------------------- + key { [ udiaeresis, Udiaeresis, numbersign, NoSymbol, Escape, Escape, union, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, dollar, U03F5, Tab, Tab, intersection, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, bar, Greek_eta, Insert, Insert, U2135, NoSymbol ] }; + key { [ p, P, asciitilde, Greek_pi, Return, Return, Greek_PI, NoSymbol ] }; + key { [ z, Z, grave, Greek_zeta, Undo, Redo, U2124, NoSymbol ] }; + + key { [ b, B, plus, Greek_beta, colon, NoSymbol, U21D0, NoSymbol ] }; + key { [ m, M, percent, Greek_mu, KP_1, KP_1, ifonlyif, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + key { [ comma, endash, quotedbl, U03F1, KP_2, KP_2, U21D2, NoSymbol ] }; + key { [ period, enfilledcircbullet, apostrophe, U03D1, KP_3, KP_3, U21A6, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ j, J, semicolon, Greek_theta, semicolon, NoSymbol, Greek_THETA, NoSymbol ] }; + key.type[Group1] = "EIGHT_LEVEL"; + + // Space key + // -------------------------------------------------------------- + key { [ space, space, space, nobreakspace, KP_0, KP_0, U202F, NoSymbol ] }; + + + // Keypad-keys + // =============== + + // The former Numlock key: + key { [ Tab, ISO_Left_Tab, equal, approxeq, notequal, Pointer_EnableKeys, identical, NoSymbol ] }; + + // Topmost row + // -------------------------------------------------------------- + key { [ KP_Divide, KP_Divide, division, U2300, U2215, NoSymbol, U2223, NoSymbol ] }; + key { [ KP_Multiply, KP_Multiply, U22C5, U2299, multiply, NoSymbol, U2297, NoSymbol ] }; + key { [ KP_Subtract, KP_Subtract, U2212, U2296, U2216, NoSymbol, U2238, NoSymbol ] }; + + // Top row + // -------------------------------------------------------------- + key { [ KP_7, U2714, U2195, U226A, KP_Home, KP_Home, upstile, NoSymbol ] }; + key { [ KP_8, U2718, uparrow, intersection, KP_Up, KP_Up, U22C2, NoSymbol ] }; + key { [ KP_9, dagger, U20D7, U226B, KP_Prior, KP_Prior, U2309, NoSymbol ] }; + key { [ KP_Add, KP_Add, plusminus, U2295, U2213, NoSymbol, U2214, NoSymbol ] }; + + // Middle row + // -------------------------------------------------------------- + key { [ KP_4, club, leftarrow, includedin, KP_Left, KP_Left, U2286, NoSymbol ] }; + key { [ KP_5, EuroSign, colon, U22B6, KP_Begin, KP_Begin, U22B7, NoSymbol ] }; + key { [ KP_6, U2023, rightarrow, includes, KP_Right, KP_Right, U2287, NoSymbol ] }; + + // Bottom row + // -------------------------------------------------------------- + key { [ KP_1, diamond, U2194, lessthanequal, KP_End, KP_End, downstile, NoSymbol ] }; + key { [ KP_2, heart, downarrow, union, KP_Down, KP_Down, U22C3, NoSymbol ] }; + key { [ KP_3, U2660, U21CC, greaterthanequal, KP_Next, KP_Next, U230B, NoSymbol ] }; + key { [ KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, KP_Enter, NoSymbol ] }; + key { [ KP_Equal, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol ] }; + + // Bottommost row + // -------------------------------------------------------------- + key { [ KP_0, U2423, percent, U2030, KP_Insert, KP_Insert, U25A1, NoSymbol ] }; + key { [ KP_Separator, period, comma, minutes, KP_Delete, KP_Delete, seconds, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "neo" { + + include "de(neo_base)" + + name[Group1]= "German (Neo 2)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch)" + include "level5(ralt_switch)" +}; + +// Copied from macintosh_vndr/de +// olh@suse.de very close to MacOS map + +partial alphanumeric_keys +xkb_symbols "mac" { + + include "de" + name[Group1]= "German (Macintosh)"; + + key { [ 1, exclam, exclamdown, at ] }; + key { [ 5, percent, bracketleft ] }; + key { [ 6, ampersand, bracketright ] }; + key { [ 7, slash, bar, backslash ] }; + key { [ 8, parenleft, braceleft, asciitilde ] }; + key { [ 9, parenright, braceright ] }; + key { [ q, Q, guillemotleft, guillemotright ] }; + key { [ r, R, registered ] }; + key { [ u, U, diaeresis, Aacute ] }; + key { [ i, I, slash, Ucircumflex ] }; + key { [ udiaeresis, Udiaeresis, periodcentered, degree ] }; + key { [ plus, asterisk, asciitilde ] }; + key { [ a, A, aring, Aring ] }; + key { [ g, G, copyright ] }; + key { [ h, H, ordfeminine ] }; + key { [ l, L, at ] }; + key { [ odiaeresis, Odiaeresis, dead_acute ] }; + key { [ n, N, asciitilde ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "mac_nodeadkeys" { + // modify the standard German mac layout to not have any dead keys + include "de(mac)" + name[Group1]= "German (Macintosh, eliminate dead keys)"; + + key { [ asciicircum, degree, notsign ] }; + key { [ 4, dollar, onequarter, currency ] }; + key { [ acute, grave, cedilla ] }; + key { [ udiaeresis, Udiaeresis, diaeresis ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [ odiaeresis, Odiaeresis, acute ] }; + key { [ adiaeresis, Adiaeresis, asciicircum ] }; + + key { [ numbersign, apostrophe, grave ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dsb" +{ + include "latin(basic)" + name[Group1] = "Lower Sorbian"; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ x, X, zacute, Zacute ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ v, V, ccaron, Ccaron ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ d, D, scaron, Scaron ] }; + key { [ f, F ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, ecaron, Ecaron ] }; + key { [ r, R, racute, Racute ] }; + key { [ t, T, U20B5, EuroSign ] }; + key { [ o, O, oacute, Oacute ] }; + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "dsb_qwertz" +{ + include "latin(basic)" + name[Group1] = "Lower Sorbian (qwertz)"; + key { [ y, Y ] }; + key { [ x, X ] }; + key { [ c, C, cacute, Cacute ] }; + key { [ v, V, ccaron, Ccaron ] }; + key { [ n, N, nacute, Nacute ] }; + key { [ s, S, sacute, Sacute ] }; + key { [ d, D, scaron, Scaron ] }; + key { [ f, F ] }; + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E, ecaron, Ecaron ] }; + key { [ r, R, racute, Racute ] }; + key { [ t, T, U20B5, EuroSign ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ u, U, zacute, Zacute ] }; + key { [ o, O, oacute, Oacute ] }; + include "kpdl(comma)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "qwerty" { + + // This layout should work exactly as a de with the exception + // of 'Z' and 'Y' keys, which are in the qwerty style (ie. swapped). + // 2008 by Matej Košík + + include "de(basic)" + + name[Group1] = "German (qwerty)"; + + key { [ z, Z, leftarrow, yen ] }; + key { [ y, Y, guillemotleft, less ] }; +}; + +// layout for Russian letters on an german keyboard +// based on US-RU layout by Ivan Popov 2005-07-17 +// adopted for german layout by Alexey Fisher 2010-08-19 + +partial alphanumeric_keys +xkb_symbols "ru" { + + include "de(basic)" + + name[Group1]= "Russian (Germany, phonetic)"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_io, Cyrillic_IO, asciitilde ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, plus, asterisk ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_yu, Cyrillic_YU, numbersign, apostrophe ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "htcdream" { + include "inet(htcdream)" + + name[Group1]= "German"; + + //second row + key { [ q, Q, Tab, Tab ] }; + key { [ w, W, grave, grave ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ r, R, underscore, underscore ] }; + key { [ t, T, sterling, sterling] }; + key { [ z, Z, division, division ] }; + key { [ u, U, udiaeresis, udiaeresis ] }; + key { [ i, I, minus, minus ] }; + key { [ o, O, odiaeresis, odiaeresis ] }; + key { [ p, P, equal, equal ] }; + + //third row + key { [ a, A, adiaeresis, adiaeresis ] }; + key { [ s, S, ssharp, ssharp] }; + key { [ d ,D, backslash, backslash ] }; + key { [ f, F, braceleft, braceleft ] }; + key { [ g, G, braceright, braceright ] }; + key { [ h, H, multiply, multiply ] }; + key { [ j, J, colon, colon ] }; + key { [ k, K, plus, plus ] }; + key { [ l, L, apostrophe, apostrophe ] }; + + //forth row + key { [ y, Y, bar, bar ] }; + key { [ x, X, bracketleft, bracketleft ] }; + key { [ c, C, bracketright, bracketright ] }; + key { [ v, V, less, less ] }; + key { [ b, B, greater, greater ] }; + key { [ n, N, semicolon, semicolon ] }; + key { [ m, M, quotedbl, quotedbl ] }; + key { [ comma, comma, question, question ] }; + + //fifth row + key { [ at, at, asciitilde, asciitilde ] }; + + include "level3(alt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "tr" { + + // add turkish-specific letters to the basic German layout. + // Turkish symbols are accessible with combination of and + // 'i', 's', 'g', 'c'' (+ for capital letters). + + include "de(basic)" + + name[Group1]="Turkish (Germany)"; + + key { [ i, I, U0131, U0130 ] }; + key { [ s, S, U015F, U015E ] }; + key { [ g, G, U011F, U011E ] }; + key { [ c, C, U0E7, U0C7 ] }; + +}; + +// EXTRAS: + +partial alphanumeric_keys +xkb_symbols "us" { + include "us" + + name[Group1]="German (US keyboard with German letters)"; + + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, ssharp, ssharp ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [ apostrophe, quotedbl, adiaeresis, Adiaeresis ] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, udiaeresis, Udiaeresis ] }; + key { [ 3, numbersign, section, section ] }; + key { [ minus, underscore, ssharp, question ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "hu" { + + // modify the basic German layout to not have any dead keys and add Hungarian letters + + include "de(basic)" + name[Group1]="German (with Hungarian letters and no dead keys)"; + + key { [ y, Y, guillemotleft, less ] }; + key { [odiaeresis, Odiaeresis, eacute, Eacute ] }; + key { [adiaeresis, Adiaeresis, aacute, Aacute] }; + key { [ e, E, EuroSign, EuroSign ] }; + key { [ z, Z, leftarrow, yen ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, odoubleacute,Odoubleacute ] }; + key { [udiaeresis, Udiaeresis, udoubleacute,Udoubleacute ] }; + key { [ plus, asterisk, asciitilde, macron ] }; + key { [ acute, grave, oacute, Oacute ] }; + key { [numbersign, apostrophe, grave, grave ] }; + key { [asciicircum, degree, notsign, notsign ] }; +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/de(sun_type6)" +}; + +partial alphanumeric_keys +xkb_symbols "adnw_base" { + include "de(neo_base)" + + key.type[Group1] = "EIGHT_LEVEL"; + key { [ period, enfilledcircbullet, NoSymbol, U03D1, NoSymbol, NoSymbol, U21A6, NoSymbol ] }; + key { [ comma, endash, NoSymbol, U03F1, NoSymbol, NoSymbol, U21D2, NoSymbol ] }; + + key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC"; + key { [ k, K, NoSymbol, Greek_kappa, NoSymbol, NoSymbol, multiply, NoSymbol ] }; + key { [ u, U, NoSymbol, NoSymbol, NoSymbol, NoSymbol, includedin, NoSymbol ] }; + key { [ udiaeresis, Udiaeresis, NoSymbol, NoSymbol, NoSymbol, NoSymbol, union, NoSymbol ] }; + key { [ adiaeresis, Adiaeresis, NoSymbol, Greek_eta, NoSymbol, NoSymbol, U2135, NoSymbol ] }; + key { [ v, V, NoSymbol, NoSymbol, NoSymbol, NoSymbol, radical, NoSymbol ] }; + key { [ g, G, NoSymbol, Greek_gamma, NoSymbol, NoSymbol, Greek_GAMMA, NoSymbol ] }; + key { [ c, C, NoSymbol, Greek_chi, NoSymbol, NoSymbol, U2102, NoSymbol ] }; + key { [ l, L, NoSymbol, Greek_lambda, NoSymbol, NoSymbol, Greek_LAMBDA, NoSymbol ] }; + key { [ j, J, NoSymbol, Greek_theta, NoSymbol, NoSymbol, Greek_THETA, NoSymbol ] }; + key { [ f, F, NoSymbol, Greek_phi, NoSymbol, NoSymbol, Greek_PHI, NoSymbol ] }; + key { [ h, H, NoSymbol, Greek_psi, NoSymbol, NoSymbol, Greek_PSI, NoSymbol ] }; + key { [ i, I, NoSymbol, Greek_iota, NoSymbol, NoSymbol, integral, NoSymbol ] }; + key { [ e, E, NoSymbol, Greek_epsilon, NoSymbol, NoSymbol, U2203, NoSymbol ] }; + key { [ a, A, NoSymbol, Greek_alpha, NoSymbol, NoSymbol, U2200, NoSymbol ] }; + key { [ o, O, NoSymbol, Greek_omicron, NoSymbol, NoSymbol, elementof, NoSymbol ] }; + key { [ d, D, NoSymbol, Greek_delta, NoSymbol, NoSymbol, Greek_DELTA, NoSymbol ] }; + key { [ t, T, NoSymbol, Greek_tau, NoSymbol, NoSymbol, partialderivative, NoSymbol ] }; + key { [ r, R, NoSymbol, Greek_rho, NoSymbol, NoSymbol, U211D, NoSymbol ] }; + key { [ n, N, NoSymbol, Greek_nu, NoSymbol, NoSymbol, U2115, NoSymbol ] }; + key { [ s, S, NoSymbol, Greek_sigma, NoSymbol, NoSymbol, Greek_SIGMA, NoSymbol ] }; + key { [ ssharp, U1E9E, NoSymbol, Greek_finalsmallsigma, NoSymbol, NoSymbol, jot, NoSymbol ] }; + key { [ x, X, NoSymbol, Greek_xi, NoSymbol, NoSymbol, Greek_XI, NoSymbol ] }; + key { [ y, Y, NoSymbol, Greek_upsilon, NoSymbol, NoSymbol, nabla, NoSymbol ] }; + key { [ odiaeresis, Odiaeresis, NoSymbol, U03F5, NoSymbol, NoSymbol, intersection, NoSymbol ] }; + key { [ q, Q, NoSymbol, U03D5, NoSymbol, NoSymbol, U211A, NoSymbol ] }; + key { [ b, B, NoSymbol, Greek_beta, NoSymbol, NoSymbol, U21D0, NoSymbol ] }; + key { [ p, P, NoSymbol, Greek_pi, NoSymbol, NoSymbol, Greek_PI, NoSymbol ] }; + key { [ w, W, NoSymbol, Greek_omega, NoSymbol, NoSymbol, Greek_OMEGA, NoSymbol ] }; + key { [ m, M, NoSymbol, Greek_mu, NoSymbol, NoSymbol, ifonlyif, NoSymbol ] }; + key { [ z, Z, NoSymbol, Greek_zeta, NoSymbol, NoSymbol, U2124, NoSymbol ] }; +}; + +partial alphanumeric_keys modifier_keys keypad_keys +xkb_symbols "adnw" { + + include "de(adnw_base)" + + name[Group1]= "German (Aus der Neo-Welt)"; + + include "shift(both_capslock)" + include "level3(caps_switch)" + include "level3(bksl_switch)" + include "level5(lsgt_switch)" + include "level5(ralt_switch)" +}; + diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/empty b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/empty new file mode 100644 index 0000000..acdd677 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/empty @@ -0,0 +1,4 @@ +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + name[Group1]= "Empty"; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/eurosign b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/eurosign new file mode 100644 index 0000000..0d95a90 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/eurosign @@ -0,0 +1,23 @@ +// Most keyboards have the EuroSign engraved on the E key +partial +xkb_symbols "e" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; + +// Many Apple keyboards have the EuroSign engraved on the 2 key +partial +xkb_symbols "2" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; + +// Some keyboards have the EuroSign engraved on the 4 key +partial +xkb_symbols "4" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; + +// Many keyboards have the EuroSign engraved on the 5 key +partial +xkb_symbols "5" { + key { [ NoSymbol, NoSymbol, EuroSign, NoSymbol ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/group b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/group new file mode 100644 index 0000000..8b00dff --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/group @@ -0,0 +1,448 @@ +// The right Alt key (while pressed) chooses the second keyboard group. +partial modifier_keys +xkb_symbols "switch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// The left Alt key (while pressed) chooses the second keyboard group. +partial modifier_keys +xkb_symbols "lswitch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// Either Win key (while pressed) chooses the second keyboard group. +partial modifier_keys +xkb_symbols "win_switch" { + include "group(lwin_switch)" + include "group(rwin_switch)" +}; + +// The left Win key (while pressed) chooses the second keyboard group. +// (Using this map, you should declare your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "lwin_switch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// The right Win key (while pressed) chooses the second keyboard group. +// (Using this map, you should declare your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "rwin_switch" { + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods= AltGr + }; +}; + +// The right Ctrl key (while pressed) chooses the second keyboard group. +// (Needed mainly for the Canadian keyboard.) +partial modifier_keys +xkb_symbols "rctrl_switch" { + key { + symbols[Group1] = [ Mode_switch ] + }; +}; + +// Pressing the right Alt key switches to the next group. +partial modifier_keys +xkb_symbols "toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing both Shift keys switches to the next or previous group +// (depending on which Shift is pressed first). +partial modifier_keys +xkb_symbols "shifts_toggle" { + key { [ Shift_L, ISO_Prev_Group ] }; + key { [ Shift_R, ISO_Next_Group ] }; +}; + +// Pressing Shift+Caps_Lock switches to the next group. +partial modifier_keys +xkb_symbols "shift_caps_toggle" { + key { [ Caps_Lock, ISO_Next_Group ] }; +}; + +// Pressing Caps_Lock selects the first group, +// pressing Shift+Caps_Lock selects the last group. +partial modifier_keys +xkb_symbols "shift_caps_switch" { + key { [ ISO_First_Group, ISO_Last_Group ] }; +}; + +// toggle using win + space as combo +partial modifier_keys +xkb_symbols "win_space_toggle" { + key { + type[Group1]="PC_SUPER_LEVEL2", + symbols[Group1]= [ space, ISO_Next_Group ] + }; +}; + +// Pressing the left Win key selects the first group, +// pressing the right Win or the Menu key selects the last group. +partial modifier_keys +xkb_symbols "win_menu_switch" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_First_Group ] + }; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Last_Group ] + }; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Last_Group ] + }; +}; + +// Pressing the left Ctrl key selects the first group, +// pressing the right Ctrl key selects the last group. +partial modifier_keys +xkb_symbols "lctrl_rctrl_switch" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_First_Group ] + }; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Last_Group ] + }; +}; + + +// +// CTRL-SHIFT toggle section +// +partial modifier_keys +xkb_symbols "lctrl_lshift_toggle" { + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Next_Group ] + }; + key { [ Control_L, ISO_Next_Group ] }; +}; + +partial modifier_keys +xkb_symbols "lctrl_lshift_toggle_rev" { + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Prev_Group ] + }; + key { [ Control_L, ISO_Prev_Group ] }; +}; + +partial modifier_keys +xkb_symbols "rctrl_rshift_toggle" { + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ Shift_R, ISO_Next_Group ] + }; + key { [ Control_R, ISO_Next_Group ] }; +}; + +partial modifier_keys +xkb_symbols "ctrl_shift_toggle" { + include "group(lctrl_lshift_toggle)" + include "group(rctrl_rshift_toggle)" +}; + +partial modifier_keys +xkb_symbols "ctrl_shift_toggle_bidir" { + include "group(lctrl_lshift_toggle_rev)" + include "group(rctrl_rshift_toggle)" +}; + + +// +// CTRL-ALT toggle section +// +partial modifier_keys +xkb_symbols "lctrl_lalt_toggle" { + virtual_modifiers Alt; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Control_L, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "lctrl_lalt_toggle_rev" { + virtual_modifiers Alt; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Control_L, ISO_Prev_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "rctrl_ralt_toggle" { + virtual_modifiers Alt; + key { + type[Group1]="PC_CONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Control_R, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "ctrl_alt_toggle" { + include "group(lctrl_lalt_toggle)" + include "group(rctrl_ralt_toggle)" +}; + +partial modifier_keys +xkb_symbols "ctrl_alt_toggle_bidir" { + include "group(lctrl_lalt_toggle_rev)" + include "group(rctrl_ralt_toggle)" +}; + + +// +// ALT-SHIFT toggle section +// +partial modifier_keys +xkb_symbols "lalt_lshift_toggle" { + virtual_modifiers Alt; + key { + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "lalt_lshift_toggle_rev" { + virtual_modifiers Alt; + key { + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Shift_L, ISO_Prev_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "ralt_rshift_toggle" { + virtual_modifiers Alt; + key { + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= Alt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ Shift_R, ISO_Next_Group ] + }; +}; + +partial modifier_keys +xkb_symbols "alt_shift_toggle" { + include "group(lalt_lshift_toggle)" + include "group(ralt_rshift_toggle)" +}; + +partial modifier_keys +xkb_symbols "alt_shift_toggle_bidir" { + include "group(lalt_lshift_toggle_rev)" + include "group(ralt_rshift_toggle)" +}; + + +// Pressing the Menu key switches to the next group, +// while Shift+Menu acts as Menu. +partial modifier_keys +xkb_symbols "menu_toggle" { + key { [ ISO_Next_Group, Menu ] }; +}; + +// Pressing the left Win key switches to the next group. +// (Using this map, you should declare your keyboard as +// pc101 or pc102 instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "lwin_toggle" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] + }; +}; + +// Pressing the right Win key switches to the next group. +// (Using this map, you should declare your keyboard as +// pc101 or pc102 instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "rwin_toggle" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] + }; +}; + +// Pressing both Ctrl keys switches to the next or previous group +// (depending on which Ctrl is pressed first). +partial modifier_keys +xkb_symbols "ctrls_toggle" { + virtual_modifiers LControl, RControl; + key { + type[Group1]="PC_RCONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= LControl + }; + key { + type[Group1]="PC_LCONTROL_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= RControl + }; +}; + +// Pressing both Alt keys switches to the next or previous group +// (depending on which Alt is pressed first). +partial modifier_keys +xkb_symbols "alts_toggle" { + virtual_modifiers LAlt, RAlt; + key { + type[Group1]="PC_RALT_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Prev_Group ], + virtualMods= LAlt + }; + key { + type[Group1]="PC_LALT_LEVEL2", + symbols[Group1] = [ NoSymbol, ISO_Next_Group ], + virtualMods= RAlt + }; +}; + +// Pressing the left Shift key switches to the next group. +partial modifier_keys +xkb_symbols "lshift_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the right Shift key switches to the next group. +partial modifier_keys +xkb_symbols "rshift_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the left Alt key switches to the next group. +partial modifier_keys +xkb_symbols "lalt_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the left Ctrl key switches to the next group. +partial modifier_keys +xkb_symbols "lctrl_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing the right Ctrl key switches to the next group. +partial modifier_keys +xkb_symbols "rctrl_toggle" { + virtual_modifiers AltGr; + key { + symbols[Group1] = [ ISO_Next_Group ], + virtualMods= AltGr + }; +}; + +// Pressing Alt+Caps_Lock switches to the next group, +// pressing Caps_Lock toggles CapsLock. +partial modifier_keys +xkb_symbols "alt_caps_toggle" { + key { + type="PC_ALT_LEVEL2", + symbols[Group1] = [ Caps_Lock, ISO_Next_Group ] + }; +}; + +hidden partial modifier_keys +xkb_symbols "olpc" { + key { [ ISO_Next_Group, ISO_Prev_Group ] }; +}; + +partial modifier_keys +xkb_symbols "alt_space_toggle" { + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ space, ISO_Next_Group ] + }; +}; + +// Pressing the Scroll Lock key switches to the next group, +partial modifier_keys +xkb_symbols "sclk_toggle" { + virtual_modifiers AltGr; + key { + virtualMods= AltGr, + symbols[Group1] = [ ISO_Next_Group ] + }; +}; + +// Control_L+Win_L selects the first group (presumably Lat), +// Control_R+Menu selects the second group (presumably Rus). +partial modifier_keys +xkb_symbols "lctrl_lwin_rctrl_menu" { + key { + type[Group1] = "PC_CONTROL_LEVEL2", + symbols[Group1] = [ Super_L, ISO_First_Group ] + }; + key { + type[Group1] = "PC_CONTROL_LEVEL2", + symbols[Group1] = [ Menu, ISO_Last_Group ] + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/il b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/il new file mode 100644 index 0000000..48452d6 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/il @@ -0,0 +1,323 @@ +// based on a keyboard map from an 'xkb/symbols/il' file + +// This is an implemetation of the Israeli standard SI-1452 (2013) +// It does not implement changes to the English layout, as that part +// of the standard is not normative nor really useful in the context +// of xkb. +// This implementation extends the standard with Yiddish digraphs +// (a common extension) and Nun Hafukha (a fun character). + +default partial alphanumeric_keys +xkb_symbols "basic" { + // uses the kbd layout in use in Israel. + + name[Group1]= "Hebrew"; + key.type[Group1] = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ hebrew_zain, Z ] }; + key { [ hebrew_samech, X, U05B6 ] }; // Segol + key { [ hebrew_bet, C, U05B1 ] }; // Hataf Segol + key { [ hebrew_he, V ] }; + key { [ hebrew_nun, B, NoSymbol, U05C6 ]}; // Nun Hafukha + key { [ hebrew_mem, N ] }; + key { [ hebrew_zade, M, U05B5 ] }; // Tsere + key { [ hebrew_taw, greater, rightsinglequotemark ]}; // greater Mirrored + key { [ hebrew_finalzade, less, singlelowquotemark ]}; // less Mirrored + + key { [ hebrew_shin, A, U05B0 ] }; // Shva + key { [ hebrew_dalet,S, U05BC ] }; // Dagesh + key { [ hebrew_gimel,D ] }; + key { [ hebrew_kaph, F ] }; + key { [ hebrew_ayin, G, U05F1 ] }; // Yiddish Vav Yod + key { [ hebrew_yod, H, U05F2 ] }; // Yiddish Double Yod + key { [ hebrew_chet, J, U05B4 ] }; // Hiriq + key { [ hebrew_lamed, K ] }; + key { [ hebrew_finalkaph, L, rightdoublequotemark ]}; + key { [ hebrew_finalpe, colon, doublelowquotemark ]}; + + key { [ slash, Q, U05C2 ] }; // Sin Dot + key { [ apostrophe, W, U05C1 ] }; // Shin Dot + key { [ hebrew_qoph, E, U05B8 ] }; // Qamats + key { [ hebrew_resh, R, U05B3 ] }; // Hataf Qamats + key { [ hebrew_aleph,T ] }; + key { [ hebrew_tet, Y, U05F0 ] }; // Yiddish Double Vav + key { [ hebrew_waw, U, U05B9 ] }; // Holam + key { [ hebrew_finalnun, I ] }; + key { [ hebrew_finalmem, O ] }; + key { [ hebrew_pe, P, U05B7 ] }; // Patah + + key.type[Group1] = "FOUR_LEVEL"; + + // Non-alphanumeric keys + key { [ period, question, division ]}; + key { [ comma, quotedbl, U05F4] }; // Gershayim + key { [ bracketright, braceright, U05B2 ]}; // Mirrored; Hataf Patah + key { [ bracketleft, braceleft, U05BF ]}; // Mirrored; Rafe + key { [ backslash, bar, U05BB ] }; // Qubuts + + // Top (digits) row + key { [ semicolon, asciitilde, U05F3 ]}; // Geresh + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign, EuroSign ]}; + key { [ 4, dollar, NewSheqelSign ]}; + key { [ 5, percent, degree ]}; + key { [ 6, asciicircum, U05AB ]}; // Hebrew Accent Ole + key { [ 7, ampersand, U05BD ]}; // Meteg + key { [ 8, asterisk, multiply]}; + key { [ 9, parenright, U200E ]}; // LRM; Paren Mirrored + key { [ 0, parenleft, U200F ]}; // RLM; Paren Mirrored + key { [ minus, underscore, U05BE ]}; // Maqaf + key { [ equal, plus, endash ]}; + + include "level3(ralt_switch)" +}; + + +// nikud patter based on Dekel Tsur's Hebrew mapping for LyX +partial alphanumeric_keys +xkb_symbols "lyx" { + name[Group1]= "Hebrew (lyx)"; + + key { [ semicolon, asciitilde ] }; + // On some key (e.g. AD01, right below) there is not yet mapping for the + // second shift level. Since I could not figure a simple way to map this + // to "emit nothing", it is currently mapped to the same letter of the + // first shift level (avoiding mapping may risk it be used by a character + // from a different group). + key { [ slash, slash ] }; + key { [ apostrophe, apostrophe ] }; + key { [ hebrew_qoph, 0x10005b8 ] }; // Qamats + key { [ hebrew_resh, 0x10005bc ] }; // Dagesh/Shuruq + key { [ hebrew_aleph, 0x100200e ] }; // LRM + key { [ hebrew_tet, 0x100200f ] }; // RLM + key { [ hebrew_waw, 0x10005b9 ] }; // Holam + key { [ hebrew_finalnun,hebrew_finalnun] }; + key { [ hebrew_finalmem,hebrew_finalmem] }; + key { [ hebrew_pe, 0x10005b7 ] }; // Patah + + key { [ hebrew_shin, 0x10005b0 ] }; // Sheva + key { [ hebrew_dalet, 0x10005bc ] }; // Dagesh/Shuruq + key { [ hebrew_gimel, hebrew_gimel ] }; + key { [ hebrew_kaph, hebrew_kaph ] }; + key { [ hebrew_ayin, 0x10005c2 ] }; // Sin dot + key { [ hebrew_yod, 0x10005c1 ] }; // Shin dot + key { [ hebrew_chet, 0x10005b4 ] }; // Hiriq + key { [ hebrew_lamed, 0x10020aa ] }; // NIS + key { [ hebrew_finalkaph,hebrew_finalkaph] }; + key { [ hebrew_finalpe, colon ] }; + key { [ comma, quotedbl ] }; + + key { [ hebrew_zain, hebrew_zain ] }; + key { [ hebrew_samech,0x10005b6 ] }; // Segol + key { [ hebrew_bet, 0x10005bb ] }; // Qubuts + key { [ hebrew_he, 0x10005b1 ] }; // H. Segol + key { [ hebrew_nun, 0x10005b2 ] }; // H. Patah + key { [ hebrew_mem, 0x10005b3 ] }; // H. Qamats + key { [ hebrew_zade, 0x10005b5 ] }; // Tsere + key { [ hebrew_taw, greater ] }; + key { [ hebrew_finalzade, less ] }; + key { [ period, question ] }; + + // Note the parens mirroring below: + key { [ bracketright, braceright ] }; + key { [ bracketleft, braceleft ] }; + key { [ 1, exclam ]}; + key { [ 2, at ]}; + key { [ 3, numbersign ]}; + key { [ 4, dollar ]}; + key { [ 5, percent ]}; + key { [ 6, asciicircum ]}; + key { [ 7, ampersand ]}; + key { [ 8, asterisk ]}; + key { [ 9, parenright ]}; + key { [ 0, parenleft ]}; + + key { [ minus , 0x10005be ] }; // H. Hiphen + key { [ equal , plus ] }; +}; + + +partial alphanumeric_keys +xkb_symbols "phonetic" { + + // uses the phonetic layout from old Slackware 'il.map' file + + name[Group1]= "Hebrew (phonetic)"; + + key { [ equal, plus, hebrew_doublelowline, hebrew_doublelowline ]}; + + key { [ hebrew_qoph, hebrew_qoph ] }; + key { [ hebrew_waw, hebrew_waw ] }; + key { [ hebrew_aleph, hebrew_aleph ] }; + key { [ hebrew_resh, hebrew_resh ] }; + key { [ hebrew_taw, hebrew_tet ] }; + key { [ hebrew_ayin, hebrew_ayin ] }; + key { [ hebrew_waw, hebrew_waw ] }; + key { [ hebrew_yod, hebrew_yod ] }; + key { [ hebrew_samech, hebrew_samech ] }; + key { [ hebrew_pe, hebrew_finalpe ] }; + + key { [ hebrew_aleph, hebrew_aleph ] }; + key { [ hebrew_shin, hebrew_shin ] }; + key { [ hebrew_dalet, hebrew_dalet ] }; + key { [ hebrew_pe, hebrew_finalpe ] }; + key { [ hebrew_gimel, hebrew_gimel ] }; + key { [ hebrew_he, hebrew_he ] }; + key { [ hebrew_yod, hebrew_yod ] }; + key { [ hebrew_kaph, hebrew_finalkaph ] }; + key { [ hebrew_lamed, hebrew_lamed ] }; + + key { [ hebrew_zain, hebrew_zain ] }; + key { [ hebrew_chet, hebrew_chet ] }; + key { [ hebrew_zade, hebrew_finalzade ] }; + key { [ hebrew_waw, hebrew_waw ] }; + key { [ hebrew_bet, hebrew_bet ] }; + key { [ hebrew_nun, hebrew_finalnun ] }; + key { [ hebrew_mem, hebrew_finalmem ] }; +}; + +// The 'Biblical Hebrew' keyboard layout as defined by Tiro for use with the +// 'SBL Hebrew' font was added 2006.11.13 by Sebastian J. Bronner +// . Its primary features (as compared to the lyx layout) +// are that the consonants are in the Israeli standard positions, that a great +// multitude of glyphs can be input directly from the keyboard, and that it is +// the closest thing to a standard layout a theologian can hope for. +// Documentation (including printable keyboard tables), SBL Hebrew font, and +// keyboard layout for Windows are available at +// http://www.sbl-site.org/Resources/Resources_BiblicalFonts.aspx. +// +// It is of interest that the 'basic' layout defined first in this file (as +// ships with x.org disagrees in the non-consonant characters that the Tiro- +// layout claims to be the Israeli standard. Tiros apparent diligence in the +// PDF-documentation accompanying the keyboard-layout-files lead me to put +// greater stock in their claim than in this file. Therefore, the 'biblical' +// layout below does not include 'il(basic)' but redoes the _whole_ thing from +// scratch. + +partial alphanumeric_keys +xkb_symbols "biblical" { + name[Group1]= "Hebrew (Biblical, Tiro)"; + key.type = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ U05C3, U05AE, semicolon, asciitilde ] }; + key { [ 1, U05A9, VoidSymbol, exclam ] }; + key { [ 2, U0599, VoidSymbol, at ] }; + key { [ 3, U0592, VoidSymbol, numbersign ] }; + key { [ 4, U05AF, NewSheqelSign, dollar ] }; + key { [ 5, VoidSymbol, U200D, percent ] }; + key { [ 6, U05B9, U200C, asciicircum ] }; + key { [ 7, U05BF, U034F, ampersand ] }; + key { [ 8, U05C2, U200E, asterisk ] }; + key { [ 9, U05C1, U200F, parenright ] }; + key { [ 0, U059D, U25CC, parenleft ] }; + key { [ U05BE, U05A0, minus, underscore ] }; + key { [ equal, U05BC, VoidSymbol, plus ] }; + + key { [ U0307, U05C4, U0308, slash ] }; + key { [ U05F3, U05AC, U05F4, apostrophe ] }; + key { [ hebrew_qoph, U05AB, U20AC ] }; + key { [ hebrew_resh, U059F ] }; + key { [ hebrew_aleph, U0593 ] }; + key { [ hebrew_tet, U059E ] }; + key { [ hebrew_waw, U059C, U05F0 ] }; + key { [ hebrew_finalnun, U05A1 ] }; + key { [ hebrew_finalmem, U0595 ] }; + key { [ hebrew_pe, U0594 ] }; + key { [ bracketright, U0597, VoidSymbol, braceright ] }; + key { [ bracketleft, U0598, VoidSymbol, braceleft ] }; + key { [ U05C0, U05A8, backslash, bar ] }; + + key { [ hebrew_shin, U05BD ] }; + key { [ hebrew_dalet, U05B0 ] }; + key { [ hebrew_gimel, U05BB ] }; + key { [ hebrew_kaph, U05B4 ] }; + key { [ hebrew_ayin, U05B1 ] }; + key { [ hebrew_yod, U05B6, U05F2 ] }; + key { [ hebrew_chet, U05B5, U05F1 ] }; + key { [ hebrew_lamed, U05B3 ] }; + key { [ hebrew_finalkaph, U05B8, U05C7 ] }; + key { [ hebrew_finalpe, U05B2, VoidSymbol, colon ] }; + key { [ U059a, U05B7, comma, quotedbl ] }; + + key { [ hebrew_zain, U05C5 ] }; + key { [ hebrew_samech, U05A4 ] }; + key { [ hebrew_bet, U05AA, U05A2 ] }; + key { [ hebrew_he, U05A6 ] }; + key { [ hebrew_nun, U05A5, U05C6 ] }; + key { [ hebrew_mem, U05A7 ] }; + key { [ hebrew_zade, U059B ] }; + key { [ hebrew_taw, U0591, VoidSymbol, greater ] }; + key { [ hebrew_finalzade, U0596, VoidSymbol, less ] }; + key { [ U05AD, U05A3, period, question ] }; + + key { [ space, space, thinspace, nobreakspace ] }; +}; + +// EXTRAS + +// Biblical hebrew (SIL) US Standard layout version 1.5 +// This map is based closely on v 1.5 of the standard. The only deviation being the replacement of the composite characters sin and shin +// by their more recent Unicodev6 counterparts +// this map contains all the characters found in Biblical annotation, masoretic and Dead Sea Scroll related work. +// The layout corresponds phonetically to a US standard layout or similar (Qwerty). +// If you are using an actual Hebrew keyboard, you are probably better off using a Tiro compliant scholarly layout +// This linux port created and maintained by Dennis Meulensteen, dennis@meulensteen.nl +partial alphanumeric_keys +xkb_symbols "biblicalSIL" { + name[Group1]= "Hebrew (Biblical, SIL phonetic)"; + key.type = "FOUR_LEVEL_SEMIALPHABETIC"; + + key { [ U20AC, U20AA, U0024 ] }; //Euro, Shekel, Dollar - + key { [ 1, U0021, U05BD, U0597 ] }; //1, exclamation meteg revia + key { [ 2, U0598, U05A2, U05AE ] }; //2, zarqa atn. hafukh zinor + key { [ 3, U05A8, U0596, U0599 ] }; //3, qadma tipeha pashta + key { [ 4, U059C, U05A5, U05A0 ] }; //4, geresh merkha tel. gedola + key { [ 5, U059E, U05A6, U05A9 ] }; //5, gershayim mer. kefula tel qetana + key { [ 6, VoidSymbol, U05AD, U059F ] }; //6, - dehi qar. para + key { [ 7, U05AC, U05A3, U05A1 ] }; //7, iluy munah pazer + key { [ 8, U059D, U059B, U0595 ] }; //8, g. muqdam tevir zaq. gadol + key { [ 9, U0029, U05A7, U0593 ] }; //9, parenth.R darqa shalshelet + key { [ 0, U0028, U05AA, U05AF ] }; //0, paren.L yer. ben yomo masora c. + key { [ U05BE, U2013, U2014, U05BF ] }; //Maqaf, en dash em dash rafe + key { [ U05BC, VoidSymbol, U0591, U25CC ] }; //Dagesh - etnahta mark base + + key { [ hebrew_qoph, U0597 ] }; //Qof revia - - + key { [ hebrew_waw] }; //waw - - - + key { [ U05B6, U05B5, VoidSymbol, U05B1 ] }; //segol tsere - hat. segol + key { [ hebrew_resh ] }; //resh - - - + key { [ hebrew_taw ] }; //taw - - - + key { [ hebrew_yod, U059F ] }; //jod qar. para - - + key { [ U05BB] }; //quibuts - - - + key { [ U05B4 ] }; //hiriq, - - - + key { [ U05B9, U05BA, U05C7, U05B3 ] }; //holam, holam(wav) qam. qatan hat. Qamats + key { [ hebrew_pe, hebrew_finalpe, VoidSymbol, U034F ] }; //pe final pe - c. grapheme joiner + key { [ bracketright, braceright, VoidSymbol, U0594 ] }; //Bracket R brace R - zaq. qatan + key { [ bracketleft, braceleft, U059A, U0592 ] }; //Brachket L brace L yetiv segolta + key { [ U05C0, U05C0, U05A4, U05AB ] };//Paseq Paseq mahapakh ole + + key { [ U05B7, U05B8, U05C7, U05B2 ] }; //patah Qamats Qam. Qatan hat. patah + key { [ hebrew_samech, U05E9 ] }; //Samech, shin no dot - - + key { [ hebrew_dalet ] }; //dalet - - - + key { [ UFB2B, hebrew_shin, U05C2 ] }; //UCSv6 Sin shin (nodot) sindot - + key { [ hebrew_gimel, VoidSymbol, U25E6, U2022 ] }; //gimel - bullet(DSS) bulletfill (DSS) + key { [ hebrew_he, VoidSymbol, U0336, U030A ] };//he - strikeout(DSS) Ring Above(DSS) + key { [ UFB2A, hebrew_shin, U05C1] }; //UCSv6 Shin shin (nodot) shindot - + key { [ hebrew_kaph, hebrew_finalkaph ] }; //kaph Final kaph - + key { [ hebrew_lamed, VoidSymbol ] }; //lamed - - + key { [ U05B0, U05F4, semicolon, U05C3 ] }; //sva gers. p semicolon sof pasuq + key { [ U2019, U201D, U0323, U05C4 ] };//QuoteRight double R Quote punctum punctum Above + + key { [ hebrew_zain ] }; //Zayin - - + key { [ hebrew_chet ] }; //chet - - + key { [ hebrew_zade, U05E5 ] }; // tzade, final tzade - + key { [ hebrew_tet ] }; //tet - - + key { [ hebrew_bet ] }; //bet - - + key { [ hebrew_nun, hebrew_finalnun ] }; //nun, final nun + key { [ hebrew_mem, hebrew_finalmem, U200C, U200D ] }; //mem, final mem 0.wid.non.join. 0.wid.joiner + key { [ U002C, U05E2, U00AB, U0307 ] }; //comma, ayin guillemetsR masora dot + key { [ U0002E, U05D0, U00BB, U0308 ] }; //period, alef guillemetsL thousands + key { [ slash, question, U05F3 ] }; //slash question geresh P + + key { [ space, space, thinspace, nobreakspace ] };//space space thin space, nbsp +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/in b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/in new file mode 100644 index 0000000..04c35a2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/in @@ -0,0 +1,2062 @@ +// This layout includes all Indian layouts, including: +// - Devanagari (Hindi, Marathi, Sanskrit) +// - Bangla +// - Gujarati +// - Kannada +// - Malayalam +// - Oriya +// - Tamil +// - Telugu +// - Urdu + +// Links: +// - Indic INSCRIPT keyboard layout diagrams: +// http://java.sun.com/products/jfc/tsc/articles/InputMethod/indiclayout.html +// - Bangla Baishakhi (Bangla layouts): +// - Bangla Baishakhi Inscript (Bangla layouts): +// - Bangla Bornona (Bangla layouts): +// - Uni Gitanjali (Bangla layouts): +// http://nltr.org +// - Ekusheyr Shadhinota (Bangla layouts): +// http://ekushey.org/projects/shadhinota/index.html +// - Microsoft Windows XP SP2: Indic Language Standards - an Introduction: +// http://www.bhashaindia.com/MSProducts/XpSp2/Articles/IndicLanguageStandards.aspx + +// based on a keyboard map from an 'xkb/symbols/dev' file + +// Devangari is the default. Kill me if I am wrong:) +default partial alphanumeric_keys +xkb_symbols "deva" { + // March 2004 -- David Holl + name[Group1]="Indian"; + + key.type="FOUR_LEVEL"; + + key { [ U094a, U0912, grave, asciitilde ] }; + key { [ U0967, U090d, 1, exclam ] }; + key { [ U0968, U0945, 2, at ] }; + // Shift+AE0[3-8] really need to return a macro of keys defined by + // INSCRIPT in place of the symbols that are here for now. But this + // requires XKB to map 1 key into two to three other key presses. + key { [ U0969, numbersign, 3, numbersign ] }; + key { [ U096a, dollar, 4 ] }; + key { [ U096b, percent, 5, percent ] }; + key { [ U096c, asciicircum, 6, asciicircum ] }; + key { [ U096d, ampersand, 7, ampersand ] }; + key { [ U096e, asterisk, 8, asterisk ] }; + key { [ U096f, parenleft, 9, parenleft ] }; + key { [ U0966, parenright, 0, parenright ] }; + key { [ minus, U0903, minus, underscore ] }; + key { [ U0943, U090b, U0944, U0960 ] }; + + key { [ U094c, U0914 ] }; + key { [ U0948, U0910 ] }; + key { [ U093e, U0906 ] }; + key { [ U0940, U0908, U0963, U0961 ] }; + key { [ U0942, U090a ] }; + key { [ U092c, U092d ] }; + key { [ U0939, U0919 ] }; + key { [ U0917, U0918, U095a ] }; + key { [ U0926, U0927 ] }; + key { [ U091c, U091d, U095b ] }; + key { [ U0921, U0922, U095c, U095d ] }; + key { [ U093c, U091e ] }; + // I added \ / ? | for shell-convenience (file names and piping) + key { [ U0949, U0911, U005C, U007C ] }; + + key { [ U094b, U0913 ] }; + key { [ U0947, U090f ] }; + key { [ U094d, U0905 ] }; + key { [ U093f, U0907, U0962, U090c ] }; + key { [ U0941, U0909 ] }; + key { [ U092a, U092b, NoSymbol, U095e ] }; + key { [ U0930, U0931 ] }; + key { [ U0915, U0916, U0958, U0959 ] }; + key { [ U0924, U0925 ] }; + key { [ U091a, U091b, U0952 ] }; + key { [ U091f, U0920, NoSymbol, U0951 ] }; + + key { [ U0946, U090e, U0953 ] }; + key { [ U0902, U0901, NoSymbol, U0950 ] }; + key { [ U092e, U0923, U0954 ] }; + key { [ U0928, U0929 ] }; + key { [ U0935, U0934 ] }; + key { [ U0932, U0933 ] }; + key { [ U0938, U0936 ] }; + key { [ comma, U0937, U0970 ] }; + key { [ period, U0964, U0965, U093d ] }; + // I added \ / ? | for shell-convenience (file names and piping) + key { [ U092f, U095f, slash, question ] }; + + // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): + include "nbsp(zwnj3zwj4)" + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Bolnagri (Combined) +//Description : A phonetic keyboard layout for Devnagari(Hindi) +// http://www.indlinux.org/wiki/index.php/BolNagri +//NOTE : This is a combined map of bolnagri_matras and bolnagri_vowels. +//Inspired by "devrom" keymap by Steve Smith for the windows tool "keyman" +//Original Author : Noah Levitt +//Past Authors : Pramod.R and Ravikant +//Current Main. : G Karunakar + +partial alphanumeric_keys +xkb_symbols "bolnagri" { + name[Group1] = "Hindi (Bolnagri)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ U0902, U0901, apostrophe, asciitilde ] }; // apostrophe: anusvara, candrabindu + key { [ 1, exclam, U0967, exclam ] }; + key { [ 2, at, U0968, at ] }; + key { [ 3, numbersign, U0969, numbersign ] }; + key { [ 4, dollar, U096A ] }; // Rupee symbol on AltGr+4 + key { [ 5, percent, U096B, percent ] }; + key { [ 6, asciicircum, U096C, asciicircum ] }; + key { [ 7, ampersand, U096D, ampersand ] }; + key { [ 8, asterisk, U096E, asterisk ] }; + key { [ 9, parenleft, U096F, parenleft ] }; + key { [ 0, parenright, U0966, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ U0964, U0965, U007C, U005C ] }; //pipe : danda, double danda + + //Q Row + key { [ U200C, U200D ] }; // Q: ZWNJ, ZWJ + key { [ U0935, U950 ] }; // W: wa, OM + key { [ U0947, U0948, U090F, U0910 ] }; // E: e, ai matras + key { [ U0930, U0943, U0931, U090B ] }; // R: ra, vocalic Ri + key { [ U0924, U0925 ] }; // T: ta, tha + key { [ U092f, U091E ] }; // Y: ya, nya + key { [ U0941, U0942, U0909, U090A ] }; // U: u, uu matras + key { [ U093F, U0940, U0907, U0908 ] }; // I: i, ii matras + key { [ U094B, U094C, U0913, U0914 ] }; // O: o, au matras + key { [ U092A, U092B ] }; // P: pa, pha + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U093E, U0906, U0905, U0906 ] }; // A: aa, full A, AA + key { [ U0938, U0937 ] }; // S: sa, ssa + key { [ U0926, U0927 ] }; // D: da, dha + key { [ U091F, U0920 ] }; // F: TA, THA + key { [ U0917, U0918 ] }; // G: ga, gha + key { [ U0939, U0903 ] }; // H: ha, visarg + key { [ U091C, U091D ] }; // J: ja, jha + key { [ U0915, U0916 ] }; // K: ka, kha + key { [ U0932, U0933, U0962, U090C ] }; // L: la, vocalic L or lru matra + key { [ semicolon, colon ] }; + key { [apostrophe, quotedbl ] }; + + //Z Row + key { [ U0936, U0945, U0936, U090D ] }; // Z: sha, akaar candra + key { [ U094D, U0949, U094D, U0911 ] }; // X: halant, aakaar candra, chandra A + key { [ U091A, U091B ] }; // C: ca, cha + key { [ U0921, U0922 ] }; // V: da, dha + key { [ U092C, U092D ] }; // B: ba, bha + key { [ U0928, U0923 ] }; // N: na, nna + key { [ U092E, U0919, U092E, U093D ] }; // M: ma, nga, avagraha + key { [ comma, U0970 ] };// comma: comma, dev abbreviation sign + key { [ period, U093C ] }; // period: period, nukta + key { [ slash, question ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// modifier_map Mod3 { Mode_switch }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +// based on a keyboard map from an 'xkb/symbols/ben' file + +partial alphanumeric_keys +xkb_symbols "ben" { + name[Group1]= "Bangla (India)"; + + // Mainly numbers. + key { [ U09E7 ] }; + key { [ U09E8 ] }; + key { [ U09E9 ] }; + key { [ U09EA ] }; + key { [ U09EB ] }; + key { [ U09EC ] }; + key { [ U09ED ] }; + key { [ U09EE ] }; + key { [ U09EF, parenleft ] }; + key { [ U09E6, parenright ] }; + key { [ minus, U0983 ] }; + key { [ U098B, U09C3 ] }; + +// Mainly long vowels + + key { [ U09CC, U0994 ] }; + key { [ U09C8, U0990 ] }; + key { [ U09BE, U0986 ] }; + key { [ U09C0, U0988 ] }; + key { [ U09C2, U098A ] }; + +// Mainly voiced consonants + + key { [ U09AC, U09AD ] }; + key { [ U09B9, U0999 ] }; + key { [ U0997, U0998 ] }; + key { [ U09A6, U09A7 ] }; + key { [ U099C, U099D ] }; + key { [ U09A1, U09A2 ] }; + key { [ U09BC, U099E ] }; + +// Mainly short vowels + key { [ U09CB, U0993 ] }; + key { [ U09C7, U098F ] }; + key { [ U09CD, U0985 ] }; + key { [ U09BF, U0987 ] }; + key { [ U09C1, U0989 ] }; + + +// Mainly unvoiced consonants + + key { [ U09AA, U09AB ] }; + key { [ U09B0, U09DD ] }; + key { [ U0995, U0996 ] }; + key { [ U09A4, U09A5 ] }; + key { [ U099A, U099B ] }; + key { [ U099F, U09A0 ] }; + key { [ U005C, U007C ] }; + + key { [ z, Z ] }; + key { [ U0982, U0981 ] }; + key { [ U09AE, U09A3 ] }; + key { [ U09A8, U09A8 ] }; + key { [ U09AC, U09AC ] }; + key { [ U09B2, U09B2 ] }; + key { [ U09B8, U09B6 ] }; + key { [ comma, U09B7 ] }; + key { [ period, U0964 ] }; + key { [ U09DF, U09AF ] }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +xkb_symbols "ben_probhat" { + name[Group1]= "Bangla (India, Probhat)"; + key { [ Escape ] }; + +// numbers + key { [ U200D, asciitilde ] }; + key { [ U09E7, exclam ] }; + key { [ U09E8, at ] }; + key { [ U09E9, numbersign ] }; + key { [ U09EA, U09F3 ] }; + key { [ U09EB, percent ] }; + key { [ U09EC, asciicircum ] }; + key { [ U09ED, U099E ] }; + key { [ U09EE, U09CE ] }; + key { [ U09EF, parenleft ] }; + key { [ U09E6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ U09A6, U09A7 ] }; + key { [ U09C2, U098A ] }; + key { [ U09C0, U0988 ] }; + key { [ U09B0, U09DC ] }; + key { [ U099F, U09A0 ] }; + key { [ U098F, U0990 ] }; + key { [ U09C1, U0989 ] }; + key { [ U09BF, U0987 ] }; + key { [ U0993, U0994 ] }; + key { [ U09AA, U09AB ] }; + key { [ U09C7, U09C8 ] }; + key { [ U09CB, U09CC ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ U09BE, U0985 ] }; + key { [ U09B8, U09B7 ] }; + key { [ U09A1, U09A2 ] }; + key { [ U09A4, U09A5 ] }; + key { [ U0997, U0998 ] }; + key { [ U09B9, U0983 ] }; + key { [ U099C, U099D ] }; + key { [ U0995, U0996 ] }; + key { [ U09B2, U0982 ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ U09DF, U09AF ] }; + key { [ U09B6, U09DD ] }; + key { [ U099A, U099B ] }; + key { [ U0986, U098B ] }; + key { [ U09AC, U09AD ] }; + key { [ U09A8, U09A3 ] }; + key { [ U09AE, U0999 ] }; + key { [ comma, U09C3 ] }; + key { [ U0964, U0981 ] }; + key { [ U09CD, question ] }; + key { [ U200C, U0965 ] }; + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +// Bangla Baishakhi, Bangla Baishakhi Inscript, Bangla Bornona, Uni Gitanjali Layouts are added by Promathesh Mandal + +xkb_symbols "ben_baishakhi" { + name[Group1]= "Bangla (India, Baishakhi)"; + key { [ Escape ] }; + +// numbers + key { [ 0x100200D, 0x100200C ] }; + key { [ 0x10009E7, exclam ] }; + key { [ 0x10009E8, at ] }; + key { [ 0x10009E9, numbersign ] }; + key { [ 0x10009EA, dollar, 0x10009F2 ] }; + key { [ 0x10009EB, percent ] }; + key { [ 0x10009EC, asciicircum, 0x10009D7 ] }; + key { [ 0x10009ED, ampersand ] }; + key { [ 0x10009EE, asterisk,0x10009FA ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x10009A1, 0x10009A2 ] }; + key { [ 0x10009C0 , 0x10009C2 ] }; + key { [ 0x10009C7, 0x100098F, 0x1000990 ] }; + key { [ 0x10009B0 , 0x10009C3, 0x100098B ] }; + key { [ 0x100099F, 0x10009A0 ] }; + key { [ 0x10009AF, 0x10009DF ] }; + key { [ 0x10009C1, 0x1000989, 0x100098A ] }; + key { [ 0x10009BF, 0x1000987, 0x1000988 ] }; + key { [ 0x10009CB, 0x1000993, 0x1000994 ] }; + key { [ 0x10009AA, 0x10009AB ] }; + key { [ bracketleft, braceleft] }; + key { [ bracketright, braceright ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x10009BE, 0x1000985, 0x1000986 ] }; + key { [ 0x10009B8, 0x10009B6, 0x10009B7 ] }; + key { [ 0x10009A6, 0x10009A7 ] }; + key { [ 0x10009A4, 0x10009A5, 0x10009CE ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009CD, 0x10009B9, 0x1000983 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009B2, 0x1000964, 0x100098C ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x10009C8, 0x10009CC ] }; + key { [ 0x10009DC, 0x10009DD ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x10009F1, 0x10009F0 ] }; + key { [ 0x10009AC, 0x10009AD ] }; + key { [ 0x10009A8, 0x10009A3, 0x100099E ] }; + key { [ 0x10009AE, 0x1000999, 0x1000981 ] }; + key { [ comma, less ] }; + key { [ period, greater,0x10009BC ] }; + key { [ slash, question, 0x1000982 ] }; + key { [ backslash, bar ] }; + +// third level with right-alt + include "level3(ralt_switch)" + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +}; + +xkb_symbols "ben_inscript" { + name[Group1]= "Bangla (India, Baishakhi Inscript)"; + + // Mainly numbers. + key { [ 0x100200D, 0x100200C ] }; + key { [ 0x10009E7 ] }; + key { [ 0x10009E8 ] }; + key { [ 0x10009E9 ] }; + key { [ 0x10009EA ] }; + key { [ 0x10009EB ] }; + key { [ 0x10009EC ] }; + key { [ 0x10009ED ] }; + key { [ 0x10009EE ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, 0x1000983 ] }; + key { [ 0x10009C3, 0x100098B ] }; + +// Mainly long vowels + + key { [ 0x10009CC, 0x1000994 ] }; + key { [ 0x10009C8, 0x1000990 ] }; + key { [ 0x10009BE, 0x1000986 ] }; + key { [ 0x10009C0, 0x1000988 ] }; + key { [ 0x10009C2, 0x100098A ] }; + +// Mainly voiced consonants + + key { [ 0x10009AC, 0x10009AD ] }; + key { [ 0x10009B9, 0x1000999 ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009A6, 0x10009A7 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x10009A1, 0x10009A2 ] }; + key { [ 0x10009BC, 0x100099E ] }; + +// Mainly short vowels + key { [ 0x10009CB, 0x1000993 ] }; + key { [ 0x10009C7, 0x100098F ] }; + key { [ 0x10009CD, 0x1000985 ] }; + key { [ 0x10009BF, 0x1000987 ] }; + key { [ 0x10009C1, 0x1000989 ] }; + + +// Mainly unvoiced consonants + + key { [ 0x10009AA, 0x10009AB ] }; + key { [ 0x10009B0, 0x10009DD ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009A4, 0x10009A5 ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x100099F, 0x10009A0 ] }; + key { [ backslash, bar ] }; + + key { [ 0x10009CE ] }; + key { [ 0x1000982, 0x1000981 ] }; + key { [ 0x10009AE, 0x10009A3 ] }; + key { [ 0x10009A8, 0x10009A8 ] }; + key { [ 0x10009AC, 0x10009AC ] }; + key { [ 0x10009B2, 0x10009B2 ] }; + key { [ 0x10009B8, 0x10009B6 ] }; + key { [ comma, 0x10009B7 ] }; + key { [ period, 0x1000964 ] }; + key { [ 0x10009DF, 0x10009AF ] }; +}; + +xkb_symbols "ben_gitanjali" { + name[Group1]= "Bangla (India, Uni Gitanjali)"; + key { [ Escape ] }; + +// numbers + key { [ colon, question ] }; + key { [ 0x10009E7, 0x10009CE ] }; + key { [ 0x10009E8, apostrophe ] }; + key { [ 0x10009E9, numbersign ] }; + key { [ 0x10009EA, 0x10009F3 ] }; + key { [ 0x10009EB, slash ] }; + key { [ 0x10009EC, period ] }; + key { [ 0x10009ED, ampersand ] }; + key { [ 0x10009EE, asterisk ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, 0x1000983 ] }; + key { [ 0x10009C3, 0x100098B ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x10009D7, 0x1000994 ] }; + key { [ 0x10009C8, 0x1000990 ] }; + key { [ 0x10009BE, 0x1000985 ] }; + key { [ 0x10009C0, 0x1000988 ] }; + key { [ 0x10009C2, 0x100098A ] }; + key { [ 0x10009AC, 0x10009AD ] }; + key { [ 0x10009B9, 0x1000999 ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009A6, 0x10009A7 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x10009A1, 0x10009A2 ] }; + key { [ 0x100200C, 0x100099E ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x100200D, 0x1000993 ] }; + key { [ 0x10009C7, 0x100098F ] }; + key { [ 0x10009CD ] }; + key { [ 0x10009BF, 0x1000987 ] }; + key { [ 0x10009C1, 0x1000989 ] }; + key { [ 0x10009AA, 0x10009AB ] }; + key { [ 0x10009B0, 0x10009F0 ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009A4, 0x10009A5 ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x100099F, 0x10009A0 ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x10009C7, 0x100098F ] }; + key { [ 0x1000982, 0x1000981 ] }; + key { [ 0x10009AE, 0x10009A3 ] }; + key { [ 0x10009A8, 0x10009DC ] }; + key { [ 0x10009F1, 0x10009DD ] }; + key { [ 0x10009B2 ] }; + key { [ 0x10009B8, 0x10009B6 ] }; + key { [ comma, 0x10009B7 ] }; + key { [ 0x1000964, 0x10009FA ] }; + key { [ 0x10009AF, 0x10009DF ] }; + key { [ backslash, bar ] }; + +// third level with right-win +// include "level3(lwin_switch)" + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +}; + + +xkb_symbols "ben_bornona" { + name[Group1]= "Bangla (India, Bornona)"; + key { [ Escape ] }; + +// numbers + key { [ 0x100200D, 0x100200C ] }; + key { [ 0x10009E7, exclam ] }; + key { [ 0x10009E8, 0x1000981 ] }; + key { [ 0x10009E9, numbersign ] }; + key { [ 0x10009EA, 0x10009F3 ] }; + key { [ 0x10009EB, percent ] }; + key { [ 0x10009EC, 0x1000983 ] }; + key { [ 0x10009ED, 0x10009CE ] }; + key { [ 0x10009EE, asterisk ] }; + key { [ 0x10009EF, parenleft ] }; + key { [ 0x10009E6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ BackSpace ] }; + +// tab, q to ] + key { [ Tab, ISO_Left_Tab ] }; + key { [ 0x1000982, 0x1000999, 0x10009D7 ] }; + key { [ 0x10009A2, 0x10009A0, 0x100098A ] }; + key { [ 0x10009C7, 0x10009C8, 0x1000988 ] }; + key { [ 0x10009B0, 0x10009C3, 0x100098B ] }; + key { [ 0x10009A4, 0x100099F ] }; + key { [ 0x10009A7, 0x10009A5, 0x100098F ] }; + key { [ 0x10009C1, 0x10009C2, 0x1000989 ] }; + key { [ 0x10009BF, 0x10009C0, 0x1000987 ] }; + key { [ 0x10009CB, 0x10009CC, 0x1000993 ] }; + key { [ 0x10009AA, 0x1000990, 0x1000994 ] }; + key { [ 0x100005B, 0x100007B, 0x10009DC ] }; + key { [ 0x100005D, 0x100007D ] }; + key { [ Return ] }; + +// caps, a to ' +// key { [ Caps_Lock ] }; + key { [ 0x10009BE, 0x1000985, 0x10009F4 ] }; + key { [ 0x10009B8, 0x10009B6, 0x10009F5 ] }; + key { [ 0x10009A6, 0x10009A1, 0x10009F8 ] }; + key { [ 0x10009AB ] }; + key { [ 0x1000997, 0x1000998 ] }; + key { [ 0x10009CD, 0x10009B9 ] }; + key { [ 0x100099C, 0x100099D ] }; + key { [ 0x1000995, 0x1000996 ] }; + key { [ 0x10009B2, 0x1000964 ] }; + key { [ semicolon, 0x100003A ] }; + key { [ apostrophe, quotedbl ] }; + +// shift, z to / +// key { [ Shift_L ] }; + key { [ 0x10009AF, 0x10009DC ] }; + key { [ 0x10009B7, 0x10009DD, 0x10009FA ] }; + key { [ 0x100099A, 0x100099B ] }; + key { [ 0x10009AD ] }; + key { [ 0x10009AC, 0x10009DF ] }; + key { [ 0x10009A8, 0x10009A3 ] }; + key { [ 0x10009AE, 0x100099E ] }; + key { [ comma, 0x100003C ] }; + key { [ 0x100002E, 0x100003E ] }; + key { [ 0x100002F, question ] }; + key { [ 0x10009F1, 0x10009F0 ] }; + +// key { [ Control_L ] }; +// key { [ space ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// third level with right-alt + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "guj" { + name[Group1]= "Gujarati"; + + // Mainly numbers. + key { [ U0AE7, U0A8D ] }; + key { [ U0AE8, U0AC5 ] }; + key { [ U0AE9 ] }; + key { [ U0AEA ] }; + key { [ U0AEB ] }; + key { [ U0AEC ] }; + key { [ U0AED ] }; + key { [ U0AEE ] }; + key { [ U0AEF, parenleft ] }; + key { [ U0AE6, parenright ] }; + key { [ minus, U0A83 ] }; + key { [ U0A8B, U0AC3 ] }; + +// Mainly long vowels + + key { [ U0ACC, U0A94 ] }; + key { [ U0AC8, U0A90 ] }; + key { [ U0ABE, U0A86 ] }; + key { [ U0AC0, U0A88 ] }; + key { [ U0AC2, U0A8A ] }; + +// Mainly voiced consonants + + key { [ U0AAC, U0AAD ] }; + key { [ U0AB9, U0A99 ] }; + key { [ U0A97, U0A98 ] }; + key { [ U0AA6, U0AA7 ] }; + key { [ U0A9C, U0A9D ] }; + key { [ U0AA1, U0AA2 ] }; + key { [ U0ABC, U0A9E ] }; + +// Mainly short vowels + key { [ U0ACB, U0A93 ] }; + key { [ U0AC7, U0A8F ] }; + key { [ U0ACD, U0A85 ] }; + key { [ U0ABF, U0A87 ] }; + key { [ U0AC1, U0A89 ] }; + +// Mainly unvoiced consonants + + key { [ U0AAA, U0AAB ] }; + key { [ U0AB0, U0AB0 ] }; + key { [ U0A95, U0A96 ] }; + key { [ U0AA4, U0AA5 ] }; + key { [ U0A9A, U0A9B ] }; + key { [ U0A9F, U0AA0 ] }; + key { [ U0AC9, U0A91 ] }; + + key { [ z , Z ] }; + key { [ U0A82, U0A81 ] }; + key { [ U0AAE, U0AA3 ] }; + key { [ U0AA8, U0AA8 ] }; + key { [ U0AB5, U0AB5 ] }; + key { [ U0AB2, U0AB3 ] }; + key { [ U0AB8, U0AB6 ] }; + key { [ comma, U0AB7 ] }; + key { [ period, U0964 ] }; + key { [ U0AAF, question ] }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "kan" { + + // Inscript layout for Kannada + // Author : G Karunakar + // Date : Wed Nov 13 17:22:58 IST 2002 + // Kannada digits mapped in basic only + + name[Group1]= "Kannada"; + + key { [ U0cca, U0c92 ] }; + key { [ U0ce7 ] }; + key { [ U0ce8 ] }; + key { [ U0ce9 ] }; + key { [ U0cea ] }; + key { [ U0ceb ] }; + key { [ U0cec ] }; + key { [ U0ced ] }; + key { [ U0cee ] }; + key { [ U0cef ] }; + key { [ U0ce6 ] }; + key { [ U0c83 ] }; + key { [ U0cc3, U0c8b ] }; + + key { [ U0ccc, U0c94 ] }; + key { [ U0cc8, U0c90 ] }; + key { [ U0cbe, U0c86 ] }; + key { [ U0cc0, U0c88 ] }; + key { [ U0cc2, U0c8a ] }; + key { [ U0cac, U0cad ] }; + key { [ U0cb9, U0c99 ] }; + key { [ U0c97, U0c98 ] }; + key { [ U0ca6, U0ca7 ] }; + key { [ U0c9c, U0c9d ] }; + key { [ U0ca1, U0ca2 ] }; + key { [ U0cbc, U0c9e ] }; + + key { [ U0ccb, U0c93 ] }; + key { [ U0cc7, U0c8f ] }; + key { [ U0ccd, U0c85 ] }; + key { [ U0cbf, U0c87 ] }; + key { [ U0cc1, U0c89 ] }; + key { [ U0caa, U0cab ] }; + key { [ U0cb0, U0cb1 ] }; + key { [ U0c95, U0c96 ] }; + key { [ U0ca4, U0ca5 ] }; + key { [ U0c9a, U0c9b ] }; + key { [ U0c9f, U0ca0 ] }; + + key { [ U0cc6, U0c8e ] }; + key { [ U0c82 ] }; + key { [ U0cae, U0ca3 ] }; + key { [ U0ca8 ] }; + key { [ U0cb5, U0cb4 ] }; + key { [ U0cb2, U0cb3 ] }; + key { [ U0cb8, U0cb6 ] }; + key { [ comma , U0cb7 ] }; + key { [ period ] }; + key { [ U0caf, U0040 ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +// Description : A keymap for Malayalam +// Encoding : Unicode (http://www.unicode.org) +// Author : Baiju M +// Date : Sat Aug 17 21:10:48 IST 2002 +// Mapping: + +partial alphanumeric_keys +xkb_symbols "mal" { + + name[Group1] = "Malayalam"; + + //From grave to backslash (\) + + key { [ U0d4a , U0d12 ] }; + +// svu: +// These lines were in former "mal" variant - +// but the digits are replaced with the ones from 'mal_plusnum' - +// for the integrity of all Indian layouts +// +// key { [1 , exclam ] }; +// key { [2 , at ] }; +// key { [3 , numbersign ] }; +// key { [4 , dollar ] }; +// key { [5 , percent ] }; +// key { [6 ,asciicircum ] }; +// key { [7 , ampersand ] }; +// key { [8 , asterisk ] }; +// key { [9 , parenleft ] }; +// key { [0 , parenright ] }; + + key { [ U0d67 , exclam ] }; + key { [ U0d68 , at ] }; + key { [ U0d69 , numbersign ] }; + key { [ U0d6a , dollar ] }; + key { [ U0d6b , percent ] }; + key { [ U0d6c , asciicircum ] }; + key { [ U0d6d , ampersand ] }; + key { [ U0d6e , asterisk ] }; + key { [ U0d6f , parenleft ] }; + key { [ U0d66 , parenright ] }; + + key { [ minus , U0d03 ] }; + key { [ U0d43 , U0d0b ] }; + key { [U0200c, U05C ]};//bksl: ZWNJ + + + // From 'q' to right bracket (]) + + key { [ U0d4c , U0d14 ] }; + key { [ U0d48 , U0d10 ] }; + key { [ U0d3e , U0d06 ] }; + key { [ U0d40 , U0d08 ] }; + key { [ U0d42 , U0d0a ] }; + key { [ U0d2c , U0d2d ] }; + key { [ U0d39 , U0d19 ] }; + key { [ U0d17 , U0d18 ] }; + key { [ U0d26 , U0d27 ] }; + key { [ U0d1c , U0d1d ] }; + key { [ U0d21 , U0d22 ] }; + key { [ U0200d , U0d1e ] }; + + // From 'a' to apostrophe (') + + key { [ U0d4b , U0d13 ] }; + key { [ U0d47 , U0d0f ] }; + key { [ U0d4d , U0d05 ] }; + key { [ U0d3f , U0d07 ] }; + key { [ U0d41 , U0d09 ] }; + key { [ U0d2a , U0d2b ] }; + key { [ U0d30 , U0d31 ] }; + key { [ U0d15 , U0d16 ] }; + key { [ U0d24 , U0d25 ] }; + key { [ U0d1a , U0d1b ] }; + key { [ U0d1f , U0d20 ] }; + + // From 'z' to slash (/) + + key { [ U0d46 , U0d0e ] }; + key { [ U0d02 , U200b ] };//X:ZWSP + key { [ U0d2e , U0d23 ] }; + key { [ U0d28 ] }; + key { [ U0d35 , U0d34 ] }; + key { [ U0d32 , U0d33 ] }; + key { [ U0d38 , U0d36 ] }; + key { [ comma , U0d37 ] }; + key { [ period , U0200d ] }; + key { [ U0d2f , question ] }; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Lalitha +//Description : A transliteration keyboard layout for Malayalam +//Original Author : Noah Levitt +//Current Main : Jinesh K.J, Swathantra Malayalam Computing (SMC) + +partial alphanumeric_keys +xkb_symbols "mal_lalitha" { + name[Group1] = "Malayalam (Lalitha)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ U0D4D, U0D02, apostrophe, asciitilde ] }; // apostrophe: virama(chandrakala),anusvara + key { [ 1, exclam, U0D67, exclam ] }; + key { [ 2, at, U0D68, at ] }; + key { [ 3, numbersign, U0D69, numbersign ] }; + key { [ 4, dollar, U0D6A ] }; + key { [ 5, percent, U0D6B, percent ] }; + key { [ 6, asciicircum, U0D6C, asciicircum ] }; + key { [ 7, ampersand, U0D6D, ampersand ] }; + key { [ 8, asterisk, U0D6E, asterisk ] }; + key { [ 9, parenleft, U0D6F, parenleft ] }; + key { [ 0, parenright, U0D66, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ U005C, U007C, U200C ] };//backslash:pipe,backslash,ZWNJ + + //Q Row + key { [ U0D48, U0D4C, U0D10, U0D14 ] }; // Q: ai and au matras + key { [ U0D35 ] }; // W: wa, OM + key { [ U0D46, U0D47, U0D0E, U0D0F ] }; // E: e,ee matras + key { [ U0D30, U0D31, U0D43, U0D0B ] }; // R: ra,rra, vocalic Ri + key { [ U0D24, U0D25, U0D1F, U0D20 ] }; // T: tha, ttha,ta,tta + key { [ U0D2f ] }; // Y: ya + key { [ U0D41, U0D42, U0D09, U0D0A ] }; // U: u, uu matras + key { [ U0D3F, U0D40, U0D07, U0D08 ] }; // I: i, ii matras + key { [ U0D4A, U0D4B, U0D12, U0D13 ] }; // O: o, oo matras + key { [ U0D2A ] }; // P: pa + key { [ bracketleft, braceleft ] };//braceleft: + key { [ bracketright, braceright ] };//braceright: + + //A Row + key { [ U0D3E, U0D05, U0D06, U0D05 ] }; // A: a,aa + key { [ U0D38, U0D37 ] }; // S: sa, ssa + key { [ U0D26, U0D27, U0D21, U0D22 ] }; // D: soft da,soft dda,hard da,hard dda, + key { [ U0D2B ] }; // F: pha + key { [ U0D17, U0D18 ] }; // G: ga, gha + key { [ U0D39, U0D03 ] }; // H: ha, visarg + key { [ U0D1C, U0D1D ] }; // J: ja, jha + key { [ U0D15, U0D16 ] }; // K: ka, kha + key { [ U0D32, U0D33 ] }; // L: la, vocalic L or lru matra` + key { [ semicolon, colon ] }; + key { [apostrophe, quotedbl ] }; + + //Z Row + key { [ U0D34, U0D36 ] }; // Z: sha,zha + key { [ U0D4D, U200B ] }; // X: chandrakala,ZWSP + key { [ U0D1A, U0D1B ] }; // C: ca, cha + key { [ U0D35, U200D ] }; // V: va,ZWJ + key { [ U0D2C, U0D2D ] }; // B: ba, bha + key { [ U0D28, U0D23, U0D19, U0D1E ] }; // N: na, hard na,nga,nha + key { [ U0D2E, U0D02 ] }; // M: ma + key { [ comma, U003C ] };// comma: comma + key { [ period, U003E ] }; // period: period + key { [ slash, question ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// modifier_map Mod3 { Mode_switch }; + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + + +partial alphanumeric_keys +xkb_symbols "ori" { + // Inscript layout for Oriya + // Author: G Karunakar + // Date: Wed Nov 13 18:16:19 IST 2002 + + name[Group1]= "Oriya"; + + key { [ U0b67 ] }; + key { [ U0b68 ] }; + key { [ U0b69 ] }; + key { [ U0b6a ] }; + key { [ U0b6b ] }; + key { [ U0b6c ] }; + key { [ U0b6d ] }; + key { [ U0b6e ] }; + key { [ U0b6f ] }; + key { [ U0b66 ] }; + key { [ U0b03 ] }; + key { [ U0b43, U0b0b ] }; + + key { [ U0b4c, U0b14 ] }; + key { [ U0b48, U0b10 ] }; + key { [ U0b3e, U0b06 ] }; + key { [ U0b40, U0b08 ] }; + key { [ U0b42, U0b0a ] }; + key { [ U0b2c, U0b2d ] }; + key { [ U0b39, U0b19 ] }; + key { [ U0b17, U0b18 ] }; + key { [ U0b26, U0b27 ] }; + key { [ U0b1c, U0b1d ] }; + key { [ U0b21, U0b22 ] }; + key { [ U0b3c, U0b1e ] }; + + key { [ U0b4b, U0b13 ] }; + key { [ U0b47, U0b0f ] }; + key { [ U0b4d, U0b05 ] }; + key { [ U0b3f, U0b07 ] }; + key { [ U0b41, U0b09 ] }; + key { [ U0b2a, U0b2b ] }; + key { [ U0b30 ] }; + key { [ U0b15, U0b16 ] }; + key { [ U0b24, U0b25 ] }; + key { [ U0b1a, U0b1b ] }; + key { [ U0b1f, U0b20 ] }; + + key { [ U0b02, U0b01 ] }; + key { [ U0b2e, U0b23 ] }; + key { [ U0b28 ] }; + key { [ U0b35 ] }; + key { [ U0b32, U0b33 ] }; + key { [ U0b38, U0b36 ] }; + key { [ comma , U0b37 ] }; + key { [ period ] }; + key { [ U0b2f, U0040 ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +// based on a keyboard map from an 'xkb/symbols/tml' file +// INSCRIPT +partial alphanumeric_keys +xkb_symbols "tam" { + name[Group1]= "Tamil"; + + key { [ U0BCA, U0B92 ] }; + + // Mainly numbers. + key { [ U0BE7 ] }; + key { [ U0BE8 ] }; + key { [ U0BE9 ] }; + key { [ U0BEA ] }; + key { [ U0BEB ] }; + key { [ U0BEC ] }; + key { [ U0BED ] }; + key { [ U0BEE ] }; + key { [ U0BEF, parenleft ] }; + key { [ U0BF0, parenright ] }; + key { [ U0BF1, U0B83 ] }; + key { [ U0BF2, plus ] }; + +// Mainly long vowels + + key { [ U0BCC, U0B94 ] }; + key { [ U0BC8, U0B90 ] }; + key { [ U0BBE, U0B86 ] }; + key { [ U0BC0, U0B88 ] }; + key { [ U0BC2, U0B8A ] }; + +// Mainly voiced consonants + + key { [ U0BB9, U0B99 ] }; + key { [ U0B9c ] }; + key { [ U0B9E ] }; + +// Mainly short vowels + key { [ U0BCB, U0B93 ] }; + key { [ U0BC7, U0B8F ] }; + key { [ U0BCD, U0B85 ] }; + key { [ U0BBF, U0B87 ] }; + key { [ U0BC1, U0B89 ] }; + +// Mainly unvoiced consonants + + key { [ U0BAA ] }; + key { [ U0BB0, U0BB1 ] }; + key { [ U0B95 ] }; + key { [ U0BA4 ] }; + key { [ U0B9A ] }; + key { [ U0B9F ] }; + key { [ U005C, U007C ] };//backslash-bar - Changed to Unicode + + key { [ U0BC6, U0B8E ] }; + key { [ U0B82 ] }; + key { [ U0BAE, U0BA3 ] }; + key { [ U0BA8, U0BA9 ] }; + key { [ U0BB5, U0BB4 ] }; + key { [ U0BB2, U0BB3 ] }; + key { [ U0BB8, U0BB6 ] }; + key { [ comma, U0BB7 ] }; + key { [ period, U0964 ] }; + key { [ U0BAF, question ] }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +partial alphanumeric_keys +xkb_symbols "tam_unicode" { + +// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: Unicode (http://www.unicode.org) +// Author: Thuraiappah Vaseeharan +// Modifed by: Malathi S +// Secondary contact: Sri Ramadoss M +// Date : Fri Sep 4 11:32:00 CST 2009 +// Mapping: + + name[Group1]= "Tamil (Unicode)"; + + // granthas + key { [ apostrophe, asciitilde ] }; + key { [ U0031, exclam ] } ; + key { [ U0032, at ] } ; + key { [ U0033, numbersign ] } ; + key { [ U0034, U0BF9 ] } ; + key { [ U0035, percent ] } ; + key { [ U0036, asciicircum ] } ; + key { [ U0037, ampersand ] } ; + key { [ U0038, asterisk ] } ; + key { [ U0039, parenleft ] } ; + key { [ U0030, parenright ] } ; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + + // Qrow + key { [ U0B9E, U0BB6 ] }; + key { [ U0BB1, U0BB7 ] }; + key { [ U0BA8, U0BB8 ] }; + key { [ U0B9A, U0BB9 ] }; + key { [ U0BB5, U0B9C ] }; + key { [ U0BB2 ] }; + key { [ U0BB0 ] }; + key { [ U0BC8, U0B90 ] }; + key { [ U0BCA, U0BCB ] }; + key { [ U0BBF, U0BC0 ] }; + key { [ U0BC1, U0BC2 ] }; + + // Arow + key { [ U0BAF ] }; + key { [ U0BB3 ] }; + key { [ U0BA9 ] }; + key { [ U0B95 ] }; + key { [ U0BAA ] }; + key { [ U0BBE, U0BB4 ] }; + key { [ U0BA4 ] }; + key { [ U0BAE ] }; + key { [ U0B9F ] }; + key { [ U0BCD, U0B83 ] }; + key { [ U0B99 ] }; + + // Zrow + key { [ U0BA3 ] }; + key { [ U0B92, U0B93 ] }; + key { [ U0B89, U0B8A ] }; + key { [ U0B8E, U0B8F ] }; + key { [ U0BC6, U0BC7 ] }; + key { [ U0B94, U0BCC ] }; + key { [ U0B85, U0B86 ] }; + key { [ U0B87, U0B88 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tam_keyboard_with_numerals" { + +// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: Unicode (http://www.unicode.org) +// Author: Malathi S +// Secondary contact: Sri Ramadoss M +// Date : Fri Sep 4 11:33:00 CST 2009 +// Mapping: + + name[Group1]= "Tamil (keyboard with numerals)"; + + // Mainly numbers. + key { [ apostrophe, asciitilde ] }; + key { [ U0BE7, exclam ] }; + key { [ U0BE8, at ] }; + key { [ U0BE9, numbersign ] }; + key { [ U0BEA, U0BF9 ] }; + key { [ U0BEB, percent ] }; + key { [ U0BEC, asciicircum ] }; + key { [ U0BED, ampersand ] }; + key { [ U0BEE, asterisk ] }; + key { [ U0BEF, parenleft ] }; + key { [ U0BE6, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + + // Qrow + key { [ U0B9E, U0BB6 ] }; + key { [ U0BB1, U0BB7 ] }; + key { [ U0BA8, U0BB8 ] }; + key { [ U0B9a, U0BB9 ] }; + key { [ U0BB5, U0B9c ] }; + key { [ U0BB2 ] }; + key { [ U0BB0 ] }; + key { [ U0BC8, U0B90 ] }; + key { [ U0BCA, U0BCB ] }; + key { [ U0BBF, U0BC0 ] }; + key { [ U0BC1, U0BC2 ] }; + + // Arow + key { [ U0BAF ] }; + key { [ U0BB3 ] }; + key { [ U0BA9 ] }; + key { [ U0B95 ] }; + key { [ U0BAA ] }; + key { [ U0BBE, U0BB4 ] }; + key { [ U0BA4 ] }; + key { [ U0BAE ] }; + key { [ U0B9F ] }; + key { [ U0BCD, U0B83 ] }; + key { [ U0B99 ] }; + + // Zrow + key { [ U0BA3 ] }; + key { [ U0B92, U0B93 ] }; + key { [ U0B89, U0B8A ] }; + key { [ U0B8E, U0B8F ] }; + key { [ U0BC6, U0BC7 ] }; + key { [ U0B94, U0BCC ] }; + key { [ U0B85, U0B86 ] }; + key { [ U0B87, U0B88 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tam_TSCII" { + +// Description : A Tamil typewrite-style keymap +// loosely based on TamilNet'99 reommendations +// Encoding : TSCII (http://www.tscii.org) +// Author : Thuraiappah Vaseeharan +// Last Modified: Sat Jan 5 17:11:26 CST 2002 + + name[Group1]= "Tamil (TSCII typewriter)"; + + key { [ 0x10000b7, 0x10000a4 ] }; // aytham + key { [ 0x1000082, 0x10000a5 ] }; // shri + key { [ 0x1000083, 0x1000088 ] }; // ja + key { [ 0x1000084, 0x1000089 ] }; // sha + key { [ 0x1000085, 0x100008a ] }; // sa + key { [ 0x1000086, 0x100008b ] }; // ha + key { [ 0x1000087, 0x100008c ] }; // ksha + + // Qrow + key { [ 0x10000bb, 0x100009a ] }; // nja + key { [ 0x10000c8, 0x10000da ] }; // Ra + key { [ 0x10000bf, 0x10000d1 ] }; // NNa + key { [ 0x10000ba, 0x10000cd ] }; // ca + key { [ 0x10000c5, 0x10000d7 ] }; // va + key { [ 0x10000c4, 0x10000d6 ] }; // la + key { [ 0x10000c3, 0x10000d5 ] }; // ra + key { [ 0x10000a8, 0x10000b3 ] }; // sangili, ai + key { [ 0x10000ca, 0x10000cb ] }; // di, dI + key { [ 0x10000a2, 0x10000a3 ] }; // visiri + key { [ dead_acute, 0x10000a3 ] }; // Ukaaram + + // Arow + key { [ 0x10000c2, 0x10000d4 ] }; // ya + key { [ 0x10000c7, 0x10000d9 ] }; // La + key { [ 0x10000c9, 0x10000db ] }; // na + key { [ 0x10000b8, 0x10000cc ] }; // ka + key { [ 0x10000c0, 0x10000d2 ] }; // pa + key { [ dead_grave,0x10000a1 ] }; // pulli,aravu + key { [ 0x10000be, 0x10000d0 ] }; // tha + key { [ 0x10000c1, 0x10000d3 ] }; // ma + key { [ 0x10000bc, 0x10000ce ] }; // da + key { [ 0x10000c6, 0x10000d8 ] }; // zha + key { [ 0x10000b9, 0x1000099 ] }; // nga + + // Zrow + key { [ 0x10000bd, 0x10000cf ] }; // Na + key { [ 0x10000b4, 0x10000b5 ] }; // o, O + key { [ 0x10000af, 0x10000b0 ] }; // u, U + key { [ 0x10000b1, 0x10000b2 ] }; // e, E + key { [ 0x10000a6, 0x10000a7 ] }; // kombus + key { [ 0x10000b6, 0x10000aa ] }; // au + key { [ 0x10000ab, 0x10000ac ] }; // a, A + key { [ 0x10000fe, 0x10000ae ] }; // i, I +}; + +partial alphanumeric_keys +xkb_symbols "tam_TAB" { + +// Description: A keymap based on the TamilNet'99 typewriter keyboard +// Encoding: TAB (http://www.tamilnet99.org) +// Author: Thuraiappah Vaseeharan +// Date : Sun Aug 12 02:23:00 CDT 2001 + + name[Group1]= "Tamil (TAB typewriter)"; + + // numeral row + key { [ 0x10000e7, 0x10000a7 ] } ; + key { [ 0x10000fa, 0x10000a8 ] } ; + key { [ 0x10000fb ] } ; + key { [ 0x10000fc ] } ; + key { [ 0x10000fd ] } ; + key { [ 0x10000fe ] } ; + key { [ 0x10000ff ] } ; + + // q-row + key { [ 0x10000eb, 0x10000b3 ] }; + key { [ 0x10000f8, 0x10000c1 ] }; + key { [ 0x10000ef, 0x10000b8 ] }; + key { [ 0x10000ea, 0x10000b2 ] }; + key { [ 0x10000f5, 0x10000be ] }; + key { [ 0x10000f4, 0x10000bd ] }; + key { [ 0x10000f3, 0x10000bc ] }; + key { [ 0x10000ac, 0x10000e4 ] }; + key { [ 0x10000ae, 0x10000af ] }; + key { [ 0x10000a4, 0x10000a6 ] }; + key { [ dead_circumflex, 0x10000a6 ] }; // Ukaaram + + // a-row + key { [ 0x10000f2, 0x10000bb ] }; + key { [ 0x10000f7, 0x10000c0 ] }; + key { [ 0x10000f9, 0x10000c2 ] }; + key { [ 0x10000e8, 0x10000b0 ] }; + key { [ 0x10000f0, 0x10000b9 ] }; + key { [ 0x10000a2, 0x10000a3 ] }; + key { [ 0x10000ee, 0x10000b6 ] }; + key { [ 0x10000f1, 0x10000ba ] }; + key { [ 0x10000ec, 0x10000b4 ] }; + key { [ 0x10000f6, 0x10000bf ] }; + key { [ 0x10000e9, 0x10000b1 ] }; + + // z-row + key { [ 0x10000ed, 0x10000b5 ] }; + key { [ 0x10000e5, 0x10000e6 ] }; + key { [ 0x10000e0, 0x10000e1 ] }; + key { [ 0x10000e2, 0x10000e3 ] }; + key { [ 0x10000aa, 0x10000ab ] }; + key { [ 0x10000ac, 0x10000a3 ] }; + key { [ 0x10000dc, 0x10000dd ] }; + key { [ 0x10000de, 0x10000df ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tel" { + + // Inscript layout for Telugu using Unicode + // Author: G Karunakar + // Date: + // See layout at http://www.indlinux.org/keymap/telugu.php + + name[Group1]= "Telugu"; + + key { [ U0c4a, U0c12 ] }; + key { [ U0c67 ] }; + key { [ U0c68 ] }; + key { [ U0c69, numbersign ] }; + key { [ U0c6a, dollar ] }; + key { [ U0c6b, percent ] }; + key { [ U0c6c, asciicircum ] }; + key { [ U0c6d, ampersand ] }; + key { [ U0c6e, asterisk ] }; + key { [ U0c6f, parenleft ] }; + key { [ U0c66, parenright ] }; + key { [ U0c03, underscore ] }; + key { [ U0c43, U0c0b ] }; + key { [ BackSpace ] }; + + key { [ U0c4c, U0c14 ] }; + key { [ U0c48, U0c10 ] }; + key { [ U0c3e, U0c06 ] }; + key { [ U0c40, U0c08 ] }; + key { [ U0c42, U0c0a ] }; + key { [ U0c2c, U0c2d ] }; + key { [ U0c39, U0c19 ] }; + key { [ U0c17, U0c18 ] }; + key { [ U0c26, U0c27 ] }; + key { [ U0c1c, U0c1d ] }; + key { [ U0c21, U0c22 ] }; + key { [ U0c1e ] }; + + key { [ U0c4b, U0c13 ] }; + key { [ U0c47, U0c0f ] }; + key { [ U0c4d, U0c05 ] }; + key { [ U0c3f, U0c07 ] }; + key { [ U0c41, U0c09 ] }; + key { [ U0c2a, U0c2b ] }; + key { [ U0c30, U0c31 ] }; + key { [ U0c15, U0c16 ] }; + key { [ U0c24, U0c25 ] }; + key { [ U0c1a, U0c1b ] }; + key { [ U0c1f, U0c20 ] }; + + key { [ U0c46, U0c0e ] }; + key { [ U0c02, U0c01 ] }; + key { [ U0c2e, U0c23 ] }; + key { [ U0c28 ] }; + key { [ U0c35 ] }; + key { [ U0c32, U0c33 ] }; + key { [ U0c38, U0c36 ] }; + key { [ comma , U0c37 ] }; + key { [ period ] }; + key { [ U0c2f, U0040 ] }; + + key { + symbols[Group1] = [ Mode_switch, Multi_key ], + virtualMods = AltGr + }; + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "urd-phonetic" { + include "pk(urd-phonetic)" + name[Group1]= "Urdu (phonetic)"; +}; + +partial alphanumeric_keys +xkb_symbols "urd-phonetic3" { + include "pk(urd-crulp)" + name[Group1]= "Urdu (alternative phonetic)"; +}; + +partial alphanumeric_keys +xkb_symbols "urd-winkeys" { + include "pk(urd-nla)" + name[Group1]= "Urdu (WinKeys)"; +}; + +// based on a keyboard map from an 'xkb/symbols/gur' file + +partial alphanumeric_keys +xkb_symbols "guru" { + name[Group1]= "Punjabi (Gurmukhi)"; + + // Mainly numbers. + key { [ U0A67 ] }; + key { [ U0A68 ] }; + key { [ U0A69, U0A71 ] }; + key { [ U0A6A, U0A74 ] }; + key { [ U0A6B, U262C ] }; + key { [ U0A6C ] }; + key { [ U0A6D ] }; + key { [ U0A6e ] }; + key { [ U0A6F, parenleft ] }; + key { [ U0A66, parenright ] }; + key { [ U0A03 ] }; + key { [ equal, plus ] }; + +// Mainly long vowels + + key { [ U0A4C, U0A14 ] }; + key { [ U0A48, U0A10 ] }; + key { [ U0A3E, U0A06 ] }; + key { [ U0A40, U0A08 ] }; + key { [ U0A42, U0A0A ] }; + +// Mainly voiced consonants + + key { [ U0A2C, U0A2D ] }; + key { [ U0A39, U0A19 ] }; + key { [ U0A17, U0A18 ] }; + key { [ U0A26, U0A27 ] }; + key { [ U0A1C, U0A1D ] }; + key { [ U0A21, U0A22 ] }; + key { [ U0A3C, U0A1E ] }; + +// Mainly short vowels + key { [ U0A4B, U0A13 ] }; + key { [ U0A47, U0A0F ] }; + key { [ U0A4D, U0A05 ] }; + key { [ U0A3F, U0A07 ] }; + key { [ U0A41, U0A09 ] }; + +// Mainly unvoiced consonants + + key { [ U0A2A, U0A2B ] }; + key { [ U0A30, U0A5C ] }; + key { [ U0A15, U0A16 ] }; + key { [ U0A24, U0A25 ] }; + key { [ U0A1A, U0A1B ] }; + key { [ U0A1F, U0A20 ] }; + key { [ U005C, U007C ] }; + + key { [ z, U0A01 ] }; + key { [ U0A02, U0A70, U0A71 ] }; + key { [ U0A2E, U0A23 ] }; + key { [ U0A28, U0A28 ] }; + key { [ U0A35, U0A35 ] }; + key { [ U0A32, U0A33 ] }; + key { [ U0A38, U0A36 ] }; + key { [ comma, less ] }; + key { [ period, U0964 ] }; + key { [ U0A2F, question ] }; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +//Name : Jhelum (Refind Inscript) +//Description : A Jhelum keyboard layout for Gurmukhi (Punjabi) +// http://www.satluj.org/Jhelum.html +//Modified for Inscript to make +//Original Author : Amanpreet Singh Alam { [ apostrophe, asciitilde, U0A02,U0A01 ] }; // apostrophe: anusvara, candrabindu + key { [ 1,exclam, U0A67, exclam ] }; + key { [ 2,at, U0A68, at ] }; + key { [ 3,numbersign, U0A69, numbersign ] }; + key { [ 4,dollar, U0A6A ] }; + key { [ 5,percent,U0A6B, percent ] }; + key { [ 6,U0A73, U0A6C,asciicircum ] }; + key { [ 7,U0A72,U0A6D,ampersand ] }; + key { [ 8,asterisk,U0A6E, asterisk ] }; + key { [ 9,parenleft,U0A6F,parenleft ] }; + key { [ 0,parenright,U0A66,parenright ] }; + key { [ minus,underscore] }; + key { [ equal,plus] }; + key { [ U0964,U0965,U007C,U005C] }; //pipe : danda, double danda + + //Q Row + key { [ U0A4C, U0A14 ] }; // Q: oo, ooh + key { [ U0A48, U0A10 ] }; // W: ee, ae + key { [ U0A3E, U0A06 ] }; // E: a, aa + key { [ U0A40, U0A08, U20B9 ] }; // R: ee, ai, rupeesign + key { [ U0A42, U0A0A ] }; // T: u, uu + key { [ U0A30, U0A5C ] }; // Y: ra, raa + key { [ U0A26, U0A27 ] }; // U: tha, thha + key { [ U0A17, U0A18, U0A5A ] }; // I:ga, gha + key { [ U0A24, U0A1F ] }; // O: ta, tha + key { [ U0A2A, U0A5E, VoidSymbol,U0A5E ] }; // P: pa, pha + key { [ U0A21, U0A22, bracketleft, braceleft ] }; + key { [ U0A19, U0A1E, bracketright, braceright ] }; + + //A Row + key { [ U0A4B, U0A13 ] }; // A: o, oo + key { [ U0A47, U0A0F ] }; // S: e, ee + key { [ U0A4D, U0A05 ] }; // D: halant, aa + key { [ U0A3F, U0A07 ] }; // F: i, aa + key { [ U0A41, U0A09 ] }; // G: u, uh + key { [ U0A39, U0A20 ] }; // H: ha, thha + key { [ U0A1C, U0A1D, U0A5B ] }; // J: ja, jha + key { [ U0A15, U0A16,VoidSymbol ,U0A59 ] }; // K: ka, kha + key { [ U0A32, U0A25, U0A33 ] }; // L: la, tha + key { [ U0A38, colon, U0A36 ] }; //; sa + key { [apostrophe, quotedbl ] }; + + //Z Row + key { [ U0A71, U0A3C ] }; // Z: addak, par bindi + key { [ U0A02, U0A70 ] }; // X: bindi, tippi + key { [ U0A1A, U0A1B ] }; // C: ca, cha + key { [ U0A35, U0A2F ] }; // V: va, ya + key { [ U0A2C, U0A2D ] }; // B: ba, bha + key { [ U0A28, U0A23 ] }; // N: na, nha + key { [ U0A2E, U0A2E ] }; // M: ma + key { [ comma, U262C ] };// comma: comma, dev abbreviation sign + key { [ period, U0A74 ] }; // period: period, nukta + key { [ slash, question ] }; + +// modifier_map Shift { Shift_L }; +// modifier_map Lock { Caps_Lock }; +// modifier_map Control{ Control_L }; +// modifier_map Mod3 { Mode_switch }; + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + +// Contact: Walter Bender + + include "in(deva)" + key { [ U094A, U0912 ] }; // DEVANAGARI VOWEL SIGN SHORT O; DEVANAGARI LETTER SHORT O + key { [ U0967, U090D ] }; // DEVANAGARI DIGIT ONE; DEVANAGARI LETTER CANDRA E + key { [ U0968, U0945 ] }; // DEVANAGARI DIGIT TWO; DEVANAGARI VOWEL SIGN CANDRA E + key { [ U0969 ] }; // DEVANAGARI DIGIT THREE; + key { [ U096A ] }; // DEVANAGARI DIGIT FOUR; + key { [ U096B ] }; // DEVANAGARI DIGIT FIVE; + key { [ U096C ] }; // DEVANAGARI DIGIT SIX; + key { [ U096D ] }; // DEVANAGARI DIGIT SEVEN; + key { [ U096E ] }; // DEVANAGARI DIGIT EIGHT; + key { [ U096F, parenleft ] }; // DEVANAGARI DIGIT NINE; + key { [ U0966, parenright ] }; // DEVANAGARI DIGIT ZERO; + key { [ minus, U0903 ] }; // DEVANAGARI SIGN VISARGA; + key { [ U0943, U090B ] }; // DEVANAGARI VOWEL SIGN VOCALIC R; DEVANAGARI LETTER VOCALIC R + + key { [ U094C, U0914 ] }; // DEVANAGARI VOWEL SIGN AU; DEVANAGARI LETTER AU + key { [ U0948, U0910 ] }; // DEVANAGARI VOWEL SIGN AI; DEVANAGARI LETTER AI + key { [ U093E, U0906 ] }; // DEVANAGARI VOWEL SIGN AA; DEVANAGARI LETTER AA + key { [ U0940, U0908 ] }; // DEVANAGARI VOWEL SIGN II; DEVANAGARI LETTER II + key { [ U0942, U090A ] }; // DEVANAGARI VOWEL SIGN UU; DEVANAGARI LETTER UU + key { [ U092C, U092D ] }; // DEVANAGARI LETTER BA; DEVANAGARI LETTER BHA + key { [ U0939, U0919 ] }; // DEVANAGARI LETTER HA; DEVANAGARI LETTER NGA + key { [ U0917, U0918 ] }; // DEVANAGARI LETTER GA; DEVANAGARI LETTER GHA + key { [ U0926, U0927 ] }; // DEVANAGARI LETTER DA; DEVANAGARI LETTER DHA + key { [ U091C, U091D ] }; // DEVANAGARI LETTER JA; DEVANAGARI LETTER JHA + key { [ U0921, U0922 ] }; // DEVANAGARI LETTER DDA; DEVANAGARI LETTER DDHA + key { [ U093C, U091E ] }; // DEVANAGARI SIGN NUKTA; DEVANAGARI LETTER NYA + + key { [ U0949, U0911 ] }; // DEVANAGARI VOWEL SIGN CANDRA O; DEVANAGARI LETTER CANDRA O + + key { [ U094B, U0913 ] }; // DEVANAGARI VOWEL SIGN O; DEVANAGARI LETTER O + key { [ U0947, U090F ] }; // DEVANAGARI VOWEL SIGN E; DEVANAGARI LETTER E + key { [ U094D, U0905 ] }; // DEVANAGARI SIGN VIRAMA; DEVANAGARI LETTER A + key { [ U093F, U0907 ] }; // DEVANAGARI VOWEL SIGN I; DEVANAGARI LETTER I + key { [ U0941, U0909 ] }; // DEVANAGARI VOWEL SIGN U; DEVANAGARI LETTER U + key { [ U092A, U092B ] }; // DEVANAGARI LETTER PA; DEVANAGARI LETTER PHA + key { [ U0930, U0931 ] }; // DEVANAGARI LETTER RA; DEVANAGARI LETTER RRA + key { [ U0915, U0916 ] }; // DEVANAGARI LETTER KA; DEVANAGARI LETTER KHA + key { [ U0924, U0925 ] }; // DEVANAGARI LETTER TA; DEVANAGARI LETTER THA + key { [ U091A, U091B ] }; // DEVANAGARI LETTER CA; DEVANAGARI LETTER CHA + key { [ U091F, U0920 ] }; // DEVANAGARI LETTER TTA; DEVANAGARI LETTER TTHA + + key { [ U0946, U090E ] }; // DEVANAGARI VOWEL SIGN SHORT E; DEVANAGARI LETTER SHORT E + key { [ U0902, U0901 ] }; // DEVANAGARI SIGN ANUSVARA; DEVANAGARI SIGN CANDRABINDU + key { [ U092E, U0923 ] }; // DEVANAGARI LETTER MA; DEVANAGARI LETTER NNA + key { [ U0928, U0929 ] }; // DEVANAGARI LETTER NA; DEVANAGARI LETTER NNNA + key { [ U0935, U0934 ] }; // DEVANAGARI LETTER VA; DEVANAGARI LETTER LLLA + key { [ U0932, U0933 ] }; // DEVANAGARI LETTER LA; DEVANAGARI LETTER LLA + key { [ U0938, U0936 ] }; // DEVANAGARI LETTER SA; DEVANAGARI LETTER SHA + key { [ comma, U0937 ] }; // DEVANAGARI LETTER SSA + key { [ period, U0964 ] }; // DEVANAGARI DANDA + key { [ U092F, U095F ] }; // DEVANAGARI LETTER YA; DEVANAGARI LETTER YYA + + // space, space, Zero-Width-Non-Joiner (ZWNJ), Zero-Width-Joiner (ZWJ): + include "nbsp(zwnj3zwj4)" + + include "group(olpc)" + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "hin-wx" { + + name[Group1]= "Hindi (Wx)"; + + key { [ grave, asciitilde, 2, 3 ] }; + + key { [ 0x1000967, exclam ] }; + key { [ 0x1000968, at ] }; + key { [ 0x1000969 , numbersign ] }; + key { [ 0x100096A , dollar ] }; + key { [ 0x100096B , percent ] }; + key { [ 0x100096C , asciicircum ] }; + key { [ 0x100096D , ampersand ] }; + key { [ 0x100096e , asterisk ] }; + key { [ 0x100096F, parenleft ] }; + key { [ 0x1000966, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + + key { [ 0x1000943, 0x1000944, 0x100090B, 0x1000960] }; + key { [ 0x1000924, 0x1000925 ] }; + key { [ 0x1000947, 0x1000948, 0x100090F, 0x1000910] }; + key { [ 0x1000930, 0x1000937 ] }; + key { [ 0x100091F, 0x1000920 ] }; + + + key { [ 0x100092F ] }; + key { [ 0x1000941, 0x1000942, 0x1000909, 0x100090A ] }; + key { [ 0x100093F, 0x1000940, 0x1000907, 0x1000908 ] }; + key { [ 0x100094B, 0x100094C, 0x1000913, 0x1000914] }; + key { [ 0x100092A, 0x100092B ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ backslash, bar, 0x1000964, 0x1000965 ] }; + + key { [ 0x100094D, 0x100093E, 0x1000905,0x1000906 ] }; + key { [ 0x1000938, 0x1000936 ] }; + key { [ 0x1000921, 0x1000922 ] }; + key { [ 0x1000919, 0x100091E ] }; + key { [ 0x1000917, 0x1000918 ] }; + + + key { [ 0x1000939, 0x1000903 ] }; + key { [ 0x100091C, 0x100091D ] }; + key { [ 0x1000915, 0x1000916 ] }; + key { [ 0x1000932, 0x1000962, 0x1000933, 0x100090C] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ 0x1000901, 0x100093C, 0x100093D, 0x1000950] }; + key { [ 0x1000926, 0x1000927 ] }; + key { [ 0x100091A, 0x100091B ] }; + key { [ 0x1000935 ] }; + key { [ 0x100092C, 0x100092D ] }; + key { [ 0x1000928, 0x1000923 ] }; + key { [ 0x100092E, 0x1000902 ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + include "level3(ralt_switch)" + include "rupeesign(4)" +}; + +partial alphanumeric_keys +xkb_symbols "eng" { + + include "us(basic)" + name[Group1]= "English (India, with rupee sign)"; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + + +// Description : Enhanced INSCRIPT keymap for Malayalam +// Encoding : Unicode (http://www.unicode.org) +// Author : Mahesh T Pai +// Date : March, 2011 +// Source : http://www.nongnu.org/smc/docs/images/ml_inscript_layout.jpg +// Comment : Based on the Inscript Keyboard created by M Baiju +// Mapping: + +partial alphanumeric_keys +xkb_symbols "mal_enhanced" { + + name[Group1] = "Malayalam (enhanced Inscript, with rupee sign)"; + + //From grave to backslash (\) + + key { [ U0d4a , U0d12 ] }; + key { [ U0d67 , exclam ] }; + key { [ U0d68 , at ] }; + key { [ U0d69 , numbersign ] }; + key { [ U0d6a , dollar ] }; + key { [ U0d6b , percent ] }; + key { [ U0d6c , asciicircum ] }; + key { [ U0d6d , ampersand ] }; + key { [ U0d6e , U0d7e ] }; + key { [ U0d6f , parenleft ] }; + key { [ U0d66 , parenright ] }; + + key { [ minus , U0d03 ] }; + key { [ U0d43 , U0d0b ] }; + key { [ U0d7c , U05C ] }; //bksl: chillu RR + + + // From 'q' to right bracket (]) + + key { [ U0d57 , U0d14 ] }; + key { [ U0d48 , U0d10 ] }; + key { [ U0d3e , U0d06 ] }; + key { [ U0d40 , U0d08 ] }; + key { [ U0d42 , U0d0a ] }; + key { [ U0d2c , U0d2d ] }; + key { [ U0d39 , U0d19 ] }; + key { [ U0d17 , U0d18 ] }; + key { [ U0d26 , U0d27 ] }; + key { [ U0d1c , U0d1d ] }; + key { [ U0d21 , U0d22 ] }; + key { [ U0200d , U0d1e ] }; + + // From 'a' to apostrophe (') + + key { [ U0d4b , U0d13 ] }; + key { [ U0d47 , U0d0f ] }; + key { [ U0d4d , U0d05 ] }; + key { [ U0d3f , U0d07 ] }; + key { [ U0d41 , U0d09 ] }; + key { [ U0d2a , U0d2b ] }; + key { [ U0d30 , U0d31 ] }; + key { [ U0d15 , U0d16 ] }; + key { [ U0d24 , U0d25 ] }; + key { [ U0d1a , U0d1b ] }; + key { [ U0d1f , U0d20 ] }; + + // From 'z' to slash (/) + + key { [ U0d46 , U0d0e ] }; + key { [ U0d02 , U0d7a ] }; + key { [ U0d2e , U0d23 ] }; + key { [ U0d28 , U0d7b ] }; + key { [ U0d35 , U0d34 ] }; + key { [ U0d32 , U0d33 ] }; + key { [ U0d38 , U0d36 ] }; + key { [ comma , U0d37 ] }; + key { [ period , U0d7d ] }; //chillu l + key { [ U0d2f , question ] }; + + include "rupeesign(4)" + include "level3(ralt_switch)" +}; + + +// ---- BEGIN Hindi KaGaPa phonetic ---- +// Name: KaGaPa phonetic +// Brief: Devanagari layout (Hindi, Sanskrit, Nepali, Marathi, etc.) +// Diagram: (Original)[http://baraha.com/help/Keyboards/dev_brhkbd.htm] +// (This layout)[http://bdsatish.in/lang/dev-kagapa.png] +// +// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout) +// which is a modified layout of the specification by Dr. K. P. Rao. +// This is a phonetic layout with the following features: +// [1] All letters are mapped to phonetically-similar English keys +// as much as possible. +// [2] The independent vowel (svara) and its dependent vowel (maatra) +// use the same key (depending upon SHIFT, ALTGR or ALTGR + SHIFT). +// [3] Consonant conjuncts are produced by explicitly invoking the +// 'viraama' (key f). The 'short a' maatra is implicit in all +// consonants. +// [4] Zero width non-joiner and joiner are on keys 6 and 7 +// respectively. These are absolutely essential for alternative +// glyph renderings of consonant half-forms. +// [5] Rigvedic accent marks, visarga variants. +// +// Author: Satish BD +// +partial alphanumeric_keys +xkb_symbols "hin-kagapa" { + name[Group1] = "Hindi (KaGaPa phonetic)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark + key { [ 1, exclam, U0967 ] }; + key { [ 2, at, U0968, U20A8 ] }; // U20A8: generic rupee sign (Rs) + key { [ 3, numbersign, U0969 ] }; + key { [ 4, dollar, U096A, U20B9 ] }; // U20B9: new Indian rupee sign + key { [ 5, percent, U096B ] }; + key { [ 6, asciicircum, U096C, U200C ] }; // ZWNJ + key { [ 7, ampersand, U096D, U200D ] }; // ZWJ + key { [ 8, asterisk, U096E, U0901 ] }; // U0901: Devanagari candrabindu + key { [ 9, parenleft, U096F ] }; + key { [ 0, parenright, U0966, U0970 ] }; // U0970: Devanagari abbreviation sign + key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta + key { [ equal, plus ] }; + key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda + + //Q Row + key { [ U091F, U0920 ] }; // Q: retroflex Ta, Tha + key { [ U0921, U0922, U095C, U095D ] }; // W: retroflex Da, Dha, Da-nukta, Dha-nukta + key { [ U0946, U0947, U090E, U090F ] }; // E: matras, short E, long E + key { [ U0930, U0943, U090B, U0931 ] }; // R: ra, vocalic R matra, vocalic R, ra-nukta + key { [ U0924, U0925 ] }; // T: dental ta, tha + key { [ U092F, U0948, U0910, U095F ] }; // Y: ya, ai matra, ai, ya-nukta + key { [ U0941, U0942, U0909, U090A ] }; // U: matras, u, uu + key { [ U093F, U0940, U0907, U0908 ] }; // I: matras, i, ii + key { [ U094A, U094B, U0912, U0913 ] }; // O: matras, short o, long o + key { [ U092A, U092B, U095E ] }; // P: pa, pha, pha-nukta + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U093E, U0906, U0905, U0972 ] }; // A: aa matra, aa, short a, candra a + key { [ U0938, U0936 ] }; // S: sa, sha + key { [ U0926, U0927 ] }; // D: dental da, dha + key { [ U094D, U0944, U0960 ] }; // F: virama, vocalic RR matra, vocalic RR + key { [ U0917, U0918, U095A ] }; // G: ga, gha, ga-nukta + key { [ U0939, U0903, U1CF5, U1CF6 ] }; // H: ha, visarga, jihvamuliya, upadhmaniya + key { [ U091C, U091D, U095B ] }; // J: ja, jha, ja-nukta + key { [ U0915, U0916, U0958, U0959 ] }; // K: ka, kha, ka-nukta, kha-nukta + key { [ U0932, U0933, U0962, U090C ] }; // L: la, lla, vocalic L matra, vocalic L + key { [ semicolon, colon, U1CF2, U1CF3 ] }; // U1CF2/3: ardhavisarga/rotated ardhavisarga + key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta + // U201D: Right double quotation mark + //Z Row + key { [ U091E, U0919 ] }; // Z: nya, nga + key { [ U0937, U093C, U0934 ] }; // X: ssa, nukta below, lla-nukta + key { [ U091A, U091B ] }; // C: ca, cha + key { [ U0935, U094C, U0914 ] }; // V: va, matra au, au + key { [ U092C, U092D ] }; // B: ba, bha + key { [ U0928, U0923, U0929 ] }; // N: na, nna, nnna + key { [ U092E, U0902, U093D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM + key { [ comma, U003C, U0945, U090D ] }; // comma: comma, less than, matra, candra e + key { [ period, U003E, U0949, U0911 ] }; // period: period, greater than, matra, candra o + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; +// ---- END Hindi KaGaPa ---- + +// Sanskrit uses Devanagari layout of Hindi +partial alphanumeric_keys +xkb_symbols "san-kagapa" { + include "in(hin-kagapa)" + name[Group1] = "Sanskrit (KaGaPa phonetic)"; +}; + +// Marathi uses Devanagari layout of Hindi +partial alphanumeric_keys +xkb_symbols "mar-kagapa" { + include "in(hin-kagapa)" + name[Group1] = "Marathi (KaGaPa phonetic)"; +}; + + +// ---- BEGIN Kannada KaGaPa phonetic ---- +// Name: Kannada KaGaPa phonetic +// Diagram: (Original)[http://www.baraha.com/help/Keyboards/kan_brhkbd.htm] +// (This layout)[http://bdsatish.in/lang/kan-kagapa.png] +// +// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout). +// See the description to "hin-kagapa" above. +// Certain punctuation characters from Devanagari block are +// retained for compatibility. +// +// Author: Satish BD +// +partial alphanumeric_keys +xkb_symbols "kan-kagapa" { + name[Group1] = "Kannada (KaGaPa phonetic)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark + key { [ 1, exclam, U0CE7 ] }; + key { [ 2, at, U0CE8, U20A8 ] }; // U20A8: generic rupee sign (Rs) + key { [ 3, numbersign, U0CE9 ] }; + key { [ 4, dollar, U0CEA, U20B9 ] }; // U20B9: new Indian rupee sign + key { [ 5, percent, U0CEB ] }; + key { [ 6, asciicircum, U0CEC, U200C ] }; // ZWNJ + key { [ 7, ampersand, U0CED, U200D ] }; // ZWJ + key { [ 8, asterisk, U0CEE, U0901 ] }; // U0901: Devanagari candrabindu + key { [ 9, parenleft, U0CEF ] }; + key { [ 0, parenright, U0CE6 ] }; + key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta + key { [ equal, plus ] }; + key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda + + //Q Row + key { [ U0C9F, U0CA0 ] }; // Q: retroflex Ta, Tha + key { [ U0CA1, U0CA2 ] }; // W: retroflex Da, Dha + key { [ U0CC6, U0CC7, U0C8E, U0C8F ] }; // E: matras, short E, long E + key { [ U0CB0, U0CC3, U0C8B, U0CB1 ] }; // R: ra, vocalic R matra, vocalic R, RRA + key { [ U0CA4, U0CA5 ] }; // T: dental ta, tha + key { [ U0CAF, U0CC8, U0C90 ] }; // Y: ya, ai matra, ai + key { [ U0CC1, U0CC2, U0C89, U0C8A ] }; // U: matras, u, uu + key { [ U0CBF, U0CC0, U0C87, U0C88 ] }; // I: matras, i, ii + key { [ U0CCA, U0CCB, U0C92, U0C93 ] }; // O: matras, short o, long o + key { [ U0CAA, U0CAB ] }; // P: pa, pha + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U0CBE, U0C86, U0C85 ] }; // A: aa matra, aa, short a + key { [ U0CB8, U0CB6 ] }; // S: sa, sha + key { [ U0CA6, U0CA7 ] }; // D: dental da, dha + key { [ U0CCD, U0CC4, U0CE0 ] }; // F: virama, vocalic RR matra, vocalic RR + key { [ U0C97, U0C98 ] }; // G: ga, gha + key { [ U0CB9, U0C83, U0CF1, U0CF2 ] }; // H: ha, visarga, jihvanuliya, upadhmaniya + key { [ U0C9C, U0C9D ] }; // J: ja, jha + key { [ U0C95, U0C96 ] }; // K: ka, kha + key { [ U0CB2, U0CB3, U0CE2, U0C8C ] }; // L: la, lla, vocalic L matra, vocalic L + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta + // U201D: Right double quotation mark + //Z Row + key { [ U0C9E, U0C99 ] }; // Z: nya, nga + key { [ U0CB7, U0CBC, U0CDE ] }; // X: ssa, nukta below, LLLA + key { [ U0C9A, U0C9B ] }; // C: ca, cha + key { [ U0CB5, U0CCC, U0C94 ] }; // V: va, matra au, au + key { [ U0CAC, U0CAD ] }; // B: ba, bha + key { [ U0CA8, U0CA3 ] }; // N: na, nna + key { [ U0CAE, U0C82, U0CBD, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM + key { [ comma, U003C, U0CB1 ] }; // comma: comma, less than, RRA + key { [ period, U003E, U0CDE ] }; // period: period, greater than, LLLA + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; +// ---- END Kannada KaGaPa ---- + + +// ---- BEGIN Telugu KaGaPa phonetic ---- +// Name: Telugu KaGaPa phonetic +// Diagram: (Original)[http://www.baraha.com/help/Keyboards/tel_brhkbd.htm] +// (This layout)[http://bdsatish.in/lang/tel-kagapa.png] +// +// Description: Based on KaGaPa layout (also called Baraha layout or Nudi layout). +// See the description to "hin-kagapa" above. +// Certain punctuation characters from Devanagari block are +// retained for compatibility. +// +// Author: Satish BD +// +partial alphanumeric_keys +xkb_symbols "tel-kagapa" { + name[Group1] = "Telugu (KaGaPa phonetic)"; + key.type="FOUR_LEVEL"; + + // Roman digits + key { [ apostrophe, asciitilde, U201C ] }; // U201C: left double quotation mark + key { [ 1, exclam, U0C67 ] }; + key { [ 2, at, U0C68, U20A8 ] }; // U20A8: generic rupee sign (Rs) + key { [ 3, numbersign, U0C69 ] }; + key { [ 4, dollar, U0C6A, U20B9 ] }; // U20B9: new Indian rupee sign + key { [ 5, percent, U0C6B ] }; + key { [ 6, asciicircum, U0C6C, U200C ] }; // ZWNJ + key { [ 7, ampersand, U0C6D, U200D ] }; // ZWJ + key { [ 8, asterisk, U0C6E, U0C01 ] }; // U0C01: Telugu arasunna + key { [ 9, parenleft, U0C6F ] }; + key { [ 0, parenright, U0C66 ] }; + key { [ minus, underscore, U0952 ] }; // U0952: Devanagari stress sign anudatta + key { [ equal, plus ] }; + key { [ U005C, U007C, U0964, U0965 ] }; // backslash, pipe, danda, double danda + + //Q Row + key { [ U0C1F, U0C20 ] }; // Q: retroflex Ta, Tha + key { [ U0C21, U0C22 ] }; // W: retroflex Da, Dha + key { [ U0C46, U0C47, U0C0E, U0C0F ] }; // E: matras, short E, long E + key { [ U0C30, U0C43, U0C0B, U0C31 ] }; // R: ra, vocalic R matra, vocalic R, RRA + key { [ U0C24, U0C25 ] }; // T: dental ta, tha + key { [ U0C2F, U0C48, U0C10 ] }; // Y: ya, ai matra, ai + key { [ U0C41, U0C42, U0C09, U0C0A ] }; // U: matras, u, uu + key { [ U0C3F, U0C40, U0C07, U0C08 ] }; // I: matras, i, ii + key { [ U0C4A, U0C4B, U0C12, U0C13 ] }; // O: matras, short o, long o + key { [ U0C2A, U0C2B ] }; // P: pa, pha + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + //A Row + key { [ U0C3E, U0C06, U0C05 ] }; // A: aa matra, aa, short a + key { [ U0C38, U0C36 ] }; // S: sa, sha + key { [ U0C26, U0C27 ] }; // D: dental da, dha + key { [ U0C4D, U0C44, U0C60 ] }; // F: virama, vocalic RR matra, vocalic RR + key { [ U0C17, U0C18 ] }; // G: ga, gha + key { [ U0C39, U0C03 ] }; // H: ha, visarga + key { [ U0C1C, U0C1D ] }; // J: ja, jha + key { [ U0C15, U0C16 ] }; // K: ka, kha + key { [ U0C32, U0C33, U0C62, U0C0C ] }; // L: la, lla, vocalic L matra, vocalic L + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl, U0951, U201D ] }; // U0951: Devanagari stress sign udatta + // U201D: Right double quotation mark + //Z Row + key { [ U0C1E, U0C19 ] }; // Z: nya, nga + key { [ U0C37 ] }; // X: ssa + key { [ U0C1A, U0C1B ] }; // C: ca, cha + key { [ U0C35, U0C4C, U0C14 ] }; // V: va, matra au, au + key { [ U0C2C, U0C2D ] }; // B: ba, bha + key { [ U0C28, U0C23 ] }; // N: na, nna + key { [ U0C2E, U0C02, U0C3D, U0950 ] }; // M: ma, anusvara, avagraha, Devanagari OM + key { [ comma, U003C, U0C58 ] }; // comma: comma, less than, TSA + key { [ period, U003E, U0C59 ] }; // period: period, greater than, DZA + key { [ slash, question ] }; + + include "level3(ralt_switch)" +}; + +// Description : Keymap for Manipuri language (Meetei mayek script) +// Encoding : Unicode (http://www.unicode.org) +// Author : Santosh Heigrujam +// Date : December, 2013 +// Source : +// Comment : + +partial alphanumeric_keys modifier_keys +xkb_symbols "eeyek" { + + name[Group1]= "Manipuri (Eeyek)"; + + key { [ grave, asciitilde ] }; + key { [ Uabf1, exclam ] }; + key { [ Uabf2, at ] }; + key { [ Uabf3, numbersign ] }; + key { [ Uabf4, dollar ] }; + key { [ Uabf5, percent ] }; + key { [ Uabf6, asciicircum ] }; + key { [ Uabf7, ampersand ] }; + key { [ Uabf8, asterisk ] }; + key { [ Uabf9, parenleft ] }; + key { [ Uabf0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ Uabc8, Uabd8 ] }; + key { [ Uabcb, Uabcb ] }; + key { [ Uabcf, Uabe2 ] }; + key { [ Uabd4, Uabd4 ] }; + key { [ Uabc7, Uabe0 ] }; + key { [ Uabcc, Uabe6 ] }; + key { [ Uabce, Uabe8 ] }; + key { [ Uabe4, Uabe9 ] }; + key { [ Uabe3, Uabe7 ] }; + key { [ Uabc4, Uabde ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ Uabd1, Uabe5 ] }; + key { [ Uabc1, Uabd3 ] }; + key { [ Uabd7, Uabd9 ] }; + key { [ Uabd0, Uabda ] }; + key { [ Uabd2, Uabd8 ] }; + key { [ Uabcd, Uabea ] }; + key { [ Uabd6, Uabd3 ] }; + key { [ Uabc0, Uabdb ] }; + key { [ Uabc2, Uabdc ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ Uabc9, Uabe1 ] }; + key { [ Uabca, Uabd9 ] }; + key { [ Uabc6, Uabeb ] }; + key { [ Uabda, Uabed ] }; + key { [ Uabd5, Uabec ] }; + key { [ Uabc5, Uabdf ] }; + key { [ Uabc3, Uabdd ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ backslash, bar ] }; + + include "level3(ralt_switch)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/inet b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/inet new file mode 100644 index 0000000..33b0583 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/inet @@ -0,0 +1,1877 @@ +// EAK (Easy Access keyboards: Internet, Multimedia, PDA) +// Copyright (C) 2002 Stanislav Brabec +// +// Based on the LinEAK project. +// LinEAK - Linux support for Easy Access and Internet Keyboards +// Copyright (C) 2001, 2002 Mark Smulders + +// Usage in XF86Config: +// Option "XkbLayout" "my_kb_layout" +// Option "XkbVariant" "my_kb_variant" +// Option "XkbModel" "my_eak_type" +// Option "XkbRules" "xfree86" +// Simple command line usage: +// setxkbmap 'my_kb_layout' -variant 'my_kb_variant' -model 'my_eak_type' + +// Very common set of media keys. +hidden partial alphanumeric_keys +xkb_symbols "media_common" { + key { [ XF86AudioMedia ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject ] }; +}; + +// Popular web navigation keys. +hidden partial alphanumeric_keys +xkb_symbols "nav_common" { + key { [ XF86Calculator ] }; + key { [ XF86WWW ] }; + key { [ XF86Search ] }; + key { [ XF86Favorites ] }; + key { [ XF86Reload ] }; + key { [ XF86Stop ] }; + key { [ XF86Forward ] }; + key { [ XF86Back ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioMedia ] }; +}; + +// ACPI Standard +hidden partial alphanumeric_keys +xkb_symbols "acpi_common" { + key { [ XF86PowerOff ] }; + key { [ XF86Standby ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Battery ] }; + key { [ XF86WLAN ] }; + key { [ XF86Sleep ] }; +}; + +// Combined sections, for simplicity. +hidden partial alphanumeric_keys +xkb_symbols "media_nav_common" { + include "inet(media_common)" + include "inet(nav_common)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "media_nav_acpi_common" { + include "inet(media_common)" + include "inet(nav_common)" + include "inet(acpi_common)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "nav_acpi_common" { + include "inet(nav_common)" + include "inet(acpi_common)" +}; + +hidden partial alphanumeric_keys +xkb_symbols "media_acpi_common" { + include "inet(media_common)" + include "inet(acpi_common)" +}; + +// Evdev Standardized Keycodes +partial alphanumeric_keys +xkb_symbols "evdev" { + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86PowerOff ] }; + key { [ Cancel ] }; + key { [ Redo ] }; + key { [ SunProps ] }; + key { [ Undo ] }; + key { [ SunFront ] }; + key { [ XF86Copy ] }; + key { [ XF86Open ] }; + key { [ XF86Paste ] }; + key { [ Find ] }; + key { [ XF86Cut ] }; + key { [ Help ] }; + key { [ Linefeed ] }; + +// Commented out because HZTG has same keycode as TLDE +// key { [ Zenkaku_Hankaku ] }; + + key { [ Hiragana_Katakana ] }; + key { [ Henkan ] }; + key { [ Muhenkan ] }; + key { [ Katakana ] }; + key { [ Hiragana ] }; + key { [ Romaji ] }; + + key { [ Hangul ] }; + key { [ Hangul_Hanja ] }; + key { [ XF86TouchpadToggle ] }; + key { [ XF86TouchpadOn ] }; + key { [ XF86TouchpadOff ] }; + + key { [ XF86AudioMicMute ] }; + +// key { [ ] }; // KEY_MACRO + key { [ plusminus ] }; + key { [ XF86LaunchA ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Calculator ] }; +// key { [ ] }; // KEY_SETUP + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Explorer ] }; + key { [ XF86Send ] }; +// key { [ ] }; // KEY_DELETEFILE + key { [ XF86Xfer ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86RotateWindows ] }; + key { [ XF86TaskPane ] }; + key { [ XF86Mail ] }; + key { [ XF86Favorites ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; +// key { [ ] }; // KEY_CLOSECD (opposite of eject) + key { [ XF86Eject ] }; + key { [ XF86Eject, XF86Eject ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop, XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Phone ] }; +// key { [ ] }; // KEY_ISO + key { [ XF86Tools ] }; + key { [ XF86HomePage ] }; + key { [ XF86Reload ] }; + key { [ XF86Close ] }; +// key { [ ] }; // KEY_MOVE +// key { [ ] }; // KEY_EDIT + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86LaunchA ] }; + key { [ XF86LaunchC ] }; + key { [ XF86LaunchD ] }; + key { [ XF86LaunchE ] }; + key { [ XF86LaunchF ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioPause ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86LaunchB ] }; + key { [ XF86Suspend ] }; + key { [ XF86Close ] }; + key { [ XF86AudioPlay ] }; + key { [ XF86AudioForward ] }; +// key { [ ] }; // KEY_BASSBOOST + key { [ Print ] }; +// key { [ ] }; // KEY_HP + key { [ XF86WebCam ] }; +// key { [ ] }; // KEY_SOUND +// key { [ ] }; // KEY_QUESTION + key { [ XF86Mail ] }; + key { [ XF86Messenger ] }; // KEY_CHAT + key { [ XF86Search ] }; + key { [ XF86Go ] }; // KEY_CONNECT + key { [ XF86Finance ] }; + key { [ XF86Game ] }; // KEY_SPORT + key { [ XF86Shop ] }; +// key { [ ] }; // KEY_ALTERASE + key { [ Cancel ] }; + key { [ XF86MonBrightnessDown ] }; + key { [ XF86MonBrightnessUp ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; // KEY_KBDILLUMTOGGLE + key { [ XF86KbdBrightnessDown ] }; // KEY_KBDILLUMDOWN + key { [ XF86KbdBrightnessUp ] }; // KEY_KBDILLUMUP + key { [ XF86Send ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Save ] }; + key { [ XF86Documents ] }; + key { [ XF86Battery ] }; + key { [ XF86Bluetooth ] }; + key { [ XF86WLAN ] }; +// key { [ ] }; // KEY_VIDEO_NEXT -- drive next video source +// key { [ ] }; // KEY_VIDEO_PREV -- drive previous video source +// key { [ ] }; // KEY_BRIGHTNESS_CYCLE -- bright up, max++ == min +// key { [ ] }; // KEY_BRIGHTNESS_ZERO -- brightness off +// key { [ ] }; // KEY_DISPLAY_OFF -- turn off display +// key { [ ] }; // KEY_WIMAX + key { [ XF86Hibernate ] }; // KEY_HIBERNATE + + key { [ XF86Tools ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch8 ] }; + key { [ XF86Launch9 ] }; +}; + + +// Acer + +// Acer AirKey V +partial alphanumeric_keys +xkb_symbols "airkey" { + include "inet(acpi_common)" + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioMute ] }; + key { [ XF86WWW ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Terminal ] }; + key { [ XF86AudioStop, XF86Eject ] }; +}; + +// Acer C300 Laptop +partial alphanumeric_keys +xkb_symbols "acer_c300" { + include "inet(nav_common)" + key { [ F14 ] }; + key { [ F13 ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Launch2 ] }; + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Acer Ferrari 4000 Keyboard +// From Alex Dubov +partial alphanumeric_keys +xkb_symbols "acer_ferrari4k" { + include "inet(media_nav_common)" + key { [ dollar ] }; + key { [ EuroSign ] }; + key { [ XF86Display ] }; + // Missing keycodes - set-up with setkeycodes + key { [ Help ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; +}; + +// Acer Laptop (Generic layout for Acer laptops from 2004 onwards) +// From Carlos Corbacho +// Keys marked (HAL) require HAL 0.5.10 (or newer) to be set up correctly +// (Your laptop must also be added to hal-info) +// (Not all these keys will be available on every Acer laptop) +partial alphanumeric_keys +xkb_symbols "acer_laptop" { + include "inet(media_nav_acpi_common)" + key { [ XF86Launch2 ] }; // "P" or "P2" (HAL) + key { [ XF86Launch1 ] }; // "e" or "P1" (HAL) + + // Hotkeys (Function) + // Launch Keys + // Device keys + key { [ XF86Display ] }; // Fn+F5 (HAL) + key { [ XF86Launch4 ] }; // Fn+F3 (HAL) + key { [ XF86LaunchB ] }; // Bluetooth (HAL) + key { [ XF86LaunchA ] }; // Wireless (HAL) + key { [ Help ] }; // Fn+F1 (HAL) + key { [ XF86Launch5 ] }; // Fn+F7 (HAL) + key { [ XF86Launch3 ] }; // Fn+F2 (HAL) + + // Special Characters + // To avoid setting a precedent/standard that will be broken in later + // versions of HAL, these keys are commented out for now. When they are no + // longer marked 'FIXME' and have saner keycodes, these two entries can be + // fixed and permanently uncommented. In the meantime, just uncomment these + // to make the keys work. +// key { [ EuroSign ] }; // Euro (HAL) +// key { [ dollar ] }; // Dollar (HAL) +}; + + +// Azona + +// Azona RF2300 wireless Internet Keyboard +partial alphanumeric_keys +xkb_symbols "azonaRF2300" { + // From Radics Laszlo + include "inet(nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Copy ] }; + key { [ XF86Cut ] }; +// key { [ XF86Paste ] }; +}; + + +// Brother + +// Brother Internet Keyboard +partial alphanumeric_keys +xkb_symbols "brother" { + include "inet(acpi_common)" + key { [ XF86ScrollUp ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86ZoomOut ] }; + key { [ XF86AudioMute ] }; + key { [ XF86WWW ] }; + key { [ Menu ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Calculator ] }; + key { [ XF86Xfer ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86ZoomIn ] }; + key { [ XF86AudioLowerVolume ] }; +}; + + +// BTC + +// BTC 5113RF Multimedia +partial alphanumeric_keys +xkb_symbols "btc5113rf" { + include "inet(acpi_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Favorites ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Back ] }; + key { [ XF86WWW ] }; + key { [ XF86Search ] }; +}; + +// BTC 9000 +partial alphanumeric_keys +xkb_symbols "btc9000" { + include "inet(acpi_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Favorites ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Reload ] }; + key { [ XF86Mail ] }; + key { [ XF86HomePage ] }; + key { [ XF86Search ] }; +}; + +// BTC 9000A +partial alphanumeric_keys +xkb_symbols "btc9000a" { + include "inet(acpi_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Favorites ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86HomePage ] }; + key { [ Help ] }; + key { [ XF86WWW ] }; + key { [ XF86Search ] }; +}; + +// BTC 9001AH +xkb_symbols "btc9001ah" { + include "inet(acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Mail ] }; + key { [ XF86Eject ] }; +}; + +// BTC 5090 +partial alphanumeric_keys +xkb_symbols "btc5090" { + include "inet(media_nav_acpi_common)" + key { [ XF86Start ] }; + key { [ XF86Eject ] }; +}; + +// BTC 9019U +partial alphanumeric_keys +xkb_symbols "btc9019u" { + include "inet(media_nav_acpi_common)" + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; +}; + + +// Cherry + +// Cherry Blue Line CyBo@rd +partial alphanumeric_keys +xkb_symbols "cherryblue" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Standby ] }; + key { [ XF86Terminal ] }; + key { [ XF86Go ] }; +}; + +// Cherry CyMotion Master XPress +partial alphanumeric_keys +xkb_symbols "cherryblueb" { + include "inet(media_nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86Forward ] }; + key { [ XF86Back ] }; + key { [ XF86Copy ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86Cut ] }; + key { [ XF86Paste ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Book ] }; + key { [ XF86Finance ] }; + key { [ XF86Standby ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Eject ] }; + key { [ XF86Book ] }; + key { [ XF86Book ] }; + key { [ XF86Terminal ] }; + key { [ XF86Go ] }; +}; + +// Cherry Blue Line CyBo@rd (alternate option) +partial alphanumeric_keys +xkb_symbols "cherrybluea" { + include "inet(media_nav_acpi_common)" + key { [ XF86Go ] }; +}; + +// Cherry CyBo@rd USB-Hub +partial alphanumeric_keys +xkb_symbols "cherrycyboard" { + include "inet(media_nav_acpi_common)" + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; + key { [ XF86Terminal ] }; + key { [ XF86AudioMedia ] }; +}; + +// Cherry CyMotion Expert +partial alphanumeric_keys +xkb_symbols "cherrycmexpert" { + include "inet(cherryblueb)" + include "inet(acpi_common)" + key { [ XF86Mail ] }; +}; + + +// Chicony + +// Chicony Internet Keyboard +partial alphanumeric_keys +xkb_symbols "chicony" { + include "inet(acpi_common)" + key { [ XF86AudioMute ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Back ] }; + key { [ XF86LaunchB ] }; + key { [ XF86LaunchC ] }; + key { [ XF86LaunchA ] }; + key { [ XF86WWW ] }; + key { [ XF86ContrastAdjust ] }; + key { [ XF86BrightnessAdjust ] }; +}; + +// Chicony KU-0108 +partial alphanumeric_keys +xkb_symbols "chicony0108" { + include "inet(cherrycyboard)" +}; + +// Chicony KU-0420 AKA Targus Slim Internet Media USB Keyboard +partial alphanumeric_keys +xkb_symbols "chicony0420" { + include "inet(media_nav_acpi_common)" + key { [ XF86AudioMedia ] }; + key { [ XF86MyComputer ] }; +}; + +// Chicony KB-9885 +partial alphanumeric_keys +xkb_symbols "chicony9885" { + include "inet(acpi_common)" + key { [ XF86AudioMute ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Back ] }; + key { [ XF86LaunchB ] }; + key { [ XF86LaunchC ] }; + key { [ XF86LaunchA ] }; + key { [ XF86WWW ] }; +}; + + +// Compaq + +// Compaq Easy Access Keyboard +partial alphanumeric_keys +xkb_symbols "compaqeak8" { + key { [ XF86Community ] }; + key { [ XF86Market ] }; + key { [ XF86Meeting ] }; + key { [ XF86Search ] }; + key { [ XF86News ] }; + key { [ XF86Mail ] }; + key { [ XF86HomePage ] }; + key { [ XF86WWW ] }; +}; + +// Compaq Internet Keyboard (7 keys) +partial alphanumeric_keys +xkb_symbols "compaqik7" { + key { [ XF86LightBulb ] }; + key { [ XF86Mail ] }; + key { [ XF86Search ] }; + key { [ Help ] }; + key { [ XF86VendorHome ] }; + key { [ XF86HomePage ] }; + key { [ XF86Shop ] }; +}; + +// Compaq Internet Keyboard (13 keys) +partial alphanumeric_keys +xkb_symbols "compaqik13" { + include "inet(media_acpi_common)" + key { [ XF86Mail ] }; + key { [ XF86Go ] }; + key { [ XF86Search ] }; + key { [ XF86WWW ] }; + key { [ XF86Shop ] }; +}; + +// Compaq Internet Keyboard (18 keys) +partial alphanumeric_keys +xkb_symbols "compaqik18" { + include "inet(media_acpi_common)" + key { [ XF86LightBulb ] }; + key { [ XF86Eject ] }; + key { [ XF86Mail ] }; + key { [ XF86Go ] }; + key { [ XF86Search ] }; + key { [ XF86WWW ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Community ] }; + key { [ XF86Shop ] }; + key { [ Print ] }; +}; + +// Laptop/notebook Compaq (eg. Armada, Evo) Laptop Keyboard +partial alphanumeric_keys +xkb_symbols "armada" { + include "inet(media_acpi_common)" + key { [ XF86Search ] }; + key { [ XF86Mail ] }; + key { [ XF86HomePage ] }; + key { [ XF86WWW ] }; + key { [ XF86Launch2 ] }; // Battery Monitor + key { [ XF86AudioMedia ] }; + key { [ XF86Launch0 ] }; // Info Center +}; + +// Laptop/notebook Compaq (eg. Presario) Internet Keyboard +partial alphanumeric_keys +xkb_symbols "presario" { + include "inet(media_acpi_common)" + key { [ XF86Q ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Mail ] }; + key { [ XF86Launch1 ] }; + key { [ XF86WWW ] }; + key { [ XF86Shop ] }; + key { [ XF86AudioMedia ] }; +}; + +// Compaq iPaq Keyboard +partial alphanumeric_keys +xkb_symbols "ipaq" { + key { [ XF86Shop ] }; + key { [ XF86Standby ] }; + key { [ XF86Search ] }; + key { [ XF86Travel ] }; + key { [ XF86BackForward ] }; + key { [ XF86Q ] }; + key { [ XF86Mail ] }; +}; + + +// Dell + +partial alphanumeric_keys +xkb_symbols "dell" { + include "inet(acpi_common)" + key { [ XF86Mail ] }; + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; +}; + +// Dell Precision M65 +partial alphanumeric_keys +xkb_symbols "dellm65" { + include "inet(media_common)" + key { [ XF86PowerOff ] }; + key { [ Super_L ] }; +}; + +// Laptop/notebook Dell Inspiron 8xxx +partial alphanumeric_keys +xkb_symbols "inspiron" { + include "inet(media_common)" + key { [ XF86AudioStop ] }; + key { [ XF86AudioNext ] }; + key { [ XF86Eject ] }; + key { [ XF86Display ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; +}; + +// DELL USB Multimedia Keyboard (former 8135, generalized, superset of 8125) +partial alphanumeric_keys +xkb_symbols "dellusbmm" { + // Describes the extra keys on a SK-8135 Multimedia keyboard + // From Olivier Lahaye + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86MyComputer ] }; + key { [ XF86AudioMedia ] }; +}; + + +// Diamond + +// Diamond 9801 / 9802 series +partial alphanumeric_keys +xkb_symbols "diamond" { + include "inet(media_nav_acpi_common)" + key { [ XF86Go ] }; +}; + + +// Ennyah + +// Ennyah DKB-1008 +partial alphanumeric_keys +xkb_symbols "ennyah_dkb1008" { + include "inet(media_nav_acpi_common)" + key { [ XF86AudioMedia ] }; +}; + + +// Genius + +// Genius Comfy KB-16M / Genius MM Keyboard KWD-910 +partial alphanumeric_keys +xkb_symbols "genius" { + include "inet(media_acpi_common)" + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Calculator ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86Back ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86Mail ] }; + key { [ XF86Eject ] }; + key { [ XF86WWW ] }; +}; + +// Genius Comfy 21e +partial alphanumeric_keys +xkb_symbols "geniuscomfy2" { + // Describes the extra keys on a Genius Comfy KB-21e-Scroll + // From Radics Laszlo + include "inet(media_nav_acpi_common)" + key { [ Return ] }; +}; + + +// Gyration + +partial alphanumeric_keys +xkb_symbols "gyration" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; +}; + + +// Hewlett-Packard + +// Hewlett-Packard Internet Keyboard +partial alphanumeric_keys +xkb_symbols "hpi6" { + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Search ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Community ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86Eject ] }; + key { [ XF86Shop ] }; + key { [ XF86Launch1 ] }; + key { [ Help ] }; + key { [ XF86Finance ] }; + key { [ Print ] }; + key { [ Help ] }; +}; + +// Hewlett-Packard SK-2501, SK-2505 Multimedia Keyboard +partial alphanumeric_keys +xkb_symbols "hp250x" { + key { [ XF86Tools ] }; + key { [ XF86Search ] }; + key { [ XF86Eject ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Standby ] }; + key { [ Help ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86WWW ] }; +}; + +// Hewlett-Packard Omnibook XE3 GC, GD, GE and Pavilion N5xxx +partial alphanumeric_keys +xkb_symbols "hpxe3gc" { + // Describes the OneTouch buttons on HP Omnibook XE3 GC and + // HP Pavilion N52XX models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_common)" + key { [ Help ] }; + key { [ XF86Launch1 ] }; + key { [ XF86WWW ] }; + key { [ XF86Mail ] }; +}; + +// Hewlett-Packard Omnibook XE3 GF +partial alphanumeric_keys +xkb_symbols "hpxe3gf" { + // Describes the OneTouch buttons on HP Omnibook XE3 GF models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook XT1000 +partial alphanumeric_keys +xkb_symbols "hpxt1000" { + // Describes the OneTouch buttons on HP Omnibook XT1000 models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ XF86Launch3 ] }; + key { [ Help ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Pavilion ZT11xx +partial alphanumeric_keys +xkb_symbols "hpzt11xx" { + // Describes the OneTouch buttons on HP Pavilion ZT11xx models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ XF86Launch3 ] }; + key { [ Help ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Pavilion dv5 +partial alphanumeric_keys +xkb_symbols "hpdv5" { + // Describes the OneTouch buttons on HP Pavilion dv5 models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_common)" + key { [ XF86ScreenSaver ] }; + key { [ XF86WWW ] }; + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook XE4xxx and ZE4xxx +partial alphanumeric_keys +xkb_symbols "hpxe4xxx" { + // Describes the OneTouch buttons on HP Omnibook XE4xxx and ZE4xxx + // models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_nav_common)" + key { [ Help ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook 500 FA +partial alphanumeric_keys +xkb_symbols "hp500fa" { + // Describes the OneTouch buttons on HP Omnibook 500 FA models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + +// Hewlett-Packard Omnibook 5xx +partial alphanumeric_keys +xkb_symbols "hp5xx" { + // Describes the OneTouch buttons on HP Omnibook 5xx models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + include "inet(media_common)" + key { [ Help ] }; + key { [ XF86Launch1 ] }; +}; + + +// Honeywell + +// Honeywell Euroboard +partial alphanumeric_keys +xkb_symbols "honeywell_euroboard" { + // January 2002 + // Scott Penrose + // http://linux.dd.com.au/quest/linux/keyboard/honeywell/ + key { [ XF86Game ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86Eject ] }; + key { [ XF86Launch2 ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86Launch1 ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Mail ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86Calculator ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86WWW ] }; +}; + + +// IBM + +// IBM Rapid Access +partial alphanumeric_keys +xkb_symbols "rapidaccess" { + key { [ XF86AudioMute ] }; + key { [ XF86Launch2 ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPause ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Standby ] }; + key { [ Help ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch1 ] }; +}; + +// IBM Rapid Access II +partial alphanumeric_keys +xkb_symbols "rapidaccess2" { + include "inet(acpi_common)" + key { [ XF86AudioNext ] }; + key { [ XF86Favorites ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86HomePage ] }; + key { [ XF86Shop ] }; + key { [ XF86Search ] }; + key { [ XF86MyComputer ] }; + key { [ XF86VendorHome ] }; +}; + +// IBM ThinkPad 60 series +partial alphanumeric_keys +xkb_symbols "thinkpad60" { + include "inet(media_nav_common)" + key { [ XF86VendorHome ] }; +}; + +// IBM Space Saver +partial alphanumeric_keys +xkb_symbols "ibm_spacesaver" { + key { + type="ONE_LEVEL", + symbols[Group1]= [ Num_Lock ] + }; +}; + + +// Logitech + +// Logitech common definitions +hidden partial alphanumeric_keys +xkb_symbols "logitech_base" { + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Community ] }; + key { [ XF86ScrollClick ] }; + key { [ XF86VendorHome ] }; + key { [ XF86New ] }; + key { [ XF86Reply ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Documents ] }; + key { [ XF86Pictures ] }; + key { [ XF86Music ] }; +}; + +// Logitech second set of common keys +hidden partial alphanumeric_keys +xkb_symbols "logitech_set3" { + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86New ] }; // F1 + key { [ XF86Reply ] }; // F2 + key { [ XF86Send ] }; // F4 + key { [ Print ] }; // F7 + key { [ XF86Save ] }; // F8 + key { [ XF86Documents ] }; // F10 + key { [ XF86Go ] }; + key { [ XF86AudioMedia ] }; +}; + +// Logitech Access Keyboard +partial alphanumeric_keys +xkb_symbols "logiaccess" { + include "inet(logitech_base)" + key { [ XF86MailForward ] }; + key { [ XF86Send ] }; + key { [ XF86Messenger ] }; + key { [ XF86WebCam ] }; +}; + +// Logitech Cordless Desktop (alternate option) +partial alphanumeric_keys +xkb_symbols "logicda" { + include "inet(logitech_base)" + include "inet(logitech_set3)" +}; + +// Logitech Internet Navigator Keyboard +partial alphanumeric_keys +xkb_symbols "logicink" { + include "inet(logitech_base)" + key { [ XF86Shop ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Finance ] }; + key { [ XF86Start ] }; +}; + +// Logitech Cordless Desktop EX110 +partial alphanumeric_keys +xkb_symbols "logiex110" { + include "inet(logitech_base)" + key { [ XF86Close ] }; // Close +// Extended function keys +// In the Console before starting X +// Using setkeycodes e03b 212 e03c 213 e03d 214 e03e 215 e03f 216 e040 217 +// setkeycodes e041 218 e042 219 e043 220 e044 221 e057 222 e058 223 6d 206 +// *=keys that are there but need different symbol names. + key { [ Help ] }; // F1 + key { [ XF86Word ] }; // F2 + key { [ XF86Excel ] }; // F3 + key { [ XF86Pictures ] }; // F4 + key { [ Undo ] }; // F5 + key { [ Redo ] }; // F6 * + key { [ Print ] }; // F7 + key { [ XF86Save ] }; // F8 + key { [ XF86Launch1 ] }; // F9 * + key { [ XF86Launch2 ] }; // F10 + key { [ XF86Launch3 ] }; // F11 + key { [ XF86Launch4 ] }; // F12 +}; + +// Logitech iTouch Internet Navigator Keyboard SE +partial alphanumeric_keys +xkb_symbols "logiinkse" { + include "inet(logitech_base)" + key { [ XF86MailForward ] }; // F3 + key { [ XF86Send ] }; // F4 + key { [ Undo ] }; // F5 + key { [ Redo ] }; // F6 + key { [ Print ] }; // F7 + key { [ XF86Messenger ] }; + key { [ XF86WebCam ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Shop ] }; + key { [ XF86Save ] }; // F8 +}; + +// Logitech iTouch Internet Navigator Keyboard SE (USB) +partial alphanumeric_keys +xkb_symbols "logiinkseusb" { + include "inet(logitech_base)" + include "inet(logitech_set3)" +}; + +// Logitech iTouch Cordless Keyboard (model Y-RB6) +partial alphanumeric_keys +xkb_symbols "logiitc" { + include "inet(logitech_base)" + key { [ XF86AudioRaiseVolume ] }; + + // Just to override RaiseVolume from logitech_base, + // since no keysym can have two keycodes, see + // https://bugs.freedesktop.org/show_bug.cgi?id=7095 + key { [ XF86Launch1 ] }; +}; + +// Logitech Internet Keyboard +partial alphanumeric_keys +xkb_symbols "logiik" { + include "inet(logitech_base)" + key { [ Find ] }; + key { [ Print ] }; + key { [ XF86Favorites ] }; + key { [ XF86Reload ] }; + key { [ XF86Search ] }; + key { [ XF86HotLinks ] }; + key { [ XF86Forward ] }; + key { [ XF86HomePage ] }; + key { [ XF86Stop ] }; + key { [ XF86OpenURL ] }; + key { [ XF86AddFavorite ] }; + key { [ XF86History ] }; + key { [ XF86WWW ] }; +}; + +// Logitech iTouch +partial alphanumeric_keys +xkb_symbols "itouch" { + include "inet(logitech_base)" + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; +}; + +// Logitech UltraX Cordless Media Desktop +partial alphanumeric_keys +xkb_symbols "logiultraxc" { + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioRaiseVolume ] }; +}; + +partial alphanumeric_keys +xkb_symbols "logidinovo" { + include "inet(media_nav_common)" + key { [ XF86HomePage ] }; + key { [ XF86Standby ] }; + key { [ XF86Search ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioMedia ] }; +}; + +partial alphanumeric_keys +xkb_symbols "logidinovoedge" { + include "inet(media_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Mail ] }; + key { [ XF86Search ] }; + key { [ XF86AudioMedia ] }; +}; + +partial alphanumeric_keys +xkb_symbols "logitech_g15" { + include "inet(media_nav_acpi_common)" + key { [ XF86Messenger ] }; + key { [ XF86Launch7 ] }; + key { [ XF86Launch9 ] }; + key { [ XF86Phone ] }; + key { [ XF86LaunchD ] }; + key { [ XF86Support ] }; + key { [ XF86LaunchF ] }; + key { [ XF86LogOff ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Travel ] }; + key { [ XF86Spell ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Music ] }; + key { [ XF86Forward ] }; + key { [ XF86Send ] }; + key { [ XF86Save ] }; + key { [ XF86Pictures ] }; + key { [ XF86LaunchA ] }; + key { [ XF86iTouch ] }; + key { [ XF86Launch3 ] }; + key { [ XF86ToDoList ] }; + key { [ XF86Calculator ] }; + key { [ XF86VendorHome ] }; + key { [ XF86Away ] }; + key { [ XF86WebCam ] }; + key { [ XF86Launch0 ] }; + key { [ XF86Launch6 ] }; + key { [ XF86Calendar ] }; + key { [ XF86LaunchB ] }; + key { [ XF86LaunchC ] }; + key { [ XF86WWW ] }; + key { [ XF86LaunchE ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch8 ] }; +}; + + +// Memorex + +// Memorex MX1998 +partial alphanumeric_keys +xkb_symbols "mx1998" { + include "inet(media_acpi_common)" + key { [ XF86ScrollDown ] }; + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Xfer ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Documents ] }; + key { [ XF86Game ] }; + key { [ XF86Calculator ] }; + key { [ Menu ] }; + key { [ XF86WWW ] }; + key { [ XF86WakeUp ] }; + key { [ XF86DOS ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86ScrollUp ] }; +}; + +// Memorex MX2500 EZ-Access Keyboard +partial alphanumeric_keys +xkb_symbols "mx2500" { + include "inet(media_nav_acpi_common)" + key { [ XF86Clear ] }; + key { [ XF86Phone ] }; + key { [ XF86DOS ] }; + key { [ XF86Close ] }; + key { [ XF86Xfer ] }; + key { [ XF86Eject ] }; + key { [ XF86Documents ] }; + key { [ XF86News ] }; + key { [ XF86WakeUp ] }; + key { [ XF86RotateWindows ] }; +}; + +// Memorex MX2750 +partial alphanumeric_keys +xkb_symbols "mx2750" { + include "inet(media_nav_acpi_common)" + key { [ XF86Launch0 ] }; +}; + + +// Microsoft + +// Microsoft Natural Ergonomic Keyboard 4000 +partial alphanumeric_keys +xkb_symbols "microsoft4000" { + include "inet(media_nav_common)" + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch4 ] }; + key { [ XF86Launch5 ] }; +// Missing because of lack of support from kbd driver: Zoom in and +// slider. +}; + +// Microsoft Natural Wireless Ergonomic Keyboard 7000 +partial alphanumeric_keys +xkb_symbols "microsoft7000" { + include "inet(media_nav_common)" + key { [ Undo ] }; + key { [ XF86New ] }; + key { [ Redo ] }; + key { [ XF86MailForward ] }; + key { [ XF86Close ] }; + key { [ Print ] }; + key { [ XF86Save ] }; + key { [ XF86Send ] }; + key { [ Help ] }; + key { [ XF86Reply ] }; + key { [ parenleft ] }; + key { [ parenright ] }; + key { [ KP_Equal ] }; + key { [ XF86Open ] }; +// Missing because of lack of support from kbd driver: Spell, Launch, +// and Zoom in and out buttons. +}; + +// Microsoft Internet Keyboard +partial alphanumeric_keys +xkb_symbols "microsoftinet" { + include "inet(nav_acpi_common)" + key { [ XF86AudioStop ] }; +}; + +// Microsoft Natural Keyboard Pro USB +partial alphanumeric_keys +xkb_symbols "microsoftprousb" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86AudioMedia ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Standby ] }; +// Internet Section -- Left Side +// Multimedia Section -- Right Side +// My Computer Section -- Far Right +// My computer maps to printscreen, so leaving commented out for now +// key { [ XF86MyComputer ] }; +}; + +// Microsoft Natural Keyboard Pro OEM +partial alphanumeric_keys +xkb_symbols "microsoftprooem" { + include "inet(media_nav_common)" + key { [ XF86Search ] }; + key { [ XF86HomePage ] }; + key { [ XF86Standby ] }; + key { [ XF86MyComputer ] }; +// Internet Section -- Left Side +// Multimedia Section -- Right Side +// My Computer Section -- Far Right +}; + +// Microsoft Internet Keyboard Pro, Swedish +partial alphanumeric_keys +xkb_symbols "microsoftprose" { + include "inet(nav_common)" + key { [ XF86Reload ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Standby ] }; + key { [ XF86AudioStop ] }; + key { [ XF86MyComputer ] }; + key { [ XF86AudioMedia ] }; +}; + +// Microsoft Office Keyboard +partial alphanumeric_keys +xkb_symbols "microsoftoffice" { + include "inet(nav_acpi_common)" + key { [ XF86Calendar ] }; + key { [ Undo ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Cut ] }; + key { [ XF86LogOff ] }; + key { [ XF86ApplicationLeft ] }; + key { [ XF86TaskPane ] }; + key { [ XF86Spell ] }; + key { [ XF86WWW ] }; + key { [ XF86New ] }; + key { [ XF86Open ] }; + key { [ XF86Close ] }; + key { [ Help ] }; + key { [ XF86Save ] }; + key { [ Print ] }; + key { [ XF86OfficeHome ] }; + key { [ Redo ] }; + key { [ XF86Reply ] }; + key { [ XF86MailForward ] }; + key { [ XF86Send ] }; + key { [ XF86Copy ] }; + key { [ XF86ApplicationRight ] }; + key { [ XF86Paste ] }; +}; + +// Microsoft Wireless Multimedia Keyboard 1.0A +partial alphanumeric_keys +xkb_symbols "microsoftmult" { + include "inet(media_nav_acpi_common)" + key { [ XF86Messenger ] }; + key { [ XF86New ] }; + key { [ XF86Open ] }; + key { [ XF86Close ] }; + key { [ XF86Reply ] }; + key { [ Redo ] }; + key { [ Undo ] }; + key { [ XF86LogOff ] }; + key { [ XF86Spell ] }; + key { [ Help ] }; + key { [ XF86Music ] }; + key { [ XF86Forward ] }; + key { [ XF86Send ] }; + key { [ XF86Save ] }; + key { [ Print ] }; + key { [ XF86Pictures ] }; + key { [ XF86Documents ] }; +}; + + +// Oretec + +// Oretec MCK-800 MM/Internet keyboard +partial alphanumeric_keys +xkb_symbols "oretec" { + include "inet(acpi_common)" + key { [ XF86ScrollUp ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86ZoomOut ] }; + key { [ XF86AudioMute ] }; + key { [ XF86WWW ] }; + key { [ Menu ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Calculator ] }; + key { [ XF86Xfer ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86ZoomIn ] }; + key { [ XF86AudioLowerVolume ] }; +}; + + +// Propeller + +// Propeller Voyager (KTEZ-1000) +partial alphanumeric_keys +xkb_symbols "propeller" { + include "inet(media_common)" + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Xfer ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Documents ] }; + key { [ XF86Game ] }; + key { [ XF86Calculator ] }; + key { [ Menu ] }; + key { [ XF86WWW ] }; + key { [ XF86DOS ] }; + key { [ XF86Standby ] }; +}; + + +// QTronix + +// QTronix Scorpius 98N+ +partial alphanumeric_keys +xkb_symbols "qtronix" { + key { [ XF86ScrollDown ] }; + key { [ XF86Forward ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Search ] }; + key { [ XF86Standby ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86Back ] }; + key { [ XF86Reload ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioStop ] }; + key { [ XF86HomePage ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86PowerOff ] }; + key { [ XF86Stop ] }; + key { [ XF86Calculator ] }; +}; + + +// Samsung + +// Samsung SDM 4500P +partial alphanumeric_keys +xkb_symbols "samsung4500" { + include "inet(media_nav_acpi_common)" + key { [ XF86Launch4 ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Launch5 ] }; + key { [ XF86Close ] }; + key { [ XF86Book ] }; + key { [ XF86Eject ] }; + key { [ Help ] }; + key { [ XF86Explorer ] }; + key { [ XF86Launch2 ] }; +}; + +// Samsung SDM 4510P +partial alphanumeric_keys +xkb_symbols "samsung4510" { + include "inet(media_acpi_common)" + key { [ XF86Launch1 ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Eject ] }; + key { [ XF86Launch2 ] }; +}; + + +// SK + +// SK-1300 +partial alphanumeric_keys +xkb_symbols "sk1300" { + include "inet(media_common)" + key { [ XF86Eject ] }; + key { [ XF86Forward ] }; + key { [ XF86WWW ] }; + key { [ XF86Standby ] }; + key { [ XF86Back ] }; + key { [ XF86Stop ] }; +}; + +// SK-2500 +partial alphanumeric_keys +xkb_symbols "sk2500" { + include "inet(media_nav_common)" + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Eject ] }; + key { [ XF86Eject ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Xfer ] }; + key { [ XF86PowerOff ] }; + key { [ Menu ] }; + key { [ XF86ScreenSaver ] }; +}; + +// SK-6200 +partial alphanumeric_keys +xkb_symbols "sk6200" { + include "inet(acpi_common)" + key { [ XF86Favorites ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86Back ] }; + key { [ XF86Forward ] }; + key { [ XF86WWW ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86Mail ] }; +}; + +// SK-7100 +partial alphanumeric_keys +xkb_symbols "sk7100" { + include "inet(media_common)" + key { [ XF86AudioPause ] }; + key { [ XF86Close ] }; + key { [ XF86Video ] }; + key { [ XF86Eject ] }; + key { [ XF86CD ] }; + key { [ XF86Display ] }; + key { [ XF86WWW ] }; +}; + + +// Sven + +// SVEN Ergonomic 2500 +partial alphanumeric_keys +xkb_symbols "sven" { + include "inet(acpi_common)" + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86Forward ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86ZoomOut ] }; + key { [ XF86AudioPrev ] }; + key { [ XF86AudioStop ] }; + key { [ XF86HomePage ] }; + key { [ XF86Mail ] }; + key { [ XF86ZoomIn ] }; + key { [ XF86MyComputer ] }; + key { [ XF86Stop ] }; + key { [ XF86ScreenSaver ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Calculator ] }; + key { [ XF86Reload ] }; + key { [ XF86Search ] }; + key { [ XF86Favorites ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86AudioNext ] }; + key { [ XF86Back ] }; +}; + +// SVEN Slim 303 +partial alphanumeric_keys +xkb_symbols "sven303" { + key { [ XF86PowerOff ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; +}; + + +// Symplon + +// Symplon PaceBook (tablet PC) +partial alphanumeric_keys +xkb_symbols "symplon" { + include "inet(nav_acpi_common)" + key { [ XF86RotationPB ] }; + key { [ XF86SplitScreen ] }; + key { [ XF86Support ] }; + key { [ XF86New ] }; + key { [ XF86User2KB ] }; + key { [ XF86RotationKB ] }; + key { [ XF86MenuKB ] }; + key { [ XF86User1KB ] }; + key { [ XF86UserPB ] }; + key { [ XF86MenuPB ] }; +}; + + +// Toshiba + +// Toshiba Satellite S3000 +partial alphanumeric_keys +xkb_symbols "toshiba_s3000" { + include "inet(media_common)" + // Describes the Special buttons on Toshiba Satellite 3000 models. + // See http://sourceforge.net/projects/omke for details on enabling + // these keys + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86WWW ] }; + key { [ XF86Mail ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioLowerVolume ] }; +}; + + +// Trust + +// Trust Wireless Keyboard Classic +partial alphanumeric_keys +xkb_symbols "trust" { + include "inet(media_nav_acpi_common)" + key { [ XF86ScreenSaver ] }; + key { [ XF86Eject ] }; +}; + +// Trust Direct Access Keyboard +partial alphanumeric_keys +xkb_symbols "trustda" { + include "inet(media_common)" + key { [ XF86AudioRewind ] }; + key { [ XF86Close ] }; + key { [ XF86Eject ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86Xfer ] }; + key { [ XF86Standby ] }; + key { [ Help ] }; + key { [ XF86WWW ] }; + key { [ XF86Away ] }; +}; + + +// YaHoo! + +// Yahoo! Internet Keyboard +partial alphanumeric_keys +xkb_symbols "yahoo" { + include "inet(acpi_common)" + key { [ XF86AudioPrev ] }; + key { [ XF86AudioPlay, XF86AudioPause ] }; + key { [ XF86AudioStop ] }; + key { [ XF86AudioNext ] }; + key { [ XF86AudioRecord ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86AudioMute ] }; + key { [ XF86Close ] }; + key { [ XF86Calculator ] }; + key { [ Help ] }; + key { [ XF86Mail ] }; + key { [ XF86WWW ] }; +}; + + +// Apple keyboards (macbooks, powerbooks, powermac G5, etc) +partial alphanumeric_keys +xkb_symbols "apple" { +// Really brightness up/down + key { [ XF86BrightnessAdjust ] }; + key { [ XF86BrightnessAdjust ] }; + key { [ XF86AudioMute ] }; + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; + key { [ XF86RotateWindows ] }; +// Really keyboard backlight off/up/down + key { [ XF86Launch0 ] }; + key { [ XF86Launch1 ] }; + key { [ XF86Launch2 ] }; + key { [ XF86PowerOff ] }; + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F15 ] }; + key { [ XF86Eject ] }; + key { [ F16 ] }; + key { [ KP_Equal ] }; +}; + +partial alphanumeric_keys +xkb_symbols "cymotionlinux" { + include "inet(media_nav_acpi_common)" + key { [ Undo ] }; + key { [ Redo ] }; + key { [ XF86ScrollDown ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; + key { [ XF86MenuKB ] }; + key { [ XF86Launch3 ] }; + key { [ XF86Cut ] }; + key { [ XF86Copy ] }; + key { [ XF86Paste ] }; + key { [ XF86ScrollUp ] }; + key { [ XF86AudioMedia ] }; +}; + +partial alphanumeric_keys +xkb_symbols "silvercrest" { + include "inet(media_nav_acpi_common)" + key { [ XF86HomePage ] }; + key { [ XF86Launch2 ] }; + key { [ XF86Launch1 ] }; +}; + + +// eMachines + +partial alphanumeric_keys +xkb_symbols "emachines" { + include "inet(media_nav_acpi_common)" + key { [ XF86iTouch ] }; + key { [ KP_0 ] }; + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + key { [ KP_Add ] }; + key { [ KP_Decimal ] }; + key { [ KP_Divide ] }; + key { [ KP_Multiply ] }; + key { [ KP_Subtract ] }; +}; + + +// BenQ + +// BenQ X* (X730, X500, X800) +// +// To make the FN_LOCK and CONFIG key work on the BenQ X500 , use: +// setkeycodes e074 130 # KEY_PROPS from /usr/include/linux/input.h +// setkeycodes e075 171 # KEY_CONFIG from /usr/include/linux/input.h +partial alphanumeric_keys +xkb_symbols "benqx" { + include "inet(media_nav_acpi_common)" + key { [ XF86ModeLock ] }; + key { [ XF86WWW ] }; + key { [ XF86Go ] }; + key { [ XF86Calendar ] }; +}; + + +// Intel + +// Intel Classmate +partial alphanumeric_keys +xkb_symbols "classmate" { + key { [ XF86AudioLowerVolume ] }; + key { [ XF86AudioRaiseVolume ] }; +}; + + +// Unitek + +partial alphanumeric_keys +xkb_symbols "unitekkb1925" { + include "inet(media_nav_common)" + key { [ XF86AudioMute ] }; + key { [ XF86PowerOff ] }; + key { [ XF86Sleep ] }; + key { [ XF86WakeUp ] }; + key { [ XF86Search ] }; + key { [ XF86Reload ] }; +}; + + +// Creative + +// Creative Desktop Wireless 7000 +partial alphanumeric_keys +xkb_symbols "creativedw7000" { + include "inet(media_nav_acpi_common)" + key { [ XF86Pictures ] }; +}; + + +// Compal + +// Compal FL90 +partial alphanumeric_keys +xkb_symbols "compalfl90" { + include "inet(media_nav_acpi_common)" + key { [ XF86MonBrightnessUp ] }; + key { [ XF86MonBrightnessDown ] }; +}; + +partial alphanumeric_keys +xkb_symbols "pc105" { + include "inet(media_nav_acpi_common)" +}; + + +// HTC Dream +partial alphanumeric_keys +xkb_symbols "htcdream" { + key { [ BackSpace ] }; + key { [ Return ] }; + + key { [ 1, 1, exclam, exclam ] }; + key { [ 2, 2, at, at ] }; + key { [ 3, 3, numbersign, numbersign ] }; + key { [ 4, 4, dollar, dollar ] }; + key { [ 5, 5, percent, percent ] }; + key { [ 6, 6, dead_circumflex, dead_circumflex ] }; + key { [ 7, 7, ampersand, ampersand ] }; + key { [ 8, 8, asterisk, asterisk ] }; + key { [ 9, 9, parenleft, parenleft ] }; + key { [ 0, 0, parenright, parenright ] }; + + key { [ Shift_L ] }; + key { [ space ] }; + key { [ period, period, slash, slash ] }; + key { [ Shift_R ] }; + + modifier_map Shift { , }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/keypad b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/keypad new file mode 100644 index 0000000..1efc02b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/keypad @@ -0,0 +1,625 @@ +hidden partial keypad_keys +xkb_symbols "overlay" { + include "keypad(overlay1)" +}; + +hidden partial keypad_keys +xkb_symbols "overlay1" { + + key { [ KP_Home ], overlay1= }; + key { [ KP_Up ], overlay1= }; + key { [ KP_Prior ], overlay1= }; + + key { [ KP_Left ], overlay1= }; + key { [ KP_Begin ], overlay1= }; + key { [ KP_Right ], overlay1= }; + + key { [ KP_End ], overlay1= }; + key { [ KP_Down ], overlay1= }; + key { [ KP_Next ], overlay1= }; + + key { [ KP_Insert ], overlay1= }; + key { [ KP_Delete ], overlay1= }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +}; + +hidden partial keypad_keys +xkb_symbols "overlay2" { + + key { [ KP_Home ], overlay2= }; + key { [ KP_Up ], overlay2= }; + key { [ KP_Prior ], overlay2= }; + + key { [ KP_Left ], overlay2= }; + key { [ KP_Begin ], overlay2= }; + key { [ KP_Right ], overlay2= }; + + key { [ KP_End ], overlay2= }; + key { [ KP_Down ], overlay2= }; + key { [ KP_Next ], overlay2= }; + + key { [ KP_Insert ], overlay2= }; + key { [ KP_Delete ], overlay2= }; + + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +}; + +hidden partial keypad_keys +xkb_symbols "operators" { + // Puts some commands to control the X server on + // the fifth level of the keypad's operator keys. + key { + type="CTRL+ALT", // Ungrab cancels server/keyboard/pointer grabs + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] + }; + key { + type="CTRL+ALT", // ClsGrb kills whichever client has a grab in effect + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] + }; + key { + type="CTRL+ALT", // -VMode switches to the previous video mode + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] + }; + key { + type="CTRL+ALT", // +VMode switches to the next video mode + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] + }; +}; + +default hidden partial keypad_keys +xkb_symbols "x11" { + + include "keypad(operators)" + + key { [ KP_Home, KP_7 ] }; + key { [ KP_Up, KP_8 ] }; + key { [ KP_Prior, KP_9 ] }; + + key { [ KP_Left, KP_4 ] }; + key { [ KP_Begin, KP_5 ] }; + key { [ KP_Right, KP_6 ] }; + + key { [ KP_End, KP_1 ] }; + key { [ KP_Down, KP_2 ] }; + key { [ KP_Next, KP_3 ] }; + key { [ KP_Enter ] }; + key { [ KP_Equal ] }; + + key { [ KP_Insert, KP_0 ] }; + key { [ KP_Delete, KP_Decimal ] }; + key { [ KP_Decimal, KP_Decimal ] }; +}; + + +// Legacy PC keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "legacy" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(legacynumber)" + include "kpdl(dot)" +}; + + +// Legacy Wang 725-3771-ae and 725-3771-uk keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "legacy_wang" { + + include "keypad(core)" + include "keypad(legacymath)" + include "keypad(legacynumber_wang)" + include "kpdl(dot)" +}; + + +// Complete new keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "oss" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(ossnumber)" + include "kpdl(dotoss)" +}; + + +// Latin9 restriction of new keypad definition +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "oss_latin9" { + + include "keypad(core)" + include "keypad(ossmath_latin9)" + include "keypad(legacynumber)" + include "kpdl(dotoss_latin9)" +}; + + +// Wang 725-3771-ae and 725-3771-uk keypad variant of oss keypad +// Copyright © 2006-2007 Nicolas Mailhot +keypad_keys +xkb_symbols "oss_wang" { + + include "keypad(core)" + include "keypad(ossmath)" + include "keypad(ossnumber_wang)" + include "kpdl(dotoss)" +}; + + +// Forward-looking keypad definition +// Won't work with applications that make ASCII assumptions +// Copyright © 2007 Nicolas Mailhot +keypad_keys +xkb_symbols "future" { + + include "keypad(core)" + include "keypad(futuremath)" + include "keypad(ossnumber)" + include "kpdl(commaoss)" +}; + + +// Forward-looking keypad definition +// Won't work with applications that make ASCII assumptions +// Copyright © 2007 Nicolas Mailhot +keypad_keys +xkb_symbols "future_wang" { + + include "keypad(core)" + include "keypad(futuremath)" + include "keypad(ossnumber_wang)" + include "kpdl(commaoss)" +}; + + +// Keypad keys nobody changes +// Copyright © 2006 Nicolas Mailhot +partial keypad_keys +xkb_symbols "core" { + + modifier_map Mod2 { Num_Lock }; + + key { [ Num_Lock ] }; + key { [ KP_Enter ] }; + key { [ KP_Equal ] }; +}; + + +// Legacy keypad math area +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ ₁ │ ₂ │ ₃ │ ₁ +// ┃Lock⇭┃ / │ * │ - │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Ctrl+Alt +// │ + │ +// ╆━━━━━┪ +partial keypad_keys +xkb_symbols "legacymath" { + + key.type[Group1]="CTRL+ALT" ; + + key { [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] }; // / + key { [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] }; // * + key { [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] }; // - + + key { [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] }; // + +}; + + +// Keypad math area with non-CS operators +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ ∕ ₁ │ . ₂ │ − ₃ │ ₁ +// ┃Lock⇭┃ / ÷ │ * × │ - − │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ + ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "ossmath" { + + key.type[Group1]="CTRL+ALT" ; + + key { [ KP_Divide, 0x1002215, 0x10000F7, VoidSymbol, XF86_Ungrab ] }; // / ∕ ÷ + key { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol, XF86_ClearGrab ] }; // * ⋅ × + key { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − + + key { [ KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + +}; + + +// Keypad math area with non-CS operators in first levels +// As demanded by users not interested in legacy pre-unicode junk +// Copyright © 2007 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ / ₁ │ * ₂ │ - ₃ │ ₁ +// ┃Lock⇭┃ ∕ ÷ │ . × │ − − │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ + ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "futuremath" { + + key.type[Group1]="FOUR_LEVEL_X" ; + + key { [ 0x1002215, KP_Divide, 0x10000F7, XF86_Ungrab ] }; // ∕ / ÷ + key { [ 0x10022C5, KP_Multiply, 0x10000D7, XF86_ClearGrab ] }; // ⋅ * × + key { [ 0x1002212, KP_Subtract, 0x1002212, XF86_Prev_VMode ] }; // − - − + + key { [ 0x100002B, KP_Add, 0x100002B, XF86_Next_VMode ] }; // + + + +}; + + +// Keypad math area with non-CS operators, restricted to latin9 +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱─────┬─────┬─────┐ +// ┃Num ┃ / ₁ │ · ₂ │ - ₃ │ ₁ +// ┃Lock⇭┃ / ÷ │ * × │ - - │ ₂ +// ┡━━━━━╃─────┼─────┼─────┤ ₃ +// │ + ₄ │ ₄ +// │ │ +// ┤ │ 1 None +// │ │ 2 Level3 ⇮ +// │ + + │ 3 Shift+Level3 ⇧⇮ +// ╆━━━━━┪ 4 Ctrl+Alt +partial keypad_keys +xkb_symbols "ossmath_latin9" { + + key.type[Group1]="FOUR_LEVEL_X"; + + key { [ KP_Divide, slash, division, XF86_Ungrab ] }; // / / ÷ + key { [ KP_Multiply, periodcentered, multiply, XF86_ClearGrab ] }; // * · × + key { [ KP_Subtract, minus, minus, XF86_Prev_VMode ] }; // - - - + + key { [ KP_Add, plus, plus, XF86_Next_VMode ] }; // + + + +}; + + +// Legacy keypad number area +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 │ 8 │ 9 │ ⇟ Page down +// │ ⇱ │ ⇧ │ ⇞ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions +// │ ⇦ │ │ ⇨ │ +// ├─────┼─────┼─────╆ +// │ 1 │ 2 │ 3 ┃ +// │ ⇲ │ ⇩ │ ⇟ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 │ +// │ ⎀ │ +// └───────────┴ +partial keypad_keys +xkb_symbols "legacynumber" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Home, KP_7 ] }; // 7 + key { [ KP_Up, KP_8 ] }; // 8 + key { [ KP_Prior, KP_9 ] }; // 9 + + key { [ KP_Left, KP_4 ] }; // 4 + key { [ KP_Begin, KP_5 ] }; // 5 + key { [ KP_Right, KP_6 ] }; // 6 + + key { [ KP_End, KP_1 ] }; // 1 + key { [ KP_Down, KP_2 ] }; // 2 + key { [ KP_Next, KP_3 ] }; // 3 + + key { [ KP_Insert, KP_0 ] }; // 0 +}; + + +// Legacy Wang 725-3771-ae and 725-3771-uk keypad number area +// Copyright © 2007 Nicolas Mailhot +// This is actually a three-level keypad, declared as four-level +// to avoid defining a new type +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 │ 8 │ 9 │ ⇟ Page down +// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 │ 5 │ 6 │ ⇦⇧⇨⇩ Directions +// │ ⇦ [ │ ] │ ⇨ $ │ +// ├─────┼─────┼─────╆ +// │ 1 │ 2 │ 3 ┃ +// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 │ 3 Level3 ⇮ +// │ ⎀ │ +// └───────────┴ +partial keypad_keys +xkb_symbols "legacynumber_wang" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, less ] }; // 7 < + key { [ KP_Up, KP_8, greater ] }; // 8 > + key { [ KP_Prior, KP_9, asciicircum ] }; // 9 ^ + + key { [ KP_Left, KP_4, bracketleft ] }; // 4 [ + key { [ KP_Begin, KP_5, bracketright ] }; // 5 ] + key { [ KP_Right, KP_6, dollar ] }; // 6 $ + + key { [ KP_End, KP_1, ampersand ] }; // 1 & + key { [ KP_Down, KP_2, at ] }; // 2 @ + key { [ KP_Next, KP_3, numbersign ] }; // 3 # + + key { [ KP_Insert, KP_0, apostrophe ] }; // 0 ' +}; + + +// Keypad number area with arrow symbols +// Copyright © 2006 Nicolas Mailhot +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 ⇖ │ 8 ⇑ │ 9 ⇗ │ ⇟ Page down +// │ ⇱ ↖ │ ⇧ ↑ │ ⇞ ↗ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 ⇐ │ 5 ⇔ │ 6 ⇒ │ ⇦⇧⇨⇩ Directions +// │ ⇦ ← │ ↔ │ ⇨ → │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆ +// │ 1 ⇙ │ 2 ⇓ │ 3 ⇘ ┃ +// │ ⇲ ↙ │ ⇩ ↓ │ ⇟ ↘ ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 ⇕ │ 3 Level3 ⇮ +// │ ⎀ ↕ │ 4 Shift+Level3 ⇧⇮ +// └───────────┴ +partial keypad_keys +xkb_symbols "ossnumber" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, 0x1002196, 0x10021D6 ] }; // 7 ↖ ⇖ + key { [ KP_Up, KP_8, 0x1002191, 0x10021D1 ] }; // 8 ↑ ⇑ + key { [ KP_Prior, KP_9, 0x1002197, 0x10021D7 ] }; // 9 ↗ ⇗ + + key { [ KP_Left, KP_4, 0x1002190, 0x10021D0 ] }; // 4 ← ⇐ + key { [ KP_Begin, KP_5, 0x1002194, 0x10021D4 ] }; // 5 ↔ ⇔ + key { [ KP_Right, KP_6, 0x1002192, 0x10021D2 ] }; // 6 → ⇒ + + key { [ KP_End, KP_1, 0x1002199, 0x10021D9 ] }; // 1 ↙ ⇙ + key { [ KP_Down, KP_2, 0x1002193, 0x10021D3 ] }; // 2 ↓ ⇓ + key { [ KP_Next, KP_3, 0x1002198, 0x10021D8 ] }; // 3 ↘ ⇘ + + key { [ KP_Insert, KP_0, 0x1002195, 0x10021D5 ] }; // 0 ↕ ⇕ +}; + + +// Wang 725-3771-ae and 725-3771-uk keypad number area with additional arrow symbols +// Copyright © 2007 Nicolas Mailhot +// +// ┏━━━━━┱ +// ┃Num ┃ ⇱ Home +// ┃Lock⇭┃ ⇲ End +// ┡━━━━━╃─────┼─────┼ ⇞ Page up +// │ 7 ↖ │ 8 ↑ │ 9 ↗ │ ⇟ Page down +// │ ⇱ < │ ⇧ > │ ⇞ ^ │ ⎀ Insert +// ├─────┼─────┼─────┤ ␥ Delete +// │ 4 ← │ 5 ↔ │ 6 → │ ⇦⇧⇨⇩ Directions +// │ ⇦ [ │ ] │ ⇨ $ │ ⍽ narrow no-break space +// ├─────┼─────┼─────╆ +// │ 1 ↙ │ 2 ↓ │ 3 ↘ ┃ +// │ ⇲ & │ ⇩ @ │ ⇟ # ┃ 1 None +// ├─────┴─────┼─────┨ 2 Num Lock ⇭ +// │ 0 ↕ │ 3 Level3 ⇮ +// │ ⎀ ' │ 4 Shift+Level3 ⇧⇮ +// └───────────┴ +partial keypad_keys +xkb_symbols "ossnumber_wang" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Home, KP_7, less, 0x1002196 ] }; // 7 < ↖ + key { [ KP_Up, KP_8, greater, 0x1002191 ] }; // 8 > ↑ + key { [ KP_Prior, KP_9, asciicircum, 0x1002197 ] }; // 9 ^ ↗ + + key { [ KP_Left, KP_4, bracketleft, 0x1002190 ] }; // 4 [ ← + key { [ KP_Begin, KP_5, bracketright, 0x1002194 ] }; // 5 ] ↔ + key { [ KP_Right, KP_6, dollar, 0x1002192 ] }; // 6 $ → + + key { [ KP_End, KP_1, ampersand, 0x1002199 ] }; // 1 & ↙ + key { [ KP_Down, KP_2, at, 0x1002193 ] }; // 2 @ ↓ + key { [ KP_Next, KP_3, numbersign, 0x1002198 ] }; // 3 # ↘ + + key { [ KP_Insert, KP_0, apostrophe, 0x1002195 ] }; // 0 ' ↕ +}; + +// Standard base "pc" layout only contains cursor keys, and then gets +// augmented with the digits later. If you define your own layout for +// the numpad you can inherit the cursors, but you'll have to define +// the digits yourself. This module can be included in the rules to +// define math operators; these are the variants used in computer +// languages that are based on ASCII. NoSymbol doesn't mean that +// nothing is bound to the key but that no assignment is done here. +// srvr_ctrl(stdkeypad) and keypad(x11) declare the operator keys to +// be of type CTRL+ALT in order to assign server control events to +// them, but it uses the second level which is overwritten if we have +// more than one definition (shift state) for the key. Instead, here +// the commands are put at the fourth level. +partial keypad_keys +xkb_symbols "ops" { + key { [ NoSymbol, slash, NoSymbol, XF86_Ungrab ] }; + key { [ NoSymbol, asterisk, NoSymbol, XF86_ClearGrab ] }; + key { [ NoSymbol, minus, NoSymbol, XF86_Prev_VMode ] }; + key { [ NoSymbol, plus, NoSymbol, XF86_Next_VMode ] }; + key { [ NoSymbol, equal ] }; +}; + +// Hexadecimal Numpad, by Roland Kaufmann +// License: BSD (also covers variant with ATM digit order) +// Third-level gives the letters used in hexadecimal numbers, or +// columns in small spreadsheets. As a bonus, having 'e' available at +// the center of the keyboard makes it easy to enter floating point +// numbers in scientific notation. +// Equal is added to start formulas (most numpads on PCs don't have +// their own equal key), comma as a list separator (as most +// programming languages wants period as a decimal separator) and +// colon to enter times and ranges. Someone also may want to represent +// multiplication and division in prose using x and colon. +// Two first levels are specified as NoSymbol to not override any +// previous specification. Combine this with another keypad specifier, +// e.g. "legacy". +partial keypad_keys +xkb_symbols "hex" { + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + // None NumLock AltGr + // symbol row + key { [ NoSymbol, NoSymbol, parenleft ] }; + key { [ NoSymbol, NoSymbol, parenright ] }; + key { [ NoSymbol, NoSymbol, dollar ] }; + + // upper row + key { [ NoSymbol, NoSymbol, a ] }; + key { [ NoSymbol, NoSymbol, b ] }; + key { [ NoSymbol, NoSymbol, c ] }; + + // home row + key { [ NoSymbol, NoSymbol, d ] }; + key { [ NoSymbol, NoSymbol, e ] }; + key { [ NoSymbol, NoSymbol, f ] }; + key { [ NoSymbol, NoSymbol, comma ] }; + + // lower row + key { [ NoSymbol, NoSymbol, equal ] }; + key { [ NoSymbol, NoSymbol, x ] }; + key { [ NoSymbol, NoSymbol, colon ] }; + + // decimal row + key { [ NoSymbol, NoSymbol, backslash ] }; +}; + +// Main numbers follows the traditions from ATMs and phones with +// numbers increasing downwards to the right. (It is easier to +// change the keyboard layout than to reprogram your local ATM; +// also cell-phones are becoming more common while calculators are +// becoming more rare). +// First level is left unspecified, so it may be combined with another +// layout, e.g. "legacy". +partial keypad_keys +xkb_symbols "atm" { + // upper row + key { [ NoSymbol, KP_1 ] }; + key { [ NoSymbol, KP_2 ] }; + key { [ NoSymbol, KP_3 ] }; + + // lower row + key { [ NoSymbol, KP_7 ] }; + key { [ NoSymbol, KP_8 ] }; + key { [ NoSymbol, KP_9 ] }; +}; + + +partial modifier_keys +xkb_symbols "pointerkeys" { + key { [ Num_Lock, Pointer_EnableKeys ] }; +}; + + +// Only numbers, operators and decimal separator, +// as seen on keypad overlay on Japanese keyboard. +// ┌─┬─┬─┬─┐ +// │7│8│9│*│ +// ├─┼─┼─┼─┤ +// │4│5│6│-│ +// ├─┼─┼─┼─┤ +// │1│2│3│+│ +// ├─┼─┼─┼─┤ +// │0│ │·│/│ +// └─┴─┴─┴─┘ +partial keypad_keys +xkb_symbols "numoperdecsep" { + key { [ KP_7 ] }; + key { [ KP_8 ] }; + key { [ KP_9 ] }; +// ClsGrb kills whichever client has a grab in effect + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Multiply, KP_Multiply, KP_Multiply, KP_Multiply, XF86_ClearGrab ] + }; + + key { [ KP_4 ] }; + key { [ KP_5 ] }; + key { [ KP_6 ] }; +// -VMode switches to the previous video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Subtract, KP_Subtract, KP_Subtract, KP_Subtract, XF86_Prev_VMode ] + }; + + key { [ KP_1 ] }; + key { [ KP_2 ] }; + key { [ KP_3 ] }; +// +VMode switches to the next video mode + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Add, KP_Add, KP_Add, KP_Add, XF86_Next_VMode ] + }; + + key { [ KP_0 ] }; + key { [ KP_Decimal ] }; +// Ungrab cancels server/keyboard/pointer grabs + key { + type="CTRL+ALT", + symbols[Group1]= [ KP_Divide, KP_Divide, KP_Divide, KP_Divide, XF86_Ungrab ] + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/kpdl b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/kpdl new file mode 100644 index 0000000..968dbd2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/kpdl @@ -0,0 +1,102 @@ +// The key is a mess. +// It was probably originally meant to be a decimal separator. +// Except since it was declared by USA people it didn't use the original +// SI separator "," but a "." (since then the USA managed to f-up the SI +// by making "." an accepted alternative, but standards still use "," as +// default) +// As a result users of SI-abiding countries expect either a "." or a "," +// or a "decimal_separator" which may or may not be translated in one of the +// above depending on applications. +// It's not possible to define a default per-country since user expectations +// depend on the conflicting choices of their most-used applications, +// operating system, etc. Therefore it needs to be a configuration setting +// Copyright © 2007 Nicolas Mailhot + + +// Legacy #1 +// This assumes KP_Decimal will be translated in a dot +partial keypad_keys +xkb_symbols "dot" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Delete, KP_Decimal ] }; // +}; + + +// Legacy #2 +// This assumes KP_Separator will be translated in a comma +partial keypad_keys +xkb_symbols "comma" { + + key.type[Group1]="KEYPAD" ; + + key { [ KP_Delete, KP_Separator ] }; // +}; + + +// Period , usual keyboard serigraphy in most countries +partial keypad_keys +xkb_symbols "dotoss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, period, comma, 0x100202F ] }; // . , ⍽ (narrow no-break space) +}; + + +// Period , usual keyboard serigraphy in most countries, latin-9 restriction +partial keypad_keys +xkb_symbols "dotoss_latin9" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, period, comma, nobreakspace ] }; // . , ⍽ (no-break space) +}; + + +// Comma , what most non anglo-saxon people consider the real separator +partial keypad_keys +xkb_symbols "commaoss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, comma, period, 0x100202F ] }; // , . ⍽ (narrow no-break space) +}; + + +// Momayyez : Bahrain, Iran, Iraq, Kuwait, Oman, Qatar, Saudi Arabia, Syria, UAE +partial keypad_keys +xkb_symbols "momayyezoss" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, 0x100066B, comma, 0x100202F ] }; // ? , ⍽ (narrow no-break space) +}; + + +// Abstracted , pray everything will work out (it usually does not) +partial keypad_keys +xkb_symbols "kposs" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ KP_Delete, KP_Decimal, KP_Separator, 0x100202F ] }; // ? ? ⍽ (narrow no-break space) +}; + +// Spreadsheets may be configured to use the dot as decimal +// punctuation, comma as a thousands separator and then semi-colon as +// the list separator. Of these, dot and semi-colon is most important +// when entering data by the keyboard; the comma can then be inferred +// and added to the presentation afterwards. Using semi-colon as a +// general separator may in fact be preferred to avoid ambiguities +// in data files. Most times a decimal separator is hard-coded, it +// seems to be period, probably since this is the syntax used in +// (most) programming languages. +partial keypad_keys +xkb_symbols "semi" { + + key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ; + + key { [ NoSymbol, NoSymbol, semicolon ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/latin b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/latin new file mode 100644 index 0000000..25a7d73 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/latin @@ -0,0 +1,256 @@ +// Common Latin alphabet layout + +default partial +xkb_symbols "basic" { + + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ 2, at, twosuperior, oneeighth ] }; + key { [ 3, numbersign, threesuperior, sterling ] }; + key { [ 4, dollar, onequarter, dollar ] }; + key { [ 5, percent, onehalf, threeeighths ] }; + key { [ 6, asciicircum, threequarters, fiveeighths ] }; + key { [ 7, ampersand, braceleft, seveneighths ] }; + key { [ 8, asterisk, bracketleft, trademark ] }; + key { [ 9, parenleft, bracketright, plusminus ] }; + key { [ 0, parenright, braceright, degree ] }; + key { [ minus, underscore, backslash, questiondown ] }; + key { [ equal, plus, dead_cedilla, dead_ogonek ] }; + + key { [ q, Q, at, Greek_OMEGA ] }; + key { [ w, W, lstroke, Lstroke ] }; + key { [ e, E, e, E ] }; + key { [ r, R, paragraph, registered ] }; + key { [ t, T, tslash, Tslash ] }; + key { [ y, Y, leftarrow, yen ] }; + key { [ u, U, downarrow, uparrow ] }; + key { [ i, I, rightarrow, idotless ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, thorn, THORN ] }; + key { [bracketleft, braceleft, dead_diaeresis, dead_abovering ] }; + key { [bracketright, braceright, dead_tilde, dead_macron ] }; + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, dstroke, ordfeminine ] }; + key { [ g, G, eng, ENG ] }; + key { [ h, H, hstroke, Hstroke ] }; + key { [ j, J, dead_hook, dead_horn ] }; + key { [ k, K, kra, ampersand ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ semicolon, colon, dead_acute, dead_doubleacute ] }; + key { [apostrophe, quotedbl, dead_circumflex, dead_caron ] }; + key { [ grave, asciitilde, notsign, notsign ] }; + + key { [ backslash, bar, dead_grave, dead_breve ] }; + key { [ z, Z, guillemotleft, less ] }; + key { [ x, X, guillemotright, greater ] }; + key { [ c, C, cent, copyright ] }; + key { [ v, V, leftdoublequotemark, leftsinglequotemark ] }; + key { [ b, B, rightdoublequotemark, rightsinglequotemark ] }; + key { [ n, N, n, N ] }; + key { [ m, M, mu, masculine ] }; + key { [ comma, less, horizconnector, multiply ] }; + key { [ period, greater, periodcentered, division ] }; + key { [ slash, question, dead_belowdot, dead_abovedot ] }; + +}; + +// Northern Europe ( Danish, Finnish, Norwegian, Swedish) common layout + +partial +xkb_symbols "type2" { + + include "latin" + + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, quotedbl, at, twosuperior ] }; + key { [ 3, numbersign, sterling, threesuperior] }; + key { [ 4, currency, dollar, onequarter ] }; + key { [ 5, percent, onehalf, cent ] }; + key { [ 6, ampersand, yen, fiveeighths ] }; + key { [ 7, slash, braceleft, division ] }; + key { [ 8, parenleft, bracketleft, guillemotleft] }; + key { [ 9, parenright, bracketright, guillemotright] }; + key { [ 0, equal, braceright, degree ] }; + + key { [ e, E, EuroSign, cent ] }; + key { [ r, R, registered, registered ] }; + key { [ t, T, thorn, THORN ] }; + key { [ o, O, oe, OE ] }; + key { [ aring, Aring, dead_diaeresis, dead_abovering ] }; + key { [dead_diaeresis, dead_circumflex, dead_tilde, dead_caron ] }; + + key { [ a, A, ordfeminine, masculine ] }; + + key { [ c, C, copyright, copyright ] }; + key { [ comma, semicolon, dead_cedilla, dead_ogonek ] }; + key { [ period, colon, periodcentered, dead_abovedot ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; +}; + +// Slavic Latin ( Albanian, Croatian, Polish, Slovene, Yugoslav) +// common layout + +partial +xkb_symbols "type3" { + + include "latin" + + key { [ q, Q, backslash, Greek_OMEGA ] }; + key { [ w, W, bar, Lstroke ] }; + key { [ z, Z, leftarrow, yen ] }; + + key { [ f, F, bracketleft, ordfeminine ] }; + key { [ g, G, bracketright, ENG ] }; + key { [ k, K, lstroke, ampersand ] }; + + key { [ y, Y, guillemotleft, less ] }; + key { [ v, V, at, grave ] }; + key { [ b, B, braceleft, apostrophe ] }; + key { [ n, N, braceright, braceright ] }; + key { [ m, M, section, masculine ] }; + key { [ comma, semicolon, less, multiply ] }; + key { [ period, colon, greater, division ] }; +}; + +// Another common Latin layout +// (German, Estonian, Spanish, Icelandic, Italian, Latin American, Portuguese) + +partial +xkb_symbols "type4" { + + include "latin" + + key { [ 2, quotedbl, at, oneeighth ] }; + key { [ 6, ampersand, notsign, fiveeighths ] }; + key { [ 7, slash, braceleft, seveneighths ] }; + key { [ 8, parenleft, bracketleft, trademark ] }; + key { [ 9, parenright, bracketright, plusminus ] }; + key { [ 0, equal, braceright, degree ] }; + + key { [ e, E, EuroSign, cent ] }; + + key { [ comma, semicolon, horizconnector, multiply ] }; + key { [ period, colon, periodcentered, division ] }; + key { [ minus, underscore, dead_belowdot, dead_abovedot ] }; +}; + +partial +xkb_symbols "nodeadkeys" { + + key { [ equal, plus, cedilla, ogonek ] }; + key { [bracketleft, braceleft, diaeresis, degree ] }; + key { [bracketright, braceright, asciitilde, macron ] }; + key { [ semicolon, colon, acute, doubleacute ] }; + key { [apostrophe, quotedbl, asciicircum, caron ] }; + key { [ backslash, bar, grave, breve ] }; + key { [ slash, question, dead_belowdot, abovedot ] }; +}; + +partial +xkb_symbols "type2_nodeadkeys" { + + include "latin(nodeadkeys)" + + key { [ aring, Aring, diaeresis, degree ] }; + key { [ diaeresis, asciicircum, asciitilde, caron ] }; + key { [ comma, semicolon, cedilla, ogonek ] }; + key { [ period, colon, periodcentered, abovedot ] }; + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +partial +xkb_symbols "type3_nodeadkeys" { + + include "latin(nodeadkeys)" +}; + +partial +xkb_symbols "type4_nodeadkeys" { + + include "latin(nodeadkeys)" + + key { [ minus, underscore, dead_belowdot, abovedot ] }; +}; + +// Added 2008.03.05 by Marcin Woliński +// See http://marcinwolinski.pl/keyboard/ for a description. +// Used by pl(intl) +// +// ┌─────┐ +// │ 2 4 │ 2 = Shift, 4 = Level3 + Shift +// │ 1 3 │ 1 = Normal, 3 = Level3 +// └─────┘ +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ~ ~ │ ! ' │ @ " │ # ˝ │ $ ¸ │ % ˇ │ ^ ^ │ & ˘ │ * ̇ │ ( ̣ │ ) ° │ _ ¯ │ + ˛ ┃ ⌫ Back- ┃ +// │ ` ` │ 1 ¡ │ 2 © │ 3 • │ 4 § │ 5 € │ 6 ¢ │ 7 − │ 8 × │ 9 ÷ │ 0 ° │ - – │ = — ┃ space ┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { « │ } » ┃ Enter ┃ +// ┃Tab ↹ ┃ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ ‹ │ ] › ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ ┃ A │ S │ D │ F │ G │ H │ J │ K │ L │ : “ │ " ” │ | ¶ ┃ ┃ +// ┃Caps ⇬ ┃ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; ‘ │ ' ’ │ \ ┃ ┃ +// ┣━━━━━━━━┹────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┬┴────┲┷━━━━━┻━━━━━━┫ +// ┃ │ Z │ X │ C │ V │ B │ N │ M │ < „ │ > · │ ? ¿ ┃ ┃ +// ┃Shift ⇧ │ z │ x │ c │ v │ b │ n │ m │ , ‚ │ . … │ / ⁄ ┃Shift ⇧ ┃ +// ┣━━━━━━━┳━━━━━┷━┳━━━┷━━━┱─┴─────┴─────┴─────┴─────┴─────┴───┲━┷━━━━━╈━━━━━┻━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ␣ ⍽ ┃ ┃ ┃ ┃ +// ┃Ctrl ┃Meta ┃Alt ┃ ␣ Space ⍽ ┃AltGr ⇮┃Menu ┃Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ + +partial +xkb_symbols "intl" { + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, exclamdown, dead_acute ] }; + key { [ 2, at, copyright, dead_diaeresis ] }; + key { [ 3, numbersign, U2022, dead_doubleacute ] }; // U+2022 is bullet (the name bullet doesn't work) + key { [ 4, dollar, section, dead_cedilla ] }; + key { [ 5, percent, EuroSign, dead_caron ] }; + key { [ 6, asciicircum, cent, dead_circumflex ] }; + key { [ 7, ampersand, U2212, dead_breve ] }; // U+2212 is MINUS SIGN + key { [ 8, asterisk, multiply, dead_abovedot ] }; + key { [ 9, parenleft, division, dead_belowdot ] }; + key { [ 0, parenright, degree, dead_abovering ] }; + key { [ minus, underscore, endash, dead_macron ] }; + key { [ equal, plus, emdash, dead_ogonek ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [bracketleft, braceleft, U2039, guillemotleft ] }; + key { [bracketright, braceright, U203A, guillemotright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon, leftsinglequotemark, leftdoublequotemark ] }; + key { [apostrophe, quotedbl, rightsinglequotemark, rightdoublequotemark ] }; + + key { [ backslash, bar, NoSymbol, paragraph ] }; + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less, singlelowquotemark, doublelowquotemark ] }; + key { [ period, greater, ellipsis, periodcentered ] }; + key { [ slash, question, U2044, questiondown ] }; // U+2044 is FRACTION SLASH + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/level3 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/level3 new file mode 100644 index 0000000..1aef970 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/level3 @@ -0,0 +1,211 @@ +// These partial variants assign ISO_Level3_Shift to various XKB keycodes +// so that the third shift level can be reached. + +// The default behaviour: +// the right Alt key (AltGr) chooses the third symbol engraved on a key. +default partial modifier_keys +xkb_symbols "ralt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// Ensure a mapping to a real modifier for LevelThree. +partial modifier_keys +xkb_symbols "modifier_mapping" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + modifier_map Mod5 { }; +}; + +// The right Alt key never chooses the third level. +// This option attempts to undo the effect of a layout's inclusion of +// 'ralt_switch'. You may want to also select another level3 option +// to map the level3 shift to some other key. +partial modifier_keys +xkb_symbols "ralt_alt" { + key { + type[Group1]="TWO_LEVEL", + type[Group2]="TWO_LEVEL", + type[Group3]="TWO_LEVEL", + type[Group4]="TWO_LEVEL", + symbols[Group1] = [ Alt_R, Meta_R ], + symbols[Group2] = [ Alt_R, Meta_R ], + symbols[Group3] = [ Alt_R, Meta_R ], + symbols[Group4] = [ Alt_R, Meta_R ] + }; + modifier_map Mod1 { }; +}; + +// The right Alt key (while pressed) chooses the third shift level, +// and Compose is mapped to its second level. +partial modifier_keys +xkb_symbols "ralt_switch_multikey" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, Multi_key ] + }; + include "level3(modifier_mapping)" +}; + +// A special case of the right-Alt switch -- for use with grp:alts_toggle. +hidden partial modifier_keys +xkb_symbols "ralt_switch_for_alts_toggle" { + virtual_modifiers LAlt, AltGr; + key { + type[Group1]="PC_RALT_LEVEL2", + symbols[Group1] = [ Alt_L, ISO_Prev_Group, ISO_Prev_Group ], + virtualMods= LAlt + }; + key { + type[Group1]="PC_ALT_LEVEL2", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Next_Group ], + virtualMods= AltGr + }; + include "level3(modifier_mapping)" +}; + +// Either Alt key (while pressed) chooses the third shift level. +// (To be used mostly to imitate Mac OS functionality.) +partial modifier_keys +xkb_symbols "alt_switch" { + include "level3(lalt_switch)" + include "level3(ralt_switch)" +}; + +// The left Alt key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "lalt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The right Ctrl key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Menu key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "menu_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// Either Win key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "win_switch" { + include "level3(lwin_switch)" + include "level3(rwin_switch)" +}; + +// The left Win key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "lwin_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The right Win key (while pressed) chooses the third shift level. +// (When using this map, you should set your keyboard as pc101 or pc102 +// instead of pc104 or pc105.) +partial modifier_keys +xkb_symbols "rwin_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Enter key on the kepypad (while pressed) chooses the third shift level. +// (This is especially useful for Mac laptops which miss the right Alt key.) +partial modifier_keys +xkb_symbols "enter_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The CapsLock key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "caps_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Backslash key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "bksl_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The Less/Greater key (while pressed) chooses the third shift level. +partial modifier_keys +xkb_symbols "lsgt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift ] + }; + include "level3(modifier_mapping)" +}; + +// The CapsLock key (while pressed) chooses the third shift level, +// and latches when pressed together with another third-level chooser. +partial modifier_keys +xkb_symbols "caps_switch_latch" { + key { + type[Group1]="THREE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] + }; + include "level3(modifier_mapping)" +}; + +// The Backslash key (while pressed) chooses the third shift level, +// and latches when pressed together with another third-level chooser. +partial modifier_keys +xkb_symbols "bksl_switch_latch" { + key { + type[Group1]="THREE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] + }; + include "level3(modifier_mapping)" +}; + +// The Less/Greater key (while pressed) chooses the third shift level, +// and latches when pressed together with another third-level chooser. +partial modifier_keys +xkb_symbols "lsgt_switch_latch" { + key { + type[Group1]="THREE_LEVEL", + symbols[Group1] = [ ISO_Level3_Shift, ISO_Level3_Shift, ISO_Level3_Latch ] + }; + include "level3(modifier_mapping)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/level5 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/level5 new file mode 100644 index 0000000..1ae2e6d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/level5 @@ -0,0 +1,142 @@ +// These partial variants assign ISO_Level5_Shift to various XKB keycodes +// so that the fifth shift level can be reached. + +// The right Ctrl key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "rctrl_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// The Less/Greater key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "lsgt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// The right Alt key (while pressed) chooses the fifth shift level. +partial modifier_keys +xkb_symbols "ralt_switch" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + include "level5(modifier_mapping)" +}; + +// Ensure a mapping to a real modifier for LevelFive. +partial modifier_keys +xkb_symbols "modifier_mapping" { + replace key { + type[Group1] = "ONE_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift ] + }; + modifier_map Mod3 { }; +}; + + +// This adds the definitions needed to create a level5-lock behaviour, using +// the real modifier NumLock as a lock indicator. +// See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK +// See also: compat/level5(level5_lock) +partial modifier_keys +xkb_symbols "lock" { + key.type[Group1] = "ONE_LEVEL"; + include "level5(modifier_mapping)" + replace key { + vmods = NumLock, + symbols[Group1] = [ NoSymbol ], + actions[Group1] = [ SetMods(modifiers=NumLock) ] + }; + modifier_map Mod2 { }; +}; + +// The following modifier keys are used to switch to the third shift level +// and to set a corresponding lock, implemented as NumLock. + +partial modifier_keys +xkb_symbols "lsgt_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "lwin_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "ralt_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "rwin_switch_lock" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "lsgt_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "lwin_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "ralt_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; + +partial modifier_keys +xkb_symbols "rwin_switch_lock_cancel" { + include "level5(lock)" + key { + type[Group1] = "EIGHT_LEVEL_LEVEL_FIVE_LOCK", + symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, + ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ] + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/macintosh_vndr/apple b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/macintosh_vndr/apple new file mode 100644 index 0000000..551eabc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/macintosh_vndr/apple @@ -0,0 +1,141 @@ +// +// Keyboard modification for Apple keyboards +// + +partial default modifier_keys +xkb_symbols "extended" { + + key { [ KP_Equal ] }; + +// The key in the PC's Insert position is sometimes engraved Help (at least +// in Switzerland and Great Britain), with Insert sometimes above. But in the +// US and Canada, it remains Insert. So this should probably be an XkbOption, +// but I have to do more research. +// Perhaps Help should be the primary symbol with Insert in the 1st shift-level +// key { [ Help, Insert ] }; +// The keys next to F12, labeled F13, F14, & F15 generate codes that XFree86 +// claims not to generate. I think they should be equivalent to the PC keys +// Print Screen / SysRq, Scroll Lock, and Pause. Linux kernel bug? +// key { [ F13 ] }; // should be keycode 93 or +// key { [ F13 ] }; // should be keycode 118 +// key { [ F14 ] }; // should be keycode 123 or +// key { [ F14 ] }; // should be keycode 119 +// key { [ F15 ] }; // should be keycode 127 or +// key { [ F15 ] }; // should be keycode 120 +}; + +partial modifier_keys +xkb_symbols "laptop" { + + include "macintosh_vndr/apple(extended)" + + // The real numlock key on the iBook (shared with F5) works internally to + // the keyboard. It illuminates the Num_Lock led and locks the fn-key to + // type only the keypad keys on the letter keys (U=4, I=5, O=6, P=*, etc.). + // The key in the Num_lock position is engraved with Clear. + override key { [ Clear ] }; + // The key engraved Delete sends BKSP. To get Delete, use Shift-Delete + override key { [ BackSpace, Delete ] }; + // These keyboards only generate a when pressing fn+Alt. This makes + // it impossible to get to the third shift level on keys that are on + // the fn-keypad, so use the Enter key (right of ) for Mode_switch, + // and use fn+Enter (Apple's code for Menu) for KP_Enter. + replace key { [ ISO_Level3_Shift ] }; + modifier_map Mod5 { ISO_Level3_Shift }; + // Linux kernel bug with Menu on macs means this doesn't work yet +// replace key { [ KP_Enter ] }; // should be keycode 117 +}; + +partial modifier_keys +xkb_symbols "laptop_bad_switch" { + // Kept for backward compatibility + include "macintosh_vndr/apple(laptop)" +}; + +// Long Aluminium Keyboards +partial function_keys +xkb_symbols "alukbd" { + // The base is a inet PC keyboard + include "pc" + + // Additional Fxx keys + key { [ F13 ] }; + key { [ F14 ] }; + key { [ F15 ] }; + key { [ F16 ] }; + key { [ F17 ] }; + key { [ F18 ] }; + key { [ F19 ] }; + + // On aluminium keyboards, Num_Lock is replace by Clear + replace key { [ Clear ] }; + // CAPS key is always Caps_Lock, even for JIS keyboards + replace key { [ Caps_Lock ] }; + + // F1..F12 are multimedia keys when used with the 'Fn' key + // Make those multimedia actions available via ISO_Level3_Shift too, + // it is useful when the Fn key is remapped to something else (e.g. Insert) + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86KbdBrightnessDown, NoSymbol, XF86_Switch_VT_1 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86KbdBrightnessUp, NoSymbol, XF86_Switch_VT_2 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_3 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_4 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_5 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, NoSymbol, NoSymbol, XF86_Switch_VT_6 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioPrev, NoSymbol, XF86_Switch_VT_7 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioPlay, NoSymbol, XF86_Switch_VT_8 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioNext, NoSymbol, XF86_Switch_VT_9 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioMute, NoSymbol, XF86_Switch_VT_10 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioLowerVolume, NoSymbol, XF86_Switch_VT_11 ] + }; + key { + type= "FOUR_LEVEL_X", + symbols[Group1]= [ NoSymbol, XF86AudioRaiseVolume, NoSymbol, XF86_Switch_VT_12 ] + }; +}; + +// Aluminium Keyboard: make F13, F14, F15 PC-ish (Print, Scroll_Lock, Pause) +partial function_keys keypad_keys +xkb_symbols "alupckeys" { + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { [ Scroll_Lock ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + override key { [ Num_Lock, Pointer_EnableKeys ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/macintosh_vndr/us b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/macintosh_vndr/us new file mode 100644 index 0000000..81e4b77 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/macintosh_vndr/us @@ -0,0 +1,145 @@ +// symbols definition for a Macintosh "Extended" keyboard + +xkb_symbols "extended" { + + name[Group1]= "USA"; + key { [ Escape ] }; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ backslash, bar ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ space ] }; + + include "eurosign(e)" + include "keypad" + + key { [ equal ] }; +}; + +hidden +xkb_symbols "oldmac" { + + include "macintosh_vndr/us(extended)" + + // Begin "Function" section + key { [ F1 ] }; + key { [ F2 ] }; + key { [ F3 ] }; + key { [ F4 ] }; + key { [ F5 ] }; + key { [ F6 ] }; + key { [ F7 ] }; + key { [ F8 ] }; + key { [ F9 ] }; + key { [ F10 ] }; + key { [ F11 ] }; + key { [ F12 ] }; + key { [ Print ] }; + key { [ Scroll_Lock ] }; + key { [ Pause ] }; + // End "Function" section + + // Begin "Editing" section + key { [ Insert ] }; + key { [ Home ] }; + key { [ Prior ] }; + key { [ Delete ] }; + key { [ End ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; + // End "Editing" section + + key { [ BackSpace ] }; + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + key { [ Caps_Lock ] }; + key { [ Num_Lock, Pointer_EnableKeys ] }; + + // Begin "Modifier" section + key { [ Shift_L ] }; + key { [ Shift_R ] }; + key { [ Control_L ] }; + key { [ Control_R ] }; + key { [ Alt_L, Meta_L ] }; + key { [ Alt_R, Meta_R ] }; + key { [ Super_L ] }; + key { [ Super_R ] }; + // End "Modifier" section + + // begin modifier mappings + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod2 { Num_Lock }; + + // Fake keys for virtual<->real modifiers mapping + key { [ ISO_Level3_Shift ] }; + key { [ Mode_switch ] }; + modifier_map Mod5 { , }; + + key { [ NoSymbol, Alt_L ] }; + modifier_map Mod1 { , }; + + key { [ NoSymbol, Meta_L ] }; + modifier_map Mod1 { }; + + key { [ NoSymbol, Super_L ] }; + modifier_map Mod4 { }; + + key { [ NoSymbol, Hyper_L ] }; + modifier_map Mod4 { }; + // end modifier mappings + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/nbsp b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/nbsp new file mode 100644 index 0000000..77b40df --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/nbsp @@ -0,0 +1,204 @@ +// Let Space key provide No-Break Space (NBSP), Narrow No-Break Space (NNBSP), +// Zero-Width Non-Joiner (ZWNJ), and Zero-Width Joiner (ZWJ) for the desired +// levels. + + +//////////////////////////////////////// +// Only Space + +partial +xkb_symbols "none" { + key { + type[Group1]="ONE_LEVEL", + symbols[Group1]= [ space ] + }; +}; + + +//////////////////////////////////////// +// No-Break Space + +partial +xkb_symbols "level2" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1]= [ space, nobreakspace ] + }; +}; + + +// level3 & level3ns provide no-breaking spaces starting from level3 +// This is good for typographers but experience shows many users accidently +// type no-breaking spaces on the CLI (resulting in errors) +// Used by fr(latin9) and lt(std) +partial +xkb_symbols "level3" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace ] + }; +}; + +// level3s kills fourth level +// Used by ca(multix) +partial +xkb_symbols "level3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace, NoSymbol ] + }; +}; + +// for this reason pushing no-breaking spaces to level4 is the safe default nowadays +partial +xkb_symbols "level4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace ] + }; +}; + + +//////////////////////////////////////// +// Narrow No-Break Space + +// level3n provides narrow no-breaking space in addition to the normal one +partial +xkb_symbols "level3n" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, nobreakspace, 0x100202F ] + }; +}; + +// level4n provides narrow no-breaking space in addition to the normal one +partial +xkb_symbols "level4n" { + key { + type[Group1]="EIGHT_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + }; +}; + +// level4nl provides narrow no-breaking space in addition to the normal one +// without forcing the use of level5 for mostly four-level layouts +// Used by fr(oss), be(oss)… +partial +xkb_symbols "level4nl" { + key { + type[Group1]="LOCAL_EIGHT_LEVEL", + symbols[Group1]= [ space, space, space, nobreakspace, space, 0x100202F, NoSymbol, NoSymbol ] + }; +}; + + +//////////////////////////////////////// +// Zero-Width Non-Joiner & Zero-Width Joiner +// Author: Behnam Esfahbod + +// ZWNJ and ZWJ are widely used in Persian, Kurdinsh, Pashto, Uzbek and other +// languages that use PersoArabic script. + + +// ZWNJ on level 2 +partial +xkb_symbols "zwnj2" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1]= [ space, 0x100200c ] + }; +}; + + +// ZWNJ on level 2 +// ZWJ on level 3 +partial +xkb_symbols "zwnj2zwj3" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, 0x100200d ] + }; +}; + + +// ZWNJ on level 2 +// ZWJ on level 3 +// NBSP on level 4 +partial +xkb_symbols "zwnj2zwj3nb4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, 0x100200d, nobreakspace ] + }; +}; + +// ZWNJ on level 2 +// NBSP on level 3 +// Used by ir(ku_ara), af(basic), af(ps), af(uz), af(olpc-fa), af(olpc-ps), af(olpc-uz) +partial +xkb_symbols "zwnj2nb3" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace ] + }; +}; + + +// ZWNJ on level 2 +// NBSP on level 3 +partial +xkb_symbols "zwnj2nb3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace, NoSymbol ] + }; +}; + + +// ZWNJ on level 2 +// NBSP on level 3 +// ZWJ on level 4 +partial +xkb_symbols "zwnj2nb3zwj4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100200d ] + }; +}; + + +// ZWNJ on level 2 +// NBSP on level 3 +// NNBSP on level 4 +// Used by ir(pes) +partial +xkb_symbols "zwnj2nb3nnb4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, 0x100200c, nobreakspace, 0x100202F ] + }; +}; + + +// ZWNJ on level 3 +// ZWJ on level 4 +// Used by in(deva), in(olpc) +partial +xkb_symbols "zwnj3zwj4" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, space, 0x100200c, 0x100200d ] + }; +}; + + +// NBSP on level 2 +// ZWNJ on level 3 +// Used by lk(sin_phonetic) +partial +xkb_symbols "nb2zwnj3s" { + key { + type[Group1]="FOUR_LEVEL", + symbols[Group1]= [ space, nobreakspace, 0x100200c, NoSymbol ] + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/pc b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/pc new file mode 100644 index 0000000..0199713 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/pc @@ -0,0 +1,87 @@ +default partial alphanumeric_keys modifier_keys +xkb_symbols "pc105" { + + key { [ Escape ] }; + + // The extra key on many European keyboards: + key { [ less, greater, bar, brokenbar ] }; + + // The following keys are common to all layouts. + key { [ backslash, bar ] }; + key { [ space ] }; + + include "srvr_ctrl(fkey2vt)" + include "pc(editing)" + include "keypad(x11)" + + key { [ BackSpace, BackSpace ] }; + + key { [ Tab, ISO_Left_Tab ] }; + key { [ Return ] }; + + key { [ Caps_Lock ] }; + key { [ Num_Lock ] }; + + key { [ Shift_L ] }; + key { [ Control_L ] }; + key { [ Super_L ] }; + + key { [ Shift_R ] }; + key { [ Control_R ] }; + key { [ Super_R ] }; + key { [ Menu ] }; + + // Beginning of modifier mappings. + modifier_map Shift { Shift_L, Shift_R }; + modifier_map Lock { Caps_Lock }; + modifier_map Control{ Control_L, Control_R }; + modifier_map Mod2 { Num_Lock }; + modifier_map Mod4 { Super_L, Super_R }; + + // Fake keys for virtual<->real modifiers mapping: + key { [ ISO_Level3_Shift ] }; + key { [ Mode_switch ] }; + modifier_map Mod5 { , }; + + key { [ NoSymbol, Alt_L ] }; + include "altwin(meta_alt)" + + key { [ NoSymbol, Meta_L ] }; + modifier_map Mod1 { }; + + key { [ NoSymbol, Super_L ] }; + modifier_map Mod4 { }; + + key { [ NoSymbol, Hyper_L ] }; + modifier_map Mod4 { }; + // End of modifier mappings. + + key { [ XF86Display ] }; + key { [ XF86KbdLightOnOff ] }; + key { [ XF86KbdBrightnessDown ] }; + key { [ XF86KbdBrightnessUp ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "editing" { + key { + type= "PC_ALT_LEVEL2", + symbols[Group1]= [ Print, Sys_Req ] + }; + key { [ Scroll_Lock ] }; + key { + type= "PC_CONTROL_LEVEL2", + symbols[Group1]= [ Pause, Break ] + }; + key { [ Insert ] }; + key { [ Home ] }; + key { [ Prior ] }; + key { [ Delete ] }; + key { [ End ] }; + key { [ Next ] }; + + key { [ Up ] }; + key { [ Left ] }; + key { [ Down ] }; + key { [ Right ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ru b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ru new file mode 100644 index 0000000..c4f4818 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/ru @@ -0,0 +1,651 @@ +// Keyboard layouts for Russia. +// AEN +// 2001/12/23 by Leon Kanter +// 2005/12/09 Valery Inozemtsev + +// Windows layout +default partial alphanumeric_keys +xkb_symbols "winkeys" { + + include "ru(common)" + name[Group1]= "Russian"; + + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + + key { [ period, comma ] }; + key { [ backslash, slash ] }; +}; + +hidden partial alphanumeric_keys +xkb_symbols "common" { + + key { [ 1, exclam ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numbersign ] }; + key { [ 4, asterisk ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, semicolon ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + key { [ backslash, bar ] }; + + key { [ slash, question ] }; + key { [ slash, bar ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; + + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_yu, Cyrillic_YU ] }; + + include "kpdl(comma)" +}; + +partial alphanumeric_keys +xkb_symbols "legacy" { + + include "ru(common)" + name[Group1]= "Russian (legacy)"; +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "ru(common)" + + key { [ 0x01000451, 0x01000401, grave ] }; // Ñ‘, Ð + key { [ 3, numbersign, 0x01002116 ] }; // â„– + key { [ 4, dollar, semicolon ] }; + key { [ 6, asciicircum, colon ] }; + key { [ 7, ampersand ] }; + key { [ 9, parenleft, acute ] }; + key { [ backslash, bar, slash ] }; + + include "group(olpc)" +}; + +partial alphanumeric_keys +xkb_symbols "typewriter" { + + include "ru(common)" + name[Group1]= "Russian (typewriter)"; + + key { [ bar, plus ] }; + key { [ numerosign, 1 ] }; + key { [ minus, 2 ] }; + key { [ slash, 3 ] }; + key { [ quotedbl, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ underscore, 8 ] }; + key { [ question, 9 ] }; + key { [ percent, 0 ] }; + key { [ exclam, equal ] }; + key { [ semicolon, backslash ] }; + + key { [ parenright, parenleft ] }; + + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +partial alphanumeric_keys +xkb_symbols "typewriter-legacy" { + + include "ru(common)" + name[Group1]= "Russian (typewriter, legacy)"; + + key { [ apostrophe, quotedbl ] }; + key { [ exclam, 1 ] }; + key { [ numerosign, 2 ] }; + key { [ slash, 3 ] }; + key { [ semicolon, 4 ] }; + key { [ colon, 5 ] }; + key { [ comma, 6 ] }; + key { [ period, 7 ] }; + key { [ underscore, 8 ] }; + key { [ question, 9 ] }; + key { [ percent, 0 ] }; + + key { [ parenleft, parenright ] }; + + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic" { + + name[Group1]= "Russian (phonetic)"; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, Cyrillic_io ] }; + key { [ 4, Cyrillic_IO ] }; + key { [ 5, Cyrillic_hardsign ] }; + key { [ 6, Cyrillic_HARDSIGN ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + + key { [ period, greater ] }; + key { [ slash, question ] }; + key { [ comma, less ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + key { [ bar, brokenbar ] }; + + key { [ Cyrillic_yu, Cyrillic_YU ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + + key { [ Cyrillic_sha, Cyrillic_SHA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ Cyrillic_e, Cyrillic_E ] }; +}; + +partial alphanumeric_keys +xkb_symbols "phonetic_winkeys" { + + include "ru(phonetic)" + name[Group1]= "Russian (phonetic WinKeys)"; + + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_che, Cyrillic_CHE ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; +}; + +partial alphanumeric_keys +xkb_symbols "tt" { + + include "ru(winkeys)" + name[Group1]= "Tatar"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ 0x010004bb, 0x010004ba, Cyrillic_io, Cyrillic_IO ] }; + key { [ 0x010004e9, 0x010004e8, Cyrillic_tse, Cyrillic_TSE ] }; + key { [ 0x010004d9, 0x010004d8, Cyrillic_shcha, Cyrillic_SHCHA ] }; + key { [ 0x010004af, 0x010004ae, Cyrillic_hardsign, Cyrillic_HARDSIGN ] }; + key { [ 0x010004a3, 0x010004a2, Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ 0x01000497, 0x01000496, Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "os_legacy" { + + include "ru(common)" + name[Group1]= "Ossetian (legacy)"; + + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; + key { [ 0x010004D5, 0x010004D4 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "os_winkeys" { + + include "ru(winkeys)" + name[Group1]= "Ossetian (WinKeys)"; + + key { [ Cyrillic_e, Cyrillic_E ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_io, Cyrillic_IO ] }; + key { [ 0x010004D5, 0x010004D4 ] }; +}; + +partial alphanumeric_keys +xkb_symbols "cv" { + + include "ru(winkeys)" + name[Group1]= "Chuvash"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ Cyrillic_u, Cyrillic_U, 0x010004f3, 0x010004f2 ] }; + key { [ Cyrillic_ie, Cyrillic_IE, 0x010004d7, 0x010004d6 ] }; + key { [ Cyrillic_a, Cyrillic_A, 0x010004d1, 0x010004d0 ] }; + key { [ Cyrillic_es, Cyrillic_ES, 0x010004ab, 0x010004aa ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "udm" { + + include "ru(winkeys)" + name[Group1]= "Udmurt"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ question, exclam, 1, 1 ] }; + key { [ parenleft, quotedbl, 2, 2 ] }; + key { [ parenright, numerosign, 3, 3 ] }; + key { [ colon, semicolon, 4, 4 ] }; + key { [ asterisk, percent, 5, 5 ] }; + key { [ 0x010004dd, 0x010004dc, 6, 6 ] }; + key { [ 0x010004e7, 0x010004e6, 7, 7 ] }; + key { [ 0x010004f5, 0x010004f4, 8, 8 ] }; + key { [ 0x010004e5, 0x010004e4, 9, 9 ] }; + key { [ 0x010004df, 0x010004de, 0, 0 ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "cv_latin" { + + include "us(alt-intl)" + name[Group1]= "Chuvash (Latin)"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ q, Q, 0x01000161, 0x01000160 ] }; + key { [ w, W, udiaeresis, Udiaeresis ] }; + key { [ e, E, 0x01000115, 0x01000114 ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, 0x0100012d, 0x0100012c ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ a, A, abreve, Abreve ] }; + key { [ s, S, scedilla, Scedilla ] }; + key { [ g, G, gbreve, Gbreve ] }; + key { [ j, J, 0x01000131, 0x01000130 ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + + include "level3(ralt_switch)" +}; + +// Komi language layout +// Vlad Shakhov +// last changes 2007/10/23 +partial alphanumeric_keys +xkb_symbols "kom" { + + include "ru(winkeys)" + name[Group1]= "Komi"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + // cyrilllic o with diaeresis + key { [ Cyrillic_o, Cyrillic_O, U04E7, U04E6 ] }; + + // hard I as additional key for soft Cyrillic_I + key { [ Cyrillic_i, Cyrillic_I, Ukrainian_i, Ukrainian_I ] }; + + include "level3(ralt_switch)" +}; + +// Yakut language layout +// 2008/04/23 Yakov Aleksandrov +// 2008/04/23 Anatoliy Zhozhikov +// 2008/04/23 Aleksandr Varlamov +partial alphanumeric_keys +xkb_symbols "sah" { + + include "ru(winkeys)" + name[Group1]= "Yakut"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_io, Cyrillic_IO, U04EB, U04EA ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, U048B, U048A ] }; + key { [ Cyrillic_u, Cyrillic_U, Cyrillic_u_straight, Cyrillic_U_straight ] }; + key { [ Cyrillic_ka, Cyrillic_KA, U04C4, U04C3 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, U0495, U0494 ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, U04E1, U04E0 ] }; + key { [ Cyrillic_ha, Cyrillic_HA, Cyrillic_shha, Cyrillic_SHHA ] }; + key { [ Cyrillic_o, Cyrillic_O, Cyrillic_o_bar, Cyrillic_O_bar ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U0461, U0460 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, Cyrillic_u_macron, Cyrillic_U_macron ] }; + key { [ Cyrillic_em, Cyrillic_EM, U04C8, U04C7 ] }; + key { [ Cyrillic_i, Cyrillic_I, Cyrillic_i_macron, Cyrillic_I_macron ] }; + + include "level3(ralt_switch)" +}; + + +//Kalmyk language layout +//based on the Kalmyk language layout: http://soft.oyrat.org/ +//Nikolay Korneev +//Toli Miron +partial alphanumeric_keys +xkb_symbols "xal" { + + include "ru(winkeys)" + name[Group1]= "Kalmyk"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ question, exclam, 1 ] }; + key { [ numerosign, quotedbl, 2 ] }; + key { [ Cyrillic_u_straight, Cyrillic_U_straight, 3 ] }; + key { [ Cyrillic_schwa, Cyrillic_SCHWA, 4 ] }; + key { [ asterisk, percent, 5 ] }; + key { [ Cyrillic_en_descender, Cyrillic_EN_descender, 6 ] }; + key { [ Cyrillic_o_bar, Cyrillic_O_bar, 7 ] }; + key { [ Cyrillic_shha, Cyrillic_SHHA, 8 ] }; + key { [ Cyrillic_zhe_descender, Cyrillic_ZHE_descender, 9 ] }; + key { [ semicolon, colon, 0 ] }; + + key { [ parenleft, parenright, Cyrillic_io, Cyrillic_IO ] }; + + key { [ Cyrillic_tse, Cyrillic_TSE, dollar ] }; + key { [ Cyrillic_u, Cyrillic_U, EuroSign ] }; + key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; + key { [ Cyrillic_ie, Cyrillic_IE, trademark ] }; + key { [ Cyrillic_ha, Cyrillic_HA, bracketleft ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, bracketright ] }; + key { [ Cyrillic_e, Cyrillic_E, apostrophe ] }; + key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; + key { [ Cyrillic_be, Cyrillic_BE, less ] }; + key { [ Cyrillic_yu, Cyrillic_YU, greater ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "dos" { + + include "ru(common)" + name[Group1]= "Russian (DOS)"; + + key { [ parenright, parenleft ] }; + key { [ 4, currency ] }; + key { [ 9, question ] }; + key { [ 0, percent ] }; + + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; + +partial alphanumeric_keys +xkb_symbols "bak" { + + include "ru(winkeys)" + name[Group1]= "Bashkirian"; + + key.type[group1]="FOUR_LEVEL"; + + key { [ 0x010004d9, 0x010004d8, Cyrillic_io, Cyrillic_IO ] }; + key { [ exclam, quotedbl, 1, 1 ] }; + key { [ 0x010004e9, 0x010004e8, 2, 2 ] }; + key { [ 0x010004a1, 0x010004a0, 3, 3 ] }; + key { [ 0x01000493, 0x01000492, 4, 4 ] }; + key { [ 0x010004ab, 0x010004aa, 5, 5 ] }; + key { [ colon, semicolon, 6, 6 ] }; + key { [ 0x01000499, 0x01000498, 7, 7 ] }; + key { [ 0x010004bb, 0x010004ba, 8, 8 ] }; + key { [ question, parenleft, 9, 9 ] }; + key { [ numerosign, parenright, 0, 0 ] }; + key { [ minus, percent, minus, underscore ] }; + key { [ 0x010004af, 0x010004ae, equal, plus ] }; + key { [ 0x010004a3, 0x010004a2, backslash, slash ] }; + + include "level3(ralt_switch)" +}; + +// Serbian characters are added as third-level symbols to Russian keyboard layout. +partial alphanumeric_keys +xkb_symbols "srp" { + + include "ru(common)" + name[Group1]= "Serbian (Russia)"; + + key { [ 3, numerosign ] }; + key { [ 4, semicolon ] }; + key { [ 5, percent ] }; + key { [ 6, colon ] }; + key { [ 7, question ] }; + key { [ 8, asterisk ] }; + key { [ period, comma ] }; + key { [ backslash, slash ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI, U458, U408 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U45A, U40A ] }; + key { [ Cyrillic_el, Cyrillic_EL, U459, U409 ] }; + key { [ Cyrillic_de, Cyrillic_DE, U45F, U40F ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U452, U402 ] }; + key { [ Cyrillic_che, Cyrillic_CHE, U45B, U40B ] }; + + include "level3(ralt_switch)" +}; + +// Mari language layout +// http://www.marlamuter.ru/ +partial alphanumeric_keys +xkb_symbols "chm" { + + include "ru(common)" + name[Group1]= "Mari"; + + key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_a, Cyrillic_A, U04D3, U04D2 ] }; + key { [ Cyrillic_u, Cyrillic_U, U04F1, U04F0 ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU, U04F9, U04F8 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U04A5, U04A4 ] }; + key { [ Cyrillic_e, Cyrillic_E, U04E9, U04E8 ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U04EB, U04EA ] }; + key { [ Cyrillic_ef, Cyrillic_EF, UF537, UF536 ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +// Church Slavonic language layout +// based on the Russian standard keyboard +// by Aleksandr Andreev and Yuri Shardt +// last changes 2010/08/01; contact +partial alphanumeric_keys +xkb_symbols "chu" { + + name[Group1]= "Church Slavonic"; + + key { [ U0457, U0407, U0482, U20DD ] }; // ї Ї ҂ e.g: а⃝ where the last is a combining ten thousands sign + key { [ U0461, U0460, U047D, U047C ] }; // ѡ Ѡ ѽ Ѽ + key { [ U0454, U0404, U0465, U0464 ] }; // є Є ѥ Ѥ + key { [ U046F, U046E, U0469, U0468 ] }; // ѯ Ѯ ѩ Ѩ + key { [ U0471, U0470, U046D, U046C ] }; // ѱ Ѱ ѭ Ѭ + key { [ U0473, U0472, UA657, UA656 ] }; // ѳ Ѳ iotified A + key { [ U0475, U0474, U0477, U0476 ] }; // ѵ Ѵ ѷ Ѷ + key { [ U047B, U047A, UA64D, UA64C ] }; // ѻ Ѻ ꙍ Ꙍ + key { [ U047F, U047E, U046B, U046A ] }; // ѿ Ѿ ѫ Ѫ + key { [ U0455, U0405,parenleft,U002A ] }; // ѕ Ѕ ( * + key { [Cyrillic_u,Cyrillic_U,parenright,U0488]}; // у У ) NB: for digraph Ouk, use Cyrillic_o + Cyrillic_u + key { [ U0483, U0486, U0487, U005F ] }; // а҃ а҆ а҇, _ (titlo, psili, pokrytie, underscore) + key { [ U0301, U0300, U0484, UA67E ] }; // а̀ а́ а҄ ꙾ (oxia, varia, kamora, kavyka) + + key { [ Cyrillic_shorti, Cyrillic_SHORTI, U0456 ] }; + key { [ Cyrillic_tse, Cyrillic_TSE, U2DF0 ] }; + key { [ UA64B, UA64A, U2DF9 ] }; // Cyrillic monograph Uk (not U)! + key { [ Cyrillic_ka, Cyrillic_KA, U2DE6 ] }; + key { [ Cyrillic_ie, Cyrillic_IE, U2DF7 ] }; + key { [ Cyrillic_en, Cyrillic_EN, U2DE9 ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, U2DE2 ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, U2DF2 ] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, U2DF3 ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, U2DE5 ] }; + key { [ Cyrillic_ha, Cyrillic_HA, U2DEF ] }; + key { [Cyrillic_hardsign,Cyrillic_HARDSIGN, UA67D ] }; // Payerok + key { [ backslash, slash, colon, question ] }; // \ / : ? NB: for Slavonic question, use semicolon + + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_ve, Cyrillic_VE, U2DE1 ] }; + key { [ Cyrillic_a, Cyrillic_A, U2DF6 ] }; + key { [ Cyrillic_pe, Cyrillic_PE, U2DEB ] }; + key { [ Cyrillic_er, Cyrillic_ER, U2DEC ] }; + key { [ Cyrillic_o, Cyrillic_O, U2DEA ] }; + key { [ Cyrillic_el, Cyrillic_EL, U2DE7 ] }; + key { [ Cyrillic_de, Cyrillic_DE, U2DE3 ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE, U2DE4 ] }; + key { [ U0463, U0462, U2DFA ] }; // Yat + + key { [ U0467, U0466, U2DFD ] }; // Small Yus + key { [ Cyrillic_che, Cyrillic_CHE, U2DF1 ] }; + key { [ Cyrillic_es, Cyrillic_ES, U2DED ] }; + key { [ Cyrillic_em, Cyrillic_EM, U2DE8 ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_te, Cyrillic_TE, U2DEE ] }; + key { [Cyrillic_softsign,Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_be, Cyrillic_BE, U2DE0 ] }; + key { [ Cyrillic_yu, Cyrillic_YU, U2DFB ] }; + key { [ period, comma, semicolon, exclam ] }; +}; + + +// RUU (Russian-Ukrainian United keyboard layout). +// This is a modified Russian standard keyboard, with the third level containing +// Ukrainian and Belorusian alphabetic letters and commonly used Unicode symbols. +// For a description see http://wiki.opennet.ru/RUU [in Russian]. +// Vasyĺ V. Vercynśkyj +// last changes 2011/05/11 +// +// ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓ +// │ ' ~ │ ! ≈ │ " ∞ │ № ₴ │ ; € │ % ‰ │ : ≤ │ ? ≥ │ * × │ ( { │ ) } │ _ – │ + ± ┃ ⌫ ┃ +// │ ’ ́ │ 1 ÷ │ 2 ¤ │ 3 § │ 4 $ │ 5 ° │ 6 < │ 7 > │ 8 • │ 9 [ │ 0 ] │ - — │ = ≠ ┃Backspace┃ +// ┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫ +// ┃ ┃ Й │ Ц │ У Ў │ К │ Е Ё │ Н │ Г Ґ │ Ш │ Щ │ З │ Х │ Ъ Ї ┃ Enter ┃ +// ┃ Tab ↹ ┃ й │ ц │ у ў │ к ® │ е ё │ н │ г ґ │ ш │ щ │ з │ х │ ъ ї ┃ ⏎ ┃ +// ┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓ ┃ +// ┃ Caps ┃ Ф │ Ы І │ В │ А │ П │ Р │ О │ Л │ Д │ Ж │ Э Є │ | ¦ ┃ ┃ +// ┃ Lock ⇬ ┃ ф │ ы і │ в │ а │ п │ р │ о │ л │ д │ ж │ э є │ / \ ┃ ┃ +// ┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫ +// ┃ ┃ Я │ Ч │ С │ М │ И │ Т │ Ь │ Б „ │ Ю “ │ , … ┃ ┃ +// ┃ Shift ⇧ ┃ я │ ч │ с © │ м │ и │ т ™ │ ь µ │ б « │ ю » │ . / ┃ Shift ⇧ ┃ +// ┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛ +// ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ +// ┃ Ctrl ┃ Meta ┃ Alt ┃ Space ┃AltGr ⇮┃ Menu ┃ Ctrl ┃ +// ┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛ +partial alphanumeric_keys +xkb_symbols "ruu" { + + include "ru(common)" + name[Group1]= "Russian (with Ukrainian-Belorussian layout)"; + + key { [ U2019, apostrophe, U0301, asciitilde ] }; // Apostrophe and Stress symbol + key { [ 1, exclam, U00F7, U2248 ] }; // Division Sign and Almost Equal To + key { [ 2, quotedbl, currency, infinity ] }; + key { [ 3, numerosign, U00A7, U20B4 ] }; // Paragraph and Hryvnia sign + key { [ 4, semicolon, dollar, EuroSign ] }; + key { [ 5, percent, degree, U2030 ] }; // Per Mille Sign + key { [ 6, colon, less, U2264 ] }; // Less-Than Or Equal To + key { [ 7, question, greater, U2265 ] }; // Greater-Than Or Equal To + key { [ 8, asterisk, enfilledcircbullet, U00D7 ] }; // Multiplication Sign + key { [ 9, parenleft, bracketleft, braceleft ] }; + key { [ 0, parenright, bracketright, braceright ] }; + key { [ minus, underscore, emdash, endash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ Cyrillic_u, Cyrillic_U, Byelorussian_shortu, Byelorussian_SHORTU ] }; + key { [ Cyrillic_ka, Cyrillic_KA, registered ] }; // Registered tm + key { [ Cyrillic_ie, Cyrillic_IE, Cyrillic_io, Cyrillic_IO ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE, Ukrainian_ghe_with_upturn, Ukrainian_GHE_WITH_UPTURN ] }; + key { [ Cyrillic_ze, Cyrillic_ZE, U00B6 ] }; // Pilcrow Sign + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, Ukrainian_yi, Ukrainian_YI ] }; + + key { [ Cyrillic_yeru, Cyrillic_YERU, Ukrainian_i, Ukrainian_I ] }; + key { [ Cyrillic_e, Cyrillic_E, Ukrainian_ie, Ukrainian_IE ] }; + key { [ slash, bar, backslash, U00A6 ] }; // Broken Bar + + key { [ Cyrillic_es, Cyrillic_ES, copyright ] }; + key { [ Cyrillic_te, Cyrillic_TE, trademark ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN, U00B5 ] }; // Micro Sign + key { [ Cyrillic_be, Cyrillic_BE, guillemotleft, doublelowquotemark ] }; + key { [ Cyrillic_yu, Cyrillic_YU, guillemotright, leftdoublequotemark ] }; + key { [ period, comma, slash, ellipsis ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/ru(sun_type6)" +}; + +// Apple layout +partial alphanumeric_keys +xkb_symbols "mac" { + + include "ru(common)" + name[Group1]= "Russian (Macintosh)"; + + key { [ less, greater ] }; + key { [ 2, quotedbl ] }; + key { [ 3, numerosign ] }; + key { [ 4, percent ] }; + key { [ 5, colon ] }; + key { [ 6, comma ] }; + key { [ 7, period ] }; + key { [ 8, semicolon ] }; + key { [ bracketright, bracketleft ] }; + key { [ Cyrillic_io, Cyrillic_IO ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/rupeesign b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/rupeesign new file mode 100644 index 0000000..efde69c --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/rupeesign @@ -0,0 +1,5 @@ +// keyboards having the RupeeSign on the 4 key +partial +xkb_symbols "4" { + key { [ NoSymbol, NoSymbol, U20B9 ] }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/shift b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/shift new file mode 100644 index 0000000..8f90223 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/shift @@ -0,0 +1,87 @@ +// Cancel CapsLock when a Shift key is pressed. +partial modifier_keys +xkb_symbols "breaks_caps" { + key { + type = "ALPHABETIC", + actions [Group1] = [ + SetMods(modifiers=Shift), + SetMods(modifiers=Shift+Lock,clearLocks) + ] + }; + key { + type = "ALPHABETIC", + actions [Group1] = [ + SetMods(modifiers=Shift), + SetMods(modifiers=Shift+Lock,clearLocks) + ] + }; +}; + + +// Toggle CapsLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "lshift_both_capslock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_L, Caps_Lock ] + }; +}; +// Toggle CapsLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "rshift_both_capslock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_R, Caps_Lock ] + }; +}; +partial modifier_keys +xkb_symbols "both_capslock" { + include "shift(lshift_both_capslock)" + include "shift(rshift_both_capslock)" +}; + + +// Set CapsLock when pressed with the other Shift key, release it when pressed alone. +partial modifier_keys +xkb_symbols "lshift_both_capslock_cancel" { + key { + type[Group1]="ALPHABETIC", + symbols[Group1] = [ Shift_L, Caps_Lock ] + }; +}; +// Set CapsLock when pressed with the other Shift key, release it when pressed alone. +partial modifier_keys +xkb_symbols "rshift_both_capslock_cancel" { + key { + type[Group1]="ALPHABETIC", + symbols[Group1] = [ Shift_R, Caps_Lock ] + }; +}; +partial modifier_keys +xkb_symbols "both_capslock_cancel" { + include "shift(lshift_both_capslock_cancel)" + include "shift(rshift_both_capslock_cancel)" +}; + + +// Toggle ShiftLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "lshift_both_shiftlock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_L, Shift_Lock ] + }; +}; +// Toggle ShiftLock when pressed together with the other Shift key. +partial modifier_keys +xkb_symbols "rshift_both_shiftlock" { + key { + type[Group1]="TWO_LEVEL", + symbols[Group1] = [ Shift_R, Shift_Lock ] + }; +}; +partial modifier_keys +xkb_symbols "both_shiftlock" { + include "shift(lshift_both_shiftlock)" + include "shift(rshift_both_shiftlock)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/srvr_ctrl b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/srvr_ctrl new file mode 100644 index 0000000..902c51c --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/srvr_ctrl @@ -0,0 +1,110 @@ +// Actions which control the server's behavior. + +partial keypad_keys function_keys +xkb_symbols "xfree86" { + include "keypad(operators)" + include "srvr_ctrl(fkey2vt)" +}; + +partial function_keys +xkb_symbols "fkey2vt" { + + key { + type="CTRL+ALT", + symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F2, F2, F2, F2, XF86_Switch_VT_2 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F3, F3, F3, F3, XF86_Switch_VT_3 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F4, F4, F4, F4, XF86_Switch_VT_4 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F5, F5, F5, F5, XF86_Switch_VT_5 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F6, F6, F6, F6, XF86_Switch_VT_6 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F7, F7, F7, F7, XF86_Switch_VT_7 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F8, F8, F8, F8, XF86_Switch_VT_8 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F9, F9, F9, F9, XF86_Switch_VT_9 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F10, F10, F10, F10, XF86_Switch_VT_10 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86_Switch_VT_11 ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86_Switch_VT_12 ] + }; +}; + +partial function_keys keypad_keys +xkb_symbols "no_srvr_keys" { + + key.type="TWO_LEVEL"; + + key { [ F1, F1 ] }; + key { [ F2, F2 ] }; + key { [ F3, F3 ] }; + key { [ F4, F4 ] }; + key { [ F5, F5 ] }; + key { [ F6, F6 ] }; + key { [ F7, F7 ] }; + key { [ F8, F8 ] }; + key { [ F9, F9 ] }; + key { [ F10, F10 ] }; + key { [ F11, F11 ] }; + key { [ F12, F12 ] }; + + key { [ KP_Divide, KP_Divide ] }; + key { [ KP_Multiply, KP_Multiply ] }; + key { [ KP_Subtract, KP_Subtract ] }; + key { [ KP_Add, KP_Add ] }; +}; + +partial function_keys +xkb_symbols "grab_debug" { + + key { + type="CTRL+ALT", + symbols[Group1]= [ F11, F11, F11, F11, XF86LogGrabInfo ] + }; + + key { + type="CTRL+ALT", + symbols[Group1]= [ F12, F12, F12, F12, XF86LogWindowTree ] + }; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/terminate b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/terminate new file mode 100644 index 0000000..a43f2b9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/terminate @@ -0,0 +1,7 @@ +default partial modifier_keys +xkb_symbols "ctrl_alt_bksp" { + key { + type="CTRL+ALT", + symbols[Group1] = [ NoSymbol, NoSymbol, NoSymbol, NoSymbol, Terminate_Server ] + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/us b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/us new file mode 100644 index 0000000..35eb166 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/symbols/us @@ -0,0 +1,1563 @@ +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + name[Group1]= "English (US)"; + + key { [ grave, asciitilde ] }; + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ { H, E, L, L, O }, asciicircum ] }; + key { [ { Y, E, S, space, T, H, I, S, space, I, S, space, D, O, G }, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ minus, underscore ] }; + key { [ equal, plus ] }; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ e, E ] }; + key { [ r, R ] }; + key { [ t, T ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ p, P ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ h, H ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ n, N ] }; + key { [ m, M ] }; + key { [ comma, less ] }; + key { [ period, greater ] }; + key { [ slash, question ] }; + + key { [ backslash, bar ] }; +}; + +partial alphanumeric_keys +xkb_symbols "euro" { + + include "us(basic)" + name[Group1]= "English (US, with euro on 5)"; + + include "eurosign(5)" + + include "level3(ralt_switch)" +}; + + +partial alphanumeric_keys +xkb_symbols "intl" { + + include "us(basic)" + name[Group1]= "English (US, international with dead keys)"; + + key { [dead_grave, dead_tilde, grave, asciitilde ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, twosuperior, dead_doubleacute ] }; + key { [ 3, numbersign, threesuperior, dead_macron ] }; + key { [ 4, dollar, currency, sterling ] }; + key { [ 5, percent, EuroSign, dead_cedilla ] }; + key { [ 6, dead_circumflex, onequarter, asciicircum ] }; + key { [ 7, ampersand, onehalf, dead_horn ] }; + key { [ 8, asterisk, threequarters, dead_ogonek ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ minus, underscore, yen, dead_belowdot ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ w, W, aring, Aring ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ r, R, registered, registered ] }; + key { [ t, T, thorn, THORN ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; + key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, ETH ] }; + key { [ f, F, f, F ] }; + key { [ g, G, g, G ] }; + key { [ h, H, h, H ] }; + key { [ j, J, j, J ] }; + key { [ k, K, oe, OE ] }; + + key { [ l, L, oslash, Ooblique ] }; + key { [ semicolon, colon, paragraph, degree ] }; + key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, x, X ] }; + key { [ c, C, copyright, cent ] }; + key { [ v, V, v, V ] }; + key { [ b, B, b, B ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, ccedilla, Ccedilla ] }; + key { [ period, greater, dead_abovedot, dead_caron ] }; + key { [ slash, question, questiondown, dead_hook ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + + key { [ backslash, bar, backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +// Based on symbols/us_intl keyboard map: +// Dead-keys definition for a very simple US/ASCII layout. +// by Conectiva (http://www.conectiva.com.br) +// modified by Ricardo Y. Igarashi (iga@that.com.br) + +// Added the following deadkeys, to make it truly international: +// +// dead_macron: on AltGr-minus +// dead_breve: on AltGr-parenleft +// dead_abovedot: on AltGr-period +// dead_abovering: on AltGr-0 +// dead_doubleacute: on AltGr-equal (as quotedbl is already used) +// dead_caron: on AltGr-less (AltGr-shift-comma) +// dead_cedilla: on AltGr-comma +// dead_ogonek: on AltGr-semicolon +// dead_belowdot: on AltGr-underscore (AltGr-shift-minus) +// dead_hook: on AltGr-question +// dead_horn: on AltGr-plus (AltGr-shift-equal) +// dead_diaeresis: on AltGr-colon (Alt-shift-semicolon) +// +// those were already there: +// dead_grave +// dead_acute +// dead_circumflex +// dead_tilde +// dead_diaeresis + +partial alphanumeric_keys +xkb_symbols "alt-intl" { + + include "us" + name[Group1]= "English (US, alternative international)"; + + key { [ dead_grave, dead_tilde, grave, asciitilde ] }; + key { [ 5, percent, EuroSign ] }; + key { [ 6, dead_circumflex, asciicircum, asciicircum ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ minus, underscore, dead_macron, dead_belowdot ] }; + key { [ equal, plus, dead_doubleacute, dead_horn ] }; + + key { [ e, E, EuroSign, cent ] }; + + key { [ semicolon, colon, dead_ogonek, dead_diaeresis ] }; + key { [ dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, dead_circumflex ] }; + key { [ slash, question, dead_hook, dead_hook ] }; + + key { [ backslash, bar, backslash, bar ] }; + + include "level3(ralt_switch)" +}; + +// based on a keyboard map from an 'xkb/symbols/dk' file + +partial alphanumeric_keys +xkb_symbols "dvorak" { + + name[Group1]= "English (Dvorak)"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ 5, percent ] }; + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ 9, parenleft, dead_grave] }; + key { [ 0, parenright ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright, dead_tilde] }; + + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, periodcentered ] }; + key { [ p, P ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ slash, question ] }; + key { [ equal, plus ] }; + + key { [ a, A ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, underscore ] }; + + key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; + + key { [ backslash, bar ] }; +}; + +// Dvorak international with dead keys +// Olivier Mehani (shtrom-xorg@ssji.net) +// Reproduce the per-key mapping of us(intl) for the dvorak layout +// aka "I just swapped my keys over" +partial alphanumeric_keys +xkb_symbols "dvorak-intl" { + + include "us(dvorak)" + name[Group1]= "English (Dvorak, international with dead keys)"; + + key { [dead_grave, dead_tilde, grave, asciitilde ] }; + + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, twosuperior, dead_doubleacute ] }; + key { [ 3, numbersign, threesuperior, dead_macron ] }; + key { [ 4, dollar, currency, sterling ] }; + key { [ 5, percent, EuroSign, dead_cedilla ] }; + key { [ 6, dead_circumflex, onequarter, asciicircum ] }; + key { [ 7, ampersand, onehalf, dead_horn ] }; + key { [ 8, asterisk, threequarters, dead_ogonek ] }; + key { [ 9, parenleft, leftsinglequotemark, dead_breve ] }; + key { [ 0, parenright, rightsinglequotemark, dead_abovering ] }; + key { [ bracketleft, braceleft, guillemotleft, leftdoublequotemark ] }; + key { [bracketright, braceright, guillemotright, rightdoublequotemark ] }; + + key { [dead_acute, dead_diaeresis, apostrophe, quotedbl ] }; + key { [ comma, less, ccedilla, Ccedilla ] }; + key { [ period, greater, dead_abovedot, dead_caron ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + // key { [ f, F ] }; + // key { [ g, G ] }; + key { [ c, C, copyright, cent ] }; + key { [ r, R, registered, registered ] }; + key { [ l, L, oslash, Ooblique ] }; + key { [ slash, question, questiondown, dead_hook ] }; + // key { [ equal, plus, multiply, division ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ d, D, eth, ETH ] }; + // key { [ h, H ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ s, S, ssharp, section ] }; + // key { [ minus, underscore, yen, dead_belowdot ] }; + + key { [ semicolon, colon, paragraph, degree ] }; + key { [ q, Q, adiaeresis, Adiaeresis ] }; + // key { [ j, J ] }; + key { [ k, K, oe, OE ] }; + // key { [ x, X ] }; + // key { [ b, B ] }; + key { [ m, M, mu, mu ] }; + key { [ w, W, aring, Aring ] }; + // key { [ v, V ] }; + key { [ z, Z, ae, AE ] }; + + key { [ backslash, bar, notsign, brokenbar ] }; + + include "level3(ralt_switch)" +}; + +// Dvorak international without dead keys +// Stephane Magnenat (stephane at magnenat dot net, http://stephane.magnenat.net) +// Based on information from http://www.poupinou.org/dvorak/index.html +// +// ` 1 2 3 4 5 6 7 8 9 0 [ ] \ +// € +// +// ' , . p y f g c r l / = +// ä ê ë ü ç +// +// a o e u i d h t n s - +// à ô é û î ß +// +// ; q j k x b m w v z +// â ö è ù ï + +partial alphanumeric_keys +xkb_symbols "dvorak-alt-intl" { + + include "us(dvorak)" + name[Group1]= "English (Dvorak alternative international no dead keys)"; + + key { [ 4, dollar, EuroSign ] }; + + key { [ comma, less, adiaeresis, dead_caron ] }; + key { [ period, greater, ecircumflex, periodcentered ] }; + key { [ p, P, ediaeresis, dead_cedilla ] }; + key { [ y, Y, udiaeresis ] }; + key { [ c, C, ccedilla, dead_abovedot ] }; + + key { [ a, A, agrave ] }; + key { [ o, O, ocircumflex ] }; + key { [ e, E, eacute ] }; + key { [ u, U, ucircumflex ] }; + key { [ i, I, icircumflex ] }; + key { [ s, S, ssharp ] }; + + key { [ semicolon, colon, acircumflex ] }; + key { [ q, Q, odiaeresis, dead_ogonek ] }; + key { [ j, J, egrave, dead_doubleacute ] }; + key { [ k, K, ugrave ] }; + key { [ x, X, idiaeresis ] }; + + include "level3(ralt_switch)" +}; + +// Left and right handed dvorak layouts +// by sqweek 2006-01-30 +// Based on the corresponding layouts in the console-tools package. +partial alphanumeric_keys +xkb_symbols "dvorak-l" { + + include "us(dvorak)" + name[Group1]= "English (left handed Dvorak)"; + + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + key { [ slash, question ] }; + key { [ p, P ] }; + key { [ f, F ] }; + key { [ m, M ] }; + key { [ l, L ] }; + key { [ j, J ] }; + key { [ 4, dollar ] }; + key { [ 3, numbersign ] }; + key { [ 2, at ] }; + key { [ 1, exclam ] }; + + key { [ semicolon, colon ] }; + key { [ q, Q ] }; + key { [ b, B ] }; + key { [ y, Y ] }; + key { [ u, U ] }; + key { [ r, R ] }; + key { [ s, S ] }; + key { [ o, O ] }; + key { [ period, greater ] }; + key { [ 6, asciicircum ] }; + key { [ 5, percent ] }; + key { [ equal, plus ] }; + + key { [ minus, underscore ] }; + key { [ k, K ] }; + key { [ c, C ] }; + key { [ d, D ] }; + key { [ t, T ] }; + key { [ h, H ] }; + key { [ e, E ] }; + key { [ a, A ] }; + key { [ z, Z ] }; + key { [ 8, asterisk ] }; + key { [ 7, ampersand ] }; + + key { [ apostrophe, quotedbl ] }; + key { [ x, X ] }; + key { [ g, G ] }; + key { [ v, V ] }; + key { [ w, W ] }; + key { [ n, N ] }; + key { [ i, I ] }; + key { [ comma, less ] }; + key { [ 0, parenright ] }; + key { [ 9, parenleft ] }; +}; + +partial alphanumeric_keys +xkb_symbols "dvorak-r" { + + include "us(dvorak)" + name[Group1]= "English (right handed Dvorak)"; + + key { [ 1, exclam ] }; + key { [ 2, at ] }; + key { [ 3, numbersign ] }; + key { [ 4, dollar ] }; + key { [ j, J ] }; + key { [ l, L ] }; + key { [ m, M ] }; + key { [ f, F ] }; + key { [ p, P ] }; + key { [ slash, question ] }; + key { [ bracketleft, braceleft ] }; + key { [ bracketright, braceright ] }; + + key { [ 5, percent ] }; + key { [ 6, asciicircum ] }; + key { [ q, Q ] }; + key { [ period, greater ] }; + key { [ o, O ] }; + key { [ r, R ] }; + key { [ s, S ] }; + key { [ u, U ] }; + key { [ y, Y ] }; + key { [ b, B ] }; + key { [ semicolon, colon ] }; + key { [ equal, plus ] }; + + key { [ 7, ampersand ] }; + key { [ 8, asterisk ] }; + key { [ z, Z ] }; + key { [ a, A ] }; + key { [ e, E ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ d, D ] }; + key { [ c, C ] }; + key { [ k, K ] }; + key { [ minus, underscore ] }; + + key { [ 9, parenleft ] }; + key { [ 0, parenright ] }; + key { [ x, X ] }; + key { [ comma, less ] }; + key { [ i, I ] }; + key { [ n, N ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ g, G ] }; + key { [ apostrophe, quotedbl ] }; +}; + +// Classic dvorak layout +// by Piter Punk - 2006-07-06 +// Based on dvorak layout and e-mail from Russel L. Harris rlharris@oplink.net +// on xorg list. +partial alphanumeric_keys +xkb_symbols "dvorak-classic" { + + name[Group1]= "English (classic Dvorak)"; + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + + key { [ bracketleft, braceleft ] }; + key { [ 7, ampersand ] }; + key { [ 5, percent ] }; + key { [ 3, numbersign ] }; + key { [ 1, exclam ] }; + key { [ 9, parenleft, dead_grave] }; + key { [ 0, parenright ] }; + key { [ 2, at ] }; + key { [ 4, dollar ] }; + key { [ 6, asciicircum, dead_circumflex, dead_circumflex ] }; + key { [ 8, asterisk ] }; + key { [ bracketright, braceright, dead_tilde] }; + + key { [ slash, question ] }; + key { [ comma, less, dead_cedilla, dead_caron ] }; + key { [ period, greater, dead_abovedot, periodcentered ] }; + key { [ p, P ] }; + key { [ y, Y ] }; + key { [ f, F ] }; + key { [ g, G ] }; + key { [ c, C ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis ] }; + key { [ equal, plus ] }; + + key { [ a, A ] }; + key { [ o, O ] }; + key { [ e, E ] }; + key { [ u, U ] }; + key { [ i, I ] }; + key { [ d, D ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ n, N ] }; + key { [ s, S ] }; + key { [ minus, underscore ] }; + + key { [ semicolon, colon, dead_ogonek, dead_doubleacute ] }; + key { [ q, Q ] }; + key { [ j, J ] }; + key { [ k, K ] }; + key { [ x, X ] }; + key { [ b, B ] }; + key { [ m, M ] }; + key { [ w, W ] }; + key { [ v, V ] }; + key { [ z, Z ] }; + key { [ backslash, bar ] }; +}; + +// Programmer Dvorak, by Roland Kaufmann +// License: BSD, available at +// Main features: Numbers are in shift position (like French), symbols have been +// placed in locations that give good hand-alternation and finger rolling with +// symbols that usually follows, accented characters are possible for I18N. +partial alphanumeric_keys +xkb_symbols "dvp" { + + include "us(dvorak)" + name[Group1] = "English (programmer Dvorak)"; + + // Unmodified Shift AltGr Shift+AltGr + // symbols row, left side + key { [ dollar, asciitilde, dead_tilde ] }; + key { [ ampersand, percent ] }; + key { [ bracketleft, 7, currency ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceleft, 5, cent ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ braceright, 3, yen ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenleft, 1, EuroSign ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ equal, 9, sterling ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + // symbols row, right side + key { [ asterisk, 0 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ parenright, 2, onehalf ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ plus, 4 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ bracketright, 6 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ exclam, 8, exclamdown, U2E18 ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; // reversed interrobang + key { [ numbersign, grave, dead_grave ] }; + key { [ BackSpace, BackSpace ] }; + + // upper row, left side + key { [ semicolon, colon, dead_diaeresis ] }; + key { [ comma, less, guillemotleft, ellipsis ] }; + key { [ period, greater, guillemotright ] }; + key { [ p, P, paragraph, section ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + + // upper row, right side + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ r, R, registered, trademark ] }; + key { [ slash, question, questiondown, U203D ] }; // interrobang + key { [ at, asciicircum, dead_circumflex, dead_caron ] }; + + // home row, left side + key { [ a, A, aring, Aring ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ e, E, ae, AE ] }; + key { [ u, U, eacute, Eacute ] }; + + // home row, right side + key { [ d, D, eth, ETH ] }; + key { [ h, H, dead_acute ] }; + key { [ t, T, thorn, THORN ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ s, S, ssharp ] }; + key { [ minus, underscore, hyphen, endash ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + key { [ backslash, bar ] }; + + // lower row, left side + key { [ apostrophe, quotedbl, dead_acute ] }; + key { [ m, M, mu ], type[Group1] = "FOUR_LEVEL_ALPHABETIC" }; + + include "level3(ralt_switch)" +}; + +// phonetic layout for Russian letters on an US keyboard +// by Ivan Popov 2005-07-17 + +// level3 modifier is a shortcut to the "us" meaning of the keys where +// we place cyrillic letters, handy for accessing the corresponding +// punctuation marks. +// It is important to have access to punctuation marks, and the rest of +// alphabetical keys are added for being consequent so that the users +// can expect the level3 modifier to give what the key label shows. + +partial alphanumeric_keys +xkb_symbols "rus" { + + include "us(basic)" + name[Group1]= "Russian (US, phonetic)"; + +key.type[group1]="FOUR_LEVEL_ALPHABETIC"; + + key { [ Cyrillic_a, Cyrillic_A ] }; + key { [ Cyrillic_be, Cyrillic_BE ] }; + key { [ Cyrillic_ve, Cyrillic_VE ] }; + key { [ Cyrillic_ghe, Cyrillic_GHE ] }; + key { [ Cyrillic_de, Cyrillic_DE ] }; + key { [ Cyrillic_ie, Cyrillic_IE ] }; + key { [ Cyrillic_io, Cyrillic_IO, grave, asciitilde ] }; + key { [ Cyrillic_zhe, Cyrillic_ZHE ] }; + key { [ Cyrillic_ze, Cyrillic_ZE ] }; + key { [ Cyrillic_i, Cyrillic_I ] }; + key { [ Cyrillic_shorti, Cyrillic_SHORTI ] }; + key { [ Cyrillic_ka, Cyrillic_KA ] }; + key { [ Cyrillic_el, Cyrillic_EL ] }; + key { [ Cyrillic_em, Cyrillic_EM ] }; + key { [ Cyrillic_en, Cyrillic_EN ] }; + key { [ Cyrillic_o, Cyrillic_O ] }; + key { [ Cyrillic_pe, Cyrillic_PE ] }; + key { [ Cyrillic_er, Cyrillic_ER ] }; + key { [ Cyrillic_es, Cyrillic_ES ] }; + key { [ Cyrillic_te, Cyrillic_TE ] }; + key { [ Cyrillic_u, Cyrillic_U ] }; + key { [ Cyrillic_ef, Cyrillic_EF ] }; + key { [ Cyrillic_ha, Cyrillic_HA ] }; + key { [ Cyrillic_tse, Cyrillic_TSE ] }; + key { [ Cyrillic_che, Cyrillic_CHE, semicolon, colon ] }; + key { [ Cyrillic_sha, Cyrillic_SHA, bracketleft, braceleft] }; + key { [ Cyrillic_shcha, Cyrillic_SHCHA, bracketright, braceright ] }; + key { [ Cyrillic_hardsign, Cyrillic_HARDSIGN, equal, plus ] }; + key { [ Cyrillic_yeru, Cyrillic_YERU ] }; + key { [ Cyrillic_softsign, Cyrillic_SOFTSIGN ] }; + key { [ Cyrillic_e, Cyrillic_E, backslash, bar ] }; + key { [ Cyrillic_yu, Cyrillic_YU, apostrophe, quotedbl ] }; + key { [ Cyrillic_ya, Cyrillic_YA ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "mac" { + + include "us(basic)" + name[Group1]= "English (Macintosh)"; + key.type[group1]="FOUR_LEVEL"; + + // Slightly improvised from http://homepage.mac.com/thgewecke/kblayout.jpg + key { [ section, plusminus, section, plusminus ] }; + key { [ grave, asciitilde, dead_grave, dead_horn ] }; + key { [ 1, exclam, exclamdown, U2044 ] }; + key { [ 2, at, trademark, EuroSign ] }; + key { [ 3, numbersign, sterling, U2039 ] }; + key { [ 4, dollar, cent, U203A ] }; + key { [ 5, percent, infinity, UFB01 ] }; + key { [ 6,asciicircum, section, UFB02 ] }; + key { [ 7, ampersand, paragraph, doubledagger ] }; + key { [ 8, asterisk, enfilledcircbullet, degree ] }; + key { [ 9, parenleft, ordfeminine, periodcentered ] }; + key { [ 0, parenright, masculine,singlelowquotemark] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ equal, plus, notequal, plusminus ] }; + + key { [ q, Q, oe, OE ] }; + key { [ w, W, U2211,doublelowquotemark] }; + key { [ e, E, dead_acute, acute ] }; + key { [ r, R, registered, U2030 ] }; + key { [ t, T, dagger, dead_caron ] }; + key { [ y, Y, yen, onequarter ] }; + key { [ u, U, dead_diaeresis, diaeresis ] }; + key { [ i, I, dead_circumflex, U02C6 ] }; + key { [ o, O, oslash, Ooblique ] }; + key { [ p, P, Greek_pi, U220F ] }; + key { [ bracketleft, braceleft, leftdoublequotemark, rightdoublequotemark ] }; + key { [bracketright, braceright, leftsinglequotemark, rightsinglequotemark ] }; + key { [ backslash, bar, guillemotleft, guillemotright ] }; + + key { [ a, A, aring, Aring ] }; + key { [ s, S, ssharp, dead_stroke ] }; + key { [ d, D, partialderivative, eth ] }; + key { [ f, F, function, dead_hook ] }; + key { [ g, G, copyright, dead_doubleacute ] }; + key { [ h, H, dead_abovedot, dead_belowdot ] }; + key { [ j, J, U2206, onehalf ] }; + key { [ k, K,dead_abovering, UF8FF ] }; + + key { [ l, L, notsign, THORN ] }; + key { [ semicolon, colon, U2026, thorn ] }; + key { [apostrophe, quotedbl, ae, AE ] }; + + key { [ z, Z, Greek_OMEGA, dead_cedilla ] }; + key { [ x, X, U2248, dead_ogonek ] }; + // unclear whether "approxeq" is 2248 or 2245 + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, squareroot, U25CA ] }; + key { [ b, B, integral, idotless ] }; + key { [ n, N, dead_tilde, U02DC ] }; + key { [ m, M, mu, threequarters ] }; + key { [ comma, less, lessthanequal, dead_macron ] }; + key { [ period, greater, greaterthanequal, dead_breve ] }; + key { [ slash, question, division, questiondown ] }; + + include "level3(ralt_switch)" +}; + +// Colemak symbols for xkb on X.Org Server 7.x +// 2006-01-01 Shai Coleman, http://colemak.com/ + +partial alphanumeric_keys +xkb_symbols "colemak" { + + include "us" + name[Group1]= "English (Colemak)"; + + key { [ grave, asciitilde, dead_tilde, asciitilde ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, masculine, twosuperior ] }; + key { [ 3, numbersign, ordfeminine, threesuperior ] }; + key { [ 4, dollar, cent, sterling ] }; + key { [ 5, percent, EuroSign, yen ] }; + key { [ 6, asciicircum, hstroke, Hstroke ] }; + key { [ 7, ampersand, eth, ETH ] }; + key { [ 8, asterisk, thorn, THORN ] }; + key { [ 9, parenleft, leftsinglequotemark, leftdoublequotemark ] }; + key { [ 0, parenright, rightsinglequotemark, rightdoublequotemark ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ equal, plus, multiply, division ] }; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ w, W, aring, Aring ] }; + key { [ f, F, atilde, Atilde ] }; + key { [ p, P, oslash, Ooblique ] }; + key { [ g, G, dead_ogonek, asciitilde ] }; + key { [ j, J, dstroke, Dstroke ] }; + key { [ l, L, lstroke, Lstroke ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [ bracketleft, braceleft, guillemotleft, 0x1002039 ] }; + key { [ bracketright, braceright, guillemotright, 0x100203a ] }; + key { [ backslash, bar, asciitilde, asciitilde ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ r, R, dead_grave, asciitilde ] }; + key { [ s, S, ssharp, asciitilde ] }; + key { [ t, T, dead_acute, dead_doubleacute ] }; + key { [ d, D, dead_diaeresis, asciitilde ] }; + key { [ h, H, dead_caron, asciitilde ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ apostrophe, quotedbl, otilde, Otilde ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, dead_circumflex, asciitilde ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, oe, OE ] }; + key { [ b, B, dead_breve, asciitilde ] }; + key { [ k, K, dead_abovering, asciitilde ] }; + key { [ m, M, dead_macron, asciitilde ] }; + key { [ comma, less, dead_cedilla, asciitilde ] }; + key { [ period, greater, dead_abovedot, asciitilde ] }; + key { [ slash, question, questiondown, asciitilde ] }; + + key { [ BackSpace, BackSpace, BackSpace, BackSpace ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ space, space, space, nobreakspace ] }; + + include "level3(ralt_switch)" +}; + +// I do NOT like dead-keys - the International keyboard as defined by Microsoft +// doesn't fit my needs. Why use two keystrokes for all simple characters (eg ' +// and generates a single ') just to have an é (eacute) in two strokes +// as well? I type ' more often than é (eacute). +// +// This file works just like a regular keyboard, BUT has all dead-keys +// accessible at level3 (through AltGr). An ë (ediaeresis) is now: AltGr+" +// followed by an e. In other words, this keyboard is not international as long +// as you leave the right Alt key alone. +// +// The original MS International keyboard was intended for Latin1 (iso8859-1). +// With the introduction of iso8859-15, the (important) ligature oe (and OE) +// became available. I added them next to ae. Because I write ediaeresis more +// often than registered, I moved registered to be next to copyright and added +// ediaeresis and idiaeresis. - Adriaan + +partial alphanumeric_keys +xkb_symbols "altgr-intl" { + + include "us(intl)" + name[Group1]= "English (international AltGr dead keys)"; + +// five dead keys moved into level3: + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [apostrophe,quotedbl, dead_acute, dead_diaeresis ] }; + +// diversions from the MS Intl keyboard: + + key { [ 1, exclam, onesuperior, exclamdown ] }; + key { [ r, R, ediaeresis, Ediaeresis ] }; + key { [ j, J, idiaeresis, Idiaeresis ] }; + key { [ x, X, oe, OE ] }; + key { [ v, V, registered, registered ] }; + +// onequarter etc (not in iso8859-15) moved to get three unshifted deadkeys: + + key { [ 6, asciicircum, dead_circumflex, onequarter ] }; + key { [ 7, ampersand, dead_horn, onehalf ] }; + key { [ 8, asterisk, dead_ogonek, threequarters ] }; + + include "level3(ralt_switch)" +}; + +// Intel ClassmatePC Keyboard Layout +// by Piter PUNK +// +// The keyboard layouts below maps the us(basic), us(intl) and us(alt-intl) +// to ClassmatePC keyboard. All layouts uses RCTL as level3(switch) since +// the keyboard doesn't have AltGr key. The EuroSign is engraved at 5 key. + +// classmate - us(basic) +partial alphanumeric_keys +xkb_symbols "classmate" { + include "us(basic)" + name[Group1]= "English (US)"; + + key { [ backslash, bar, backslash, bar ] }; + + include "eurosign(5)" + include "level3(switch)" +}; + +// classmate-intl - us(intl) +// RCTL is generated by Fn+Alt, because that, when trying to access +// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got +// the keypad keycodes. The keypad is changed to make Fn+Alt+ +// generate the same symbol as the original key. +partial alphanumeric_keys +xkb_symbols "classmate-intl" { + include "us(intl)" + name[Group1]= "USA - ClassmatePC (International)"; + key.type[Group1]="FOUR_LEVEL"; + + key { [ backslash, bar, backslash, bar ] }; + + key { [ KP_Home, KP_7, + onehalf, dead_horn ] }; + key { [ KP_Up, KP_8, + threequarters, dead_ogonek ] }; + key { [ KP_Prior, KP_9, + leftsinglequotemark, dead_breve ] }; + key { [ KP_Multiply, KP_Multiply, + rightsinglequotemark, dead_abovering ] }; + + key { [ KP_Left, KP_4, + uacute, Uacute ] }; + key { [ KP_Begin, KP_5, + iacute, Iacute ] }; + key { [ KP_Right, KP_6, + oacute, Oacute ] }; + key { [ KP_Subtract, KP_Subtract, + odiaeresis, Odiaeresis ] }; + + key { [ KP_Down, KP_2, + oe, OE ] }; + key { [ KP_Next, KP_3, + oslash, Ooblique ] }; + key { [ KP_Add, KP_Add, + paragraph, degree ] }; + + key { [ KP_Insert, KP_0, + mu, mu ] }; + key { [ KP_Delete, KP_Decimal, + dead_abovedot, dead_caron ] }; + key { [ KP_Divide, KP_Divide, + questiondown, dead_hook ] }; + + include "level3(switch)" +}; + +// classmate-alt-intl - us(alt-intl) +// RCTL is generated by Fn+Alt, because that, when trying to access +// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got +// the keypad keycodes. The keypad is changed to make Fn+Alt+ +// generate the same symbol as the original key. +partial alphanumeric_keys +xkb_symbols "classmate-alt-intl" { + include "us(alt-intl)" + name[Group1]= "USA - ClassmatePC (Alternative international)"; + key.type[Group1]="FOUR_LEVEL"; + + key { [ backslash, bar, backslash, bar ] }; + + key { [ KP_Subtract, KP_Subtract ] }; + + key { [ KP_Prior, KP_9, + leftsinglequotemark, dead_breve ] }; + key { [ KP_Multiply, KP_Multiply, + rightsinglequotemark, dead_abovering ] }; + + key { [ KP_Add, KP_Add, + dead_ogonek, dead_diaeresis ] }; + + key { [ KP_Delete, KP_Decimal, + dead_abovedot, dead_circumflex ] }; + key { [ KP_Divide, KP_Divide, + dead_hook, dead_hook ] }; + + include "level3(switch)" +}; + +// classmate-altgr-intl - us(altgr-intl) +// RCTL is generated by Fn+Alt, because that, when trying to access +// the level3 symbols at 7,8,9,0,u,i,o,p,j,k,l,;,m,. and / we got +// the keypad keycodes. The keypad is changed to make Fn+Alt+ +// generate the same symbol as the original key. +partial alphanumeric_keys +xkb_symbols "classmate-altgr-intl" { + include "us(altgr-intl)" + name[Group1]= "USA - ClassmatePC (International Fn+Alt dead-keys)"; + key.type[Group1]="FOUR_LEVEL"; + + key { [ backslash, bar, backslash, bar ] }; + + key { [ KP_Home, KP_7, + dead_horn, dead_horn ] }; + key { [ KP_Up, KP_8, + dead_ogonek, dead_ogonek ] }; + key { [ KP_Prior, KP_9, + leftsinglequotemark, dead_breve ] }; + key { [ KP_Multiply, KP_Multiply, + rightsinglequotemark, dead_abovering ] }; + + key { [ KP_Left, KP_4, + uacute, Uacute ] }; + key { [ KP_Begin, KP_5, + iacute, Iacute ] }; + key { [ KP_Right, KP_6, + oacute, Oacute ] }; + key { [ KP_Subtract, KP_Subtract, + odiaeresis, Odiaeresis ] }; + + key { [ KP_End, KP_1, + idiaeresis, Idiaeresis ] }; + key { [ KP_Down, KP_2, + oe, OE ] }; + key { [ KP_Next, KP_3, + oslash, Ooblique ] }; + key { [ KP_Add, KP_Add, + paragraph, degree ] }; + + key { [ KP_Insert, KP_0, + mu, mu ] }; + key { [ KP_Delete, KP_Decimal, + dead_abovedot, dead_caron ] }; + key { [ KP_Divide, KP_Divide, + questiondown, dead_hook ] }; + + include "level3(switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc" { + + include "us(basic)" + name[Group1]= "English (US)"; + + // OLPC international US English keyboard layout. + // It's a little different from the usual international layout. + // See: http://wiki.laptop.org/go/Image:Keyboard_english.png + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, exclamdown, exclamdown ] }; + key { [ 2, at, notsign, notsign ] }; + key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave + key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute + key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above + key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above + key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above + key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above + key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above + key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above + key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above + key { [ equal, plus, 0x1000303, 0x1000303 ] }; // combining tilde above + + key { [ q, Q, Greek_omega, Greek_OMEGA ] }; + key { [ w, W, oslash, Oslash ] }; + key { [ e, E, oe, OE ] }; + key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla + key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below + key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below + key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below + key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below + key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below + key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below + key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below + key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp + key { [ d, D, eth, ETH ] }; + key { [ f, F, thorn, THORN ] }; + key { [ h, H, sterling, sterling ] }; + key { [ j, J, EuroSign, EuroSign ] }; + key { [ semicolon, colon, masculine, ordfeminine ] }; + key { [ apostrophe, quotedbl, currency, currency ] }; + key { [ backslash, bar, section, section ] }; + + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, guillemotleft, guillemotleft ] }; + key { [ period, greater, guillemotright, guillemotright ] }; + key { [ slash, question, questiondown, questiondown ] }; + + key { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "olpc2" { + include "us(olpc)" + name[Group1]= "English (the divide/multiply keys toggle the layout)"; + include "group(olpc)" +}; + +xkb_symbols "olpcm" { + + include "us(basic)" + name[Group1]= "English (US)"; + + // Mechanical (non-membrane) OLPC int'l US English keyboard layout. + // See: http://wiki.laptop.org/go/OLPC_English_Non-membrane_Keyboard + + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ 1, exclam, exclamdown, exclamdown ] }; + key { [ 2, at, notsign, notsign ] }; + key { [ 3, numbersign, 0x1000300, 0x1000300 ] }; // combining grave + key { [ 4, dollar, 0x1000301, 0x1000301 ] }; // combining acute + key { [ 5, percent, 0x1000306, 0x1000306 ] }; // combining breve above + key { [ 6,asciicircum, 0x100030A, 0x100030A ] }; // combining ring above + key { [ 7, ampersand, 0x1000302, 0x1000302 ] }; // combining circumflex above + key { [ 8, asterisk, 0x100030C, 0x100030C ] }; // combining caron above + key { [ 9, parenleft, 0x1000307, 0x1000307 ] }; // combining dot above + key { [ 0, parenright, 0x1000308, 0x1000308 ] }; // combining diaeresis above + key { [ minus, underscore, 0x1000304, 0x1000304 ] }; // combining macron above + + key { [ q, Q, Greek_omega, Greek_OMEGA ] }; + key { [ w, W, oslash, Oslash ] }; + key { [ e, E, oe, OE ] }; + key { [ r, R, 0x1000327, 0x1000327 ] }; // combining cedilla + key { [ t, T, 0x100032E, 0x100032E ] }; // combining breve below + key { [ y, Y, 0x1000325, 0x1000325 ] }; // combining ring below + key { [ u, U, 0x100032D, 0x100032D ] }; // combining circumflex below + key { [ i, I, 0x100032C, 0x100032C ] }; // combining caron below + key { [ o, O, 0x1000323, 0x1000323 ] }; // combining dot below + key { [ p, P, 0x1000324, 0x1000324 ] }; // combining diaeresis below + key { [ bracketleft, braceleft, 0x1000331, 0x1000331 ] }; // combining macron below + key { [bracketright, braceright, 0x1000330, 0x1000330 ] }; // combining tilde below + + key { [ a, A, ae, AE ] }; + key { [ s, S, ssharp, 0x1001E9C ] }; // uppercase S sharp + key { [ d, D, eth, ETH ] }; + key { [ f, F, thorn, THORN ] }; + key { [ h, H, sterling, sterling ] }; + key { [ j, J, EuroSign, EuroSign ] }; + key { [ semicolon, colon, masculine, ordfeminine ] }; + // no AC11 or AC12 on olpcm + + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, mu, mu ] }; + key { [ comma, less, guillemotleft, guillemotleft ] }; + key { [ period, greater, guillemotright, guillemotright ] }; + key { [ slash, question, questiondown, questiondown ] }; + + key { [ backslash, bar, section, section ] }; + key { [ equal, plus, 0x1000303, 0x1000303 ] }; + key { [ apostrophe, quotedbl, currency, currency ] }; + + include "level3(ralt_switch)" +}; + +// Based on Cherokee Nation Official Layout +// http://www.cherokee.org/extras/downloads/font/Keyboard.htm + +partial alphanumeric_keys modifier_keys +xkb_symbols "chr" { + + name[Group1]= "Cherokee"; + key.type[group1]="ALPHABETIC"; + + key { [ grave, U13CA ] }; + key { [ 1, U13B1 ] }; + key { [ 2, U13C7 ] }; + key { [ 3, U13E7 ] }; + key { [ U13D9, U13B0 ] }; + key { [ U13E6, U13B9 ] }; + key { [ U13DC, U13DD ] }; + key { [ U13CB, U13E1 ] }; + key { [ U13D6, U13BA ] }; + key { [ U13D2, parenleft ] }; + key { [ U13C4, parenright ] }; + key { [ U13BF, U13BC ] }; + key { [ U13F3, U13BD ] }; + + key { [ U13AA, U13C6 ] }; + key { [ U13B3, U13EB ] }; + key { [ U13A1, U13E3 ] }; + key { [ U13DB, U13CF ] }; + key { [ U13D4, U13D8 ] }; + key { [ U13EF, U13F2 ] }; + key { [ U13A4, U13AD ] }; + key { [ U13A2, U13F1 ] }; + key { [ U13A3, U13EC ] }; + key { [ U13C1, U13EA ] }; + key { [ U13D5, U13D1 ] }; + key { [ U13B6, U13E4 ] }; + key { [ U13E9, U13EE ] }; + + key { [ U13A0, U13CC ] }; + key { [ U13CD, U13CE ] }; + key { [ U13D7, U13D0 ] }; + key { [ U13A9, U13C8 ] }; + key { [ U13A6, U13E5 ] }; + key { [ U13AF, U13B2 ] }; + key { [ U13DA, U13AB ] }; + key { [ U13B8, U13A7 ] }; + key { [ U13B5, U13AE ] }; + key { [ U13E8, U13E0 ] }; + key { [ apostrophe, quotedbl ] }; + + key { [ U13AC, U13C3 ] }; + key { [ U13F4, U13ED ] }; + key { [ U13D3, U13DF ] }; + key { [ U13A5, U13DE ] }; + key { [ U13A8, U13F0 ] }; + key { [ U13BE, U13BB ] }; + key { [ U13C5, U13B7 ] }; + key { [ comma, U13E2 ] }; + key { [ period, U13B4 ] }; + key { [ U13C2, U13C9 ] }; +}; + +// Serbian charecters added as third level symbols to US keyboard layout. + +partial alphanumeric_keys +xkb_symbols "hbs" { + + include "us" + name[Group1]= "Serbo-Croatian (US)"; + + key { [ grave, asciitilde ] }; + key { [ 6, dead_caron, asciicircum, asciicircum ] }; + key { [ 8, asterisk, multiply, division ] }; + key { [ minus, underscore, endash, emdash ] }; + key { [ l, L, U1C9, U1C8 ] }; + key { [ n, N, U1CC, U1CB ] }; + key { [ z, Z, U1C6, U1C5 ] }; + key { [ e, E, EuroSign, cent ] }; + key { [ d, D, dstroke, Dstroke ] }; + key { [ dead_acute, quotedbl, apostrophe, apostrophe ] }; + key { [ space, space, nobreakspace, nobreakspace ] }; + key { [ comma, less, U3003, guillemotright ] }; + key { [ period, greater, ellipsis, guillemotleft ] }; + + include "level3(ralt_switch)" +}; + +//based on http://upload.wikimedia.org/wikipedia/commons/1/18/T-Mobile_G1_launch_event_2.jpg +partial alphanumeric_keys +xkb_symbols "htcdream" { + include "inet(htcdream)" + name[Group1]= "English (US)"; + + //second row + key { [ q, Q, Tab, Tab ] }; + key { [ w, W, grave, grave ] }; + key { [ e, E, underscore, underscore ] }; + key { [ r, R, sterling, sterling ] }; + key { [ t, T, EuroSign, EuroSign ] }; + key { [ y, Y, division, division ] }; + key { [ u, U, multiply, multiply ] }; + key { [ i, I, minus, minus ] }; + key { [ o, O, plus, plus ] }; + key { [ p, P, equal, equal ] }; + + //third row + key { [ a, A, NoSymbol, NoSymbol ] }; + key { [ s, S, bar, bar ] }; + key { [ d ,D, backslash, backslash ] }; + key { [ f, F, braceleft, braceleft ] }; + key { [ g, G, braceright, braceright ] }; + key { [ h, H, colon, colon ] }; + key { [ j, J, semicolon, semicolon ] }; + key { [ k, K, quotedbl, quotedbl ] }; + key { [ l, L, apostrophe, apostrophe ] }; + + //forth row + key { [ z, Z, NoSymbol, NoSymbol ] }; + key { [ x, X, NoSymbol, NoSymbol ] }; + key { [ c, C, NoSymbol, NoSymbol ] }; + key { [ v, V, bracketleft, bracketleft ] }; + key { [ b, B, bracketright, bracketright ] }; + key { [ n, N, less, less ] }; + key { [ m, M, greater, greater ] }; + key { [ comma, comma, question, question ] }; + + //fifth row + key { [ at, at, asciitilde, asciitilde ] }; + + include "level3(alt_switch)" +}; + +// Workman Keyboard Layout symbols for xkb on X.Org Server 7.x +// 09-06-2010 OJ Bucao. http://www.workmanlayout.com + +partial alphanumeric_keys +xkb_symbols "workman" { + + include "us(basic)" + name[Group1]= "English (Workman)"; + + key { [ q, Q ] }; + key { [ d, D ] }; + key { [ r, R ] }; + key { [ w, W ] }; + key { [ b, B ] }; + key { [ j, J ] }; + key { [ f, F ] }; + key { [ u, U ] }; + key { [ p, P ] }; + key { [ semicolon, colon ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ h, H ] }; + key { [ t, T ] }; + key { [ g, G ] }; + key { [ y, Y ] }; + key { [ n, N ] }; + key { [ e, E ] }; + key { [ o, O ] }; + key { [ i, I ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ m, M ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ k, K ] }; + key { [ l, L ] }; + + key { [ BackSpace, Escape, BackSpace, BackSpace ] }; + + include "level3(ralt_switch)" +}; + +partial alphanumeric_keys +xkb_symbols "workman-intl" { + + include "us(intl)" + name[Group1]= "English (Workman, international with dead keys)"; + + key { [ q, Q, adiaeresis, Adiaeresis ] }; + key { [ d, D, eth, ETH ] }; + key { [ r, R, registered, registered ] }; + key { [ w, W, aring, Aring ] }; + key { [ b, B, b, B ] }; + key { [ j, J, j, J ] }; + key { [ f, F, f, F ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ p, P, odiaeresis, Odiaeresis ] }; + key { [ semicolon, colon, paragraph, degree ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ s, S, ssharp, section ] }; + key { [ h, H, h, H ] }; + key { [ t, T, thorn, THORN ] }; + key { [ g, G, g, G ] }; + key { [ y, Y, udiaeresis, Udiaeresis ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ e, E, eacute, Eacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ i, I, iacute, Iacute ] }; + + key { [ z, Z, ae, AE ] }; + key { [ x, X, x, X ] }; + key { [ m, M, mu, mu ] }; + key { [ c, C, copyright, cent ] }; + key { [ v, V, v, V ] }; + key { [ k, K, oe, OE ] }; + key { [ l, L, oslash, Ooblique ] }; + + key { [ BackSpace, Escape, BackSpace, BackSpace ] }; + + include "level3(ralt_switch)" +}; + +// Norman keyboard layout symbols for xkb on X.Org Server 7.x +// Written 11/23/2012, revised 3/7/2013 by David Norman http://normanlayout.info +// To the extent possible under law, the author(s) have dedicated all +// copyright and related and neighboring rights to this software to the +// public domain worldwide. This software is distributed without any warranty. + +partial alphanumeric_keys +xkb_symbols "norman" { + + include "us(basic)" + name[Group1]= "English (Norman)"; + + key { [ q, Q ] }; + key { [ w, W ] }; + key { [ d, D ] }; + key { [ f, F ] }; + key { [ k, K ] }; + key { [ j, J ] }; + key { [ u, U ] }; + key { [ r, R ] }; + key { [ l, L ] }; + key { [ semicolon, colon ] }; + + key { [ a, A ] }; + key { [ s, S ] }; + key { [ e, E ] }; + key { [ t, T ] }; + key { [ g, G ] }; + key { [ y, Y ] }; + key { [ n, N ] }; + key { [ i, I ] }; + key { [ o, O ] }; + key { [ h, H ] }; + + key { [ z, Z ] }; + key { [ x, X ] }; + key { [ c, C ] }; + key { [ v, V ] }; + key { [ b, B ] }; + key { [ p, P ] }; + key { [ m, M ] }; + + key { [ BackSpace ] }; + + include "level3(ralt_switch)" +}; + +// EXTRAS: + +// Czech, Slovak and German charecters added as third level symbols to US keyboard layout. +partial alphanumeric_keys +xkb_symbols "cz_sk_de" { + + include "us" + name[Group1]="Czech Slovak and German (US)"; + + key { [grave, asciitilde, uring, Uring ] }; + key { [ 1, exclam, uacute, Uacute ] }; + key { [ 2, at, ecaron, Ecaron ] }; + key { [ 3, numbersign, scaron, Scaron ] }; + key { [ 4, dollar, ccaron, Ccaron ] }; + key { [ 5, percent, rcaron, Rcaron ] }; + key { [ 6, asciicircum, zcaron, Zcaron ] }; + key { [ 7, ampersand, yacute, Yacute ] }; + key { [ 8, asterisk, aacute, Aacute ] }; + key { [ 9, parenleft, iacute, Iacute ] }; + key { [ 0, parenright, eacute, Eacute ] }; + key { [minus, underscore, ssharp, 0x1001E9E ] }; + key { [equal, plus, dead_acute, dead_caron ] }; + + key { [ e, E, EuroSign, Eacute ] }; + + key { [bracketleft, braceleft, udiaeresis, Udiaeresis ] }; + key { [ semicolon, colon, odiaeresis, Odiaeresis ] }; + key { [apostrophe, quotedbl,adiaeresis, Adiaeresis ] }; + + key { [ a, A, aacute, Aacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ y, Y, yacute, Yacute ] }; + key { [ u, U, uring, Uring ] }; + + key { [ s, S, scaron, Scaron ] }; + key { [ z, Z, zcaron, Zcaron ] }; + key { [ c, C, ccaron, Ccaron ] }; + key { [ r, R, rcaron, Rcaron ] }; + key { [ t, T, tcaron, Tcaron ] }; + key { [ d, D, dcaron, Dcaron ] }; + key { [ n, N, ncaron, Ncaron ] }; + key { [ l, L, lcaron, Lcaron ] }; + key { [ p, P,ocircumflex, Ocircumflex ] }; + + key { [ space, space, nobreakspace, nobreakspace] }; + + include "level3(ralt_switch)" +}; + +// XCompose is out! Unicode combining is in! For those of us who live +// on the edge: A keymap using Unicode combining characters instead of +// deadkeys. This variation does not deviate from the lame MS-style +// US-intl layout; but it uses AltGr for combining, like altgr-intl. +// +// This might break your font layout layout systems (because they +// suck), caveat emptor. Also, most of today's software will count +// individual combining marks for selection, deletion, character +// counting &c., and won't be smart enough to do canonical equivalence +// when searching, &c. +// +// With Unicode combining you use "handwriting order", not +// "typewriting order" as with deadkeys. That is, you first type the +// base character, then the diacritics/accents/modifiers. This has +// the advantage of avoiding hidden states --- each keypress changes +// something on screen. +// +// TODO: as of now, this duplicates all us(intl) functionality with +// combining. With care, perhaps we could add more combining marks +// not present in intl, and support all major languages. +partial alphanumeric_keys +xkb_symbols "intl-unicode" { + + name[Group1]= "English (US, international AltGr Unicode combining)"; + + include "us(intl)" + include "level3(ralt_switch)" + + // grave, tilde + key { [grave, asciitilde, U0300, U0303 ] }; + // double acute + key { [ 2, at, twosuperior, U030B ] }; + // macron + key { [ 3, numbersign, threesuperior, U0304 ] }; + // circumflex + key { [ 6, asciicircum, onequarter, U0302 ] }; + // horn + key { [ 7, ampersand, onehalf, U031B ] }; + // ogonek + key { [ 8, asterisk, threequarters, U0328 ] }; + // breve + key { [ 9, parenleft, leftsinglequotemark, U0306 ] }; + // abovering + key { [ 0, parenright, rightsinglequotemark, U030A ] }; + + // belowdot + key { [ minus, underscore, yen, U0323 ] }; + // acute, diaeresis + key { [apostrophe, quotedbl, U0301, U0308 ] }; + // abovedot, caron + key { [ period, greater, U0307, U030C ] }; + // hook + key { [ slash, question, questiondown, U0309 ] }; + + // alt-intl compatibility + // cedilla, caron + key { [ comma, less, U0327, U030C ] }; + // ogonek, diaeresis + key { [ semicolon, colon, U0328, U0308 ] }; + // doubleacute, horn + key { [ equal, plus, U030B, U031B ] }; + + // we don't do combining latin letters and combining enclosures + // because support for those is very rare. +}; + +// XCompose is out! Unicode combining is in! For those of us who live +// on the edge: A keymap using Unicode combining characters instead of +// deadkeys. This variation does break compatibility with us-intl, +// whenever I thought it would be more mnemonic or Unicodeish. +partial alphanumeric_keys +xkb_symbols "alt-intl-unicode" { + + name[Group1]= "English (US, international AltGr Unicode combining, alternative)"; + + include "us(intl-unicode)" + + // easier macron; em-dash. + // em-dash is available via compose, but I added here since it's such + // an important typographic character. + key { [ minus, underscore, U0304, U2014 ] }; + + // belowdot, abovedot (caron at coma/less key, per above) + key { [ period, greater, U0323, U0307 ] }; + +}; + +partial alphanumeric_keys +xkb_symbols "ats" { + + include "us" + name[Group1]= "Atsina"; + + //Using Dead key to get COMBINING COMMA ABOVE for ejectives on + //q, l, t, s, m, g, k, p, w, y, r + //XCompose key is used for the other accute and grave. + + key { [ e, E, eacute, Eacute ] }; + key { [ u, U, uacute, Uacute ] }; + key { [ i, I, iacute, Iacute ] }; + key { [ o, O, oacute, Oacute ] }; + key { [ bracketleft, braceleft, U03B8 ] }; + key { [ bracketright, braceright, U010D, U010C ] }; + //U+010C (uppercase Č) and U+010D (lowercase č). + + key { [ a, A, aacute, Aacute ] }; + + //Small letter Open use compose to key get acute accent + key { [ c, C, U0254, U0186 ] }; + key { [ comma, less, U0313 ] }; + key { [ slash, question, U0294 ] }; + + include "level3(ralt_switch)" + include "compose(rctrl)" +}; + +partial alphanumeric_keys +xkb_symbols "crd" { + + include "us" + name[Group1]= "Coeur d'Alene Salish"; + + key { [ w, W, U02B7, U02B7 ] }; + key { [ 7, ampersand, U0294 ] }; + key { [ q, Q, U221A ] }; + key { [ v, V, U0259 ] }; + key { [ backslash, bar, U026B ] }; + key { [ e, E, U025B ] }; + key { [ i, I, U026A ] }; + key { [ j, J, U01F0 ] }; + key { [ 6, asciicircum, U0295 ] }; + key { [ s, S, U0161 ] }; + key { [ c, C, U010D ] }; + key { [ o, O, U0254 ] }; + key { [ period, greater, U0323 ] }; + + include "level3(ralt_switch)" + include "compose(rctrl)" +}; + + +partial alphanumeric_keys + xkb_symbols "sun_type6" { + include "sun_vndr/us(sun_type6)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/sync.sh b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/sync.sh new file mode 100755 index 0000000..10001bc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/sync.sh @@ -0,0 +1,69 @@ +#/bin/sh + +XKBCONFIGROOT='/usr/share/X11/xkb' + +if [ ! -d test/data ]; then + echo "Run this from the top source dir" + exit 1 +fi + +for file in \ + symbols/terminate \ + symbols/in \ + symbols/keypad \ + symbols/altwin \ + symbols/ctrl \ + symbols/eurosign \ + symbols/inet \ + symbols/shift \ + symbols/pc \ + symbols/ca \ + symbols/cz \ + symbols/srvr_ctrl \ + symbols/capslock \ + symbols/latin \ + symbols/level5 \ + symbols/macintosh_vndr/apple \ + symbols/macintosh_vndr/us \ + symbols/us \ + symbols/nbsp \ + symbols/il \ + symbols/group \ + symbols/compose \ + symbols/level3 \ + symbols/ru \ + symbols/rupeesign \ + symbols/kpdl \ + symbols/de \ + symbols/ch \ + symbols/empty \ + keycodes/xfree86 \ + keycodes/aliases \ + keycodes/evdev \ + keycodes/empty \ + types/complete \ + types/pc \ + types/basic \ + types/iso9995 \ + types/level5 \ + types/numpad \ + types/extra \ + types/mousekeys \ + compat/complete \ + compat/lednum \ + compat/pc \ + compat/ledscroll \ + compat/basic \ + compat/misc \ + compat/iso9995 \ + compat/accessx \ + compat/xfree86 \ + compat/level5 \ + compat/caps \ + compat/ledcaps \ + compat/mousekeys \ + rules/base \ + rules/evdev \ +; do + cp "$XKBCONFIGROOT/$file" "test/data/$file" +done diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/basic b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/basic new file mode 100644 index 0000000..fff06be --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/basic @@ -0,0 +1,30 @@ +default xkb_types "basic" { + + // Fairly standard definitions for + // three of the four required key types. + // The fourth type "KEYPAD" is defined in the "numpad" file. + + virtual_modifiers NumLock; + + type "ONE_LEVEL" { + modifiers = None; + map[None] = Level1; + level_name[Level1]= "Any"; + }; + + type "TWO_LEVEL" { + modifiers = Shift; + map[Shift] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + }; + + type "ALPHABETIC" { + modifiers = Shift+Lock; + map[Shift] = Level2; + map[Lock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Caps"; + }; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/complete b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/complete new file mode 100644 index 0000000..3b59ca2 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/complete @@ -0,0 +1,9 @@ +default xkb_types "complete" { + include "basic" + include "mousekeys" + include "pc" + include "iso9995" + include "level5" + include "extra" + include "numpad" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/extra b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/extra new file mode 100644 index 0000000..e7529f4 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/extra @@ -0,0 +1,158 @@ +partial default xkb_types "default" { + + // Defines a type with a four-level shift, similar to the three-level + // type used for iso9995, but it lets the Shift key behave "normally". + + virtual_modifiers LevelThree; + + type "FOUR_LEVEL" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + type "FOUR_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // A four-level keypad variant. The first two levels are controlled by + // NumLock (with active shifting like in KEYPAD). LevelThree overrides + // this mode, with two additional shifted levels. + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[Shift+NumLock] = Level1; + map[NumLock] = Level2; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[NumLock+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + }; + + // Base level, two shifted LevelThree levels, one Ctrl+Alt command level. + type "FOUR_LEVEL_X" { + modifiers = Shift+LevelThree+Control+Alt; + map[None] = Level1; + map[LevelThree] = Level2; + map[Shift+LevelThree] = Level3; + map[Control+Alt] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt Base"; + level_name[Level3] = "Shift Alt"; + level_name[Level4] = "Ctrl+Alt"; + }; + +// A special type for keys used in the Serbian Latin Unicode keymap. +// It makes it possible to use all three forms of latin letters +// present in Unicode that are made up of two separate letters +// (forms like LJ, Lj, and lj; NJ, Nj, and nj; etcetera). + + type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level4; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + preserve[Lock]= Lock; + preserve[Lock+LevelThree]= Lock; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "AltGr Base"; + level_name[Level4] = "Shift AltGr"; + }; + +// A key type for the German ssharp (for example), which is capitalized as SS. +// CHARACTERISTICS: +// It is FOUR_LEVEL with the exception that the fifth level is mapped to the +// Lock modifier. If other modifiers are used, the Lock state is ignored. +// DETAILS ABOUT GERMAN: +// The capital form of ssharp (called sharp s) only exists for completely +// capitalized text, not for words at the beginning of sentences nor for +// nouns (nouns in German normally start with a captial letter). +// The ssharp key, to the right of the zero key, takes this into account +// and has a questionmark mapped to Shift-ssharp since normally no capital +// version is needed. +// When typing with active CapsLock, this key type is needed to +// output two capital letters S because this is the only German key +// whose capital letter is not the same as the one typed with Shift. + + type "FOUR_LEVEL_PLUS_LOCK" { + modifiers = Shift+Lock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock] = Level5; + map[Lock+Shift] = Level2; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "Lock"; + }; +}; + +// This enables the four-level shifting also for the keypad. +partial xkb_types "keypad" { + virtual_modifiers LevelThree; + + type "FOUR_LEVEL_KEYPAD" { + modifiers = Shift+NumLock+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[NumLock] = Level2; + map[Shift+NumLock] = Level1; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[NumLock+LevelThree] = Level4; + map[Shift+NumLock+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Alt Number"; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/iso9995 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/iso9995 new file mode 100644 index 0000000..d3c4e0b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/iso9995 @@ -0,0 +1,18 @@ +partial default xkb_types "default" { + + // A key type which can be used to implement + // an ISO9995-style level-three shift. + + virtual_modifiers LevelThree; + + type "THREE_LEVEL" { + modifiers = Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level3; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Level3"; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/level5 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/level5 new file mode 100644 index 0000000..1796f50 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/level5 @@ -0,0 +1,214 @@ +partial default xkb_types "default" { + + // Defines a type with an eight-level shift, similar to the three-level + // type used for iso9995, but it lets the Shift key behave "normally". + + virtual_modifiers LevelThree,ScrollLock,LevelFive; + + type "EIGHT_LEVEL" { + modifiers = Shift+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + + type "EIGHT_LEVEL_ALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + map[Lock+Shift+LevelThree] = Level3; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level8; + map[Lock+Shift+LevelThree+LevelFive] = Level7; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +// type "EIGHT_LEVEL_LEVEL_FIVE_LOCK" { +// // Level5-Lock is implemented by using NumLock, because a real modifier +// // is required. +// +// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; +// +// map[None] = Level1; +// map[Shift] = Level2; +// map[LevelThree] = Level3; +// map[LevelThree+Shift] = Level4; +// +// map[LevelFive] = Level5; +// map[LevelFive+Shift] = Level6; +// map[LevelFive+LevelThree] = Level7; +// map[LevelFive+LevelThree+Shift] = Level8; +// +// map[NumLock] = Level5; +// map[NumLock+Shift] = Level6; +// map[NumLock+LevelThree] = Level7; +// map[NumLock+LevelThree+Shift] = Level8; +// +// map[NumLock+LevelFive] = Level1; +// map[NumLock+LevelFive+Shift] = Level2; +// map[NumLock+LevelFive+LevelThree] = Level3; +// map[NumLock+LevelFive+LevelThree+Shift] = Level4; +// +// // Lock has no effect +// map[Lock] = Level1; +// map[Lock+Shift] = Level2; +// map[Lock+LevelThree] = Level3; +// map[Lock+LevelThree+Shift] = Level4; +// +// map[Lock+LevelFive] = Level5; +// map[Lock+LevelFive+Shift] = Level6; +// map[Lock+LevelFive+LevelThree] = Level7; +// map[Lock+LevelFive+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock] = Level5; +// map[Lock+NumLock+Shift] = Level6; +// map[Lock+NumLock+LevelThree] = Level7; +// map[Lock+NumLock+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock+LevelFive] = Level1; +// map[Lock+NumLock+LevelFive+Shift] = Level2; +// map[Lock+NumLock+LevelFive+LevelThree] = Level3; +// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level4; +// +// preserve[LevelFive+Shift] = Shift; +// preserve[NumLock+Shift] = Shift; +// preserve[Lock+LevelFive+Shift] = Shift; +// preserve[Lock+NumLock+Shift] = Shift; +// +// level_name[Level1] = "Base"; +// level_name[Level2] = "Shift"; +// level_name[Level3] = "Alt Base"; +// level_name[Level4] = "Shift Alt"; +// level_name[Level5] = "X"; +// level_name[Level6] = "X Shift"; +// level_name[Level7] = "X Alt Base"; +// level_name[Level8] = "X Shift Alt"; +// }; +// +// type "EIGHT_LEVEL_ALPHABETIC_LEVEL_FIVE_LOCK" { +// // Level5-Lock is implemented by using NumLock, because a real modifier +// // is required. +// +// modifiers = Shift + Lock + LevelThree + NumLock + LevelFive; +// +// map[None] = Level1; +// map[Shift] = Level2; +// map[LevelThree] = Level3; +// map[LevelThree+Shift] = Level4; +// +// map[LevelFive] = Level5; +// map[LevelFive+Shift] = Level6; +// map[LevelFive+LevelThree] = Level7; +// map[LevelFive+LevelThree+Shift] = Level8; +// +// map[NumLock] = Level5; +// map[NumLock+Shift] = Level6; +// map[NumLock+LevelThree] = Level7; +// map[NumLock+LevelThree+Shift] = Level8; +// +// map[NumLock+LevelFive] = Level1; +// map[NumLock+LevelFive+Shift] = Level2; +// map[NumLock+LevelFive+LevelThree] = Level3; +// map[NumLock+LevelFive+LevelThree+Shift] = Level4; +// +// // Lock interchanges Level1 and Level2 +// map[Lock] = Level2; +// map[Lock+Shift] = Level1; +// map[Lock+LevelThree] = Level3; +// map[Lock+LevelThree+Shift] = Level4; +// +// map[Lock+LevelFive] = Level5; +// map[Lock+LevelFive+Shift] = Level6; +// map[Lock+LevelFive+LevelThree] = Level7; +// map[Lock+LevelFive+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock] = Level5; +// map[Lock+NumLock+Shift] = Level6; +// map[Lock+NumLock+LevelThree] = Level7; +// map[Lock+NumLock+LevelThree+Shift] = Level8; +// +// map[Lock+NumLock+LevelFive] = Level2; +// map[Lock+NumLock+LevelFive+Shift] = Level1; +// map[Lock+NumLock+LevelFive+LevelThree] = Level4; +// map[Lock+NumLock+LevelFive+LevelThree+Shift] = Level3; +// +// preserve[LevelFive+Shift] = Shift; +// preserve[NumLock+Shift] = Shift; +// +// level_name[Level1] = "Base"; +// level_name[Level2] = "Shift"; +// level_name[Level3] = "Alt Base"; +// level_name[Level4] = "Shift Alt"; +// level_name[Level5] = "X"; +// level_name[Level6] = "X Shift"; +// level_name[Level7] = "X Alt Base"; +// level_name[Level8] = "X Shift Alt"; +// }; + + type "EIGHT_LEVEL_SEMIALPHABETIC" { + modifiers = Shift+Lock+LevelThree+LevelFive; + map[None] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level4; + + map[LevelFive] = Level5; + map[Shift+LevelFive] = Level6; + map[Lock+LevelFive] = Level6; + map[Lock+Shift+LevelFive] = Level6; + map[LevelThree+LevelFive] = Level7; + map[Shift+LevelThree+LevelFive] = Level8; + map[Lock+LevelThree+LevelFive] = Level7; + map[Lock+Shift+LevelThree+LevelFive] = Level8; + + preserve[Lock+LevelThree] = Lock; + preserve[Lock+Shift+LevelThree] = Lock; + preserve[Lock+LevelFive] = Lock; + preserve[Lock+Shift+LevelFive] = Lock; + preserve[Lock+LevelThree+LevelFive] = Lock; + preserve[Lock+Shift+LevelThree+LevelFive] = Lock; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "X"; + level_name[Level6] = "X Shift"; + level_name[Level7] = "X Alt Base"; + level_name[Level8] = "X Shift Alt"; + }; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/mousekeys b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/mousekeys new file mode 100644 index 0000000..901848a --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/mousekeys @@ -0,0 +1,10 @@ +partial default xkb_types "default" { + virtual_modifiers Alt; + + type "SHIFT+ALT" { + modifiers = Shift+Alt; + map[Shift+Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift+Alt"; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/numpad b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/numpad new file mode 100644 index 0000000..5861f11 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/numpad @@ -0,0 +1,67 @@ +partial default xkb_types "pc" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level1; + map[Shift] = Level2; + map[NumLock] = Level2; + map[Shift+NumLock] = Level1; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +// On Mac keypads, level 1 and 2 are swapped. +partial xkb_types "mac" { + type "KEYPAD" { + modifiers = None; + map[None] = Level2; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +partial xkb_types "microsoft" { + type "KEYPAD" { + modifiers = Shift+NumLock; + map[None] = Level1; + preserve[Shift] = Shift; + map[NumLock] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Number"; + }; + include "extra(keypad)" +}; + +// Swiss-German style numeric keypad: Shift and NumLock operate as +// two independent modifiers; however, since we want shift state for +// the cursor keys, only three levels are used from the key mappings. +// Closest type is actually FOUR_LEVEL_X, but most numpad layouts use +// FOUR_LEVEL_MIXED_KEYPAD, so that's the one we are going to override. +partial xkb_types "shift3" { + type "FOUR_LEVEL_MIXED_KEYPAD" { + modifiers = Shift+NumLock+Control+Alt; + + // NumLock Off => navigate using cursor keys + map[None] = Level1; + + // NumLock Off + Shift pressed => select using cursor keys + preserve[Shift] = Shift; + + // NumLock On => decimal digits + map[NumLock] = Level2; + + // NumLock On + Shift pressed => auxiliary symbols, + // e.g. hexadecimal digits + map[Shift+NumLock] = Level3; + + // Ctrl + Alt, regardless of NumLock and Shift => command keys + map[Control+Alt] = Level4; + + // reverse map from levels to modifiers + level_name[Level1] = "Base"; + level_name[Level2] = "NumLock"; + level_name[Level3] = "Shift+NumLock"; + level_name[Level4] = "Ctrl+Alt"; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/pc b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/pc new file mode 100644 index 0000000..404e3c9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/types/pc @@ -0,0 +1,126 @@ +partial default xkb_types "default" { + + // Some types that are necessary + // for a full implementation of + // a PC-compatible keyboard. + + virtual_modifiers Alt; + virtual_modifiers LevelThree; + virtual_modifiers LAlt; + virtual_modifiers RAlt; + virtual_modifiers RControl; + virtual_modifiers LControl; + + type "PC_SUPER_LEVEL2" { + modifiers = Mod4; + map[None] = Level1; + map[Mod4] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Super"; + }; + + type "PC_CONTROL_LEVEL2" { + modifiers = Control; + map[None] = Level1; + map[Control] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Control"; + }; + + type "PC_LCONTROL_LEVEL2" { + modifiers = LControl; + map[None] = Level1; + map[LControl] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LControl"; + }; + + type "PC_RCONTROL_LEVEL2" { + modifiers = RControl; + map[None] = Level1; + map[RControl] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RControl"; + }; + + type "PC_ALT_LEVEL2" { + modifiers = Alt; + map[None] = Level1; + map[Alt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "Alt"; + }; + + type "PC_LALT_LEVEL2" { + modifiers = LAlt; + map[None] = Level1; + map[LAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "LAlt"; + }; + + type "PC_RALT_LEVEL2" { + modifiers = RAlt; + map[None] = Level1; + map[RAlt] = Level2; + level_name[Level1] = "Base"; + level_name[Level2] = "RAlt"; + }; + + type "CTRL+ALT" { + modifiers = Control+Alt+Shift+LevelThree; + map[None] = Level1; + map[Shift] = Level2; + map[LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Control+Alt] = Level5; + preserve[Shift] = Shift; + preserve[Shift+LevelThree] = Shift; + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Alt Base"; + level_name[Level4] = "Shift Alt"; + level_name[Level5] = "Ctrl+Alt"; + }; + + // Local eight level. + // Needed when you want part of your layout eight-level but cannot use + // LevelFive as modifier, as this will take over the right Ctrl by default + // for the whole layout and is too invasive for the average four-level user. + // Needed to fix bug #9529. + // FIXME: Should really use RControl but it seems not to be enabled by + // default and touching this requires a lot of testing. + type "LOCAL_EIGHT_LEVEL" { + modifiers = Shift+Lock+LevelThree+Control; + + map[None] = Level1; + map[Lock+Shift] = Level1; + map[Shift] = Level2; + map[Lock] = Level2; + + map[LevelThree] = Level3; + map[Lock+Shift+LevelThree] = Level3; + map[Shift+LevelThree] = Level4; + map[Lock+LevelThree] = Level4; + + map[Control] = Level5; + map[Lock+Shift+Control] = Level5; + map[Shift+Control] = Level6; + map[Lock+Control] = Level6; + + map[LevelThree+Control] = Level7; + map[Lock+Shift+LevelThree+Control] = Level7; + map[Shift+LevelThree+Control] = Level8; + map[Lock+LevelThree+Control] = Level8; + + level_name[Level1] = "Base"; + level_name[Level2] = "Shift"; + level_name[Level3] = "Level3"; + level_name[Level4] = "Shift Level3"; + level_name[Level5] = "Ctrl"; + level_name[Level6] = "Shift Ctrl"; + level_name[Level7] = "Level3 Ctrl"; + level_name[Level8] = "Shift Level3 Ctrl"; + }; + +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/evdev-scancodes.h b/app/src/main/jni/libxkbcommon/xkbcommon/test/evdev-scancodes.h new file mode 100644 index 0000000..0e05cb1 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/evdev-scancodes.h @@ -0,0 +1,587 @@ +/* + * Copyright (c) 1999-2002 Vojtech Pavlik + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#ifndef _INPUT_H +#define _INPUT_H + +/* + * Copied from /usr/include/linux/input.h from Linux 3.16, for use + * in libxkbcommon. Modified to only contain scancode definitions. + */ + +/* + * Keys and buttons + * + * Most of the keys/buttons are modeled after USB HUT 1.12 + * (see http://www.usb.org/developers/hidpage). + * Abbreviations in the comments: + * AC - Application Control + * AL - Application Launch Button + * SC - System Control + */ + +#define KEY_RESERVED 0 +#define KEY_ESC 1 +#define KEY_1 2 +#define KEY_2 3 +#define KEY_3 4 +#define KEY_4 5 +#define KEY_5 6 +#define KEY_6 7 +#define KEY_7 8 +#define KEY_8 9 +#define KEY_9 10 +#define KEY_0 11 +#define KEY_MINUS 12 +#define KEY_EQUAL 13 +#define KEY_BACKSPACE 14 +#define KEY_TAB 15 +#define KEY_Q 16 +#define KEY_W 17 +#define KEY_E 18 +#define KEY_R 19 +#define KEY_T 20 +#define KEY_Y 21 +#define KEY_U 22 +#define KEY_I 23 +#define KEY_O 24 +#define KEY_P 25 +#define KEY_LEFTBRACE 26 +#define KEY_RIGHTBRACE 27 +#define KEY_ENTER 28 +#define KEY_LEFTCTRL 29 +#define KEY_A 30 +#define KEY_S 31 +#define KEY_D 32 +#define KEY_F 33 +#define KEY_G 34 +#define KEY_H 35 +#define KEY_J 36 +#define KEY_K 37 +#define KEY_L 38 +#define KEY_SEMICOLON 39 +#define KEY_APOSTROPHE 40 +#define KEY_GRAVE 41 +#define KEY_LEFTSHIFT 42 +#define KEY_BACKSLASH 43 +#define KEY_Z 44 +#define KEY_X 45 +#define KEY_C 46 +#define KEY_V 47 +#define KEY_B 48 +#define KEY_N 49 +#define KEY_M 50 +#define KEY_COMMA 51 +#define KEY_DOT 52 +#define KEY_SLASH 53 +#define KEY_RIGHTSHIFT 54 +#define KEY_KPASTERISK 55 +#define KEY_LEFTALT 56 +#define KEY_SPACE 57 +#define KEY_CAPSLOCK 58 +#define KEY_F1 59 +#define KEY_F2 60 +#define KEY_F3 61 +#define KEY_F4 62 +#define KEY_F5 63 +#define KEY_F6 64 +#define KEY_F7 65 +#define KEY_F8 66 +#define KEY_F9 67 +#define KEY_F10 68 +#define KEY_NUMLOCK 69 +#define KEY_SCROLLLOCK 70 +#define KEY_KP7 71 +#define KEY_KP8 72 +#define KEY_KP9 73 +#define KEY_KPMINUS 74 +#define KEY_KP4 75 +#define KEY_KP5 76 +#define KEY_KP6 77 +#define KEY_KPPLUS 78 +#define KEY_KP1 79 +#define KEY_KP2 80 +#define KEY_KP3 81 +#define KEY_KP0 82 +#define KEY_KPDOT 83 + +#define KEY_ZENKAKUHANKAKU 85 +#define KEY_102ND 86 +#define KEY_F11 87 +#define KEY_F12 88 +#define KEY_RO 89 +#define KEY_KATAKANA 90 +#define KEY_HIRAGANA 91 +#define KEY_HENKAN 92 +#define KEY_KATAKANAHIRAGANA 93 +#define KEY_MUHENKAN 94 +#define KEY_KPJPCOMMA 95 +#define KEY_KPENTER 96 +#define KEY_RIGHTCTRL 97 +#define KEY_KPSLASH 98 +#define KEY_SYSRQ 99 +#define KEY_RIGHTALT 100 +#define KEY_LINEFEED 101 +#define KEY_HOME 102 +#define KEY_UP 103 +#define KEY_PAGEUP 104 +#define KEY_LEFT 105 +#define KEY_RIGHT 106 +#define KEY_END 107 +#define KEY_DOWN 108 +#define KEY_PAGEDOWN 109 +#define KEY_INSERT 110 +#define KEY_DELETE 111 +#define KEY_MACRO 112 +#define KEY_MUTE 113 +#define KEY_VOLUMEDOWN 114 +#define KEY_VOLUMEUP 115 +#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_KPEQUAL 117 +#define KEY_KPPLUSMINUS 118 +#define KEY_PAUSE 119 +#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ + +#define KEY_KPCOMMA 121 +#define KEY_HANGEUL 122 +#define KEY_HANGUEL KEY_HANGEUL +#define KEY_HANJA 123 +#define KEY_YEN 124 +#define KEY_LEFTMETA 125 +#define KEY_RIGHTMETA 126 +#define KEY_COMPOSE 127 + +#define KEY_STOP 128 /* AC Stop */ +#define KEY_AGAIN 129 +#define KEY_PROPS 130 /* AC Properties */ +#define KEY_UNDO 131 /* AC Undo */ +#define KEY_FRONT 132 +#define KEY_COPY 133 /* AC Copy */ +#define KEY_OPEN 134 /* AC Open */ +#define KEY_PASTE 135 /* AC Paste */ +#define KEY_FIND 136 /* AC Search */ +#define KEY_CUT 137 /* AC Cut */ +#define KEY_HELP 138 /* AL Integrated Help Center */ +#define KEY_MENU 139 /* Menu (show menu) */ +#define KEY_CALC 140 /* AL Calculator */ +#define KEY_SETUP 141 +#define KEY_SLEEP 142 /* SC System Sleep */ +#define KEY_WAKEUP 143 /* System Wake Up */ +#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SENDFILE 145 +#define KEY_DELETEFILE 146 +#define KEY_XFER 147 +#define KEY_PROG1 148 +#define KEY_PROG2 149 +#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_MSDOS 151 +#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_SCREENLOCK KEY_COFFEE +#define KEY_DIRECTION 153 +#define KEY_CYCLEWINDOWS 154 +#define KEY_MAIL 155 +#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_COMPUTER 157 +#define KEY_BACK 158 /* AC Back */ +#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_CLOSECD 160 +#define KEY_EJECTCD 161 +#define KEY_EJECTCLOSECD 162 +#define KEY_NEXTSONG 163 +#define KEY_PLAYPAUSE 164 +#define KEY_PREVIOUSSONG 165 +#define KEY_STOPCD 166 +#define KEY_RECORD 167 +#define KEY_REWIND 168 +#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_ISO 170 +#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ +#define KEY_HOMEPAGE 172 /* AC Home */ +#define KEY_REFRESH 173 /* AC Refresh */ +#define KEY_EXIT 174 /* AC Exit */ +#define KEY_MOVE 175 +#define KEY_EDIT 176 +#define KEY_SCROLLUP 177 +#define KEY_SCROLLDOWN 178 +#define KEY_KPLEFTPAREN 179 +#define KEY_KPRIGHTPAREN 180 +#define KEY_NEW 181 /* AC New */ +#define KEY_REDO 182 /* AC Redo/Repeat */ + +#define KEY_F13 183 +#define KEY_F14 184 +#define KEY_F15 185 +#define KEY_F16 186 +#define KEY_F17 187 +#define KEY_F18 188 +#define KEY_F19 189 +#define KEY_F20 190 +#define KEY_F21 191 +#define KEY_F22 192 +#define KEY_F23 193 +#define KEY_F24 194 + +#define KEY_PLAYCD 200 +#define KEY_PAUSECD 201 +#define KEY_PROG3 202 +#define KEY_PROG4 203 +#define KEY_DASHBOARD 204 /* AL Dashboard */ +#define KEY_SUSPEND 205 +#define KEY_CLOSE 206 /* AC Close */ +#define KEY_PLAY 207 +#define KEY_FASTFORWARD 208 +#define KEY_BASSBOOST 209 +#define KEY_PRINT 210 /* AC Print */ +#define KEY_HP 211 +#define KEY_CAMERA 212 +#define KEY_SOUND 213 +#define KEY_QUESTION 214 +#define KEY_EMAIL 215 +#define KEY_CHAT 216 +#define KEY_SEARCH 217 +#define KEY_CONNECT 218 +#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_SPORT 220 +#define KEY_SHOP 221 +#define KEY_ALTERASE 222 +#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_BRIGHTNESSDOWN 224 +#define KEY_BRIGHTNESSUP 225 +#define KEY_MEDIA 226 + +#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video + outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_KBDILLUMTOGGLE 228 +#define KEY_KBDILLUMDOWN 229 +#define KEY_KBDILLUMUP 230 + +#define KEY_SEND 231 /* AC Send */ +#define KEY_REPLY 232 /* AC Reply */ +#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ +#define KEY_SAVE 234 /* AC Save */ +#define KEY_DOCUMENTS 235 + +#define KEY_BATTERY 236 + +#define KEY_BLUETOOTH 237 +#define KEY_WLAN 238 +#define KEY_UWB 239 + +#define KEY_UNKNOWN 240 + +#define KEY_VIDEO_NEXT 241 /* drive next video source */ +#define KEY_VIDEO_PREV 242 /* drive previous video source */ +#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ +#define KEY_BRIGHTNESS_ZERO 244 /* brightness off, use ambient */ +#define KEY_DISPLAY_OFF 245 /* display device to off state */ + +#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WIMAX KEY_WWAN +#define KEY_RFKILL 247 /* Key that controls all radios */ + +#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ + +/* Code 255 is reserved for special needs of AT keyboard driver */ + +#define BTN_MISC 0x100 +#define BTN_0 0x100 +#define BTN_1 0x101 +#define BTN_2 0x102 +#define BTN_3 0x103 +#define BTN_4 0x104 +#define BTN_5 0x105 +#define BTN_6 0x106 +#define BTN_7 0x107 +#define BTN_8 0x108 +#define BTN_9 0x109 + +#define BTN_MOUSE 0x110 +#define BTN_LEFT 0x110 +#define BTN_RIGHT 0x111 +#define BTN_MIDDLE 0x112 +#define BTN_SIDE 0x113 +#define BTN_EXTRA 0x114 +#define BTN_FORWARD 0x115 +#define BTN_BACK 0x116 +#define BTN_TASK 0x117 + +#define BTN_JOYSTICK 0x120 +#define BTN_TRIGGER 0x120 +#define BTN_THUMB 0x121 +#define BTN_THUMB2 0x122 +#define BTN_TOP 0x123 +#define BTN_TOP2 0x124 +#define BTN_PINKIE 0x125 +#define BTN_BASE 0x126 +#define BTN_BASE2 0x127 +#define BTN_BASE3 0x128 +#define BTN_BASE4 0x129 +#define BTN_BASE5 0x12a +#define BTN_BASE6 0x12b +#define BTN_DEAD 0x12f + +#define BTN_GAMEPAD 0x130 +#define BTN_SOUTH 0x130 +#define BTN_A BTN_SOUTH +#define BTN_EAST 0x131 +#define BTN_B BTN_EAST +#define BTN_C 0x132 +#define BTN_NORTH 0x133 +#define BTN_X BTN_NORTH +#define BTN_WEST 0x134 +#define BTN_Y BTN_WEST +#define BTN_Z 0x135 +#define BTN_TL 0x136 +#define BTN_TR 0x137 +#define BTN_TL2 0x138 +#define BTN_TR2 0x139 +#define BTN_SELECT 0x13a +#define BTN_START 0x13b +#define BTN_MODE 0x13c +#define BTN_THUMBL 0x13d +#define BTN_THUMBR 0x13e + +#define BTN_DIGI 0x140 +#define BTN_TOOL_PEN 0x140 +#define BTN_TOOL_RUBBER 0x141 +#define BTN_TOOL_BRUSH 0x142 +#define BTN_TOOL_PENCIL 0x143 +#define BTN_TOOL_AIRBRUSH 0x144 +#define BTN_TOOL_FINGER 0x145 +#define BTN_TOOL_MOUSE 0x146 +#define BTN_TOOL_LENS 0x147 +#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_TOUCH 0x14a +#define BTN_STYLUS 0x14b +#define BTN_STYLUS2 0x14c +#define BTN_TOOL_DOUBLETAP 0x14d +#define BTN_TOOL_TRIPLETAP 0x14e +#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ + +#define BTN_WHEEL 0x150 +#define BTN_GEAR_DOWN 0x150 +#define BTN_GEAR_UP 0x151 + +#define KEY_OK 0x160 +#define KEY_SELECT 0x161 +#define KEY_GOTO 0x162 +#define KEY_CLEAR 0x163 +#define KEY_POWER2 0x164 +#define KEY_OPTION 0x165 +#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_TIME 0x167 +#define KEY_VENDOR 0x168 +#define KEY_ARCHIVE 0x169 +#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_CHANNEL 0x16b +#define KEY_FAVORITES 0x16c +#define KEY_EPG 0x16d +#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_MHP 0x16f +#define KEY_LANGUAGE 0x170 +#define KEY_TITLE 0x171 +#define KEY_SUBTITLE 0x172 +#define KEY_ANGLE 0x173 +#define KEY_ZOOM 0x174 +#define KEY_MODE 0x175 +#define KEY_KEYBOARD 0x176 +#define KEY_SCREEN 0x177 +#define KEY_PC 0x178 /* Media Select Computer */ +#define KEY_TV 0x179 /* Media Select TV */ +#define KEY_TV2 0x17a /* Media Select Cable */ +#define KEY_VCR 0x17b /* Media Select VCR */ +#define KEY_VCR2 0x17c /* VCR Plus */ +#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_SAT2 0x17e +#define KEY_CD 0x17f /* Media Select CD */ +#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_RADIO 0x181 +#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_PLAYER 0x183 +#define KEY_TEXT 0x184 +#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_AUX 0x186 +#define KEY_MP3 0x187 +#define KEY_AUDIO 0x188 /* AL Audio Browser */ +#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_DIRECTORY 0x18a +#define KEY_LIST 0x18b +#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_CALENDAR 0x18d +#define KEY_RED 0x18e +#define KEY_GREEN 0x18f +#define KEY_YELLOW 0x190 +#define KEY_BLUE 0x191 +#define KEY_CHANNELUP 0x192 /* Channel Increment */ +#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_FIRST 0x194 +#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_AB 0x196 +#define KEY_NEXT 0x197 +#define KEY_RESTART 0x198 +#define KEY_SLOW 0x199 +#define KEY_SHUFFLE 0x19a +#define KEY_BREAK 0x19b +#define KEY_PREVIOUS 0x19c +#define KEY_DIGITS 0x19d +#define KEY_TEEN 0x19e +#define KEY_TWEN 0x19f +#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ +#define KEY_GAMES 0x1a1 /* Media Select Games */ +#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ +#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ +#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ +#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ +#define KEY_EDITOR 0x1a6 /* AL Text Editor */ +#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ +#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ +#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ +#define KEY_DATABASE 0x1aa /* AL Database App */ +#define KEY_NEWS 0x1ab /* AL Newsreader */ +#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ +#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ +#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ +#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ +#define KEY_LOGOFF 0x1b1 /* AL Logoff */ + +#define KEY_DOLLAR 0x1b2 +#define KEY_EURO 0x1b3 + +#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEFORWARD 0x1b5 +#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ +#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ +#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ +#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ +#define KEY_IMAGES 0x1ba /* AL Image Browser */ + +#define KEY_DEL_EOL 0x1c0 +#define KEY_DEL_EOS 0x1c1 +#define KEY_INS_LINE 0x1c2 +#define KEY_DEL_LINE 0x1c3 + +#define KEY_FN 0x1d0 +#define KEY_FN_ESC 0x1d1 +#define KEY_FN_F1 0x1d2 +#define KEY_FN_F2 0x1d3 +#define KEY_FN_F3 0x1d4 +#define KEY_FN_F4 0x1d5 +#define KEY_FN_F5 0x1d6 +#define KEY_FN_F6 0x1d7 +#define KEY_FN_F7 0x1d8 +#define KEY_FN_F8 0x1d9 +#define KEY_FN_F9 0x1da +#define KEY_FN_F10 0x1db +#define KEY_FN_F11 0x1dc +#define KEY_FN_F12 0x1dd +#define KEY_FN_1 0x1de +#define KEY_FN_2 0x1df +#define KEY_FN_D 0x1e0 +#define KEY_FN_E 0x1e1 +#define KEY_FN_F 0x1e2 +#define KEY_FN_S 0x1e3 +#define KEY_FN_B 0x1e4 + +#define KEY_BRL_DOT1 0x1f1 +#define KEY_BRL_DOT2 0x1f2 +#define KEY_BRL_DOT3 0x1f3 +#define KEY_BRL_DOT4 0x1f4 +#define KEY_BRL_DOT5 0x1f5 +#define KEY_BRL_DOT6 0x1f6 +#define KEY_BRL_DOT7 0x1f7 +#define KEY_BRL_DOT8 0x1f8 +#define KEY_BRL_DOT9 0x1f9 +#define KEY_BRL_DOT10 0x1fa + +#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ +#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_2 0x202 +#define KEY_NUMERIC_3 0x203 +#define KEY_NUMERIC_4 0x204 +#define KEY_NUMERIC_5 0x205 +#define KEY_NUMERIC_6 0x206 +#define KEY_NUMERIC_7 0x207 +#define KEY_NUMERIC_8 0x208 +#define KEY_NUMERIC_9 0x209 +#define KEY_NUMERIC_STAR 0x20a +#define KEY_NUMERIC_POUND 0x20b + +#define KEY_CAMERA_FOCUS 0x210 +#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ + +#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_ON 0x213 +#define KEY_TOUCHPAD_OFF 0x214 + +#define KEY_CAMERA_ZOOMIN 0x215 +#define KEY_CAMERA_ZOOMOUT 0x216 +#define KEY_CAMERA_UP 0x217 +#define KEY_CAMERA_DOWN 0x218 +#define KEY_CAMERA_LEFT 0x219 +#define KEY_CAMERA_RIGHT 0x21a + +#define KEY_ATTENDANT_ON 0x21b +#define KEY_ATTENDANT_OFF 0x21c +#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ +#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ + +#define BTN_DPAD_UP 0x220 +#define BTN_DPAD_DOWN 0x221 +#define BTN_DPAD_LEFT 0x222 +#define BTN_DPAD_RIGHT 0x223 + +#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ + +#define BTN_TRIGGER_HAPPY 0x2c0 +#define BTN_TRIGGER_HAPPY1 0x2c0 +#define BTN_TRIGGER_HAPPY2 0x2c1 +#define BTN_TRIGGER_HAPPY3 0x2c2 +#define BTN_TRIGGER_HAPPY4 0x2c3 +#define BTN_TRIGGER_HAPPY5 0x2c4 +#define BTN_TRIGGER_HAPPY6 0x2c5 +#define BTN_TRIGGER_HAPPY7 0x2c6 +#define BTN_TRIGGER_HAPPY8 0x2c7 +#define BTN_TRIGGER_HAPPY9 0x2c8 +#define BTN_TRIGGER_HAPPY10 0x2c9 +#define BTN_TRIGGER_HAPPY11 0x2ca +#define BTN_TRIGGER_HAPPY12 0x2cb +#define BTN_TRIGGER_HAPPY13 0x2cc +#define BTN_TRIGGER_HAPPY14 0x2cd +#define BTN_TRIGGER_HAPPY15 0x2ce +#define BTN_TRIGGER_HAPPY16 0x2cf +#define BTN_TRIGGER_HAPPY17 0x2d0 +#define BTN_TRIGGER_HAPPY18 0x2d1 +#define BTN_TRIGGER_HAPPY19 0x2d2 +#define BTN_TRIGGER_HAPPY20 0x2d3 +#define BTN_TRIGGER_HAPPY21 0x2d4 +#define BTN_TRIGGER_HAPPY22 0x2d5 +#define BTN_TRIGGER_HAPPY23 0x2d6 +#define BTN_TRIGGER_HAPPY24 0x2d7 +#define BTN_TRIGGER_HAPPY25 0x2d8 +#define BTN_TRIGGER_HAPPY26 0x2d9 +#define BTN_TRIGGER_HAPPY27 0x2da +#define BTN_TRIGGER_HAPPY28 0x2db +#define BTN_TRIGGER_HAPPY29 0x2dc +#define BTN_TRIGGER_HAPPY30 0x2dd +#define BTN_TRIGGER_HAPPY31 0x2de +#define BTN_TRIGGER_HAPPY32 0x2df +#define BTN_TRIGGER_HAPPY33 0x2e0 +#define BTN_TRIGGER_HAPPY34 0x2e1 +#define BTN_TRIGGER_HAPPY35 0x2e2 +#define BTN_TRIGGER_HAPPY36 0x2e3 +#define BTN_TRIGGER_HAPPY37 0x2e4 +#define BTN_TRIGGER_HAPPY38 0x2e5 +#define BTN_TRIGGER_HAPPY39 0x2e6 +#define BTN_TRIGGER_HAPPY40 0x2e7 + +/* We avoid low common keys in module aliases so they don't get huge. */ +#define KEY_MIN_INTERESTING KEY_MUTE +#define KEY_MAX 0x2ff +#define KEY_CNT (KEY_MAX+1) + +#endif /* _INPUT_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/filecomp.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/filecomp.c new file mode 100644 index 0000000..39b7ac7 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/filecomp.c @@ -0,0 +1,67 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "test.h" + +static int +test_file(struct xkb_context *ctx, const char *path_rel) +{ + struct xkb_keymap *keymap = test_compile_file(ctx, path_rel); + + if (!keymap) + return 0; + + xkb_keymap_unref(keymap); + return 1; +} + +int +main(void) +{ + struct xkb_context *ctx = test_get_context(0); + + assert(test_file(ctx, "keymaps/basic.xkb")); + assert(test_file(ctx, "keymaps/comprehensive-plus-geom.xkb")); + assert(test_file(ctx, "keymaps/no-types.xkb")); + assert(test_file(ctx, "keymaps/quartz.xkb")); + assert(test_file(ctx, "keymaps/no-aliases.xkb")); + + assert(!test_file(ctx, "keymaps/divide-by-zero.xkb")); + assert(!test_file(ctx, "keymaps/bad.xkb")); + assert(!test_file(ctx, "keymaps/syntax-error.xkb")); + assert(!test_file(ctx, "keymaps/syntax-error2.xkb")); + assert(!test_file(ctx, "does not exist")); + + /* Test response to invalid flags and formats. */ + fclose(stdin); + assert(!xkb_keymap_new_from_file(ctx, NULL, XKB_KEYMAP_FORMAT_TEXT_V1, 0)); + assert(!xkb_keymap_new_from_file(ctx, stdin, 0, 0)); + assert(!xkb_keymap_new_from_file(ctx, stdin, XKB_KEYMAP_USE_ORIGINAL_FORMAT, 0)); + assert(!xkb_keymap_new_from_file(ctx, stdin, 1234, 0)); + assert(!xkb_keymap_new_from_file(ctx, stdin, XKB_KEYMAP_FORMAT_TEXT_V1, -1)); + assert(!xkb_keymap_new_from_file(ctx, stdin, XKB_KEYMAP_FORMAT_TEXT_V1, 1234)); + + xkb_context_unref(ctx); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/interactive-evdev.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/interactive-evdev.c new file mode 100644 index 0000000..04a347f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/interactive-evdev.c @@ -0,0 +1,503 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "test.h" + +struct keyboard { + char *path; + int fd; + struct xkb_state *state; + struct xkb_compose_state *compose_state; + struct keyboard *next; +}; + +static bool terminate; +static int evdev_offset = 8; +static bool report_state_changes; +static bool with_compose; + +#define NLONGS(n) (((n) + LONG_BIT - 1) / LONG_BIT) + +static bool +evdev_bit_is_set(const unsigned long *array, int bit) +{ + return array[bit / LONG_BIT] & (1LL << (bit % LONG_BIT)); +} + +/* Some heuristics to see if the device is a keyboard. */ +static bool +is_keyboard(int fd) +{ + int i; + unsigned long evbits[NLONGS(EV_CNT)] = { 0 }; + unsigned long keybits[NLONGS(KEY_CNT)] = { 0 }; + + errno = 0; + ioctl(fd, EVIOCGBIT(0, sizeof(evbits)), evbits); + if (errno) + return false; + + if (!evdev_bit_is_set(evbits, EV_KEY)) + return false; + + errno = 0; + ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keybits)), keybits); + if (errno) + return false; + + for (i = KEY_RESERVED; i <= KEY_MIN_INTERESTING; i++) + if (evdev_bit_is_set(keybits, i)) + return true; + + return false; +} + +static int +keyboard_new(struct dirent *ent, struct xkb_keymap *keymap, + struct xkb_compose_table *compose_table, struct keyboard **out) +{ + int ret; + char *path; + int fd; + struct xkb_state *state; + struct xkb_compose_state *compose_state = NULL; + struct keyboard *kbd; + + ret = asprintf(&path, "/dev/input/%s", ent->d_name); + if (ret < 0) + return -ENOMEM; + + fd = open(path, O_NONBLOCK | O_CLOEXEC | O_RDONLY); + if (fd < 0) { + ret = -errno; + goto err_path; + } + + if (!is_keyboard(fd)) { + /* Dummy "skip this device" value. */ + ret = -ENOTSUP; + goto err_fd; + } + + state = xkb_state_new(keymap); + if (!state) { + fprintf(stderr, "Couldn't create xkb state for %s\n", path); + ret = -EFAULT; + goto err_fd; + } + + if (with_compose) { + compose_state = xkb_compose_state_new(compose_table, + XKB_COMPOSE_STATE_NO_FLAGS); + if (!compose_state) { + fprintf(stderr, "Couldn't create compose state for %s\n", path); + ret = -EFAULT; + goto err_state; + } + } + + kbd = calloc(1, sizeof(*kbd)); + if (!kbd) { + ret = -ENOMEM; + goto err_compose_state; + } + + kbd->path = path; + kbd->fd = fd; + kbd->state = state; + kbd->compose_state = compose_state; + *out = kbd; + return 0; + +err_compose_state: + xkb_compose_state_unref(compose_state); +err_state: + xkb_state_unref(state); +err_fd: + close(fd); +err_path: + free(path); + return ret; +} + +static void +keyboard_free(struct keyboard *kbd) +{ + if (!kbd) + return; + if (kbd->fd >= 0) + close(kbd->fd); + free(kbd->path); + xkb_state_unref(kbd->state); + xkb_compose_state_unref(kbd->compose_state); + free(kbd); +} + +static int +filter_device_name(const struct dirent *ent) +{ + return !fnmatch("event*", ent->d_name, 0); +} + +static struct keyboard * +get_keyboards(struct xkb_keymap *keymap, + struct xkb_compose_table *compose_table) +{ + int ret, i, nents; + struct dirent **ents; + struct keyboard *kbds = NULL, *kbd = NULL; + + nents = scandir("/dev/input", &ents, filter_device_name, alphasort); + if (nents < 0) { + fprintf(stderr, "Couldn't scan /dev/input: %s\n", strerror(errno)); + return NULL; + } + + for (i = 0; i < nents; i++) { + ret = keyboard_new(ents[i], keymap, compose_table, &kbd); + if (ret) { + if (ret == -EACCES) { + fprintf(stderr, "Couldn't open /dev/input/%s: %s. " + "You probably need root to run this.\n", + ents[i]->d_name, strerror(-ret)); + break; + } + if (ret != -ENOTSUP) { + fprintf(stderr, "Couldn't open /dev/input/%s: %s. Skipping.\n", + ents[i]->d_name, strerror(-ret)); + } + continue; + } + + kbd->next = kbds; + kbds = kbd; + } + + if (!kbds) { + fprintf(stderr, "Couldn't find any keyboards I can use! Quitting.\n"); + goto err; + } + +err: + for (i = 0; i < nents; i++) + free(ents[i]); + free(ents); + return kbds; +} + +static void +free_keyboards(struct keyboard *kbds) +{ + struct keyboard *next; + + while (kbds) { + next = kbds->next; + keyboard_free(kbds); + kbds = next; + } +} + +/* The meaning of the input_event 'value' field. */ +enum { + KEY_STATE_RELEASE = 0, + KEY_STATE_PRESS = 1, + KEY_STATE_REPEAT = 2, +}; + +static void +process_event(struct keyboard *kbd, uint16_t type, uint16_t code, int32_t value) +{ + xkb_keycode_t keycode; + struct xkb_keymap *keymap; + enum xkb_state_component changed; + enum xkb_compose_status status; + + if (type != EV_KEY) + return; + + keycode = evdev_offset + code; + keymap = xkb_state_get_keymap(kbd->state); + + if (value == KEY_STATE_REPEAT && !xkb_keymap_key_repeats(keymap, keycode)) + return; + + if (with_compose && value != KEY_STATE_RELEASE) { + xkb_keysym_t keysym = xkb_state_key_get_one_sym(kbd->state, keycode); + xkb_compose_state_feed(kbd->compose_state, keysym); + } + + if (value != KEY_STATE_RELEASE) + test_print_keycode_state(kbd->state, kbd->compose_state, keycode); + + if (with_compose) { + status = xkb_compose_state_get_status(kbd->compose_state); + if (status == XKB_COMPOSE_CANCELLED || status == XKB_COMPOSE_COMPOSED) + xkb_compose_state_reset(kbd->compose_state); + } + + if (value == KEY_STATE_RELEASE) + changed = xkb_state_update_key(kbd->state, keycode, XKB_KEY_UP); + else + changed = xkb_state_update_key(kbd->state, keycode, XKB_KEY_DOWN); + + if (report_state_changes) + test_print_state_changes(changed); +} + +static int +read_keyboard(struct keyboard *kbd) +{ + ssize_t len; + struct input_event evs[16]; + + /* No fancy error checking here. */ + while ((len = read(kbd->fd, &evs, sizeof(evs))) > 0) { + const size_t nevs = len / sizeof(struct input_event); + for (size_t i = 0; i < nevs; i++) + process_event(kbd, evs[i].type, evs[i].code, evs[i].value); + } + + if (len < 0 && errno != EWOULDBLOCK) { + fprintf(stderr, "Couldn't read %s: %s\n", kbd->path, strerror(errno)); + return -errno; + } + + return 0; +} + +static int +loop(struct keyboard *kbds) +{ + int i, ret; + int epfd; + struct keyboard *kbd; + struct epoll_event ev; + struct epoll_event evs[16]; + + epfd = epoll_create1(0); + if (epfd < 0) { + fprintf(stderr, "Couldn't create epoll instance: %s\n", + strerror(errno)); + return -errno; + } + + for (kbd = kbds; kbd; kbd = kbd->next) { + memset(&ev, 0, sizeof(ev)); + ev.events = EPOLLIN; + ev.data.ptr = kbd; + ret = epoll_ctl(epfd, EPOLL_CTL_ADD, kbd->fd, &ev); + if (ret) { + ret = -errno; + fprintf(stderr, "Couldn't add %s to epoll: %s\n", + kbd->path, strerror(errno)); + goto err_epoll; + } + } + + while (!terminate) { + ret = epoll_wait(epfd, evs, 16, -1); + if (ret < 0) { + if (errno == EINTR) + continue; + ret = -errno; + fprintf(stderr, "Couldn't poll for events: %s\n", + strerror(errno)); + goto err_epoll; + } + + for (i = 0; i < ret; i++) { + kbd = evs[i].data.ptr; + ret = read_keyboard(kbd); + if (ret) { + goto err_epoll; + } + } + } + + close(epfd); + return 0; + +err_epoll: + close(epfd); + return ret; +} + +static void +sigintr_handler(int signum) +{ + terminate = true; +} + +int +main(int argc, char *argv[]) +{ + int ret; + int opt; + struct keyboard *kbds; + struct xkb_context *ctx; + struct xkb_keymap *keymap; + struct xkb_compose_table *compose_table = NULL; + const char *rules = NULL; + const char *model = NULL; + const char *layout = NULL; + const char *variant = NULL; + const char *options = NULL; + const char *keymap_path = NULL; + const char *locale; + struct sigaction act; + + setlocale(LC_ALL, ""); + + while ((opt = getopt(argc, argv, "r:m:l:v:o:k:n:cd")) != -1) { + switch (opt) { + case 'r': + rules = optarg; + break; + case 'm': + model = optarg; + break; + case 'l': + layout = optarg; + break; + case 'v': + variant = optarg; + break; + case 'o': + options = optarg; + break; + case 'k': + keymap_path = optarg; + break; + case 'n': + errno = 0; + evdev_offset = strtol(optarg, NULL, 10); + if (errno) { + fprintf(stderr, "error: -n option expects a number\n"); + exit(EXIT_FAILURE); + } + break; + case 'c': + report_state_changes = true; + break; + case 'd': + with_compose = true; + break; + case '?': + fprintf(stderr, " Usage: %s [-r ] [-m ] " + "[-l ] [-v ] [-o ]\n", + argv[0]); + fprintf(stderr, " or: %s -k \n", + argv[0]); + fprintf(stderr, "For both: -n \n" + " -c (to report changes to the state)\n" + " -d (to enable compose)\n"); + exit(2); + } + } + + ctx = test_get_context(0); + if (!ctx) { + ret = -1; + fprintf(stderr, "Couldn't create xkb context\n"); + goto err_out; + } + + if (keymap_path) { + FILE *file = fopen(keymap_path, "r"); + if (!file) { + ret = EXIT_FAILURE; + fprintf(stderr, "Couldn't open '%s': %s\n", + keymap_path, strerror(errno)); + goto err_ctx; + } + keymap = xkb_keymap_new_from_file(ctx, file, + XKB_KEYMAP_FORMAT_TEXT_V1, 0); + fclose(file); + } + else { + keymap = test_compile_rules(ctx, rules, model, layout, variant, + options); + } + + if (!keymap) { + ret = -1; + fprintf(stderr, "Couldn't create xkb keymap\n"); + goto err_ctx; + } + + if (with_compose) { + locale = setlocale(LC_CTYPE, NULL); + compose_table = + xkb_compose_table_new_from_locale(ctx, locale, + XKB_COMPOSE_COMPILE_NO_FLAGS); + if (!compose_table) { + ret = -1; + fprintf(stderr, "Couldn't create compose from locale\n"); + goto err_xkb; + } + } + + kbds = get_keyboards(keymap, compose_table); + if (!kbds) { + ret = -1; + goto err_compose; + } + + act.sa_handler = sigintr_handler; + sigemptyset(&act.sa_mask); + act.sa_flags = 0; + sigaction(SIGINT, &act, NULL); + sigaction(SIGTERM, &act, NULL); + + /* Instead of fiddling with termios.. */ + system("stty -echo"); + + ret = loop(kbds); + if (ret) + goto err_stty; + +err_stty: + system("stty echo"); + free_keyboards(kbds); +err_compose: + xkb_compose_table_unref(compose_table); +err_xkb: + xkb_keymap_unref(keymap); +err_ctx: + xkb_context_unref(ctx); +err_out: + exit(ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/interactive-x11.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/interactive-x11.c new file mode 100644 index 0000000..d720004 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/interactive-x11.c @@ -0,0 +1,387 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "xkbcommon/xkbcommon-x11.h" +#include "test.h" + +#include + +/* + * Note: This program only handles the core keyboard device for now. + * It should be straigtforward to change struct keyboard to a list of + * keyboards with device IDs, as in test/interactive-evdev.c. This would + * require: + * + * - Initially listing the keyboard devices. + * - Listening to device changes. + * - Matching events to their devices. + * + * XKB itself knows about xinput1 devices, and most requests and events are + * device-specific. + * + * In order to list the devices and react to changes, you need xinput1/2. + * You also need xinput for the key press/release event, since the core + * protocol key press event does not carry a device ID to match on. + */ + +struct keyboard { + xcb_connection_t *conn; + uint8_t first_xkb_event; + struct xkb_context *ctx; + + struct xkb_keymap *keymap; + struct xkb_state *state; + int32_t device_id; +}; + +static bool terminate; + +static int +select_xkb_events_for_device(xcb_connection_t *conn, int32_t device_id) +{ + enum { + required_events = + (XCB_XKB_EVENT_TYPE_NEW_KEYBOARD_NOTIFY | + XCB_XKB_EVENT_TYPE_MAP_NOTIFY | + XCB_XKB_EVENT_TYPE_STATE_NOTIFY), + + required_nkn_details = + (XCB_XKB_NKN_DETAIL_KEYCODES), + + required_map_parts = + (XCB_XKB_MAP_PART_KEY_TYPES | + XCB_XKB_MAP_PART_KEY_SYMS | + XCB_XKB_MAP_PART_MODIFIER_MAP | + XCB_XKB_MAP_PART_EXPLICIT_COMPONENTS | + XCB_XKB_MAP_PART_KEY_ACTIONS | + XCB_XKB_MAP_PART_VIRTUAL_MODS | + XCB_XKB_MAP_PART_VIRTUAL_MOD_MAP), + + required_state_details = + (XCB_XKB_STATE_PART_MODIFIER_BASE | + XCB_XKB_STATE_PART_MODIFIER_LATCH | + XCB_XKB_STATE_PART_MODIFIER_LOCK | + XCB_XKB_STATE_PART_GROUP_BASE | + XCB_XKB_STATE_PART_GROUP_LATCH | + XCB_XKB_STATE_PART_GROUP_LOCK), + }; + + static const xcb_xkb_select_events_details_t details = { + .affectNewKeyboard = required_nkn_details, + .newKeyboardDetails = required_nkn_details, + .affectState = required_state_details, + .stateDetails = required_state_details, + }; + + xcb_void_cookie_t cookie = + xcb_xkb_select_events_aux_checked(conn, + device_id, + required_events, /* affectWhich */ + 0, /* clear */ + 0, /* selectAll */ + required_map_parts, /* affectMap */ + required_map_parts, /* map */ + &details); /* details */ + + xcb_generic_error_t *error = xcb_request_check(conn, cookie); + if (error) { + free(error); + return -1; + } + + return 0; +} + +static int +update_keymap(struct keyboard *kbd) +{ + struct xkb_keymap *new_keymap; + struct xkb_state *new_state; + + new_keymap = xkb_x11_keymap_new_from_device(kbd->ctx, kbd->conn, + kbd->device_id, 0); + if (!new_keymap) + goto err_out; + + new_state = xkb_x11_state_new_from_device(new_keymap, kbd->conn, + kbd->device_id); + if (!new_state) + goto err_keymap; + + if (kbd->keymap) + printf("Keymap updated!\n"); + + xkb_state_unref(kbd->state); + xkb_keymap_unref(kbd->keymap); + kbd->keymap = new_keymap; + kbd->state = new_state; + return 0; + +err_keymap: + xkb_keymap_unref(new_keymap); +err_out: + return -1; +} + +static int +init_kbd(struct keyboard *kbd, xcb_connection_t *conn, uint8_t first_xkb_event, + int32_t device_id, struct xkb_context *ctx) +{ + int ret; + + kbd->conn = conn; + kbd->first_xkb_event = first_xkb_event; + kbd->ctx = ctx; + kbd->keymap = NULL; + kbd->state = NULL; + kbd->device_id = device_id; + + ret = update_keymap(kbd); + if (ret) + goto err_out; + + ret = select_xkb_events_for_device(conn, device_id); + if (ret) + goto err_state; + + return 0; + +err_state: + xkb_state_unref(kbd->state); + xkb_keymap_unref(kbd->keymap); +err_out: + return -1; +} + +static void +deinit_kbd(struct keyboard *kbd) +{ + xkb_state_unref(kbd->state); + xkb_keymap_unref(kbd->keymap); +} + +static void +process_xkb_event(xcb_generic_event_t *gevent, struct keyboard *kbd) +{ + union xkb_event { + struct { + uint8_t response_type; + uint8_t xkbType; + uint16_t sequence; + xcb_timestamp_t time; + uint8_t deviceID; + } any; + xcb_xkb_new_keyboard_notify_event_t new_keyboard_notify; + xcb_xkb_map_notify_event_t map_notify; + xcb_xkb_state_notify_event_t state_notify; + } *event = (union xkb_event *) gevent; + + if (event->any.deviceID != kbd->device_id) + return; + + /* + * XkbNewKkdNotify and XkbMapNotify together capture all sorts of keymap + * updates (e.g. xmodmap, xkbcomp, setxkbmap), with minimal redundent + * recompilations. + */ + switch (event->any.xkbType) { + case XCB_XKB_NEW_KEYBOARD_NOTIFY: + if (event->new_keyboard_notify.changed & XCB_XKB_NKN_DETAIL_KEYCODES) + update_keymap(kbd); + break; + + case XCB_XKB_MAP_NOTIFY: + update_keymap(kbd); + break; + + case XCB_XKB_STATE_NOTIFY: + xkb_state_update_mask(kbd->state, + event->state_notify.baseMods, + event->state_notify.latchedMods, + event->state_notify.lockedMods, + event->state_notify.baseGroup, + event->state_notify.latchedGroup, + event->state_notify.lockedGroup); + break; + } +} + +static void +process_event(xcb_generic_event_t *gevent, struct keyboard *kbd) +{ + switch (gevent->response_type) { + case XCB_KEY_PRESS: { + xcb_key_press_event_t *event = (xcb_key_press_event_t *) gevent; + xkb_keycode_t keycode = event->detail; + + test_print_keycode_state(kbd->state, NULL, keycode); + + /* Exit on ESC. */ + if (keycode == 9) + terminate = true; + break; + } + default: + if (gevent->response_type == kbd->first_xkb_event) + process_xkb_event(gevent, kbd); + break; + } +} + +static int +loop(xcb_connection_t *conn, struct keyboard *kbd) +{ + while (!terminate) { + xcb_generic_event_t *event; + + switch (xcb_connection_has_error(conn)) { + case 0: + break; + case XCB_CONN_ERROR: + fprintf(stderr, + "Closed connection to X server: connection error\n"); + return -1; + case XCB_CONN_CLOSED_EXT_NOTSUPPORTED: + fprintf(stderr, + "Closed connection to X server: extension not supported\n"); + return -1; + default: + fprintf(stderr, + "Closed connection to X server: error code %d\n", + xcb_connection_has_error(conn)); + return -1; + } + + event = xcb_wait_for_event(conn); + process_event(event, kbd); + free(event); + } + + return 0; +} + +static int +create_capture_window(xcb_connection_t *conn) +{ + xcb_generic_error_t *error; + xcb_void_cookie_t cookie; + xcb_screen_t *screen = + xcb_setup_roots_iterator(xcb_get_setup(conn)).data; + xcb_window_t window = xcb_generate_id(conn); + uint32_t values[2] = { + screen->white_pixel, + XCB_EVENT_MASK_KEY_PRESS, + }; + + cookie = xcb_create_window_checked(conn, XCB_COPY_FROM_PARENT, + window, screen->root, + 10, 10, 100, 100, 1, + XCB_WINDOW_CLASS_INPUT_OUTPUT, + screen->root_visual, + XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK, + values); + if ((error = xcb_request_check(conn, cookie)) != NULL) { + free(error); + return -1; + } + + cookie = xcb_map_window_checked(conn, window); + if ((error = xcb_request_check(conn, cookie)) != NULL) { + free(error); + return -1; + } + + return 0; +} + +int +main(int argc, char *argv[]) +{ + int ret; + xcb_connection_t *conn; + uint8_t first_xkb_event; + int32_t core_kbd_device_id; + struct xkb_context *ctx; + struct keyboard core_kbd; + + setlocale(LC_ALL, ""); + + conn = xcb_connect(NULL, NULL); + if (!conn || xcb_connection_has_error(conn)) { + fprintf(stderr, "Couldn't connect to X server: error code %d\n", + conn ? xcb_connection_has_error(conn) : -1); + ret = -1; + goto err_out; + } + + ret = xkb_x11_setup_xkb_extension(conn, + XKB_X11_MIN_MAJOR_XKB_VERSION, + XKB_X11_MIN_MINOR_XKB_VERSION, + XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS, + NULL, NULL, &first_xkb_event, NULL); + if (!ret) { + fprintf(stderr, "Couldn't setup XKB extension\n"); + goto err_conn; + } + + ctx = test_get_context(0); + if (!ctx) { + ret = -1; + fprintf(stderr, "Couldn't create xkb context\n"); + goto err_conn; + } + + core_kbd_device_id = xkb_x11_get_core_keyboard_device_id(conn); + if (core_kbd_device_id == -1) { + ret = -1; + fprintf(stderr, "Couldn't find core keyboard device\n"); + goto err_ctx; + } + + ret = init_kbd(&core_kbd, conn, first_xkb_event, core_kbd_device_id, ctx); + if (ret) { + fprintf(stderr, "Couldn't initialize core keyboard device\n"); + goto err_ctx; + } + + ret = create_capture_window(conn); + if (ret) { + fprintf(stderr, "Couldn't create a capture window\n"); + goto err_core_kbd; + } + + system("stty -echo"); + ret = loop(conn, &core_kbd); + system("stty echo"); + +err_core_kbd: + deinit_kbd(&core_kbd); +err_ctx: + xkb_context_unref(ctx); +err_conn: + xcb_disconnect(conn); +err_out: + exit(ret == 0 ? EXIT_SUCCESS : EXIT_FAILURE); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/keyseq.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/keyseq.c new file mode 100644 index 0000000..05c7957 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/keyseq.c @@ -0,0 +1,484 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "evdev-scancodes.h" +#include "test.h" + +int +main(void) +{ + struct xkb_context *ctx = test_get_context(0); + struct xkb_keymap *keymap; + + assert(ctx); + keymap = test_compile_rules(ctx, "evdev", "evdev", + "us,il,ru,de", ",,phonetic,neo", + "grp:alt_shift_toggle,grp:menu_toggle"); + assert(keymap); + + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_E, BOTH, XKB_KEY_e, NEXT, + KEY_L, BOTH, XKB_KEY_l, NEXT, + KEY_L, BOTH, XKB_KEY_l, NEXT, + KEY_O, BOTH, XKB_KEY_o, FINISH)); + + /* Simple shifted level. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_E, BOTH, XKB_KEY_E, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_L, BOTH, XKB_KEY_l, NEXT, + KEY_O, BOTH, XKB_KEY_o, FINISH)); + + /* Key repeat shifted and unshifted in the middle. */ + assert(test_key_seq(keymap, + KEY_H, DOWN, XKB_KEY_h, NEXT, + KEY_H, REPEAT, XKB_KEY_h, NEXT, + KEY_H, REPEAT, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_H, REPEAT, XKB_KEY_H, NEXT, + KEY_H, REPEAT, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, REPEAT, XKB_KEY_h, NEXT, + KEY_H, REPEAT, XKB_KEY_h, NEXT, + KEY_H, UP, XKB_KEY_h, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + /* Base modifier cleared on key release... */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_E, BOTH, XKB_KEY_E, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_O, BOTH, XKB_KEY_O, FINISH)); + + /* ... But only by the keycode that set it. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_E, BOTH, XKB_KEY_E, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_RIGHTSHIFT, UP, XKB_KEY_Shift_R, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_O, BOTH, XKB_KEY_O, FINISH)); + + /* + * A base modifier should only be cleared when no other key affecting + * the modifier is down. + */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_E, BOTH, XKB_KEY_E, NEXT, + KEY_RIGHTSHIFT, DOWN, XKB_KEY_Shift_R, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_RIGHTSHIFT, UP, XKB_KEY_Shift_R, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_O, BOTH, XKB_KEY_o, FINISH)); + + /* + * Two key presses from the same key (e.g. if two keyboards use the + * same xkb_state) should only be released after two releases. + */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + /* Same as above with locked modifiers. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + /* Group switching / locking. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_E, BOTH, XKB_KEY_e, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_K, BOTH, XKB_KEY_hebrew_lamed, NEXT, + KEY_F, BOTH, XKB_KEY_hebrew_kaph, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_O, BOTH, XKB_KEY_o, FINISH)); + + assert(test_key_seq(keymap, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTALT, UP, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, FINISH)); + + assert(test_key_seq(keymap, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, FINISH)); + + /* Locked modifiers. */ + assert(test_key_seq(keymap, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_H, BOTH, XKB_KEY_H, NEXT, + KEY_E, BOTH, XKB_KEY_E, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_O, BOTH, XKB_KEY_O, FINISH)); + + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_E, BOTH, XKB_KEY_e, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_O, BOTH, XKB_KEY_o, FINISH)); + + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_Caps_Lock, NEXT, + KEY_E, BOTH, XKB_KEY_E, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_L, BOTH, XKB_KEY_L, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_O, BOTH, XKB_KEY_O, FINISH)); + + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_E, BOTH, XKB_KEY_e, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_L, BOTH, XKB_KEY_l, NEXT, + KEY_L, BOTH, XKB_KEY_l, NEXT, + KEY_O, BOTH, XKB_KEY_o, FINISH)); + + /* + * A key release affecting a locked modifier should clear it + * regardless of the key press. + */ + /* assert(test_key_seq(keymap, */ + /* KEY_H, BOTH, XKB_KEY_h, NEXT, */ + /* KEY_CAPSLOCK, DOWN, XKB_KEY_Caps_Lock, NEXT, */ + /* KEY_E, BOTH, XKB_KEY_E, NEXT, */ + /* KEY_L, BOTH, XKB_KEY_L, NEXT, */ + /* KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, */ + /* KEY_L, BOTH, XKB_KEY_L, NEXT, */ + /* KEY_CAPSLOCK, UP, XKB_KEY_Caps_Lock, NEXT, */ + /* KEY_O, BOTH, XKB_KEY_o, FINISH)); */ + + /* Simple Num Lock sanity check. */ + assert(test_key_seq(keymap, + KEY_KP1, BOTH, XKB_KEY_KP_End, NEXT, + KEY_NUMLOCK, BOTH, XKB_KEY_Num_Lock, NEXT, + KEY_KP1, BOTH, XKB_KEY_KP_1, NEXT, + KEY_KP2, BOTH, XKB_KEY_KP_2, NEXT, + KEY_NUMLOCK, BOTH, XKB_KEY_Num_Lock, NEXT, + KEY_KP2, BOTH, XKB_KEY_KP_Down, FINISH)); + + /* Test that the aliases in the ru(phonetic) symbols map work. */ + assert(test_key_seq(keymap, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_1, BOTH, XKB_KEY_1, NEXT, + KEY_Q, BOTH, XKB_KEY_Cyrillic_ya, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_1, BOTH, XKB_KEY_exclam, NEXT, + KEY_Q, BOTH, XKB_KEY_Cyrillic_YA, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_V, BOTH, XKB_KEY_Cyrillic_zhe, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_1, BOTH, XKB_KEY_1, NEXT, + KEY_V, BOTH, XKB_KEY_Cyrillic_ZHE, NEXT, + KEY_RIGHTSHIFT, DOWN, XKB_KEY_Shift_R, NEXT, + KEY_V, BOTH, XKB_KEY_Cyrillic_zhe, NEXT, + KEY_RIGHTSHIFT, UP, XKB_KEY_Shift_R, NEXT, + KEY_V, BOTH, XKB_KEY_Cyrillic_ZHE, FINISH)); + +#define KS(name) xkb_keysym_from_name(name, 0) + + /* Test that levels (1-5) in de(neo) symbols map work. */ + assert(test_key_seq(keymap, + /* Switch to the group. */ + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + + /* Level 1. */ + KEY_1, BOTH, XKB_KEY_1, NEXT, + KEY_Q, BOTH, XKB_KEY_x, NEXT, + KEY_KP7, BOTH, XKB_KEY_KP_7, NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + + /* Level 2 with Shift. */ + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_1, BOTH, XKB_KEY_degree, NEXT, + KEY_Q, BOTH, XKB_KEY_X, NEXT, + KEY_KP7, BOTH, KS("U2714"), NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + /* + * XXX: de(neo) uses shift(both_capslock) which causes + * the interesting result in the next line. Since it's + * a key release, it doesn't actually lock the modifier, + * and applications by-and-large ignore the keysym on + * release(?). Is this a problem? + */ + KEY_LEFTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT, + + /* Level 2 with the Lock modifier. */ + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_RIGHTSHIFT, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_6, BOTH, XKB_KEY_6, NEXT, + KEY_H, BOTH, XKB_KEY_S, NEXT, + KEY_KP3, BOTH, XKB_KEY_KP_3, NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_RIGHTSHIFT, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT, + + /* Level 3. */ + KEY_CAPSLOCK, DOWN, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_6, BOTH, XKB_KEY_cent, NEXT, + KEY_Q, BOTH, XKB_KEY_ellipsis, NEXT, + KEY_KP7, BOTH, KS("U2195"), NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + + /* Level 4. */ + KEY_CAPSLOCK, DOWN, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_5, BOTH, XKB_KEY_malesymbol, NEXT, + KEY_E, BOTH, XKB_KEY_Greek_lambda, NEXT, + KEY_SPACE, BOTH, XKB_KEY_nobreakspace, NEXT, + KEY_KP8, BOTH, XKB_KEY_intersection, NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + + /* Level 5. */ + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT, + /* XXX: xkeyboard-config is borked when de(neo) is + * not the first group - not our fault. We test + * Level5 seprately below with only de(neo). */ + /* KEY_5, BOTH, XKB_KEY_periodcentered, NEXT, */ + /* KEY_E, BOTH, XKB_KEY_Up, NEXT, */ + /* KEY_SPACE, BOTH, XKB_KEY_KP_0, NEXT, */ + /* KEY_KP8, BOTH, XKB_KEY_KP_Up, NEXT, */ + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT, + + KEY_V, BOTH, XKB_KEY_p, FINISH)); + + xkb_keymap_unref(keymap); + keymap = test_compile_rules(ctx, "evdev", "", "de", "neo", ""); + assert(keymap); + assert(test_key_seq(keymap, + /* Level 5. */ + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT, + KEY_5, BOTH, XKB_KEY_periodcentered, NEXT, + KEY_E, BOTH, XKB_KEY_Up, NEXT, + KEY_SPACE, BOTH, XKB_KEY_KP_0, NEXT, + KEY_KP8, BOTH, XKB_KEY_KP_Up, NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT, + + /* Level 6. */ + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT, + KEY_RIGHTSHIFT, DOWN, XKB_KEY_Shift_R, NEXT, + KEY_5, BOTH, XKB_KEY_NoSymbol, NEXT, + KEY_8, BOTH, XKB_KEY_ISO_Left_Tab, NEXT, + KEY_E, BOTH, XKB_KEY_Up, NEXT, + KEY_SPACE, BOTH, XKB_KEY_KP_0, NEXT, + KEY_KP8, BOTH, XKB_KEY_KP_Up, NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_RIGHTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT, + + /* Level 7. */ + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_5, BOTH, KS("U2221"), NEXT, + KEY_E, BOTH, XKB_KEY_Greek_LAMBDA, NEXT, + KEY_SPACE, BOTH, KS("U202F"), NEXT, + KEY_KP8, BOTH, KS("U22C2"), NEXT, + KEY_ESC, BOTH, XKB_KEY_Escape, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT, + + /* Level 8. */ + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level5_Shift, NEXT, + KEY_CAPSLOCK, DOWN, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_RIGHTSHIFT, DOWN, XKB_KEY_Shift_R, NEXT, + /* This doesn't actually lock Level5. Not our fault. */ + KEY_TAB, BOTH, XKB_KEY_ISO_Level5_Lock, NEXT, + KEY_RIGHTSHIFT, UP, XKB_KEY_Caps_Lock, NEXT, + KEY_CAPSLOCK, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level5_Shift, NEXT, + + KEY_V, BOTH, XKB_KEY_p, FINISH)); + + + xkb_keymap_unref(keymap); + keymap = test_compile_rules(ctx, "evdev", "", "us,il,ru", "", + "grp:alt_shift_toggle_bidir,grp:menu_toggle"); + assert(keymap); + + assert(test_key_seq(keymap, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTALT, UP, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, FINISH)); + + assert(test_key_seq(keymap, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, FINISH)); + + /* Check backwards (negative) group switching and wrapping. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_H, BOTH, XKB_KEY_Cyrillic_er, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_LEFTALT, BOTH, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_LEFTALT, BOTH, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_LEFTALT, BOTH, XKB_KEY_ISO_Prev_Group, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_H, BOTH, XKB_KEY_Cyrillic_er, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + xkb_keymap_unref(keymap); + keymap = test_compile_rules(ctx, "evdev", "", "us,il,ru", "", + "grp:switch,grp:lswitch,grp:menu_toggle"); + assert(keymap); + + /* Test depressed group works (Mode_switch). */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + /* Test locked+depressed group works, with wrapping and accumulation. */ + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_Cyrillic_er, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Mode_switch, NEXT, + /* Should wrap back to first group. */ + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_Cyrillic_er, NEXT, + KEY_COMPOSE, BOTH, XKB_KEY_ISO_Next_Group, NEXT, + KEY_H, BOTH, XKB_KEY_h, NEXT, + /* Two SetGroup(+1)'s should add up. */ + KEY_RIGHTALT, DOWN, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_Cyrillic_er, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Mode_switch, NEXT, + KEY_H, BOTH, XKB_KEY_hebrew_yod, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_H, BOTH, XKB_KEY_h, FINISH)); + + xkb_keymap_unref(keymap); + keymap = test_compile_rules(ctx, "evdev", "", "us", "euro", ""); + assert(keymap); + + assert(test_key_seq(keymap, + KEY_5, BOTH, XKB_KEY_5, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_5, BOTH, XKB_KEY_EuroSign, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, FINISH)); + + xkb_keymap_unref(keymap); + keymap = test_compile_file(ctx, "keymaps/unbound-vmod.xkb"); + assert(keymap); + + assert(test_key_seq(keymap, + KEY_H, BOTH, XKB_KEY_h, NEXT, + KEY_Z, BOTH, XKB_KEY_y, NEXT, + KEY_MINUS, BOTH, XKB_KEY_ssharp, NEXT, + KEY_Z, BOTH, XKB_KEY_y, FINISH)); + + xkb_keymap_unref(keymap); + keymap = test_compile_rules(ctx, "evdev", "applealu_ansi", "us", "", + "terminate:ctrl_alt_bksp"); + assert(keymap); + + assert(test_key_seq(keymap, + KEY_5, BOTH, XKB_KEY_5, NEXT, + KEY_KP1, BOTH, XKB_KEY_KP_1, NEXT, + KEY_NUMLOCK, BOTH, XKB_KEY_Clear, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_KP1, BOTH, XKB_KEY_KP_1, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_KP1, BOTH, XKB_KEY_KP_1, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_KP1, BOTH, XKB_KEY_KP_1, NEXT, + KEY_LEFTSHIFT, UP, XKB_KEY_Shift_L, NEXT, + KEY_CAPSLOCK, BOTH, XKB_KEY_Caps_Lock, NEXT, + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + xkb_keymap_unref(keymap); + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/keysym.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/keysym.c new file mode 100644 index 0000000..439622c --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/keysym.c @@ -0,0 +1,200 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "test.h" +#include "keysym.h" /* For unexported is_lower/upper/keypad() */ + +static int +test_string(const char *string, xkb_keysym_t expected) +{ + xkb_keysym_t keysym; + + keysym = xkb_keysym_from_name(string, 0); + + fprintf(stderr, "Expected string %s -> %x\n", string, expected); + fprintf(stderr, "Received string %s -> %x\n\n", string, keysym); + + return keysym == expected; +} + +static int +test_casestring(const char *string, xkb_keysym_t expected) +{ + xkb_keysym_t keysym; + + keysym = xkb_keysym_from_name(string, XKB_KEYSYM_CASE_INSENSITIVE); + + fprintf(stderr, "Expected casestring %s -> %x\n", string, expected); + fprintf(stderr, "Received casestring %s -> %x\n\n", string, keysym); + + return keysym == expected; +} + +static int +test_keysym(xkb_keysym_t keysym, const char *expected) +{ + char s[16]; + + xkb_keysym_get_name(keysym, s, sizeof(s)); + + fprintf(stderr, "Expected keysym %#x -> %s\n", keysym, expected); + fprintf(stderr, "Received keysym %#x -> %s\n\n", keysym, s); + + return streq(s, expected); +} + +static int +test_utf8(xkb_keysym_t keysym, const char *expected) +{ + char s[8]; + int ret; + + ret = xkb_keysym_to_utf8(keysym, s, sizeof(s)); + if (ret <= 0) + return ret; + + fprintf(stderr, "Expected keysym %#x -> %s (%u bytes)\n", keysym, expected, + (unsigned) strlen(expected)); + fprintf(stderr, "Received keysym %#x -> %s (%u bytes)\n\n", keysym, s, + (unsigned) strlen(s)); + + return streq(s, expected); +} + +int +main(void) +{ + assert(test_string("Undo", 0xFF65)); + assert(test_string("ThisKeyShouldNotExist", XKB_KEY_NoSymbol)); + assert(test_string("XF86_Switch_VT_5", 0x1008FE05)); + assert(test_string("VoidSymbol", 0xFFFFFF)); + assert(test_string("U4567", 0x1004567)); + assert(test_string("0x10203040", 0x10203040)); + assert(test_string("a", 0x61)); + assert(test_string("A", 0x41)); + assert(test_string("ch", 0xfea0)); + assert(test_string("Ch", 0xfea1)); + assert(test_string("CH", 0xfea2)); + assert(test_string("THORN", 0x00de)); + assert(test_string("Thorn", 0x00de)); + assert(test_string("thorn", 0x00fe)); + + assert(test_keysym(0x1008FF56, "XF86Close")); + assert(test_keysym(0x0, "NoSymbol")); + assert(test_keysym(0x1008FE20, "XF86Ungrab")); + assert(test_keysym(0x01001234, "U1234")); + /* 16-bit unicode padded to width 4. */ + assert(test_keysym(0x010002DE, "U02DE")); + /* 32-bit unicode padded to width 8. */ + assert(test_keysym(0x0101F4A9, "U0001F4A9")); + + assert(test_casestring("Undo", 0xFF65)); + assert(test_casestring("UNDO", 0xFF65)); + assert(test_casestring("A", 0x61)); + assert(test_casestring("a", 0x61)); + assert(test_casestring("ThisKeyShouldNotExist", XKB_KEY_NoSymbol)); + assert(test_casestring("XF86_Switch_vT_5", 0x1008FE05)); + assert(test_casestring("xF86_SwitcH_VT_5", 0x1008FE05)); + assert(test_casestring("xF86SwiTch_VT_5", 0x1008FE05)); + assert(test_casestring("xF86Switch_vt_5", 0x1008FE05)); + assert(test_casestring("VoidSymbol", 0xFFFFFF)); + assert(test_casestring("vOIDsymBol", 0xFFFFFF)); + assert(test_casestring("U4567", 0x1004567)); + assert(test_casestring("u4567", 0x1004567)); + assert(test_casestring("0x10203040", 0x10203040)); + assert(test_casestring("0X10203040", 0x10203040)); + assert(test_casestring("THORN", 0x00fe)); + assert(test_casestring("Thorn", 0x00fe)); + assert(test_casestring("thorn", 0x00fe)); + + assert(test_utf8(XKB_KEY_y, "y")); + assert(test_utf8(XKB_KEY_u, "u")); + assert(test_utf8(XKB_KEY_m, "m")); + assert(test_utf8(XKB_KEY_Cyrillic_em, "м")); + assert(test_utf8(XKB_KEY_Cyrillic_u, "у")); + assert(test_utf8(XKB_KEY_exclam, "!")); + assert(test_utf8(XKB_KEY_oslash, "ø")); + assert(test_utf8(XKB_KEY_hebrew_aleph, "א")); + assert(test_utf8(XKB_KEY_Arabic_sheen, "ش")); + + assert(test_utf8(XKB_KEY_space, " ")); + assert(test_utf8(XKB_KEY_KP_Space, " ")); + assert(test_utf8(XKB_KEY_BackSpace, "\b")); + assert(test_utf8(XKB_KEY_Escape, "\033")); + assert(test_utf8(XKB_KEY_KP_Separator, ",")); + assert(test_utf8(XKB_KEY_KP_Decimal, ".")); + assert(test_utf8(XKB_KEY_Tab, "\t")); + assert(test_utf8(XKB_KEY_KP_Tab, "\t")); + assert(test_utf8(XKB_KEY_hyphen, "­")); + assert(test_utf8(XKB_KEY_Linefeed, "\n")); + assert(test_utf8(XKB_KEY_Return, "\r")); + assert(test_utf8(XKB_KEY_KP_Enter, "\r")); + assert(test_utf8(XKB_KEY_KP_Equal, "=")); + assert(test_utf8(XKB_KEY_9, "9")); + assert(test_utf8(XKB_KEY_KP_9, "9")); + assert(test_utf8(XKB_KEY_KP_Multiply, "*")); + assert(test_utf8(XKB_KEY_KP_Subtract, "-")); + + assert(xkb_keysym_is_lower(XKB_KEY_a)); + assert(xkb_keysym_is_lower(XKB_KEY_Greek_lambda)); + assert(xkb_keysym_is_lower(xkb_keysym_from_name("U03b1", 0))); /* GREEK SMALL LETTER ALPHA */ + assert(xkb_keysym_is_lower(xkb_keysym_from_name("U03af", 0))); /* GREEK SMALL LETTER IOTA WITH TONOS */ + + assert(xkb_keysym_is_upper(XKB_KEY_A)); + assert(xkb_keysym_is_upper(XKB_KEY_Greek_LAMBDA)); + assert(xkb_keysym_is_upper(xkb_keysym_from_name("U0391", 0))); /* GREEK CAPITAL LETTER ALPHA */ + assert(xkb_keysym_is_upper(xkb_keysym_from_name("U0388", 0))); /* GREEK CAPITAL LETTER EPSILON WITH TONOS */ + + assert(!xkb_keysym_is_upper(XKB_KEY_a)); + assert(!xkb_keysym_is_lower(XKB_KEY_A)); + assert(!xkb_keysym_is_lower(XKB_KEY_Return)); + assert(!xkb_keysym_is_upper(XKB_KEY_Return)); + assert(!xkb_keysym_is_lower(XKB_KEY_hebrew_aleph)); + assert(!xkb_keysym_is_upper(XKB_KEY_hebrew_aleph)); + assert(!xkb_keysym_is_upper(xkb_keysym_from_name("U05D0", 0))); /* HEBREW LETTER ALEF */ + assert(!xkb_keysym_is_lower(xkb_keysym_from_name("U05D0", 0))); /* HEBREW LETTER ALEF */ + assert(!xkb_keysym_is_lower(XKB_KEY_8)); + assert(!xkb_keysym_is_upper(XKB_KEY_8)); + + assert(xkb_keysym_is_keypad(XKB_KEY_KP_Enter)); + assert(xkb_keysym_is_keypad(XKB_KEY_KP_6)); + assert(xkb_keysym_is_keypad(XKB_KEY_KP_Add)); + assert(!xkb_keysym_is_keypad(XKB_KEY_Num_Lock)); + assert(!xkb_keysym_is_keypad(XKB_KEY_1)); + assert(!xkb_keysym_is_keypad(XKB_KEY_Return)); + + assert(xkb_keysym_to_upper(XKB_KEY_a) == XKB_KEY_A); + assert(xkb_keysym_to_upper(XKB_KEY_A) == XKB_KEY_A); + assert(xkb_keysym_to_lower(XKB_KEY_a) == XKB_KEY_a); + assert(xkb_keysym_to_lower(XKB_KEY_A) == XKB_KEY_a); + assert(xkb_keysym_to_upper(XKB_KEY_Return) == XKB_KEY_Return); + assert(xkb_keysym_to_lower(XKB_KEY_Return) == XKB_KEY_Return); + assert(xkb_keysym_to_upper(XKB_KEY_Greek_lambda) == XKB_KEY_Greek_LAMBDA); + assert(xkb_keysym_to_upper(XKB_KEY_Greek_LAMBDA) == XKB_KEY_Greek_LAMBDA); + assert(xkb_keysym_to_lower(XKB_KEY_Greek_lambda) == XKB_KEY_Greek_lambda); + assert(xkb_keysym_to_lower(XKB_KEY_Greek_LAMBDA) == XKB_KEY_Greek_lambda); + assert(xkb_keysym_to_upper(XKB_KEY_eacute) == XKB_KEY_Eacute); + assert(xkb_keysym_to_lower(XKB_KEY_Eacute) == XKB_KEY_eacute); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/log.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/log.c new file mode 100644 index 0000000..96e2566 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/log.c @@ -0,0 +1,119 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "test.h" +#include "context.h" + +#pragma GCC diagnostic ignored "-Wmissing-format-attribute" + +static const char * +log_level_to_string(enum xkb_log_level level) +{ + switch (level) { + case XKB_LOG_LEVEL_CRITICAL: + return "critical"; + case XKB_LOG_LEVEL_ERROR: + return "error"; + case XKB_LOG_LEVEL_WARNING: + return "warning"; + case XKB_LOG_LEVEL_INFO: + return "info"; + case XKB_LOG_LEVEL_DEBUG: + return "debug"; + } + + return "unknown"; +} + +ATTR_PRINTF(3, 0) static void +log_fn(struct xkb_context *ctx, enum xkb_log_level level, + const char *fmt, va_list args) +{ + char *s; + int size; + darray_char *ls = xkb_context_get_user_data(ctx); + assert(ls); + + size = vasprintf(&s, fmt, args); + assert(size != -1); + + darray_append_string(*ls, log_level_to_string(level)); + darray_append_lit(*ls, ": "); + darray_append_string(*ls, s); + free(s); +} + +int +main(void) +{ + darray_char log_string; + struct xkb_context *ctx; + int ret; + + ret = setenv("XKB_LOG_LEVEL", "warn", 1); + assert(ret == 0); + ret = setenv("XKB_LOG_VERBOSITY", "5", 1); + assert(ret == 0); + ctx = test_get_context(0); + assert(ctx); + + darray_init(log_string); + xkb_context_set_user_data(ctx, &log_string); + xkb_context_set_log_fn(ctx, log_fn); + + log_warn(ctx, "first warning: %d\n", 87); + log_info(ctx, "first info\n"); + log_dbg(ctx, "first debug: %s\n", "hello"); + log_err(ctx, "first error: %lu\n", 115415UL); + log_vrb(ctx, 5, "first verbose 5\n"); + + xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_DEBUG); + log_warn(ctx, "second warning: %d\n", 87); + log_dbg(ctx, "second debug: %s %s\n", "hello", "world"); + log_info(ctx, "second info\n"); + log_err(ctx, "second error: %lu\n", 115415UL); + log_vrb(ctx, 6, "second verbose 6\n"); + + xkb_context_set_log_verbosity(ctx, 0); + xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); + log_warn(ctx, "third warning: %d\n", 87); + log_dbg(ctx, "third debug: %s %s\n", "hello", "world"); + log_info(ctx, "third info\n"); + log_err(ctx, "third error: %lu\n", 115415UL); + log_vrb(ctx, 0, "third verbose 0\n"); + + printf("%s", log_string.item); + + assert(streq(log_string.item, + "warning: first warning: 87\n" + "error: first error: 115415\n" + "warning: first verbose 5\n" + "warning: second warning: 87\n" + "debug: second debug: hello world\n" + "info: second info\n" + "error: second error: 115415\n")); + + xkb_context_unref(ctx); + darray_free(log_string); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/print-compiled-keymap.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/print-compiled-keymap.c new file mode 100644 index 0000000..7e57fdd --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/print-compiled-keymap.c @@ -0,0 +1,106 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "test.h" + +int +main(int argc, char *argv[]) +{ + int ret = EXIT_FAILURE; + int opt; + struct xkb_context *ctx; + struct xkb_keymap *keymap; + const char *rules = NULL; + const char *model = NULL; + const char *layout = NULL; + const char *variant = NULL; + const char *options = NULL; + const char *keymap_path = NULL; + char *dump; + + while ((opt = getopt(argc, argv, "r:m:l:v:o:k:h")) != -1) { + switch (opt) { + case 'r': + rules = optarg; + break; + case 'm': + model = optarg; + break; + case 'l': + layout = optarg; + break; + case 'v': + variant = optarg; + break; + case 'o': + options = optarg; + break; + case 'k': + keymap_path = optarg; + break; + case 'h': + case '?': + fprintf(stderr, "Usage: %s [-r ] [-m ] " + "[-l ] [-v ] [-o ]\n", + argv[0]); + fprintf(stderr, " or: %s -k \n", + argv[0]); + exit(EXIT_FAILURE); + } + } + + ctx = test_get_context(0); + if (!ctx) { + fprintf(stderr, "Couldn't create xkb context\n"); + goto err_out; + } + + if (keymap_path) + keymap = test_compile_file(ctx, keymap_path); + else + keymap = test_compile_rules(ctx, rules, model, layout, variant, + options); + if (!keymap) { + fprintf(stderr, "Couldn't create xkb keymap\n"); + goto err_ctx; + } + + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_FORMAT_TEXT_V1); + if (!dump) { + fprintf(stderr, "Couldn't get the keymap string\n"); + goto err_map; + } + + fputs(dump, stdout); + + ret = EXIT_SUCCESS; + free(dump); +err_map: + xkb_keymap_unref(keymap); +err_ctx: + xkb_context_unref(ctx); +err_out: + return ret; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/rmlvo-to-kccgst.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/rmlvo-to-kccgst.c new file mode 100644 index 0000000..5d15933 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/rmlvo-to-kccgst.c @@ -0,0 +1,86 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include + +#include "test.h" +#include "xkbcomp-priv.h" +#include "rules.h" + +int +main(int argc, char *argv[]) +{ + int opt; + struct xkb_rule_names rmlvo = { NULL }; + struct xkb_context *ctx; + struct xkb_component_names kccgst; + + while ((opt = getopt(argc, argv, "r:m:l:v:o:h")) != -1) { + switch (opt) { + case 'r': + rmlvo.rules = optarg; + break; + case 'm': + rmlvo.model = optarg; + break; + case 'l': + rmlvo.layout = optarg; + break; + case 'v': + rmlvo.variant = optarg; + break; + case 'o': + rmlvo.options = optarg; + break; + case 'h': + case '?': + fprintf(stderr, "Usage: %s [-r ] [-m ] " + "[-l ] [-v ] [-o ]\n", + argv[0]); + return 1; + } + } + + ctx = test_get_context(0); + if (!ctx) { + fprintf(stderr, "Failed to get xkb context\n"); + return 1; + } + + xkb_context_sanitize_rule_names(ctx, &rmlvo); + + if (!xkb_components_from_rules(ctx, &rmlvo, &kccgst)) + return 1; + + printf("keycodes: %s\n", kccgst.keycodes); + printf("types: %s\n", kccgst.types); + printf("compat: %s\n", kccgst.compat); + printf("symbols: %s\n", kccgst.symbols); + + free(kccgst.keycodes); + free(kccgst.types); + free(kccgst.compat); + free(kccgst.symbols); + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/rules-file.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/rules-file.c new file mode 100644 index 0000000..e91d546 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/rules-file.c @@ -0,0 +1,173 @@ +/* + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "test.h" +#include "xkbcomp-priv.h" +#include "rules.h" + +struct test_data { + /* Rules file */ + const char *rules; + + /* Input */ + const char *model; + const char *layout; + const char *variant; + const char *options; + + /* Expected output */ + const char *keycodes; + const char *types; + const char *compat; + const char *symbols; + + /* Or set this if xkb_components_from_rules() should fail. */ + bool should_fail; +}; + +static bool +test_rules(struct xkb_context *ctx, struct test_data *data) +{ + bool passed; + const struct xkb_rule_names rmlvo = { + data->rules, data->model, data->layout, data->variant, data->options + }; + struct xkb_component_names kccgst; + + fprintf(stderr, "\n\nChecking : %s\t%s\t%s\t%s\t%s\n", data->rules, + data->model, data->layout, data->variant, data->options); + + if (data->should_fail) + fprintf(stderr, "Expecting: FAILURE\n"); + else + fprintf(stderr, "Expecting: %s\t%s\t%s\t%s\n", + data->keycodes, data->types, data->compat, data->symbols); + + if (!xkb_components_from_rules(ctx, &rmlvo, &kccgst)) { + fprintf(stderr, "Received : FAILURE\n"); + return data->should_fail; + } + + fprintf(stderr, "Received : %s\t%s\t%s\t%s\n", + kccgst.keycodes, kccgst.types, kccgst.compat, kccgst.symbols); + + passed = streq(kccgst.keycodes, data->keycodes) && + streq(kccgst.types, data->types) && + streq(kccgst.compat, data->compat) && + streq(kccgst.symbols, data->symbols); + + free(kccgst.keycodes); + free(kccgst.types); + free(kccgst.compat); + free(kccgst.symbols); + + return passed; +} + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx; + + ctx = test_get_context(0); + assert(ctx); + + struct test_data test1 = { + .rules = "simple", + + .model = "my_model", .layout = "my_layout", .variant = "my_variant", + .options = "my_option", + + .keycodes = "my_keycodes", .types = "my_types", + .compat = "my_compat|some:compat", + .symbols = "my_symbols+extra_variant", + }; + assert(test_rules(ctx, &test1)); + + struct test_data test2 = { + .rules = "simple", + + .model = "", .layout = "", .variant = "", .options = "", + + .keycodes = "default_keycodes", .types = "default_types", + .compat = "default_compat", .symbols = "default_symbols", + }; + assert(test_rules(ctx, &test2)); + + struct test_data test3 = { + .rules = "groups", + + .model = "pc104", .layout = "foo", .variant = "", .options = "", + + .keycodes = "something(pc104)", .types = "default_types", + .compat = "default_compat", .symbols = "default_symbols", + }; + assert(test_rules(ctx, &test3)); + + struct test_data test4 = { + .rules = "groups", + + .model = "foo", .layout = "ar", .variant = "bar", .options = "", + + .keycodes = "default_keycodes", .types = "default_types", + .compat = "default_compat", .symbols = "my_symbols+(bar)", + }; + assert(test_rules(ctx, &test4)); + + struct test_data test5 = { + .rules = "simple", + + .model = NULL, .layout = "my_layout,second_layout", .variant = "my_variant", + .options = "my_option", + + .should_fail = true + }; + assert(test_rules(ctx, &test5)); + + struct test_data test6 = { + .rules = "index", + + .model = "", .layout = "br,al,cn,az", .variant = "", + .options = "some:opt", + + .keycodes = "default_keycodes", .types = "default_types", + .compat = "default_compat", + .symbols = "default_symbols+extra:1+extra:2+extra:3+extra:4", + }; + assert(test_rules(ctx, &test6)); + + struct test_data test7 = { + .rules = "multiple-options", + + .model = "my_model", .layout = "my_layout", .variant = "my_variant", + .options = "option3,option1,colon:opt,option11", + + .keycodes = "my_keycodes", .types = "my_types", + .compat = "my_compat+some:compat+group(bla)", + .symbols = "my_symbols+extra_variant+compose(foo)+keypad(bar)+altwin(menu)", + }; + assert(test_rules(ctx, &test7)); + + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/rulescomp.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/rulescomp.c new file mode 100644 index 0000000..67ffcb8 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/rulescomp.c @@ -0,0 +1,203 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "evdev-scancodes.h" +#include "test.h" + +static int +test_rmlvo_va(struct xkb_context *context, const char *rules, + const char *model, const char *layout, + const char *variant, const char *options, va_list ap) +{ + struct xkb_keymap *keymap; + int ret; + + keymap = test_compile_rules(context, rules, model, layout, variant, + options); + if (!keymap) + return 0; + + fprintf(stderr, "Compiled '%s' '%s' '%s' '%s' '%s'\n", + strnull(rules), strnull(model), strnull(layout), + strnull(variant), strnull(options)); + + ret = test_key_seq_va(keymap, ap); + + xkb_keymap_unref(keymap); + + return ret; +} + +static int +test_rmlvo(struct xkb_context *context, const char *rules, + const char *model, const char *layout, const char *variant, + const char *options, ...) +{ + va_list ap; + int ret; + + va_start(ap, options); + ret = test_rmlvo_va(context, rules, model, layout, variant, options, ap); + va_end(ap); + + return ret; +} + +static int +test_rmlvo_env(struct xkb_context *ctx, const char *rules, const char *model, + const char *layout, const char *variant, const char *options, + ...) +{ + va_list ap; + int ret; + + va_start (ap, options); + + if (!isempty(rules)) + setenv("XKB_DEFAULT_RULES", rules, 1); + else + unsetenv("XKB_DEFAULT_RULES"); + + if (!isempty(model)) + setenv("XKB_DEFAULT_MODEL", model, 1); + else + unsetenv("XKB_DEFAULT_MODEL"); + + if (!isempty(layout)) + setenv("XKB_DEFAULT_LAYOUT", layout, 1); + else + unsetenv("XKB_DEFAULT_LAYOUT"); + + if (!isempty(variant)) + setenv("XKB_DEFAULT_VARIANT", variant, 1); + else + unsetenv("XKB_DEFAULT_VARIANT"); + + if (!isempty(options)) + setenv("XKB_DEFAULT_OPTIONS", options, 1); + else + unsetenv("XKB_DEFAULT_OPTIONS"); + + ret = test_rmlvo_va(ctx, NULL, NULL, NULL, NULL, NULL, ap); + + va_end(ap); + + return ret; +} + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx = test_get_context(CONTEXT_ALLOW_ENVIRONMENT_NAMES); + + assert(ctx); + +#define KS(name) xkb_keysym_from_name(name, 0) + + assert(test_rmlvo(ctx, "evdev", "pc105", "us,il,ru,ca", ",,,multix", "grp:alts_toggle,ctrl:nocaps,compose:rwin", + KEY_Q, BOTH, XKB_KEY_q, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, NEXT, + KEY_Q, BOTH, XKB_KEY_slash, NEXT, + KEY_LEFTSHIFT, DOWN, XKB_KEY_Shift_L, NEXT, + KEY_Q, BOTH, XKB_KEY_Q, NEXT, + KEY_RIGHTMETA, BOTH, XKB_KEY_Multi_key, FINISH)); + assert(test_rmlvo(ctx, "evdev", "pc105", "us,in", "", "grp:alts_toggle", + KEY_A, BOTH, XKB_KEY_a, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, NEXT, + KEY_A, BOTH, KS("U094b"), FINISH)); + assert(test_rmlvo(ctx, "evdev", "pc105", "us", "intl", "", + KEY_GRAVE, BOTH, XKB_KEY_dead_grave, FINISH)); + assert(test_rmlvo(ctx, "evdev", "evdev", "us", "intl", "grp:alts_toggle", + KEY_GRAVE, BOTH, XKB_KEY_dead_grave, FINISH)); + + /* 20 is not a legal group; make sure this is handled gracefully. */ + assert(test_rmlvo(ctx, "evdev", "", "us:20", "", "", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + /* Don't choke on missing values in RMLVO. Should just skip them. + Currently generates us,us,ca. */ + assert(test_rmlvo(ctx, "evdev", "", "us,,ca", "", "grp:alts_toggle", + KEY_A, BOTH, XKB_KEY_a, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Next_Group, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, NEXT, + KEY_APOSTROPHE, BOTH, XKB_KEY_dead_grave, FINISH)); + + assert(test_rmlvo(ctx, "", "", "", "", "", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + assert(!test_rmlvo(ctx, "does-not-exist", "", "", "", "", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + assert(test_rmlvo_env(ctx, "evdev", "", "us", "", "", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + assert(test_rmlvo_env(ctx, "evdev", "", "us", "", "ctrl:nocaps", + KEY_CAPSLOCK, BOTH, XKB_KEY_Control_L, FINISH)); + + /* Ignores multix and generates us,ca. */ + assert(test_rmlvo_env(ctx, "evdev", "", "us,ca", ",,,multix", "grp:alts_toggle", + KEY_A, BOTH, XKB_KEY_a, NEXT, + KEY_LEFTALT, DOWN, XKB_KEY_Alt_L, NEXT, + KEY_RIGHTALT, DOWN, XKB_KEY_ISO_Next_Group, NEXT, + KEY_RIGHTALT, UP, XKB_KEY_ISO_Level3_Shift, NEXT, + KEY_LEFTALT, UP, XKB_KEY_Alt_L, NEXT, + KEY_GRAVE, UP, XKB_KEY_numbersign, FINISH)); + + assert(!test_rmlvo_env(ctx, "broken", "what-on-earth", "invalid", "", "", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + /* Ensure a keymap with an empty xkb_keycodes compiles fine. */ + assert(test_rmlvo_env(ctx, "base", "empty", "empty", "", "", + KEY_A, BOTH, XKB_KEY_NoSymbol, FINISH)); + + /* Has an illegal escape sequence, but shouldn't fail. */ + assert(test_rmlvo_env(ctx, "evdev", "", "cz", "bksl", "", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + xkb_context_unref(ctx); + + ctx = test_get_context(0); + assert(test_rmlvo_env(ctx, "broken", "but", "ignored", "per", "ctx flags", + KEY_A, BOTH, XKB_KEY_a, FINISH)); + + /* Test response to invalid flags. */ + { + struct xkb_rule_names rmlvo = { NULL }; + assert(!xkb_keymap_new_from_names(ctx, &rmlvo, -1)); + assert(!xkb_keymap_new_from_names(ctx, &rmlvo, 5453)); + } + + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/state.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/state.c new file mode 100644 index 0000000..8ae718c --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/state.c @@ -0,0 +1,709 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include +#include +#include + +#include "evdev-scancodes.h" +#include "test.h" + +/* Offset between evdev keycodes (where KEY_ESCAPE is 1), and the evdev XKB + * keycode set (where ESC is 9). */ +#define EVDEV_OFFSET 8 + +static void +print_state(struct xkb_state *state) +{ + struct xkb_keymap *keymap; + xkb_layout_index_t group; + xkb_mod_index_t mod; + xkb_led_index_t led; + + group = xkb_state_serialize_layout(state, XKB_STATE_LAYOUT_EFFECTIVE); + mod = xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE); + /* led = xkb_state_serialize_leds(state, XKB_STATE_LEDS); */ + if (!group && !mod /* && !led */) { + fprintf(stderr, "\tno state\n"); + return; + } + + keymap = xkb_state_get_keymap(state); + + for (group = 0; group < xkb_keymap_num_layouts(keymap); group++) { + if (xkb_state_layout_index_is_active(state, group, + XKB_STATE_LAYOUT_EFFECTIVE | + XKB_STATE_LAYOUT_DEPRESSED | + XKB_STATE_LAYOUT_LATCHED | + XKB_STATE_LAYOUT_LOCKED) <= 0) + continue; + fprintf(stderr, "\tgroup %s (%d): %s%s%s%s\n", + xkb_keymap_layout_get_name(keymap, group), + group, + xkb_state_layout_index_is_active(state, group, XKB_STATE_LAYOUT_EFFECTIVE) > 0 ? + "effective " : "", + xkb_state_layout_index_is_active(state, group, XKB_STATE_LAYOUT_DEPRESSED) > 0 ? + "depressed " : "", + xkb_state_layout_index_is_active(state, group, XKB_STATE_LAYOUT_LATCHED) > 0 ? + "latched " : "", + xkb_state_layout_index_is_active(state, group, XKB_STATE_LAYOUT_LOCKED) > 0 ? + "locked " : ""); + } + + for (mod = 0; mod < xkb_keymap_num_mods(keymap); mod++) { + if (xkb_state_mod_index_is_active(state, mod, + XKB_STATE_MODS_EFFECTIVE | + XKB_STATE_MODS_DEPRESSED | + XKB_STATE_MODS_LATCHED | + XKB_STATE_MODS_LOCKED) <= 0) + continue; + fprintf(stderr, "\tmod %s (%d): %s%s%s%s\n", + xkb_keymap_mod_get_name(keymap, mod), + mod, + xkb_state_mod_index_is_active(state, mod, XKB_STATE_MODS_EFFECTIVE) > 0 ? + "effective " : "", + xkb_state_mod_index_is_active(state, mod, XKB_STATE_MODS_DEPRESSED) > 0 ? + "depressed " : "", + xkb_state_mod_index_is_active(state, mod, XKB_STATE_MODS_LATCHED) > 0 ? + "latched " : "", + xkb_state_mod_index_is_active(state, mod, XKB_STATE_MODS_LOCKED) > 0 ? + "locked " : ""); + } + + for (led = 0; led < xkb_keymap_num_leds(keymap); led++) { + if (xkb_state_led_index_is_active(state, led) <= 0) + continue; + fprintf(stderr, "\tled %s (%d): active\n", + xkb_keymap_led_get_name(keymap, led), + led); + } +} + +static void +test_update_key(struct xkb_keymap *keymap) +{ + struct xkb_state *state = xkb_state_new(keymap); + const xkb_keysym_t *syms; + xkb_keysym_t one_sym; + int num_syms; + + assert(state); + + /* LCtrl down */ + xkb_state_update_key(state, KEY_LEFTCTRL + EVDEV_OFFSET, XKB_KEY_DOWN); + fprintf(stderr, "dumping state for LCtrl down:\n"); + print_state(state); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CTRL, + XKB_STATE_MODS_DEPRESSED) > 0); + + /* LCtrl + RAlt down */ + xkb_state_update_key(state, KEY_RIGHTALT + EVDEV_OFFSET, XKB_KEY_DOWN); + fprintf(stderr, "dumping state for LCtrl + RAlt down:\n"); + print_state(state); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CTRL, + XKB_STATE_MODS_DEPRESSED) > 0); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_ALT, + XKB_STATE_MODS_DEPRESSED) > 0); + assert(xkb_state_mod_names_are_active(state, XKB_STATE_MODS_DEPRESSED, + XKB_STATE_MATCH_ALL, + XKB_MOD_NAME_CTRL, + XKB_MOD_NAME_ALT, + NULL) > 0); + assert(xkb_state_mod_indices_are_active(state, XKB_STATE_MODS_DEPRESSED, + XKB_STATE_MATCH_ALL, + xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CTRL), + xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_ALT), + XKB_MOD_INVALID) > 0); + assert(xkb_state_mod_names_are_active(state, XKB_STATE_MODS_DEPRESSED, + XKB_STATE_MATCH_ALL, + XKB_MOD_NAME_ALT, + NULL) == 0); + assert(xkb_state_mod_names_are_active(state, XKB_STATE_MODS_DEPRESSED, + XKB_STATE_MATCH_ALL | + XKB_STATE_MATCH_NON_EXCLUSIVE, + XKB_MOD_NAME_ALT, + NULL) > 0); + assert(xkb_state_mod_names_are_active(state, XKB_STATE_MODS_DEPRESSED, + (XKB_STATE_MATCH_ANY | + XKB_STATE_MATCH_NON_EXCLUSIVE), + XKB_MOD_NAME_ALT, + NULL) > 0); + + /* RAlt down */ + xkb_state_update_key(state, KEY_LEFTCTRL + EVDEV_OFFSET, XKB_KEY_UP); + fprintf(stderr, "dumping state for RAlt down:\n"); + print_state(state); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CTRL, + XKB_STATE_MODS_EFFECTIVE) == 0); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_ALT, + XKB_STATE_MODS_DEPRESSED) > 0); + assert(xkb_state_mod_names_are_active(state, XKB_STATE_MODS_DEPRESSED, + XKB_STATE_MATCH_ANY, + XKB_MOD_NAME_CTRL, + XKB_MOD_NAME_ALT, + NULL) > 0); + assert(xkb_state_mod_names_are_active(state, XKB_STATE_MODS_LATCHED, + XKB_STATE_MATCH_ANY, + XKB_MOD_NAME_CTRL, + XKB_MOD_NAME_ALT, + NULL) == 0); + + /* none down */ + xkb_state_update_key(state, KEY_RIGHTALT + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_ALT, + XKB_STATE_MODS_EFFECTIVE) == 0); + + /* Caps locked */ + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS, + XKB_STATE_MODS_DEPRESSED) > 0); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP); + fprintf(stderr, "dumping state for Caps Lock:\n"); + print_state(state); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS, + XKB_STATE_MODS_DEPRESSED) == 0); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS, + XKB_STATE_MODS_LOCKED) > 0); + assert(xkb_state_led_name_is_active(state, XKB_LED_NAME_CAPS) > 0); + num_syms = xkb_state_key_get_syms(state, KEY_Q + EVDEV_OFFSET, &syms); + assert(num_syms == 1 && syms[0] == XKB_KEY_Q); + + /* Num Lock locked */ + xkb_state_update_key(state, KEY_NUMLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_NUMLOCK + EVDEV_OFFSET, XKB_KEY_UP); + fprintf(stderr, "dumping state for Caps Lock + Num Lock:\n"); + print_state(state); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS, + XKB_STATE_MODS_LOCKED) > 0); + assert(xkb_state_mod_name_is_active(state, "Mod2", + XKB_STATE_MODS_LOCKED) > 0); + num_syms = xkb_state_key_get_syms(state, KEY_KP1 + EVDEV_OFFSET, &syms); + assert(num_syms == 1 && syms[0] == XKB_KEY_KP_1); + assert(xkb_state_led_name_is_active(state, XKB_LED_NAME_NUM) > 0); + + /* Num Lock unlocked */ + xkb_state_update_key(state, KEY_NUMLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_NUMLOCK + EVDEV_OFFSET, XKB_KEY_UP); + + /* Switch to group 2 */ + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_led_name_is_active(state, "Group 2") > 0); + assert(xkb_state_led_name_is_active(state, XKB_LED_NAME_NUM) == 0); + + /* Switch back to group 1. */ + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_UP); + + /* Caps unlocked */ + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_mod_name_is_active(state, XKB_MOD_NAME_CAPS, + XKB_STATE_MODS_EFFECTIVE) == 0); + assert(xkb_state_led_name_is_active(state, XKB_LED_NAME_CAPS) == 0); + num_syms = xkb_state_key_get_syms(state, KEY_Q + EVDEV_OFFSET, &syms); + assert(num_syms == 1 && syms[0] == XKB_KEY_q); + + /* Multiple symbols */ + num_syms = xkb_state_key_get_syms(state, KEY_6 + EVDEV_OFFSET, &syms); + assert(num_syms == 5 && + syms[0] == XKB_KEY_H && syms[1] == XKB_KEY_E && + syms[2] == XKB_KEY_L && syms[3] == XKB_KEY_L && + syms[4] == XKB_KEY_O); + one_sym = xkb_state_key_get_one_sym(state, KEY_6 + EVDEV_OFFSET); + assert(one_sym == XKB_KEY_NoSymbol); + xkb_state_update_key(state, KEY_6 + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_6 + EVDEV_OFFSET, XKB_KEY_UP); + + one_sym = xkb_state_key_get_one_sym(state, KEY_5 + EVDEV_OFFSET); + assert(one_sym == XKB_KEY_5); + + xkb_state_unref(state); +} + +static void +test_serialisation(struct xkb_keymap *keymap) +{ + struct xkb_state *state = xkb_state_new(keymap); + xkb_mod_mask_t base_mods; + xkb_mod_mask_t latched_mods; + xkb_mod_mask_t locked_mods; + xkb_mod_mask_t effective_mods; + xkb_mod_index_t caps, shift, ctrl; + xkb_layout_index_t base_group = 0; + xkb_layout_index_t latched_group = 0; + xkb_layout_index_t locked_group = 0; + + assert(state); + + caps = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CAPS); + assert(caps != XKB_MOD_INVALID); + shift = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_SHIFT); + assert(shift != XKB_MOD_INVALID); + ctrl = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CTRL); + assert(ctrl != XKB_MOD_INVALID); + + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP); + base_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_DEPRESSED); + assert(base_mods == 0); + latched_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_LATCHED); + assert(latched_mods == 0); + locked_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_LOCKED); + assert(locked_mods == (1U << caps)); + effective_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE); + assert(effective_mods == locked_mods); + + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_DOWN); + base_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_DEPRESSED); + assert(base_mods == (1U << shift)); + latched_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_LATCHED); + assert(latched_mods == 0); + locked_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_LOCKED); + assert(locked_mods == (1U << caps)); + effective_mods = xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE); + assert(effective_mods == (base_mods | locked_mods)); + + base_mods |= (1U << ctrl); + xkb_state_update_mask(state, base_mods, latched_mods, locked_mods, + base_group, latched_group, locked_group); + + assert(xkb_state_mod_index_is_active(state, ctrl, XKB_STATE_MODS_DEPRESSED) > 0); + assert(xkb_state_mod_index_is_active(state, ctrl, XKB_STATE_MODS_EFFECTIVE) > 0); + + xkb_state_unref(state); +} + +static void +test_update_mask_mods(struct xkb_keymap *keymap) +{ + struct xkb_state *state = xkb_state_new(keymap); + xkb_mod_index_t caps, shift, num, alt, mod1, mod2; + enum xkb_state_component changed; + + assert(state); + + caps = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CAPS); + assert(caps != XKB_MOD_INVALID); + shift = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_SHIFT); + assert(shift != XKB_MOD_INVALID); + num = xkb_keymap_mod_get_index(keymap, "NumLock"); + assert(num != XKB_MOD_INVALID); + alt = xkb_keymap_mod_get_index(keymap, "Alt"); + assert(alt != XKB_MOD_INVALID); + mod1 = xkb_keymap_mod_get_index(keymap, "Mod1"); + assert(mod1 != XKB_MOD_INVALID); + mod2 = xkb_keymap_mod_get_index(keymap, "Mod2"); + assert(mod2 != XKB_MOD_INVALID); + + changed = xkb_state_update_mask(state, 1 << caps, 0, 0, 0, 0, 0); + assert(changed == (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_EFFECTIVE)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE) == + (1u << caps)); + + changed = xkb_state_update_mask(state, (1 << caps), 0, (1 << shift), 0, 0, 0); + assert(changed == (XKB_STATE_MODS_LOCKED | XKB_STATE_MODS_EFFECTIVE | + XKB_STATE_LEDS)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE) == + ((1u << caps) | (1u << shift))); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_DEPRESSED) == + (1u << caps)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_LATCHED) == 0); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_LOCKED) == + (1u << shift)); + + changed = xkb_state_update_mask(state, 0, 0, 0, 0, 0, 0); + assert(changed == (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LOCKED | + XKB_STATE_MODS_EFFECTIVE | XKB_STATE_LEDS)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE) == 0); + + changed = xkb_state_update_mask(state, (1 << alt), 0, 0, 0, 0, 0); + assert(changed == (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_EFFECTIVE)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE) == + ((1u << alt) | (1u << mod1))); + + changed = xkb_state_update_mask(state, 0, 0, (1 << num), 0, 0, 0); + assert(changed == (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LOCKED | + XKB_STATE_MODS_EFFECTIVE | XKB_STATE_LEDS)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE) == + ((1u << num) | (1u << mod2))); + + xkb_state_update_mask(state, 0, 0, 0, 0, 0, 0); + + changed = xkb_state_update_mask(state, (1 << mod2), 0, (1 << num), 0, 0, 0); + assert(changed == (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LOCKED | + XKB_STATE_MODS_EFFECTIVE | XKB_STATE_LEDS)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE) == + ((1u << mod2) | (1u << num))); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_DEPRESSED) == + (1u << mod2)); + assert(xkb_state_serialize_mods(state, XKB_STATE_MODS_LOCKED) == + ((1u << num) | (1u << mod2))); + + xkb_state_unref(state); +} + +static void +test_repeat(struct xkb_keymap *keymap) +{ + assert(!xkb_keymap_key_repeats(keymap, KEY_LEFTSHIFT + 8)); + assert(xkb_keymap_key_repeats(keymap, KEY_A + 8)); + assert(xkb_keymap_key_repeats(keymap, KEY_8 + 8)); + assert(xkb_keymap_key_repeats(keymap, KEY_DOWN + 8)); + assert(xkb_keymap_key_repeats(keymap, KEY_KBDILLUMDOWN + 8)); +} + +static void +test_consume(struct xkb_keymap *keymap) +{ + struct xkb_state *state; + xkb_mod_index_t alt, shift, caps, ctrl, mod5; + xkb_mod_mask_t mask; + + state = xkb_state_new(keymap); + assert(state); + + alt = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_ALT); + assert(alt != XKB_MOD_INVALID); + shift = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_SHIFT); + assert(shift != XKB_MOD_INVALID); + caps = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CAPS); + assert(caps != XKB_MOD_INVALID); + ctrl = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CTRL); + assert(ctrl != XKB_MOD_INVALID); + mod5 = xkb_keymap_mod_get_index(keymap, "Mod5"); + assert(mod5 != XKB_MOD_INVALID); + + /* Test remove_consumed() */ + xkb_state_update_key(state, KEY_LEFTALT + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_EQUAL + EVDEV_OFFSET, XKB_KEY_DOWN); + + fprintf(stderr, "dumping state for Alt-Shift-+\n"); + print_state(state); + + mask = xkb_state_serialize_mods(state, XKB_STATE_MODS_EFFECTIVE); + assert(mask == ((1U << alt) | (1U << shift))); + mask = xkb_state_mod_mask_remove_consumed(state, KEY_EQUAL + EVDEV_OFFSET, + mask); + assert(mask == (1U << alt)); + + /* Test get_consumed_mods() */ + mask = xkb_state_key_get_consumed_mods(state, KEY_EQUAL + EVDEV_OFFSET); + assert(mask == (1U << shift)); + + mask = xkb_state_key_get_consumed_mods(state, KEY_ESC + EVDEV_OFFSET); + assert(mask == 0); + + xkb_state_unref(state); + + /* Test is_consumed() - simple ALPHABETIC type. */ + state = xkb_state_new(keymap); + assert(state); + + mask = xkb_state_key_get_consumed_mods(state, KEY_A + EVDEV_OFFSET); + assert(mask == ((1U << shift) | (1U << caps))); + + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, caps) > 0); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, shift) > 0); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, caps) > 0); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, shift) > 0); + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_DOWN); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, caps) > 0); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, shift) > 0); + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_UP); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_CAPSLOCK + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, caps) > 0); + assert(xkb_state_mod_index_is_consumed(state, KEY_A + EVDEV_OFFSET, shift) > 0); + + xkb_state_unref(state); + + /* More complicated - CTRL+ALT */ + state = xkb_state_new(keymap); + + mask = xkb_state_key_get_consumed_mods(state, KEY_F1 + EVDEV_OFFSET); + assert(mask == ((1U << shift) | (1U << alt) | (1U << ctrl) | (1U << mod5))); + + /* Shift is preserved. */ + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_DOWN); + mask = xkb_state_key_get_consumed_mods(state, KEY_F1 + EVDEV_OFFSET); + assert(mask == ((1U << alt) | (1U << ctrl) | (1U << mod5))); + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_UP); + + mask = xkb_state_key_get_consumed_mods(state, KEY_F1 + EVDEV_OFFSET); + assert(mask == ((1U << shift) | (1U << alt) | (1U << ctrl) | (1U << mod5))); + + assert(state); + + xkb_state_unref(state); +} + +static void +key_iter(struct xkb_keymap *keymap, xkb_keycode_t key, void *data) +{ + xkb_keycode_t *counter = data; + + assert(*counter == key); + (*counter)++; +} + +static void +test_range(struct xkb_keymap *keymap) +{ + xkb_keycode_t counter; + + assert(xkb_keymap_min_keycode(keymap) == 9); + assert(xkb_keymap_max_keycode(keymap) == 253); + + counter = xkb_keymap_min_keycode(keymap); + xkb_keymap_key_for_each(keymap, key_iter, &counter); + assert(counter == xkb_keymap_max_keycode(keymap) + 1); +} + +static void +test_caps_keysym_transformation(struct xkb_keymap *keymap) +{ + struct xkb_state *state = xkb_state_new(keymap); + xkb_mod_index_t caps, shift; + int nsyms; + xkb_keysym_t sym; + const xkb_keysym_t *syms; + + assert(state); + + /* See xkb_state_key_get_one_sym() for what's this all about. */ + + caps = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CAPS); + shift = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_SHIFT); + assert(caps != XKB_MOD_INVALID && shift != XKB_MOD_INVALID); + + assert(xkb_state_key_get_layout(state, KEY_A + 8) == 0); + assert(xkb_state_key_get_layout(state, KEY_SEMICOLON + 8) == 0); + + /* Without caps, no transformation. */ + assert(xkb_state_mod_index_is_active(state, caps, XKB_STATE_MODS_EFFECTIVE) == 0); + assert(xkb_state_mod_index_is_active(state, shift, XKB_STATE_MODS_EFFECTIVE) == 0); + assert(xkb_state_key_get_level(state, KEY_A + 8, 0) == 0); + sym = xkb_state_key_get_one_sym(state, KEY_A + 8); + assert(sym == XKB_KEY_a); + assert(xkb_state_key_get_level(state, KEY_SEMICOLON + 8, 0) == 0); + sym = xkb_state_key_get_one_sym(state, KEY_SEMICOLON + 8); + assert(sym == XKB_KEY_eacute); + nsyms = xkb_state_key_get_syms(state, KEY_SEMICOLON + 8, &syms); + assert(nsyms == 1 && syms[0] == XKB_KEY_eacute); + + /* With shift, no transformation (only different level). */ + xkb_state_update_key(state, KEY_LEFTSHIFT + 8, XKB_KEY_DOWN); + assert(xkb_state_mod_index_is_active(state, caps, XKB_STATE_MODS_EFFECTIVE) == 0); + assert(xkb_state_mod_index_is_active(state, shift, XKB_STATE_MODS_EFFECTIVE) > 0); + assert(xkb_state_key_get_level(state, KEY_A + 8, 0) == 1); + sym = xkb_state_key_get_one_sym(state, KEY_A + 8); + assert(sym == XKB_KEY_A); + sym = xkb_state_key_get_one_sym(state, KEY_SEMICOLON + 8); + assert(sym == XKB_KEY_odiaeresis); + nsyms = xkb_state_key_get_syms(state, KEY_SEMICOLON + 8, &syms); + assert(nsyms == 1 && syms[0] == XKB_KEY_odiaeresis); + xkb_state_update_key(state, KEY_LEFTSHIFT + 8, XKB_KEY_UP); + assert(xkb_state_mod_index_is_active(state, shift, XKB_STATE_MODS_EFFECTIVE) == 0); + + /* With caps, transform in same level, only with _get_one_sym(). */ + xkb_state_update_key(state, KEY_CAPSLOCK + 8, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_CAPSLOCK + 8, XKB_KEY_UP); + assert(xkb_state_mod_index_is_active(state, caps, XKB_STATE_MODS_EFFECTIVE) > 0); + assert(xkb_state_mod_index_is_active(state, shift, XKB_STATE_MODS_EFFECTIVE) == 0); + assert(xkb_state_key_get_level(state, KEY_A + 8, 0) == 1); + sym = xkb_state_key_get_one_sym(state, KEY_A + 8); + assert(sym == XKB_KEY_A); + assert(xkb_state_key_get_level(state, KEY_SEMICOLON + 8, 0) == 0); + sym = xkb_state_key_get_one_sym(state, KEY_SEMICOLON + 8); + assert(sym == XKB_KEY_Eacute); + nsyms = xkb_state_key_get_syms(state, KEY_SEMICOLON + 8, &syms); + assert(nsyms == 1 && syms[0] == XKB_KEY_eacute); + xkb_state_update_key(state, KEY_LEFTSHIFT + 8, XKB_KEY_UP); + assert(xkb_state_mod_index_is_active(state, shift, XKB_STATE_MODS_EFFECTIVE) == 0); + xkb_state_update_key(state, KEY_CAPSLOCK + 8, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_CAPSLOCK + 8, XKB_KEY_UP); + + xkb_state_unref(state); +} + +static void +test_get_utf8_utf32(struct xkb_keymap *keymap) +{ + char buf[256]; + struct xkb_state *state = xkb_state_new(keymap); + assert(state); + +#define TEST_KEY(key, expected_utf8, expected_utf32) do { \ + assert(xkb_state_key_get_utf8(state, key + 8, NULL, 0) == strlen(expected_utf8)); \ + assert(xkb_state_key_get_utf8(state, key + 8, buf, sizeof(buf)) == strlen(expected_utf8)); \ + assert(memcmp(buf, expected_utf8, sizeof(expected_utf8)) == 0); \ + assert(xkb_state_key_get_utf32(state, key + 8) == expected_utf32); \ +} while (0) + + /* Simple ASCII. */ + TEST_KEY(KEY_A, "a", 0x61); + TEST_KEY(KEY_ESC, "\x1B", 0x1B); + TEST_KEY(KEY_1, "1", 0x31); + + /* Invalid. */ + TEST_KEY(XKB_KEYCODE_INVALID - 8, "", 0); + TEST_KEY(300, "", 0); + + /* No string. */ + TEST_KEY(KEY_LEFTCTRL, "", 0); + TEST_KEY(KEY_NUMLOCK, "", 0); + + /* Multiple keysyms. */ + TEST_KEY(KEY_6, "HELLO", 0); + TEST_KEY(KEY_7, "YES THIS IS DOG", 0); + + /* Check truncation. */ + memset(buf, 'X', sizeof(buf)); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 0) == strlen("HELLO")); + assert(memcmp(buf, "X", 1) == 0); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 1) == strlen("HELLO")); + assert(memcmp(buf, "", 1) == 0); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 2) == strlen("HELLO")); + assert(memcmp(buf, "H", 2) == 0); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 3) == strlen("HELLO")); + assert(memcmp(buf, "HE", 3) == 0); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 5) == strlen("HELLO")); + assert(memcmp(buf, "HELL", 5) == 0); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 6) == strlen("HELLO")); + assert(memcmp(buf, "HELLO", 6) == 0); + assert(xkb_state_key_get_utf8(state, KEY_6 + 8, buf, 7) == strlen("HELLO")); + assert(memcmp(buf, "HELLO\0X", 7) == 0); + + /* Switch to ru layout */ + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_key_get_layout(state, KEY_A + 8) == 1); + + /* Non ASCII. */ + TEST_KEY(KEY_ESC, "\x1B", 0x1B); + TEST_KEY(KEY_A, "ф", 0x0444); + TEST_KEY(KEY_Z, "я", 0x044F); + + /* Switch back to us layout */ + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_key_get_layout(state, KEY_A + 8) == 0); + + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_DOWN); + TEST_KEY(KEY_A, "A", 0x41); + TEST_KEY(KEY_ESC, "\x1B", 0x1B); + TEST_KEY(KEY_1, "!", 0x21); + xkb_state_update_key(state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_UP); + + TEST_KEY(KEY_6, "HELLO", 0); + TEST_KEY(KEY_7, "YES THIS IS DOG", 0); + + xkb_state_unref(state); +} + +static void +test_ctrl_string_transformation(struct xkb_keymap *keymap) +{ + char buf[256]; + struct xkb_state *state = xkb_state_new(keymap); + xkb_mod_index_t ctrl; + + assert(state); + + /* See xkb_state_key_get_utf8() for what's this all about. */ + + ctrl = xkb_keymap_mod_get_index(keymap, XKB_MOD_NAME_CTRL); + assert(ctrl != XKB_MOD_INVALID); + + /* First without. */ + TEST_KEY(KEY_A, "a", 0x61); + TEST_KEY(KEY_B, "b", 0x62); + TEST_KEY(KEY_C, "c", 0x63); + TEST_KEY(KEY_ESC, "\x1B", 0x1B); + TEST_KEY(KEY_1, "1", 0x31); + + /* And with. */ + xkb_state_update_key(state, KEY_RIGHTCTRL + EVDEV_OFFSET, XKB_KEY_DOWN); + assert(xkb_state_mod_index_is_active(state, ctrl, XKB_STATE_MODS_EFFECTIVE) > 0); + TEST_KEY(KEY_A, "\x01", 0x01); + TEST_KEY(KEY_B, "\x02", 0x02); + TEST_KEY(KEY_C, "\x03", 0x03); + TEST_KEY(KEY_ESC, "\x1B", 0x1B); + TEST_KEY(KEY_1, "1", 0x31); + xkb_state_update_key(state, KEY_RIGHTCTRL + EVDEV_OFFSET, XKB_KEY_UP); + + /* Switch to ru layout */ + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_DOWN); + xkb_state_update_key(state, KEY_COMPOSE + EVDEV_OFFSET, XKB_KEY_UP); + assert(xkb_state_key_get_layout(state, KEY_A + 8) == 1); + + /* Non ASCII. */ + xkb_state_update_key(state, KEY_RIGHTCTRL + EVDEV_OFFSET, XKB_KEY_DOWN); + assert(xkb_state_mod_index_is_active(state, ctrl, XKB_STATE_MODS_EFFECTIVE) > 0); + TEST_KEY(KEY_A, "\x01", 0x01); + TEST_KEY(KEY_B, "\x02", 0x02); + xkb_state_update_key(state, KEY_RIGHTCTRL + EVDEV_OFFSET, XKB_KEY_UP); + + xkb_state_unref(state); +} + +int +main(void) +{ + struct xkb_context *context = test_get_context(0); + struct xkb_keymap *keymap; + + assert(context); + + /* Make sure these are allowed. */ + xkb_context_unref(NULL); + xkb_keymap_unref(NULL); + xkb_state_unref(NULL); + + keymap = test_compile_rules(context, "evdev", "pc104", "us,ru", NULL, "grp:menu_toggle"); + assert(keymap); + + test_update_key(keymap); + test_serialisation(keymap); + test_update_mask_mods(keymap); + test_repeat(keymap); + test_consume(keymap); + test_range(keymap); + test_get_utf8_utf32(keymap); + test_ctrl_string_transformation(keymap); + + xkb_keymap_unref(keymap); + keymap = test_compile_rules(context, "evdev", NULL, "ch", "fr", NULL); + assert(keymap); + + test_caps_keysym_transformation(keymap); + + xkb_keymap_unref(keymap); + xkb_context_unref(context); +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/stringcomp.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/stringcomp.c new file mode 100644 index 0000000..1a1813b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/stringcomp.c @@ -0,0 +1,105 @@ +/* + * Copyright © 2009 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +#include "test.h" + +#define DATA_PATH "keymaps/stringcomp.data" + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx = test_get_context(0); + struct xkb_keymap *keymap; + char *original, *dump, *dump2; + + assert(ctx); + + /* Load in a prebuilt keymap, make sure we can compile it from a string, + * then compare it to make sure we get the same result when dumping it + * to a string. */ + original = test_read_file(DATA_PATH); + assert(original); + + keymap = test_compile_string(ctx, original); + assert(keymap); + + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump); + + if (!streq(original, dump)) { + fprintf(stderr, + "round-trip test failed: dumped map differs from original\n"); + fprintf(stderr, "path to original file: %s\n", + test_get_path(DATA_PATH)); + fprintf(stderr, "length: dumped %lu, original %lu\n", + (unsigned long) strlen(dump), + (unsigned long) strlen(original)); + fprintf(stderr, "dumped map:\n"); + fprintf(stderr, "%s\n", dump); + fflush(stderr); + assert(0); + } + + free(original); + free(dump); + xkb_keymap_unref(keymap); + + /* Make sure we can't (falsely claim to) compile an empty string. */ + keymap = test_compile_string(ctx, ""); + assert(!keymap); + + /* Make sure we can recompile our output for a normal keymap from rules. */ + keymap = test_compile_rules(ctx, NULL, NULL, + "ru,ca,de,us", ",multix,neo,intl", NULL); + assert(keymap); + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump); + xkb_keymap_unref(keymap); + keymap = test_compile_string(ctx, dump); + assert(keymap); + /* Now test that the dump of the dump is equal to the dump! */ + dump2 = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump2); + assert(streq(dump, dump2)); + + /* Test response to invalid formats and flags. */ + assert(!xkb_keymap_new_from_string(ctx, dump, 0, 0)); + assert(!xkb_keymap_new_from_string(ctx, dump, -1, 0)); + assert(!xkb_keymap_new_from_string(ctx, dump, XKB_KEYMAP_FORMAT_TEXT_V1+1, 0)); + assert(!xkb_keymap_new_from_string(ctx, dump, XKB_KEYMAP_FORMAT_TEXT_V1, -1)); + assert(!xkb_keymap_new_from_string(ctx, dump, XKB_KEYMAP_FORMAT_TEXT_V1, 1414)); + assert(!xkb_keymap_get_as_string(keymap, 0)); + assert(!xkb_keymap_get_as_string(keymap, 4893)); + + xkb_keymap_unref(keymap); + free(dump); + free(dump2); + + xkb_context_unref(ctx); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/test.h b/app/src/main/jni/libxkbcommon/xkbcommon/test/test.h new file mode 100644 index 0000000..628ec18 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/test.h @@ -0,0 +1,90 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include + +/* Don't use compat names in internal code. */ +#define _XKBCOMMON_COMPAT_H +#include "xkbcommon/xkbcommon.h" +#include "xkbcommon/xkbcommon-compose.h" +#include "utils.h" + +/* Automake test exit code to signify SKIP (à la PASS, FAIL, etc). */ +#define SKIP_TEST 77 + +/* The offset between KEY_* numbering, and keycodes in the XKB evdev + * dataset. */ +#define EVDEV_OFFSET 8 + +enum key_seq_state { + DOWN, + REPEAT, + UP, + BOTH, + NEXT, + FINISH, +}; + +int +test_key_seq(struct xkb_keymap *keymap, ...); + +int +test_key_seq_va(struct xkb_keymap *keymap, va_list args); + +char * +test_get_path(const char *path_rel); + +char * +test_read_file(const char *path_rel); + +enum test_context_flags { + CONTEXT_NO_FLAG = 0, + CONTEXT_ALLOW_ENVIRONMENT_NAMES = (1 << 0), +}; + +struct xkb_context * +test_get_context(enum test_context_flags flags); + +struct xkb_keymap * +test_compile_file(struct xkb_context *context, const char *path_rel); + +struct xkb_keymap * +test_compile_string(struct xkb_context *context, const char *string); + +struct xkb_keymap * +test_compile_buffer(struct xkb_context *context, const char *buf, size_t len); + +struct xkb_keymap * +test_compile_rules(struct xkb_context *context, const char *rules, + const char *model, const char *layout, const char *variant, + const char *options); + +void +test_print_keycode_state(struct xkb_state *state, + struct xkb_compose_state *compose_state, + xkb_keycode_t keycode); + +void +test_print_state_changes(enum xkb_state_component changed); diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/utf8.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/utf8.c new file mode 100644 index 0000000..17c7156 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/utf8.c @@ -0,0 +1,157 @@ +/* + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include + +#include "utf8.h" + +#define VALID(lit) assert(is_valid_utf8(lit, sizeof(lit)-1)) +#define INVALID(lit) assert(!is_valid_utf8(lit, sizeof(lit)-1)) + +static void +test_is_valid_utf8(void) +{ + /* + * Mostly taken from: + * http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt + */ + + VALID("ascii"); + VALID("\xCE\xBA\xE1\xBD\xB9\xCF\x83\xCE\xBC\xCE\xB5"); + + VALID(""); + VALID("\x00"); + VALID("\x00\x00"); + + VALID("\x50"); + VALID("\xC2\x80"); + VALID("\xE0\xA0\x80"); + VALID("\xF0\x90\x80\x80"); + + /* 5/6-byte continuations aren't allowed (unlike UTF-8-test). */ + INVALID("\xF8\x88\x80\x80\x80"); + INVALID("\xFC\x84\x80\x80\x80\x80"); + + VALID("\x7F"); + VALID("\xDF\xBF"); + VALID("\xEF\xBF\xBF"); + /* VALID("\xF7\xBF\xBF\xBF"); */ + + /* 5/6-byte continuations aren't allowed (unlike UTF-8-test). */ + INVALID("\xFB\xBF\xBF\xBF\xBF"); + INVALID("\xFD\xBFxBF\xBF\xBF"); + + VALID("\xED\x9F\xBF"); + VALID("\xEE\x80\x80"); + VALID("\xEF\xBF\xBD"); + VALID("\xF4\x8F\xBF\xBF"); + /* VALID("\xF4\x90\x80\x80"); */ + + INVALID("\x80"); + INVALID("\xBF"); + INVALID("\x80\xBF"); + INVALID("\x80\xBF\x80"); + INVALID("\x80\xBF\x80\xBF"); + INVALID("\x80\xBF\x80\xBF\x80"); + INVALID("\x80\xBF\x80\xBF\x80\xBF"); + INVALID("\x80\xBF\x80\xBF\x80\xBF\x80"); + INVALID("\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8A\x8B\x8C\x8D\x8E\x8F" + "\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9A\x9B\x9C\x9D\x9E\x9F" + "\xA0\xA1\xA2\xA3\xA4\xA5\xA6\xA7\xA8\xA9\xAA\xAB\xAC\xAD\xAE\xAF" + "\xB0\xB1\xB2\xB3\xB4\xB5\xB6\xB7\xB8\xB9\xBA\xBB\xBC\xBD\xBE\xBF"); + + INVALID("\xC0 \xC1 \xC2 \xC3 \xC4 \xC5 \xC6 \xC7 \xC8 \xC9 \xCA \xCB \xCC " + "\xCD \xCE \xCF " + "\xD0 \xD1 \xD2 \xD3 \xD4 \xD5 \xD6 \xD7 \xD8 \xD9 \xDA \xDB \xDD " + "\xDD \xDE \xDF "); + INVALID("\xF0 \xF1 \xF2 \xF3 \xF4 \xF5 \xF6 \xF7 "); + INVALID("\xF8 \xF9 \xFA \xFB "); + INVALID("\xFC \xFD "); + + INVALID("\xC0"); + INVALID("\xE0\x80"); + INVALID("\xF0\x80\x80"); + INVALID("\xF8\x80\x80\x80"); + INVALID("\xFC\x80\x80\x80\x80"); + INVALID("\xDF"); + INVALID("\xEF\xBF"); + INVALID("\xF7\xBF\xBF"); + INVALID("\xFB\xBF\xBF\xBF"); + INVALID("\xFD\xBF\xBF\xBF\xBF"); + + INVALID("\xC0\xE0\x80\xF0\x80\x80\xF8\x80\x80\x80\xFC\x80\x80\x80\x80" + "\xDF\xEF\xBF\xF7\xBF\xBF\xFB\xBF\xBF\xBF\xFD\xBF\xBF\xBF\xBF"); + + INVALID("\xFE"); + INVALID("\xFF"); + INVALID("\xFE\xFE\xFF\xFF"); + + INVALID("\xC0\xAF"); + INVALID("\xE0\x80\xAF"); + INVALID("\xF0\x80\x80\xAF"); + INVALID("\xF8\x80\x80\x80\xAF"); + INVALID("\xFC\x80\x80\x80\x80\xAF"); + + INVALID("\xC1\xBF"); + INVALID("\xE0\x9F\xBF"); + INVALID("\xF0\x8F\xBF\xBF"); + INVALID("\xF8\x87\xBF\xBF\xBF"); + INVALID("\xFC\x83\xBF\xBF\xBF\xBF"); + + INVALID("\xC0\x80"); + INVALID("\xE0\x80\x80"); + INVALID("\xF0\x80\x80\x80"); + INVALID("\xF8\x80\x80\x80\x80"); + INVALID("\xFC\x80\x80\x80\x80\x80"); + + INVALID("\xED\xA0\x80"); + INVALID("\xED\xAD\xBF"); + INVALID("\xED\xAE\x80"); + INVALID("\xED\xAF\xBF"); + INVALID("\xED\xB0\x80"); + INVALID("\xED\xBE\x80"); + INVALID("\xED\xBF\xBF"); + + INVALID("\xED\xA0\x80\xED\xB0\x80"); + INVALID("\xED\xA0\x80\xED\xBF\xBF"); + INVALID("\xED\xAD\xBF\xED\xB0\x80"); + INVALID("\xED\xAD\xBF\xED\xBF\xBF"); + INVALID("\xED\xAE\x80\xED\xB0\x80"); + INVALID("\xED\xAE\x80\xED\xBF\xBF"); + INVALID("\xED\xAF\xBF\xED\xB0\x80"); + INVALID("\xED\xAF\xBF\xED\xBF\xBF"); + + /* INVALID("\xEF\xBF\xBE"); */ + /* INVALID("\xEF\xBF\xBF"); */ +} + +int +main(void) +{ + test_is_valid_utf8(); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/x11.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/x11.c new file mode 100644 index 0000000..232e136 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/x11.c @@ -0,0 +1,78 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include "test.h" +#include "xkbcommon/xkbcommon-x11.h" + +int +main(void) +{ + struct xkb_context *ctx = test_get_context(0); + xcb_connection_t *conn; + int ret; + int32_t device_id; + struct xkb_keymap *keymap; + struct xkb_state *state; + char *dump; + + /* + * The next two steps depend on a running X server with XKB support. + * If it fails, it's not necessarily an actual problem with the code. + * So we don't want a FAIL here. + */ + conn = xcb_connect(NULL, NULL); + if (!conn || xcb_connection_has_error(conn)) + return SKIP_TEST; + + ret = xkb_x11_setup_xkb_extension(conn, + XKB_X11_MIN_MAJOR_XKB_VERSION, + XKB_X11_MIN_MINOR_XKB_VERSION, + XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS, + NULL, NULL, NULL, NULL); + if (!ret) + return SKIP_TEST; + + device_id = xkb_x11_get_core_keyboard_device_id(conn); + assert(device_id != -1); + + keymap = xkb_x11_keymap_new_from_device(ctx, conn, device_id, + XKB_KEYMAP_COMPILE_NO_FLAGS); + assert(keymap); + + state = xkb_x11_state_new_from_device(keymap, conn, device_id); + assert(state); + + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump); + fputs(dump, stdout); + + /* TODO: Write some X11-specific tests. */ + + free(dump); + xkb_state_unref(state); + xkb_keymap_unref(keymap); + xcb_disconnect(conn); + xkb_context_unref(ctx); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/x11comp.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/x11comp.c new file mode 100644 index 0000000..bc87a72 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/x11comp.c @@ -0,0 +1,166 @@ +/* + * Copyright © 2014 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "test.h" +#include "xkbcommon/xkbcommon-x11.h" + +int +main(void) +{ + struct xkb_context *ctx = test_get_context(0); + struct xkb_keymap *keymap; + xcb_connection_t *conn; + int32_t device_id; + int pipefds[2]; + int ret, status; + char displayfd[128], display[128]; + char *search_path, *search_path_arg, *xkb_path; + char *original, *dump; + char *envp[] = { NULL }; + char *xvfb_argv[] = { "Xvfb", "-displayfd", displayfd, NULL }; + pid_t xvfb_pid; + char *xkbcomp_argv[] = { "xkbcomp", "-I", NULL /* search_path_arg */, + NULL /* xkb_path */, display, NULL }; + pid_t xkbcomp_pid; + + /* + * What all of this mess does is: + * 1. Launch Xvfb on the next available DISPLAY. Xvfb reports the + * display number to an fd passed with -displayfd once it's + * initialized. We pass a pipe there to read it. + * 2. Make an xcb connection to this display. + * 3. Launch xkbcomp to change the keymap of the new display (doing + * this programmatically is major work [which we may yet do some + * day for xkbcommon-x11] so we use xkbcomp for now). + * 4. Download the keymap back from the display using xkbcommon-x11. + * 5. Compare received keymap to the uploaded keymap. + * 6. Kill the server & clean up. + */ + + ret = pipe(pipefds); + assert(ret == 0); + + ret = snprintf(displayfd, sizeof(displayfd), "%d", pipefds[1]); + assert(ret >= 0 && ret < sizeof(displayfd)); + + ret = posix_spawnp(&xvfb_pid, "Xvfb", NULL, NULL, xvfb_argv, envp); + if (ret != 0) { + ret = SKIP_TEST; + goto err_ctx; + } + + close(pipefds[1]); + + display[0] = ':'; + ret = read(pipefds[0], display + 1, sizeof(display) - 1); + if (ret <= 0 || 1 + ret >= sizeof(display) - 1) { + ret = SKIP_TEST; + goto err_xvfd; + } + if (display[ret] == '\n') + display[ret] = '\0'; + display[1 + ret] = '\0'; + close(pipefds[0]); + + conn = xcb_connect(display, NULL); + if (xcb_connection_has_error(conn)) { + ret = SKIP_TEST; + goto err_xvfd; + } + ret = xkb_x11_setup_xkb_extension(conn, + XKB_X11_MIN_MAJOR_XKB_VERSION, + XKB_X11_MIN_MINOR_XKB_VERSION, + XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS, + NULL, NULL, NULL, NULL); + if (!ret) { + ret = SKIP_TEST; + goto err_xcb; + } + device_id = xkb_x11_get_core_keyboard_device_id(conn); + assert(device_id != -1); + + xkb_path = test_get_path("keymaps/host.xkb"); + search_path = test_get_path(""); + assert(search_path); + ret = asprintf(&search_path_arg, "-I%s", search_path); + assert(ret >= 0); + xkbcomp_argv[2] = search_path_arg; + xkbcomp_argv[3] = xkb_path; + ret = posix_spawnp(&xkbcomp_pid, "xkbcomp", NULL, NULL, xkbcomp_argv, envp); + free(search_path_arg); + free(search_path); + free(xkb_path); + if (ret != 0) { + ret = SKIP_TEST; + goto err_xcb; + } + ret = waitpid(xkbcomp_pid, &status, 0); + if (ret < 0 || !WIFEXITED(status) || WEXITSTATUS(status) != 0) { + ret = SKIP_TEST; + goto err_xcb; + } + + keymap = xkb_x11_keymap_new_from_device(ctx, conn, device_id, + XKB_KEYMAP_COMPILE_NO_FLAGS); + assert(keymap); + + original = test_read_file("keymaps/host.xkb"); + assert(original); + + dump = xkb_keymap_get_as_string(keymap, XKB_KEYMAP_USE_ORIGINAL_FORMAT); + assert(dump); + + ret = streq(original, dump); + if (!ret) { + fprintf(stderr, + "round-trip test failed: dumped map differs from original\n"); + fprintf(stderr, "length: dumped %lu, original %lu\n", + (unsigned long) strlen(dump), + (unsigned long) strlen(original)); + fprintf(stderr, "dumped map:\n"); + fprintf(stderr, "%s\n", dump); + ret = 1; + goto err_dump; + } + + ret = 0; +err_dump: + free(original); + free(dump); + xkb_keymap_unref(keymap); +err_xcb: + xcb_disconnect(conn); +err_xvfd: + kill(xvfb_pid, SIGTERM); +err_ctx: + xkb_context_unref(ctx); + return ret; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-uninstalled.pc.in b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-uninstalled.pc.in new file mode 100644 index 0000000..d4d6a2b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-uninstalled.pc.in @@ -0,0 +1,8 @@ +libdir=@abs_top_builddir@/.libs +includedir=@abs_top_srcdir@ + +Name: xkbcommon +Description: XKB API common to servers and clients (uninstalled) +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} +Libs: -L${libdir} -lxkbcommon diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11-uninstalled.pc.in b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11-uninstalled.pc.in new file mode 100644 index 0000000..d99ca49 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11-uninstalled.pc.in @@ -0,0 +1,10 @@ +libdir=@abs_top_builddir@/.libs +includedir=@abs_top_srcdir@ + +Name: xkbcommon-x11 +Description: XKB API common to servers and clients - X11 support (uninstalled) +Version: @PACKAGE_VERSION@ +Requires: xkbcommon +Requires.private: xcb xcb-xkb +Cflags: -I${includedir} +Libs: -L${libdir} -lxkbcommon-x11 diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11.map b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11.map new file mode 100644 index 0000000..a219288 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11.map @@ -0,0 +1,9 @@ +V_0.5.0 { +global: + xkb_x11_setup_xkb_extension; + xkb_x11_get_core_keyboard_device_id; + xkb_x11_keymap_new_from_device; + xkb_x11_state_new_from_device; +local: + *; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11.pc.in b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11.pc.in new file mode 100644 index 0000000..c4efc43 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon-x11.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: xkbcommon-x11 +Description: XKB API common to servers and clients - X11 support +Version: @PACKAGE_VERSION@ +Requires: xkbcommon +Requires.private: xcb xcb-xkb +Cflags: -I${includedir} +Libs: -L${libdir} -lxkbcommon-x11 diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon.map b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon.map new file mode 100644 index 0000000..29fd7ac --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon.map @@ -0,0 +1,87 @@ +V_0.5.0 { +global: + xkb_keysym_get_name; + xkb_keysym_from_name; + xkb_keysym_to_utf8; + xkb_keysym_to_utf32; + xkb_context_new; + xkb_context_ref; + xkb_context_unref; + xkb_context_set_user_data; + xkb_context_get_user_data; + xkb_context_include_path_append; + xkb_context_include_path_append_default; + xkb_context_include_path_reset_defaults; + xkb_context_include_path_clear; + xkb_context_num_include_paths; + xkb_context_include_path_get; + xkb_context_set_log_level; + xkb_context_get_log_level; + xkb_context_set_log_verbosity; + xkb_context_get_log_verbosity; + xkb_context_set_log_fn; + xkb_keymap_new_from_names; + xkb_keymap_new_from_file; + xkb_keymap_new_from_string; + xkb_keymap_new_from_buffer; + xkb_keymap_ref; + xkb_keymap_unref; + xkb_keymap_get_as_string; + xkb_keymap_min_keycode; + xkb_keymap_max_keycode; + xkb_keymap_key_for_each; + xkb_keymap_num_mods; + xkb_keymap_mod_get_name; + xkb_keymap_mod_get_index; + xkb_keymap_num_layouts; + xkb_keymap_layout_get_name; + xkb_keymap_layout_get_index; + xkb_keymap_num_leds; + xkb_keymap_led_get_name; + xkb_keymap_led_get_index; + xkb_keymap_num_layouts_for_key; + xkb_keymap_num_levels_for_key; + xkb_keymap_key_get_syms_by_level; + xkb_keymap_key_repeats; + xkb_state_new; + xkb_state_ref; + xkb_state_unref; + xkb_state_get_keymap; + xkb_state_update_key; + xkb_state_update_mask; + xkb_state_key_get_syms; + xkb_state_key_get_utf8; + xkb_state_key_get_utf32; + xkb_state_key_get_one_sym; + xkb_state_key_get_layout; + xkb_state_key_get_level; + xkb_state_serialize_mods; + xkb_state_serialize_layout; + xkb_state_mod_name_is_active; + xkb_state_mod_names_are_active; + xkb_state_mod_index_is_active; + xkb_state_mod_indices_are_active; + xkb_state_mod_index_is_consumed; + xkb_state_mod_mask_remove_consumed; + xkb_state_key_get_consumed_mods; + xkb_state_layout_name_is_active; + xkb_state_layout_index_is_active; + xkb_state_led_name_is_active; + xkb_state_led_index_is_active; + xkb_compose_table_new_from_locale; + xkb_compose_table_new_from_file; + xkb_compose_table_new_from_buffer; + xkb_compose_table_ref; + xkb_compose_table_unref; + xkb_compose_state_new; + xkb_compose_state_ref; + xkb_compose_state_unref; + xkb_compose_state_get_compose_table; + xkb_compose_state_feed; + xkb_compose_state_reset; + xkb_compose_state_get_status; + xkb_compose_state_get_utf8; + xkb_compose_state_get_one_sym; +local: + *; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon.pc.in b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon.pc.in new file mode 100644 index 0000000..17e1172 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: xkbcommon +Description: XKB API common to servers and clients +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} +Libs: -L${libdir} -lxkbcommon diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-compat.h b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-compat.h new file mode 100644 index 0000000..299732f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-compat.h @@ -0,0 +1,98 @@ +/* + * Copyright © 2012 Daniel Stone + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#ifndef _XKBCOMMON_COMPAT_H +#define _XKBCOMMON_COMPAT_H + +/** + * Renamed keymap API. + */ +#define xkb_group_index_t xkb_layout_index_t +#define xkb_group_mask_t xkb_layout_mask_t +#define xkb_map_compile_flags xkb_keymap_compile_flags +#define XKB_GROUP_INVALID XKB_LAYOUT_INVALID + +#define XKB_STATE_DEPRESSED \ + (XKB_STATE_MODS_DEPRESSED | XKB_STATE_LAYOUT_DEPRESSED) +#define XKB_STATE_LATCHED \ + (XKB_STATE_MODS_LATCHED | XKB_STATE_LAYOUT_LATCHED) +#define XKB_STATE_LOCKED \ + (XKB_STATE_MODS_LOCKED | XKB_STATE_LAYOUT_LOCKED) +#define XKB_STATE_EFFECTIVE \ + (XKB_STATE_DEPRESSED | XKB_STATE_LATCHED | XKB_STATE_LOCKED | \ + XKB_STATE_MODS_EFFECTIVE | XKB_STATE_LAYOUT_EFFECTIVE) + +#define xkb_map_new_from_names(context, names, flags) \ + xkb_keymap_new_from_names(context, names, flags) +#define xkb_map_new_from_file(context, file, format, flags) \ + xkb_keymap_new_from_file(context, file, format, flags) +#define xkb_map_new_from_string(context, string, format, flags) \ + xkb_keymap_new_from_string(context, string, format, flags) +#define xkb_map_get_as_string(keymap) \ + xkb_keymap_get_as_string(keymap, XKB_KEYMAP_FORMAT_TEXT_V1) +#define xkb_map_ref(keymap) xkb_keymap_ref(keymap) +#define xkb_map_unref(keymap) xkb_keymap_unref(keymap) + +#define xkb_map_num_mods(keymap) xkb_keymap_num_mods(keymap) +#define xkb_map_mod_get_name(keymap, idx) xkb_keymap_mod_get_name(keymap, idx) +#define xkb_map_mod_get_index(keymap, str) xkb_keymap_mod_get_index(keymap, str) +#define xkb_key_mod_index_is_consumed(state, key, mod) \ + xkb_state_mod_index_is_consumed(state, key, mod) +#define xkb_key_mod_mask_remove_consumed(state, key, modmask) \ + xkb_state_mod_mask_remove_consumed(state, key, modmask) + +#define xkb_map_num_groups(keymap) xkb_keymap_num_layouts(keymap) +#define xkb_key_num_groups(keymap, key) \ + xkb_keymap_num_layouts_for_key(keymap, key) +#define xkb_map_group_get_name(keymap, idx) \ + xkb_keymap_layout_get_name(keymap, idx) +#define xkb_map_group_get_index(keymap, str) \ + xkb_keymap_layout_get_index(keymap, str) + +#define xkb_map_num_leds(keymap) xkb_keymap_num_leds(keymap) +#define xkb_map_led_get_name(keymap, idx) xkb_keymap_led_get_name(keymap, idx) +#define xkb_map_led_get_index(keymap, str) \ + xkb_keymap_led_get_index(keymap, str) + +#define xkb_key_repeats(keymap, key) xkb_keymap_key_repeats(keymap, key) + +#define xkb_key_get_syms(state, key, syms_out) \ + xkb_state_key_get_syms(state, key, syms_out) + +#define xkb_state_group_name_is_active(state, name, type) \ + xkb_state_layout_name_is_active(state, name, type) +#define xkb_state_group_index_is_active(state, idx, type) \ + xkb_state_layout_index_is_active(state, idx, type) + +#define xkb_state_serialize_group(state, component) \ + xkb_state_serialize_layout(state, component) + +#define xkb_state_get_map(state) xkb_state_get_keymap(state) + +/* Not needed anymore, since there's NO_FLAGS. */ +#define XKB_MAP_COMPILE_PLACEHOLDER XKB_KEYMAP_COMPILE_NO_FLAGS +#define XKB_MAP_COMPILE_NO_FLAGS XKB_KEYMAP_COMPILE_NO_FLAGS + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-compose.h b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-compose.h new file mode 100644 index 0000000..5755aec --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-compose.h @@ -0,0 +1,483 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _XKBCOMMON_COMPOSE_H +#define _XKBCOMMON_COMPOSE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file + * libxkbcommon Compose API - support for Compose and dead-keys. + */ + +/** + * @defgroup compose Compose and dead-keys support + * Support for Compose and dead-keys. + * @since 0.5.0 + * + * @{ + */ + +/** + * @page compose-overview Overview + * @parblock + * + * Compose and dead-keys are a common feature of many keyboard input + * systems. They extend the range of the keysysm that can be produced + * directly from a keyboard by using a sequence of key strokes, instead + * of just one. + * + * Here are some example sequences, in the libX11 Compose file format: + * + * : "á" aacute # LATIN SMALL LETTER A WITH ACUTE + * : "@" at # COMMERCIAL AT + * + * When the user presses a key which produces the \ keysym, + * nothing initially happens (thus the key is dubbed a "dead-key"). But + * when the user enters , "á" is "composed", in place of "a". If + * instead the user had entered a keysym which does not follow + * \ in any compose sequence, the sequence is said to be + * "cancelled". + * + * Compose files define many such sequences. For a description of the + * common file format for Compose files, see the Compose(5) man page. + * + * A successfuly-composed sequence has two results: a keysym and a UTF-8 + * string. At least one of the two is defined for each sequence. If only + * a keysym is given, the keysym's string representation is used for the + * result string (using xkb_keysym_to_utf8()). + * + * This library provides low-level support for Compose file parsing and + * processing. Higher-level APIs (such as libX11's Xutf8LookupString(3)) + * may be built upon it, or it can be used directly. + * + * @endparblock + */ + +/** + * @page compose-conflicting Conflicting Sequences + * @parblock + * + * To avoid ambiguity, a sequence is not allowed to be a prefix of another. + * In such a case, the conflict is resolved thus: + * + * 1. A longer sequence overrides a shorter one. + * 2. An equal sequence overrides an existing one. + * 3. A shorter sequence does not override a longer one. + * + * Sequences of length 1 are allowed, although they are not common. + * + * @endparblock + */ + +/** + * @page compose-cancellation Cancellation Behavior + * @parblock + * + * What should happen when a sequence is cancelled? For example, consider + * there are only the above sequences, and the input kesysms are + * \ \. There are a few approaches: + * + * 1. Swallow the cancelling keysym; that is, no keysym is produced. + * This is the approach taken by libX11. + * 2. Let the cancelling keysym through; that is, \ is produced. + * 3. Replay the entire sequence; that is, \ \ is produced. + * This is the approach taken by Microsoft Windows (approximately; + * instead of \, the underlying key is used. This is + * difficult to simulate with XKB keymaps). + * + * You can program whichever approach best fits users' expectations. + * + * @endparblock + */ + +/** + * @struct xkb_compose_table + * Opaque Compose table object. + * + * The compose table holds the definitions of the Compose sequences, as + * gathered from Compose files. It is immutable. + */ +struct xkb_compose_table; + +/** + * @struct xkb_compose_state + * Opaque Compose state object. + * + * The compose state maintains state for compose sequence matching, such + * as which possible sequences are being matched, and the position within + * these sequences. It acts as a simple state machine wherein keysyms are + * the input, and composed keysyms and strings are the output. + * + * The compose state is usually associated with a keyboard device. + */ +struct xkb_compose_state; + +/** Flags affecting Compose file compilation. */ +enum xkb_compose_compile_flags { + /** Do not apply any flags. */ + XKB_COMPOSE_COMPILE_NO_FLAGS = 0 +}; + +/** The recognized Compose file formats. */ +enum xkb_compose_format { + /** The classic libX11 Compose text format, described in Compose(5). */ + XKB_COMPOSE_FORMAT_TEXT_V1 = 1 +}; + +/** + * @page compose-locale Compose Locale + * @parblock + * + * Compose files are locale dependent: + * - Compose files are written for a locale, and the locale is used when + * searching for the appropriate file to use. + * - Compose files may reference the locale internally, with directives + * such as %L. + * As such, functions like xkb_compose_table_new_from_locale() require + * a @p locale parameter. This will usually be the current locale (see + * locale(7) for more details). You may also want to allow the user to + * explicitly configure it, so he can use the Compose file of a given + * locale, but not use that locale for other things. + * + * You may query the current locale as follows: + * @code + * const char *locale; + * locale = setlocale(LC_CTYPE, NULL); + * @endcode + * + * This will only give useful results if the program had previously set + * the current locale using setlocale(3), with LC_CTYPE or LC_ALL and a + * non-NULL argument. + * + * If you prefer not to use the locale system of the C runtime library, + * you may nevertheless obtain the user's locale directly using + * environment variables, as described in locale(7). For example, + * @code + * locale = getenv("LC_ALL"); + * if (!locale) + * locale = getenv("LC_CTYPE"); + * if (!locale) + * locale = getenv("LANG"); + * if (!locale) + * locale = "C"; + * @endcode + * + * Note that some locales supported by the C standard library may not + * have a Compose file assigned. + * + * @endparblock + */ + +/** + * Create a compose table for a given locale. + * + * The locale is used for searching the file-system for an appropriate + * Compose file. The search order is described in Compose(5). It is + * affected by the following environment variables: + * XCOMPOSEFILE, HOME, XLOCALEDIR. + * + * @param context + * The library context in which to create the compose table. + * @param locale + * The current locale. See @ref compose-locale. + * @param flags + * Optional flags for the compose table, or 0. + * + * @returns A compose table for the given locale, or NULL if the + * compilation failed or a Compose file was not found. + * + * @memberof xkb_compose_table + */ +struct xkb_compose_table * +xkb_compose_table_new_from_locale(struct xkb_context *context, + const char *locale, + enum xkb_compose_compile_flags flags); + +/** + * Create a new compose table from a Compose file. + * + * @param context + * The library context in which to create the compose table. + * @param file + * The Compose file to compile. + * @param locale + * The current locale. See @ref compose-locale. + * @param format + * The text format of the Compose file to compile. + * @param flags + * Optional flags for the compose table, or 0. + * + * @returns A compose table compiled from the given file, or NULL if + * the compilation failed. + * + * @memberof xkb_compose_table + */ +struct xkb_compose_table * +xkb_compose_table_new_from_file(struct xkb_context *context, + FILE *file, + const char *locale, + enum xkb_compose_format format, + enum xkb_compose_compile_flags flags); + +/** + * Create a new compose table from a memory buffer. + * + * This is just like xkb_compose_table_new_from_file(), but instead of + * a file, gets the table as one enormous string. + * + * @see xkb_compose_table_new_from_file() + * @memberof xkb_compose_table + */ +struct xkb_compose_table * +xkb_compose_table_new_from_buffer(struct xkb_context *context, + const char *buffer, size_t length, + const char *locale, + enum xkb_compose_format format, + enum xkb_compose_compile_flags flags); + +/** + * Take a new reference on a compose table. + * + * @returns The passed in object. + * + * @memberof xkb_compose_table + */ +struct xkb_compose_table * +xkb_compose_table_ref(struct xkb_compose_table *table); + +/** + * Release a reference on a compose table, and possibly free it. + * + * @param table The object. If it is NULL, this function does nothing. + * + * @memberof xkb_compose_table + */ +void +xkb_compose_table_unref(struct xkb_compose_table *table); + +/** Flags for compose state creation. */ +enum xkb_compose_state_flags { + /** Do not apply any flags. */ + XKB_COMPOSE_STATE_NO_FLAGS = 0 +}; + +/** + * Create a new compose state object. + * + * @param table + * The compose table the state will use. + * @param flags + * Optional flags for the compose state, or 0. + * + * @returns A new compose state, or NULL on failure. + * + * @memberof xkb_compose_state + */ +struct xkb_compose_state * +xkb_compose_state_new(struct xkb_compose_table *table, + enum xkb_compose_state_flags flags); + +/** + * Take a new reference on a compose state object. + * + * @returns The passed in object. + * + * @memberof xkb_compose_state + */ +struct xkb_compose_state * +xkb_compose_state_ref(struct xkb_compose_state *state); + +/** + * Release a reference on a compose state object, and possibly free it. + * + * @param state The object. If NULL, do nothing. + * + * @memberof xkb_compose_state + */ +void +xkb_compose_state_unref(struct xkb_compose_state *state); + +/** + * Get the compose table which a compose state object is using. + * + * @returns The compose table which was passed to xkb_compose_state_new() + * when creating this state object. + * + * This function does not take a new reference on the compose table; you + * must explicitly reference it yourself if you plan to use it beyond the + * lifetime of the state. + * + * @memberof xkb_compose_state + */ +struct xkb_compose_table * +xkb_compose_state_get_compose_table(struct xkb_compose_state *state); + +/** Status of the Compose sequence state machine. */ +enum xkb_compose_status { + /** The initial state; no sequence has started yet. */ + XKB_COMPOSE_NOTHING, + /** In the middle of a sequence. */ + XKB_COMPOSE_COMPOSING, + /** A complete sequence has been matched. */ + XKB_COMPOSE_COMPOSED, + /** The last sequence was cancelled due to an unmatched keysym. */ + XKB_COMPOSE_CANCELLED +}; + +/** The effect of a keysym fed to xkb_compose_state_feed(). */ +enum xkb_compose_feed_result { + /** The keysym had no effect - it did not affect the status. */ + XKB_COMPOSE_FEED_IGNORED, + /** The keysym started, advanced or cancelled a sequence. */ + XKB_COMPOSE_FEED_ACCEPTED +}; + +/** + * Feed one keysym to the Compose sequence state machine. + * + * This function can advance into a compose sequence, cancel a sequence, + * start a new sequence, or do nothing in particular . The resulting + * status may be observed with xkb_compose_state_get_status(). + * + * Some keysyms, such as keysysm for modifier keys, are ignored - they + * have no effect on the status or otherwise. + * + * The following is a description of the possible status transitions, in + * the format CURRENT STATUS => NEXT STATUS, given a non-ignored input + * keysym @p keysym: + * + @verbatim + NOTHING or CANCELLED or COMPOSED => + NOTHING if keysym does not start a sequence. + COMPOSING if keysym starts a sequence. + COMPOSED if keysym starts and terminates a single-keysym sequence. + + COMPOSING => + COMPOSING if keysym advances any of the currently possible + sequences but does not terminate any of them. + COMPOSED if keysym terminates one of the currently possible + sequences. + CANCELLED if keysym does not advance any of the currently + possible sequences. + @endverbatim + * + * The current Compose formats do not support multiple-keysyms. + * Therefore, if you are using a function such as xkb_state_key_get_syms() + * and it returns more than one keysym, consider feeding + * @p XKB_KEY_NoSymbol instead. + * + * @param state + * The compose state object. + * @param keysym + * A keysym, usually obtained after a key-press event, with a + * function such as xkb_state_key_get_one_sym(). + * + * @returns Whether the keysym was ignored. This is useful, for example, + * if you want to keep a record of the sequence matched thus far. + * + * @memberof xkb_compose_state + */ +enum xkb_compose_feed_result +xkb_compose_state_feed(struct xkb_compose_state *state, + xkb_keysym_t keysym); + +/** + * Reset the Compose sequence state machine. + * + * The status is set to XKB_COMPOSE_NOTHING, and the current sequence + * is discarded. + * + * @memberof xkb_compose_state + */ +void +xkb_compose_state_reset(struct xkb_compose_state *state); + +/** + * Get the current status of the compose state machine. + * + * @see xkb_compose_status + * @memberof xkb_compose_state + **/ +enum xkb_compose_status +xkb_compose_state_get_status(struct xkb_compose_state *state); + +/** + * Get the result Unicode/UTF-8 string for a composed sequence. + * + * See @ref compose-overview for more details. This function is only + * useful when the status is XKB_COMPOSE_COMPOSED. + * + * @param[in] state + * The compose state. + * @param[out] buffer + * A buffer to write the string into. + * @param[in] size + * Size of the buffer. + * + * @warning If the buffer passed is too small, the string is truncated + * (though still NUL-terminated). + * + * @returns + * The number of bytes required for the string, excluding the NUL byte. + * If the sequence is not complete, or does not have a viable result + * string, returns 0, and sets @p buffer to the empty string (if + * possible). + * @returns + * You may check if truncation has occurred by comparing the return value + * with the size of @p buffer, similarly to the snprintf(3) function. + * You may safely pass NULL and 0 to @p buffer and @p size to find the + * required size (without the NUL-byte). + * + * @memberof xkb_compose_state + **/ +int +xkb_compose_state_get_utf8(struct xkb_compose_state *state, + char *buffer, size_t size); + +/** + * Get the result keysym for a composed sequence. + * + * See @ref compose-overview for more details. This function is only + * useful when the status is XKB_COMPOSE_COMPOSED. + * + * @returns The result keysym. If the sequence is not complete, or does + * not specify a result keysym, returns XKB_KEY_NoSymbol. + * + * @memberof xkb_compose_state + **/ +xkb_keysym_t +xkb_compose_state_get_one_sym(struct xkb_compose_state *state); + +/** @} */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _XKBCOMMON_COMPOSE_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-keysyms.h b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-keysyms.h new file mode 100644 index 0000000..69c582e --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-keysyms.h @@ -0,0 +1,3012 @@ +#ifndef _XKBCOMMON_KEYSYMS_H +#define _XKBCOMMON_KEYSYMS_H + +/* This file is autogenerated from Makefile.am; please do not commit directly. */ + +#define XKB_KEY_NoSymbol 0x000000 /* Special KeySym */ + +/*********************************************************** +Copyright 1987, 1994, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +/* + * The "X11 Window System Protocol" standard defines in Appendix A the + * keysym codes. These 29-bit integer values identify characters or + * functions associated with each key (e.g., via the visible + * engraving) of a keyboard layout. This file assigns mnemonic macro + * names for these keysyms. + * + * This file is also compiled (by src/util/makekeys.c in libX11) into + * hash tables that can be accessed with X11 library functions such as + * XStringToKeysym() and XKeysymToString(). + * + * Where a keysym corresponds one-to-one to an ISO 10646 / Unicode + * character, this is noted in a comment that provides both the U+xxxx + * Unicode position, as well as the official Unicode name of the + * character. + * + * Where the correspondence is either not one-to-one or semantically + * unclear, the Unicode position and name are enclosed in + * parentheses. Such legacy keysyms should be considered deprecated + * and are not recommended for use in future keyboard mappings. + * + * For any future extension of the keysyms with characters already + * found in ISO 10646 / Unicode, the following algorithm shall be + * used. The new keysym code position will simply be the character's + * Unicode number plus 0x01000000. The keysym values in the range + * 0x01000100 to 0x0110ffff are reserved to represent Unicode + * characters in the range U+0100 to U+10FFFF. + * + * While most newer Unicode-based X11 clients do already accept + * Unicode-mapped keysyms in the range 0x01000100 to 0x0110ffff, it + * will remain necessary for clients -- in the interest of + * compatibility with existing servers -- to also understand the + * existing legacy keysym values in the range 0x0100 to 0x20ff. + * + * Where several mnemonic names are defined for the same keysym in this + * file, all but the first one listed should be considered deprecated. + * + * Mnemonic names for keysyms are defined in this file with lines + * that match one of these Perl regular expressions: + * + * /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\* U+([0-9A-F]{4,6}) (.*) \*\/\s*$/ + * /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*\/\*\(U+([0-9A-F]{4,6}) (.*)\)\*\/\s*$/ + * /^\#define XKB_KEY_([a-zA-Z_0-9]+)\s+0x([0-9a-f]+)\s*(\/\*\s*(.*)\s*\*\/)?\s*$/ + * + * Before adding new keysyms, please do consider the following: In + * addition to the keysym names defined in this file, the + * XStringToKeysym() and XKeysymToString() functions will also handle + * any keysym string of the form "U0020" to "U007E" and "U00A0" to + * "U10FFFF" for all possible Unicode characters. In other words, + * every possible Unicode character has already a keysym string + * defined algorithmically, even if it is not listed here. Therefore, + * defining an additional keysym macro is only necessary where a + * non-hexadecimal mnemonic name is needed, or where the new keysym + * does not represent any existing Unicode character. + * + * When adding new keysyms to this file, do not forget to also update the + * following as needed: + * + * - the mappings in src/KeyBind.c in the repo + * git://anongit.freedesktop.org/xorg/lib/libX11.git + * + * - the protocol specification in specs/keysyms.xml + * in the repo git://anongit.freedesktop.org/xorg/proto/x11proto.git + * + */ + +#define XKB_KEY_VoidSymbol 0xffffff /* Void symbol */ + +/* + * TTY function keys, cleverly chosen to map to ASCII, for convenience of + * programming, but could have been arbitrary (at the cost of lookup + * tables in client code). + */ + +#define XKB_KEY_BackSpace 0xff08 /* Back space, back char */ +#define XKB_KEY_Tab 0xff09 +#define XKB_KEY_Linefeed 0xff0a /* Linefeed, LF */ +#define XKB_KEY_Clear 0xff0b +#define XKB_KEY_Return 0xff0d /* Return, enter */ +#define XKB_KEY_Pause 0xff13 /* Pause, hold */ +#define XKB_KEY_Scroll_Lock 0xff14 +#define XKB_KEY_Sys_Req 0xff15 +#define XKB_KEY_Escape 0xff1b +#define XKB_KEY_Delete 0xffff /* Delete, rubout */ + + + +/* International & multi-key character composition */ + +#define XKB_KEY_Multi_key 0xff20 /* Multi-key character compose */ +#define XKB_KEY_Codeinput 0xff37 +#define XKB_KEY_SingleCandidate 0xff3c +#define XKB_KEY_MultipleCandidate 0xff3d +#define XKB_KEY_PreviousCandidate 0xff3e + +/* Japanese keyboard support */ + +#define XKB_KEY_Kanji 0xff21 /* Kanji, Kanji convert */ +#define XKB_KEY_Muhenkan 0xff22 /* Cancel Conversion */ +#define XKB_KEY_Henkan_Mode 0xff23 /* Start/Stop Conversion */ +#define XKB_KEY_Henkan 0xff23 /* Alias for Henkan_Mode */ +#define XKB_KEY_Romaji 0xff24 /* to Romaji */ +#define XKB_KEY_Hiragana 0xff25 /* to Hiragana */ +#define XKB_KEY_Katakana 0xff26 /* to Katakana */ +#define XKB_KEY_Hiragana_Katakana 0xff27 /* Hiragana/Katakana toggle */ +#define XKB_KEY_Zenkaku 0xff28 /* to Zenkaku */ +#define XKB_KEY_Hankaku 0xff29 /* to Hankaku */ +#define XKB_KEY_Zenkaku_Hankaku 0xff2a /* Zenkaku/Hankaku toggle */ +#define XKB_KEY_Touroku 0xff2b /* Add to Dictionary */ +#define XKB_KEY_Massyo 0xff2c /* Delete from Dictionary */ +#define XKB_KEY_Kana_Lock 0xff2d /* Kana Lock */ +#define XKB_KEY_Kana_Shift 0xff2e /* Kana Shift */ +#define XKB_KEY_Eisu_Shift 0xff2f /* Alphanumeric Shift */ +#define XKB_KEY_Eisu_toggle 0xff30 /* Alphanumeric toggle */ +#define XKB_KEY_Kanji_Bangou 0xff37 /* Codeinput */ +#define XKB_KEY_Zen_Koho 0xff3d /* Multiple/All Candidate(s) */ +#define XKB_KEY_Mae_Koho 0xff3e /* Previous Candidate */ + +/* 0xff31 thru 0xff3f are under XK_KOREAN */ + +/* Cursor control & motion */ + +#define XKB_KEY_Home 0xff50 +#define XKB_KEY_Left 0xff51 /* Move left, left arrow */ +#define XKB_KEY_Up 0xff52 /* Move up, up arrow */ +#define XKB_KEY_Right 0xff53 /* Move right, right arrow */ +#define XKB_KEY_Down 0xff54 /* Move down, down arrow */ +#define XKB_KEY_Prior 0xff55 /* Prior, previous */ +#define XKB_KEY_Page_Up 0xff55 +#define XKB_KEY_Next 0xff56 /* Next */ +#define XKB_KEY_Page_Down 0xff56 +#define XKB_KEY_End 0xff57 /* EOL */ +#define XKB_KEY_Begin 0xff58 /* BOL */ + + +/* Misc functions */ + +#define XKB_KEY_Select 0xff60 /* Select, mark */ +#define XKB_KEY_Print 0xff61 +#define XKB_KEY_Execute 0xff62 /* Execute, run, do */ +#define XKB_KEY_Insert 0xff63 /* Insert, insert here */ +#define XKB_KEY_Undo 0xff65 +#define XKB_KEY_Redo 0xff66 /* Redo, again */ +#define XKB_KEY_Menu 0xff67 +#define XKB_KEY_Find 0xff68 /* Find, search */ +#define XKB_KEY_Cancel 0xff69 /* Cancel, stop, abort, exit */ +#define XKB_KEY_Help 0xff6a /* Help */ +#define XKB_KEY_Break 0xff6b +#define XKB_KEY_Mode_switch 0xff7e /* Character set switch */ +#define XKB_KEY_script_switch 0xff7e /* Alias for mode_switch */ +#define XKB_KEY_Num_Lock 0xff7f + +/* Keypad functions, keypad numbers cleverly chosen to map to ASCII */ + +#define XKB_KEY_KP_Space 0xff80 /* Space */ +#define XKB_KEY_KP_Tab 0xff89 +#define XKB_KEY_KP_Enter 0xff8d /* Enter */ +#define XKB_KEY_KP_F1 0xff91 /* PF1, KP_A, ... */ +#define XKB_KEY_KP_F2 0xff92 +#define XKB_KEY_KP_F3 0xff93 +#define XKB_KEY_KP_F4 0xff94 +#define XKB_KEY_KP_Home 0xff95 +#define XKB_KEY_KP_Left 0xff96 +#define XKB_KEY_KP_Up 0xff97 +#define XKB_KEY_KP_Right 0xff98 +#define XKB_KEY_KP_Down 0xff99 +#define XKB_KEY_KP_Prior 0xff9a +#define XKB_KEY_KP_Page_Up 0xff9a +#define XKB_KEY_KP_Next 0xff9b +#define XKB_KEY_KP_Page_Down 0xff9b +#define XKB_KEY_KP_End 0xff9c +#define XKB_KEY_KP_Begin 0xff9d +#define XKB_KEY_KP_Insert 0xff9e +#define XKB_KEY_KP_Delete 0xff9f +#define XKB_KEY_KP_Equal 0xffbd /* Equals */ +#define XKB_KEY_KP_Multiply 0xffaa +#define XKB_KEY_KP_Add 0xffab +#define XKB_KEY_KP_Separator 0xffac /* Separator, often comma */ +#define XKB_KEY_KP_Subtract 0xffad +#define XKB_KEY_KP_Decimal 0xffae +#define XKB_KEY_KP_Divide 0xffaf + +#define XKB_KEY_KP_0 0xffb0 +#define XKB_KEY_KP_1 0xffb1 +#define XKB_KEY_KP_2 0xffb2 +#define XKB_KEY_KP_3 0xffb3 +#define XKB_KEY_KP_4 0xffb4 +#define XKB_KEY_KP_5 0xffb5 +#define XKB_KEY_KP_6 0xffb6 +#define XKB_KEY_KP_7 0xffb7 +#define XKB_KEY_KP_8 0xffb8 +#define XKB_KEY_KP_9 0xffb9 + + + +/* + * Auxiliary functions; note the duplicate definitions for left and right + * function keys; Sun keyboards and a few other manufacturers have such + * function key groups on the left and/or right sides of the keyboard. + * We've not found a keyboard with more than 35 function keys total. + */ + +#define XKB_KEY_F1 0xffbe +#define XKB_KEY_F2 0xffbf +#define XKB_KEY_F3 0xffc0 +#define XKB_KEY_F4 0xffc1 +#define XKB_KEY_F5 0xffc2 +#define XKB_KEY_F6 0xffc3 +#define XKB_KEY_F7 0xffc4 +#define XKB_KEY_F8 0xffc5 +#define XKB_KEY_F9 0xffc6 +#define XKB_KEY_F10 0xffc7 +#define XKB_KEY_F11 0xffc8 +#define XKB_KEY_L1 0xffc8 +#define XKB_KEY_F12 0xffc9 +#define XKB_KEY_L2 0xffc9 +#define XKB_KEY_F13 0xffca +#define XKB_KEY_L3 0xffca +#define XKB_KEY_F14 0xffcb +#define XKB_KEY_L4 0xffcb +#define XKB_KEY_F15 0xffcc +#define XKB_KEY_L5 0xffcc +#define XKB_KEY_F16 0xffcd +#define XKB_KEY_L6 0xffcd +#define XKB_KEY_F17 0xffce +#define XKB_KEY_L7 0xffce +#define XKB_KEY_F18 0xffcf +#define XKB_KEY_L8 0xffcf +#define XKB_KEY_F19 0xffd0 +#define XKB_KEY_L9 0xffd0 +#define XKB_KEY_F20 0xffd1 +#define XKB_KEY_L10 0xffd1 +#define XKB_KEY_F21 0xffd2 +#define XKB_KEY_R1 0xffd2 +#define XKB_KEY_F22 0xffd3 +#define XKB_KEY_R2 0xffd3 +#define XKB_KEY_F23 0xffd4 +#define XKB_KEY_R3 0xffd4 +#define XKB_KEY_F24 0xffd5 +#define XKB_KEY_R4 0xffd5 +#define XKB_KEY_F25 0xffd6 +#define XKB_KEY_R5 0xffd6 +#define XKB_KEY_F26 0xffd7 +#define XKB_KEY_R6 0xffd7 +#define XKB_KEY_F27 0xffd8 +#define XKB_KEY_R7 0xffd8 +#define XKB_KEY_F28 0xffd9 +#define XKB_KEY_R8 0xffd9 +#define XKB_KEY_F29 0xffda +#define XKB_KEY_R9 0xffda +#define XKB_KEY_F30 0xffdb +#define XKB_KEY_R10 0xffdb +#define XKB_KEY_F31 0xffdc +#define XKB_KEY_R11 0xffdc +#define XKB_KEY_F32 0xffdd +#define XKB_KEY_R12 0xffdd +#define XKB_KEY_F33 0xffde +#define XKB_KEY_R13 0xffde +#define XKB_KEY_F34 0xffdf +#define XKB_KEY_R14 0xffdf +#define XKB_KEY_F35 0xffe0 +#define XKB_KEY_R15 0xffe0 + +/* Modifiers */ + +#define XKB_KEY_Shift_L 0xffe1 /* Left shift */ +#define XKB_KEY_Shift_R 0xffe2 /* Right shift */ +#define XKB_KEY_Control_L 0xffe3 /* Left control */ +#define XKB_KEY_Control_R 0xffe4 /* Right control */ +#define XKB_KEY_Caps_Lock 0xffe5 /* Caps lock */ +#define XKB_KEY_Shift_Lock 0xffe6 /* Shift lock */ + +#define XKB_KEY_Meta_L 0xffe7 /* Left meta */ +#define XKB_KEY_Meta_R 0xffe8 /* Right meta */ +#define XKB_KEY_Alt_L 0xffe9 /* Left alt */ +#define XKB_KEY_Alt_R 0xffea /* Right alt */ +#define XKB_KEY_Super_L 0xffeb /* Left super */ +#define XKB_KEY_Super_R 0xffec /* Right super */ +#define XKB_KEY_Hyper_L 0xffed /* Left hyper */ +#define XKB_KEY_Hyper_R 0xffee /* Right hyper */ + +/* + * Keyboard (XKB) Extension function and modifier keys + * (from Appendix C of "The X Keyboard Extension: Protocol Specification") + * Byte 3 = 0xfe + */ + +#define XKB_KEY_ISO_Lock 0xfe01 +#define XKB_KEY_ISO_Level2_Latch 0xfe02 +#define XKB_KEY_ISO_Level3_Shift 0xfe03 +#define XKB_KEY_ISO_Level3_Latch 0xfe04 +#define XKB_KEY_ISO_Level3_Lock 0xfe05 +#define XKB_KEY_ISO_Level5_Shift 0xfe11 +#define XKB_KEY_ISO_Level5_Latch 0xfe12 +#define XKB_KEY_ISO_Level5_Lock 0xfe13 +#define XKB_KEY_ISO_Group_Shift 0xff7e /* Alias for mode_switch */ +#define XKB_KEY_ISO_Group_Latch 0xfe06 +#define XKB_KEY_ISO_Group_Lock 0xfe07 +#define XKB_KEY_ISO_Next_Group 0xfe08 +#define XKB_KEY_ISO_Next_Group_Lock 0xfe09 +#define XKB_KEY_ISO_Prev_Group 0xfe0a +#define XKB_KEY_ISO_Prev_Group_Lock 0xfe0b +#define XKB_KEY_ISO_First_Group 0xfe0c +#define XKB_KEY_ISO_First_Group_Lock 0xfe0d +#define XKB_KEY_ISO_Last_Group 0xfe0e +#define XKB_KEY_ISO_Last_Group_Lock 0xfe0f + +#define XKB_KEY_ISO_Left_Tab 0xfe20 +#define XKB_KEY_ISO_Move_Line_Up 0xfe21 +#define XKB_KEY_ISO_Move_Line_Down 0xfe22 +#define XKB_KEY_ISO_Partial_Line_Up 0xfe23 +#define XKB_KEY_ISO_Partial_Line_Down 0xfe24 +#define XKB_KEY_ISO_Partial_Space_Left 0xfe25 +#define XKB_KEY_ISO_Partial_Space_Right 0xfe26 +#define XKB_KEY_ISO_Set_Margin_Left 0xfe27 +#define XKB_KEY_ISO_Set_Margin_Right 0xfe28 +#define XKB_KEY_ISO_Release_Margin_Left 0xfe29 +#define XKB_KEY_ISO_Release_Margin_Right 0xfe2a +#define XKB_KEY_ISO_Release_Both_Margins 0xfe2b +#define XKB_KEY_ISO_Fast_Cursor_Left 0xfe2c +#define XKB_KEY_ISO_Fast_Cursor_Right 0xfe2d +#define XKB_KEY_ISO_Fast_Cursor_Up 0xfe2e +#define XKB_KEY_ISO_Fast_Cursor_Down 0xfe2f +#define XKB_KEY_ISO_Continuous_Underline 0xfe30 +#define XKB_KEY_ISO_Discontinuous_Underline 0xfe31 +#define XKB_KEY_ISO_Emphasize 0xfe32 +#define XKB_KEY_ISO_Center_Object 0xfe33 +#define XKB_KEY_ISO_Enter 0xfe34 + +#define XKB_KEY_dead_grave 0xfe50 +#define XKB_KEY_dead_acute 0xfe51 +#define XKB_KEY_dead_circumflex 0xfe52 +#define XKB_KEY_dead_tilde 0xfe53 +#define XKB_KEY_dead_perispomeni 0xfe53 /* alias for dead_tilde */ +#define XKB_KEY_dead_macron 0xfe54 +#define XKB_KEY_dead_breve 0xfe55 +#define XKB_KEY_dead_abovedot 0xfe56 +#define XKB_KEY_dead_diaeresis 0xfe57 +#define XKB_KEY_dead_abovering 0xfe58 +#define XKB_KEY_dead_doubleacute 0xfe59 +#define XKB_KEY_dead_caron 0xfe5a +#define XKB_KEY_dead_cedilla 0xfe5b +#define XKB_KEY_dead_ogonek 0xfe5c +#define XKB_KEY_dead_iota 0xfe5d +#define XKB_KEY_dead_voiced_sound 0xfe5e +#define XKB_KEY_dead_semivoiced_sound 0xfe5f +#define XKB_KEY_dead_belowdot 0xfe60 +#define XKB_KEY_dead_hook 0xfe61 +#define XKB_KEY_dead_horn 0xfe62 +#define XKB_KEY_dead_stroke 0xfe63 +#define XKB_KEY_dead_abovecomma 0xfe64 +#define XKB_KEY_dead_psili 0xfe64 /* alias for dead_abovecomma */ +#define XKB_KEY_dead_abovereversedcomma 0xfe65 +#define XKB_KEY_dead_dasia 0xfe65 /* alias for dead_abovereversedcomma */ +#define XKB_KEY_dead_doublegrave 0xfe66 +#define XKB_KEY_dead_belowring 0xfe67 +#define XKB_KEY_dead_belowmacron 0xfe68 +#define XKB_KEY_dead_belowcircumflex 0xfe69 +#define XKB_KEY_dead_belowtilde 0xfe6a +#define XKB_KEY_dead_belowbreve 0xfe6b +#define XKB_KEY_dead_belowdiaeresis 0xfe6c +#define XKB_KEY_dead_invertedbreve 0xfe6d +#define XKB_KEY_dead_belowcomma 0xfe6e +#define XKB_KEY_dead_currency 0xfe6f + +/* extra dead elements for German T3 layout */ +#define XKB_KEY_dead_lowline 0xfe90 +#define XKB_KEY_dead_aboveverticalline 0xfe91 +#define XKB_KEY_dead_belowverticalline 0xfe92 +#define XKB_KEY_dead_longsolidusoverlay 0xfe93 + +/* dead vowels for universal syllable entry */ +#define XKB_KEY_dead_a 0xfe80 +#define XKB_KEY_dead_A 0xfe81 +#define XKB_KEY_dead_e 0xfe82 +#define XKB_KEY_dead_E 0xfe83 +#define XKB_KEY_dead_i 0xfe84 +#define XKB_KEY_dead_I 0xfe85 +#define XKB_KEY_dead_o 0xfe86 +#define XKB_KEY_dead_O 0xfe87 +#define XKB_KEY_dead_u 0xfe88 +#define XKB_KEY_dead_U 0xfe89 +#define XKB_KEY_dead_small_schwa 0xfe8a +#define XKB_KEY_dead_capital_schwa 0xfe8b + +#define XKB_KEY_dead_greek 0xfe8c + +#define XKB_KEY_First_Virtual_Screen 0xfed0 +#define XKB_KEY_Prev_Virtual_Screen 0xfed1 +#define XKB_KEY_Next_Virtual_Screen 0xfed2 +#define XKB_KEY_Last_Virtual_Screen 0xfed4 +#define XKB_KEY_Terminate_Server 0xfed5 + +#define XKB_KEY_AccessX_Enable 0xfe70 +#define XKB_KEY_AccessX_Feedback_Enable 0xfe71 +#define XKB_KEY_RepeatKeys_Enable 0xfe72 +#define XKB_KEY_SlowKeys_Enable 0xfe73 +#define XKB_KEY_BounceKeys_Enable 0xfe74 +#define XKB_KEY_StickyKeys_Enable 0xfe75 +#define XKB_KEY_MouseKeys_Enable 0xfe76 +#define XKB_KEY_MouseKeys_Accel_Enable 0xfe77 +#define XKB_KEY_Overlay1_Enable 0xfe78 +#define XKB_KEY_Overlay2_Enable 0xfe79 +#define XKB_KEY_AudibleBell_Enable 0xfe7a + +#define XKB_KEY_Pointer_Left 0xfee0 +#define XKB_KEY_Pointer_Right 0xfee1 +#define XKB_KEY_Pointer_Up 0xfee2 +#define XKB_KEY_Pointer_Down 0xfee3 +#define XKB_KEY_Pointer_UpLeft 0xfee4 +#define XKB_KEY_Pointer_UpRight 0xfee5 +#define XKB_KEY_Pointer_DownLeft 0xfee6 +#define XKB_KEY_Pointer_DownRight 0xfee7 +#define XKB_KEY_Pointer_Button_Dflt 0xfee8 +#define XKB_KEY_Pointer_Button1 0xfee9 +#define XKB_KEY_Pointer_Button2 0xfeea +#define XKB_KEY_Pointer_Button3 0xfeeb +#define XKB_KEY_Pointer_Button4 0xfeec +#define XKB_KEY_Pointer_Button5 0xfeed +#define XKB_KEY_Pointer_DblClick_Dflt 0xfeee +#define XKB_KEY_Pointer_DblClick1 0xfeef +#define XKB_KEY_Pointer_DblClick2 0xfef0 +#define XKB_KEY_Pointer_DblClick3 0xfef1 +#define XKB_KEY_Pointer_DblClick4 0xfef2 +#define XKB_KEY_Pointer_DblClick5 0xfef3 +#define XKB_KEY_Pointer_Drag_Dflt 0xfef4 +#define XKB_KEY_Pointer_Drag1 0xfef5 +#define XKB_KEY_Pointer_Drag2 0xfef6 +#define XKB_KEY_Pointer_Drag3 0xfef7 +#define XKB_KEY_Pointer_Drag4 0xfef8 +#define XKB_KEY_Pointer_Drag5 0xfefd + +#define XKB_KEY_Pointer_EnableKeys 0xfef9 +#define XKB_KEY_Pointer_Accelerate 0xfefa +#define XKB_KEY_Pointer_DfltBtnNext 0xfefb +#define XKB_KEY_Pointer_DfltBtnPrev 0xfefc + +/* Single-Stroke Multiple-Character N-Graph Keysyms For The X Input Method */ + +#define XKB_KEY_ch 0xfea0 +#define XKB_KEY_Ch 0xfea1 +#define XKB_KEY_CH 0xfea2 +#define XKB_KEY_c_h 0xfea3 +#define XKB_KEY_C_h 0xfea4 +#define XKB_KEY_C_H 0xfea5 + + +/* + * 3270 Terminal Keys + * Byte 3 = 0xfd + */ + +#define XKB_KEY_3270_Duplicate 0xfd01 +#define XKB_KEY_3270_FieldMark 0xfd02 +#define XKB_KEY_3270_Right2 0xfd03 +#define XKB_KEY_3270_Left2 0xfd04 +#define XKB_KEY_3270_BackTab 0xfd05 +#define XKB_KEY_3270_EraseEOF 0xfd06 +#define XKB_KEY_3270_EraseInput 0xfd07 +#define XKB_KEY_3270_Reset 0xfd08 +#define XKB_KEY_3270_Quit 0xfd09 +#define XKB_KEY_3270_PA1 0xfd0a +#define XKB_KEY_3270_PA2 0xfd0b +#define XKB_KEY_3270_PA3 0xfd0c +#define XKB_KEY_3270_Test 0xfd0d +#define XKB_KEY_3270_Attn 0xfd0e +#define XKB_KEY_3270_CursorBlink 0xfd0f +#define XKB_KEY_3270_AltCursor 0xfd10 +#define XKB_KEY_3270_KeyClick 0xfd11 +#define XKB_KEY_3270_Jump 0xfd12 +#define XKB_KEY_3270_Ident 0xfd13 +#define XKB_KEY_3270_Rule 0xfd14 +#define XKB_KEY_3270_Copy 0xfd15 +#define XKB_KEY_3270_Play 0xfd16 +#define XKB_KEY_3270_Setup 0xfd17 +#define XKB_KEY_3270_Record 0xfd18 +#define XKB_KEY_3270_ChangeScreen 0xfd19 +#define XKB_KEY_3270_DeleteWord 0xfd1a +#define XKB_KEY_3270_ExSelect 0xfd1b +#define XKB_KEY_3270_CursorSelect 0xfd1c +#define XKB_KEY_3270_PrintScreen 0xfd1d +#define XKB_KEY_3270_Enter 0xfd1e + +/* + * Latin 1 + * (ISO/IEC 8859-1 = Unicode U+0020..U+00FF) + * Byte 3 = 0 + */ +#define XKB_KEY_space 0x0020 /* U+0020 SPACE */ +#define XKB_KEY_exclam 0x0021 /* U+0021 EXCLAMATION MARK */ +#define XKB_KEY_quotedbl 0x0022 /* U+0022 QUOTATION MARK */ +#define XKB_KEY_numbersign 0x0023 /* U+0023 NUMBER SIGN */ +#define XKB_KEY_dollar 0x0024 /* U+0024 DOLLAR SIGN */ +#define XKB_KEY_percent 0x0025 /* U+0025 PERCENT SIGN */ +#define XKB_KEY_ampersand 0x0026 /* U+0026 AMPERSAND */ +#define XKB_KEY_apostrophe 0x0027 /* U+0027 APOSTROPHE */ +#define XKB_KEY_quoteright 0x0027 /* deprecated */ +#define XKB_KEY_parenleft 0x0028 /* U+0028 LEFT PARENTHESIS */ +#define XKB_KEY_parenright 0x0029 /* U+0029 RIGHT PARENTHESIS */ +#define XKB_KEY_asterisk 0x002a /* U+002A ASTERISK */ +#define XKB_KEY_plus 0x002b /* U+002B PLUS SIGN */ +#define XKB_KEY_comma 0x002c /* U+002C COMMA */ +#define XKB_KEY_minus 0x002d /* U+002D HYPHEN-MINUS */ +#define XKB_KEY_period 0x002e /* U+002E FULL STOP */ +#define XKB_KEY_slash 0x002f /* U+002F SOLIDUS */ +#define XKB_KEY_0 0x0030 /* U+0030 DIGIT ZERO */ +#define XKB_KEY_1 0x0031 /* U+0031 DIGIT ONE */ +#define XKB_KEY_2 0x0032 /* U+0032 DIGIT TWO */ +#define XKB_KEY_3 0x0033 /* U+0033 DIGIT THREE */ +#define XKB_KEY_4 0x0034 /* U+0034 DIGIT FOUR */ +#define XKB_KEY_5 0x0035 /* U+0035 DIGIT FIVE */ +#define XKB_KEY_6 0x0036 /* U+0036 DIGIT SIX */ +#define XKB_KEY_7 0x0037 /* U+0037 DIGIT SEVEN */ +#define XKB_KEY_8 0x0038 /* U+0038 DIGIT EIGHT */ +#define XKB_KEY_9 0x0039 /* U+0039 DIGIT NINE */ +#define XKB_KEY_colon 0x003a /* U+003A COLON */ +#define XKB_KEY_semicolon 0x003b /* U+003B SEMICOLON */ +#define XKB_KEY_less 0x003c /* U+003C LESS-THAN SIGN */ +#define XKB_KEY_equal 0x003d /* U+003D EQUALS SIGN */ +#define XKB_KEY_greater 0x003e /* U+003E GREATER-THAN SIGN */ +#define XKB_KEY_question 0x003f /* U+003F QUESTION MARK */ +#define XKB_KEY_at 0x0040 /* U+0040 COMMERCIAL AT */ +#define XKB_KEY_A 0x0041 /* U+0041 LATIN CAPITAL LETTER A */ +#define XKB_KEY_B 0x0042 /* U+0042 LATIN CAPITAL LETTER B */ +#define XKB_KEY_C 0x0043 /* U+0043 LATIN CAPITAL LETTER C */ +#define XKB_KEY_D 0x0044 /* U+0044 LATIN CAPITAL LETTER D */ +#define XKB_KEY_E 0x0045 /* U+0045 LATIN CAPITAL LETTER E */ +#define XKB_KEY_F 0x0046 /* U+0046 LATIN CAPITAL LETTER F */ +#define XKB_KEY_G 0x0047 /* U+0047 LATIN CAPITAL LETTER G */ +#define XKB_KEY_H 0x0048 /* U+0048 LATIN CAPITAL LETTER H */ +#define XKB_KEY_I 0x0049 /* U+0049 LATIN CAPITAL LETTER I */ +#define XKB_KEY_J 0x004a /* U+004A LATIN CAPITAL LETTER J */ +#define XKB_KEY_K 0x004b /* U+004B LATIN CAPITAL LETTER K */ +#define XKB_KEY_L 0x004c /* U+004C LATIN CAPITAL LETTER L */ +#define XKB_KEY_M 0x004d /* U+004D LATIN CAPITAL LETTER M */ +#define XKB_KEY_N 0x004e /* U+004E LATIN CAPITAL LETTER N */ +#define XKB_KEY_O 0x004f /* U+004F LATIN CAPITAL LETTER O */ +#define XKB_KEY_P 0x0050 /* U+0050 LATIN CAPITAL LETTER P */ +#define XKB_KEY_Q 0x0051 /* U+0051 LATIN CAPITAL LETTER Q */ +#define XKB_KEY_R 0x0052 /* U+0052 LATIN CAPITAL LETTER R */ +#define XKB_KEY_S 0x0053 /* U+0053 LATIN CAPITAL LETTER S */ +#define XKB_KEY_T 0x0054 /* U+0054 LATIN CAPITAL LETTER T */ +#define XKB_KEY_U 0x0055 /* U+0055 LATIN CAPITAL LETTER U */ +#define XKB_KEY_V 0x0056 /* U+0056 LATIN CAPITAL LETTER V */ +#define XKB_KEY_W 0x0057 /* U+0057 LATIN CAPITAL LETTER W */ +#define XKB_KEY_X 0x0058 /* U+0058 LATIN CAPITAL LETTER X */ +#define XKB_KEY_Y 0x0059 /* U+0059 LATIN CAPITAL LETTER Y */ +#define XKB_KEY_Z 0x005a /* U+005A LATIN CAPITAL LETTER Z */ +#define XKB_KEY_bracketleft 0x005b /* U+005B LEFT SQUARE BRACKET */ +#define XKB_KEY_backslash 0x005c /* U+005C REVERSE SOLIDUS */ +#define XKB_KEY_bracketright 0x005d /* U+005D RIGHT SQUARE BRACKET */ +#define XKB_KEY_asciicircum 0x005e /* U+005E CIRCUMFLEX ACCENT */ +#define XKB_KEY_underscore 0x005f /* U+005F LOW LINE */ +#define XKB_KEY_grave 0x0060 /* U+0060 GRAVE ACCENT */ +#define XKB_KEY_quoteleft 0x0060 /* deprecated */ +#define XKB_KEY_a 0x0061 /* U+0061 LATIN SMALL LETTER A */ +#define XKB_KEY_b 0x0062 /* U+0062 LATIN SMALL LETTER B */ +#define XKB_KEY_c 0x0063 /* U+0063 LATIN SMALL LETTER C */ +#define XKB_KEY_d 0x0064 /* U+0064 LATIN SMALL LETTER D */ +#define XKB_KEY_e 0x0065 /* U+0065 LATIN SMALL LETTER E */ +#define XKB_KEY_f 0x0066 /* U+0066 LATIN SMALL LETTER F */ +#define XKB_KEY_g 0x0067 /* U+0067 LATIN SMALL LETTER G */ +#define XKB_KEY_h 0x0068 /* U+0068 LATIN SMALL LETTER H */ +#define XKB_KEY_i 0x0069 /* U+0069 LATIN SMALL LETTER I */ +#define XKB_KEY_j 0x006a /* U+006A LATIN SMALL LETTER J */ +#define XKB_KEY_k 0x006b /* U+006B LATIN SMALL LETTER K */ +#define XKB_KEY_l 0x006c /* U+006C LATIN SMALL LETTER L */ +#define XKB_KEY_m 0x006d /* U+006D LATIN SMALL LETTER M */ +#define XKB_KEY_n 0x006e /* U+006E LATIN SMALL LETTER N */ +#define XKB_KEY_o 0x006f /* U+006F LATIN SMALL LETTER O */ +#define XKB_KEY_p 0x0070 /* U+0070 LATIN SMALL LETTER P */ +#define XKB_KEY_q 0x0071 /* U+0071 LATIN SMALL LETTER Q */ +#define XKB_KEY_r 0x0072 /* U+0072 LATIN SMALL LETTER R */ +#define XKB_KEY_s 0x0073 /* U+0073 LATIN SMALL LETTER S */ +#define XKB_KEY_t 0x0074 /* U+0074 LATIN SMALL LETTER T */ +#define XKB_KEY_u 0x0075 /* U+0075 LATIN SMALL LETTER U */ +#define XKB_KEY_v 0x0076 /* U+0076 LATIN SMALL LETTER V */ +#define XKB_KEY_w 0x0077 /* U+0077 LATIN SMALL LETTER W */ +#define XKB_KEY_x 0x0078 /* U+0078 LATIN SMALL LETTER X */ +#define XKB_KEY_y 0x0079 /* U+0079 LATIN SMALL LETTER Y */ +#define XKB_KEY_z 0x007a /* U+007A LATIN SMALL LETTER Z */ +#define XKB_KEY_braceleft 0x007b /* U+007B LEFT CURLY BRACKET */ +#define XKB_KEY_bar 0x007c /* U+007C VERTICAL LINE */ +#define XKB_KEY_braceright 0x007d /* U+007D RIGHT CURLY BRACKET */ +#define XKB_KEY_asciitilde 0x007e /* U+007E TILDE */ + +#define XKB_KEY_nobreakspace 0x00a0 /* U+00A0 NO-BREAK SPACE */ +#define XKB_KEY_exclamdown 0x00a1 /* U+00A1 INVERTED EXCLAMATION MARK */ +#define XKB_KEY_cent 0x00a2 /* U+00A2 CENT SIGN */ +#define XKB_KEY_sterling 0x00a3 /* U+00A3 POUND SIGN */ +#define XKB_KEY_currency 0x00a4 /* U+00A4 CURRENCY SIGN */ +#define XKB_KEY_yen 0x00a5 /* U+00A5 YEN SIGN */ +#define XKB_KEY_brokenbar 0x00a6 /* U+00A6 BROKEN BAR */ +#define XKB_KEY_section 0x00a7 /* U+00A7 SECTION SIGN */ +#define XKB_KEY_diaeresis 0x00a8 /* U+00A8 DIAERESIS */ +#define XKB_KEY_copyright 0x00a9 /* U+00A9 COPYRIGHT SIGN */ +#define XKB_KEY_ordfeminine 0x00aa /* U+00AA FEMININE ORDINAL INDICATOR */ +#define XKB_KEY_guillemotleft 0x00ab /* U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ +#define XKB_KEY_notsign 0x00ac /* U+00AC NOT SIGN */ +#define XKB_KEY_hyphen 0x00ad /* U+00AD SOFT HYPHEN */ +#define XKB_KEY_registered 0x00ae /* U+00AE REGISTERED SIGN */ +#define XKB_KEY_macron 0x00af /* U+00AF MACRON */ +#define XKB_KEY_degree 0x00b0 /* U+00B0 DEGREE SIGN */ +#define XKB_KEY_plusminus 0x00b1 /* U+00B1 PLUS-MINUS SIGN */ +#define XKB_KEY_twosuperior 0x00b2 /* U+00B2 SUPERSCRIPT TWO */ +#define XKB_KEY_threesuperior 0x00b3 /* U+00B3 SUPERSCRIPT THREE */ +#define XKB_KEY_acute 0x00b4 /* U+00B4 ACUTE ACCENT */ +#define XKB_KEY_mu 0x00b5 /* U+00B5 MICRO SIGN */ +#define XKB_KEY_paragraph 0x00b6 /* U+00B6 PILCROW SIGN */ +#define XKB_KEY_periodcentered 0x00b7 /* U+00B7 MIDDLE DOT */ +#define XKB_KEY_cedilla 0x00b8 /* U+00B8 CEDILLA */ +#define XKB_KEY_onesuperior 0x00b9 /* U+00B9 SUPERSCRIPT ONE */ +#define XKB_KEY_masculine 0x00ba /* U+00BA MASCULINE ORDINAL INDICATOR */ +#define XKB_KEY_guillemotright 0x00bb /* U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ +#define XKB_KEY_onequarter 0x00bc /* U+00BC VULGAR FRACTION ONE QUARTER */ +#define XKB_KEY_onehalf 0x00bd /* U+00BD VULGAR FRACTION ONE HALF */ +#define XKB_KEY_threequarters 0x00be /* U+00BE VULGAR FRACTION THREE QUARTERS */ +#define XKB_KEY_questiondown 0x00bf /* U+00BF INVERTED QUESTION MARK */ +#define XKB_KEY_Agrave 0x00c0 /* U+00C0 LATIN CAPITAL LETTER A WITH GRAVE */ +#define XKB_KEY_Aacute 0x00c1 /* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE */ +#define XKB_KEY_Acircumflex 0x00c2 /* U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ +#define XKB_KEY_Atilde 0x00c3 /* U+00C3 LATIN CAPITAL LETTER A WITH TILDE */ +#define XKB_KEY_Adiaeresis 0x00c4 /* U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS */ +#define XKB_KEY_Aring 0x00c5 /* U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE */ +#define XKB_KEY_AE 0x00c6 /* U+00C6 LATIN CAPITAL LETTER AE */ +#define XKB_KEY_Ccedilla 0x00c7 /* U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA */ +#define XKB_KEY_Egrave 0x00c8 /* U+00C8 LATIN CAPITAL LETTER E WITH GRAVE */ +#define XKB_KEY_Eacute 0x00c9 /* U+00C9 LATIN CAPITAL LETTER E WITH ACUTE */ +#define XKB_KEY_Ecircumflex 0x00ca /* U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ +#define XKB_KEY_Ediaeresis 0x00cb /* U+00CB LATIN CAPITAL LETTER E WITH DIAERESIS */ +#define XKB_KEY_Igrave 0x00cc /* U+00CC LATIN CAPITAL LETTER I WITH GRAVE */ +#define XKB_KEY_Iacute 0x00cd /* U+00CD LATIN CAPITAL LETTER I WITH ACUTE */ +#define XKB_KEY_Icircumflex 0x00ce /* U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ +#define XKB_KEY_Idiaeresis 0x00cf /* U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS */ +#define XKB_KEY_ETH 0x00d0 /* U+00D0 LATIN CAPITAL LETTER ETH */ +#define XKB_KEY_Eth 0x00d0 /* deprecated */ +#define XKB_KEY_Ntilde 0x00d1 /* U+00D1 LATIN CAPITAL LETTER N WITH TILDE */ +#define XKB_KEY_Ograve 0x00d2 /* U+00D2 LATIN CAPITAL LETTER O WITH GRAVE */ +#define XKB_KEY_Oacute 0x00d3 /* U+00D3 LATIN CAPITAL LETTER O WITH ACUTE */ +#define XKB_KEY_Ocircumflex 0x00d4 /* U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ +#define XKB_KEY_Otilde 0x00d5 /* U+00D5 LATIN CAPITAL LETTER O WITH TILDE */ +#define XKB_KEY_Odiaeresis 0x00d6 /* U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS */ +#define XKB_KEY_multiply 0x00d7 /* U+00D7 MULTIPLICATION SIGN */ +#define XKB_KEY_Oslash 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */ +#define XKB_KEY_Ooblique 0x00d8 /* U+00D8 LATIN CAPITAL LETTER O WITH STROKE */ +#define XKB_KEY_Ugrave 0x00d9 /* U+00D9 LATIN CAPITAL LETTER U WITH GRAVE */ +#define XKB_KEY_Uacute 0x00da /* U+00DA LATIN CAPITAL LETTER U WITH ACUTE */ +#define XKB_KEY_Ucircumflex 0x00db /* U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ +#define XKB_KEY_Udiaeresis 0x00dc /* U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS */ +#define XKB_KEY_Yacute 0x00dd /* U+00DD LATIN CAPITAL LETTER Y WITH ACUTE */ +#define XKB_KEY_THORN 0x00de /* U+00DE LATIN CAPITAL LETTER THORN */ +#define XKB_KEY_Thorn 0x00de /* deprecated */ +#define XKB_KEY_ssharp 0x00df /* U+00DF LATIN SMALL LETTER SHARP S */ +#define XKB_KEY_agrave 0x00e0 /* U+00E0 LATIN SMALL LETTER A WITH GRAVE */ +#define XKB_KEY_aacute 0x00e1 /* U+00E1 LATIN SMALL LETTER A WITH ACUTE */ +#define XKB_KEY_acircumflex 0x00e2 /* U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX */ +#define XKB_KEY_atilde 0x00e3 /* U+00E3 LATIN SMALL LETTER A WITH TILDE */ +#define XKB_KEY_adiaeresis 0x00e4 /* U+00E4 LATIN SMALL LETTER A WITH DIAERESIS */ +#define XKB_KEY_aring 0x00e5 /* U+00E5 LATIN SMALL LETTER A WITH RING ABOVE */ +#define XKB_KEY_ae 0x00e6 /* U+00E6 LATIN SMALL LETTER AE */ +#define XKB_KEY_ccedilla 0x00e7 /* U+00E7 LATIN SMALL LETTER C WITH CEDILLA */ +#define XKB_KEY_egrave 0x00e8 /* U+00E8 LATIN SMALL LETTER E WITH GRAVE */ +#define XKB_KEY_eacute 0x00e9 /* U+00E9 LATIN SMALL LETTER E WITH ACUTE */ +#define XKB_KEY_ecircumflex 0x00ea /* U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX */ +#define XKB_KEY_ediaeresis 0x00eb /* U+00EB LATIN SMALL LETTER E WITH DIAERESIS */ +#define XKB_KEY_igrave 0x00ec /* U+00EC LATIN SMALL LETTER I WITH GRAVE */ +#define XKB_KEY_iacute 0x00ed /* U+00ED LATIN SMALL LETTER I WITH ACUTE */ +#define XKB_KEY_icircumflex 0x00ee /* U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX */ +#define XKB_KEY_idiaeresis 0x00ef /* U+00EF LATIN SMALL LETTER I WITH DIAERESIS */ +#define XKB_KEY_eth 0x00f0 /* U+00F0 LATIN SMALL LETTER ETH */ +#define XKB_KEY_ntilde 0x00f1 /* U+00F1 LATIN SMALL LETTER N WITH TILDE */ +#define XKB_KEY_ograve 0x00f2 /* U+00F2 LATIN SMALL LETTER O WITH GRAVE */ +#define XKB_KEY_oacute 0x00f3 /* U+00F3 LATIN SMALL LETTER O WITH ACUTE */ +#define XKB_KEY_ocircumflex 0x00f4 /* U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX */ +#define XKB_KEY_otilde 0x00f5 /* U+00F5 LATIN SMALL LETTER O WITH TILDE */ +#define XKB_KEY_odiaeresis 0x00f6 /* U+00F6 LATIN SMALL LETTER O WITH DIAERESIS */ +#define XKB_KEY_division 0x00f7 /* U+00F7 DIVISION SIGN */ +#define XKB_KEY_oslash 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */ +#define XKB_KEY_ooblique 0x00f8 /* U+00F8 LATIN SMALL LETTER O WITH STROKE */ +#define XKB_KEY_ugrave 0x00f9 /* U+00F9 LATIN SMALL LETTER U WITH GRAVE */ +#define XKB_KEY_uacute 0x00fa /* U+00FA LATIN SMALL LETTER U WITH ACUTE */ +#define XKB_KEY_ucircumflex 0x00fb /* U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX */ +#define XKB_KEY_udiaeresis 0x00fc /* U+00FC LATIN SMALL LETTER U WITH DIAERESIS */ +#define XKB_KEY_yacute 0x00fd /* U+00FD LATIN SMALL LETTER Y WITH ACUTE */ +#define XKB_KEY_thorn 0x00fe /* U+00FE LATIN SMALL LETTER THORN */ +#define XKB_KEY_ydiaeresis 0x00ff /* U+00FF LATIN SMALL LETTER Y WITH DIAERESIS */ + +/* + * Latin 2 + * Byte 3 = 1 + */ + +#define XKB_KEY_Aogonek 0x01a1 /* U+0104 LATIN CAPITAL LETTER A WITH OGONEK */ +#define XKB_KEY_breve 0x01a2 /* U+02D8 BREVE */ +#define XKB_KEY_Lstroke 0x01a3 /* U+0141 LATIN CAPITAL LETTER L WITH STROKE */ +#define XKB_KEY_Lcaron 0x01a5 /* U+013D LATIN CAPITAL LETTER L WITH CARON */ +#define XKB_KEY_Sacute 0x01a6 /* U+015A LATIN CAPITAL LETTER S WITH ACUTE */ +#define XKB_KEY_Scaron 0x01a9 /* U+0160 LATIN CAPITAL LETTER S WITH CARON */ +#define XKB_KEY_Scedilla 0x01aa /* U+015E LATIN CAPITAL LETTER S WITH CEDILLA */ +#define XKB_KEY_Tcaron 0x01ab /* U+0164 LATIN CAPITAL LETTER T WITH CARON */ +#define XKB_KEY_Zacute 0x01ac /* U+0179 LATIN CAPITAL LETTER Z WITH ACUTE */ +#define XKB_KEY_Zcaron 0x01ae /* U+017D LATIN CAPITAL LETTER Z WITH CARON */ +#define XKB_KEY_Zabovedot 0x01af /* U+017B LATIN CAPITAL LETTER Z WITH DOT ABOVE */ +#define XKB_KEY_aogonek 0x01b1 /* U+0105 LATIN SMALL LETTER A WITH OGONEK */ +#define XKB_KEY_ogonek 0x01b2 /* U+02DB OGONEK */ +#define XKB_KEY_lstroke 0x01b3 /* U+0142 LATIN SMALL LETTER L WITH STROKE */ +#define XKB_KEY_lcaron 0x01b5 /* U+013E LATIN SMALL LETTER L WITH CARON */ +#define XKB_KEY_sacute 0x01b6 /* U+015B LATIN SMALL LETTER S WITH ACUTE */ +#define XKB_KEY_caron 0x01b7 /* U+02C7 CARON */ +#define XKB_KEY_scaron 0x01b9 /* U+0161 LATIN SMALL LETTER S WITH CARON */ +#define XKB_KEY_scedilla 0x01ba /* U+015F LATIN SMALL LETTER S WITH CEDILLA */ +#define XKB_KEY_tcaron 0x01bb /* U+0165 LATIN SMALL LETTER T WITH CARON */ +#define XKB_KEY_zacute 0x01bc /* U+017A LATIN SMALL LETTER Z WITH ACUTE */ +#define XKB_KEY_doubleacute 0x01bd /* U+02DD DOUBLE ACUTE ACCENT */ +#define XKB_KEY_zcaron 0x01be /* U+017E LATIN SMALL LETTER Z WITH CARON */ +#define XKB_KEY_zabovedot 0x01bf /* U+017C LATIN SMALL LETTER Z WITH DOT ABOVE */ +#define XKB_KEY_Racute 0x01c0 /* U+0154 LATIN CAPITAL LETTER R WITH ACUTE */ +#define XKB_KEY_Abreve 0x01c3 /* U+0102 LATIN CAPITAL LETTER A WITH BREVE */ +#define XKB_KEY_Lacute 0x01c5 /* U+0139 LATIN CAPITAL LETTER L WITH ACUTE */ +#define XKB_KEY_Cacute 0x01c6 /* U+0106 LATIN CAPITAL LETTER C WITH ACUTE */ +#define XKB_KEY_Ccaron 0x01c8 /* U+010C LATIN CAPITAL LETTER C WITH CARON */ +#define XKB_KEY_Eogonek 0x01ca /* U+0118 LATIN CAPITAL LETTER E WITH OGONEK */ +#define XKB_KEY_Ecaron 0x01cc /* U+011A LATIN CAPITAL LETTER E WITH CARON */ +#define XKB_KEY_Dcaron 0x01cf /* U+010E LATIN CAPITAL LETTER D WITH CARON */ +#define XKB_KEY_Dstroke 0x01d0 /* U+0110 LATIN CAPITAL LETTER D WITH STROKE */ +#define XKB_KEY_Nacute 0x01d1 /* U+0143 LATIN CAPITAL LETTER N WITH ACUTE */ +#define XKB_KEY_Ncaron 0x01d2 /* U+0147 LATIN CAPITAL LETTER N WITH CARON */ +#define XKB_KEY_Odoubleacute 0x01d5 /* U+0150 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ +#define XKB_KEY_Rcaron 0x01d8 /* U+0158 LATIN CAPITAL LETTER R WITH CARON */ +#define XKB_KEY_Uring 0x01d9 /* U+016E LATIN CAPITAL LETTER U WITH RING ABOVE */ +#define XKB_KEY_Udoubleacute 0x01db /* U+0170 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ +#define XKB_KEY_Tcedilla 0x01de /* U+0162 LATIN CAPITAL LETTER T WITH CEDILLA */ +#define XKB_KEY_racute 0x01e0 /* U+0155 LATIN SMALL LETTER R WITH ACUTE */ +#define XKB_KEY_abreve 0x01e3 /* U+0103 LATIN SMALL LETTER A WITH BREVE */ +#define XKB_KEY_lacute 0x01e5 /* U+013A LATIN SMALL LETTER L WITH ACUTE */ +#define XKB_KEY_cacute 0x01e6 /* U+0107 LATIN SMALL LETTER C WITH ACUTE */ +#define XKB_KEY_ccaron 0x01e8 /* U+010D LATIN SMALL LETTER C WITH CARON */ +#define XKB_KEY_eogonek 0x01ea /* U+0119 LATIN SMALL LETTER E WITH OGONEK */ +#define XKB_KEY_ecaron 0x01ec /* U+011B LATIN SMALL LETTER E WITH CARON */ +#define XKB_KEY_dcaron 0x01ef /* U+010F LATIN SMALL LETTER D WITH CARON */ +#define XKB_KEY_dstroke 0x01f0 /* U+0111 LATIN SMALL LETTER D WITH STROKE */ +#define XKB_KEY_nacute 0x01f1 /* U+0144 LATIN SMALL LETTER N WITH ACUTE */ +#define XKB_KEY_ncaron 0x01f2 /* U+0148 LATIN SMALL LETTER N WITH CARON */ +#define XKB_KEY_odoubleacute 0x01f5 /* U+0151 LATIN SMALL LETTER O WITH DOUBLE ACUTE */ +#define XKB_KEY_rcaron 0x01f8 /* U+0159 LATIN SMALL LETTER R WITH CARON */ +#define XKB_KEY_uring 0x01f9 /* U+016F LATIN SMALL LETTER U WITH RING ABOVE */ +#define XKB_KEY_udoubleacute 0x01fb /* U+0171 LATIN SMALL LETTER U WITH DOUBLE ACUTE */ +#define XKB_KEY_tcedilla 0x01fe /* U+0163 LATIN SMALL LETTER T WITH CEDILLA */ +#define XKB_KEY_abovedot 0x01ff /* U+02D9 DOT ABOVE */ + +/* + * Latin 3 + * Byte 3 = 2 + */ + +#define XKB_KEY_Hstroke 0x02a1 /* U+0126 LATIN CAPITAL LETTER H WITH STROKE */ +#define XKB_KEY_Hcircumflex 0x02a6 /* U+0124 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ +#define XKB_KEY_Iabovedot 0x02a9 /* U+0130 LATIN CAPITAL LETTER I WITH DOT ABOVE */ +#define XKB_KEY_Gbreve 0x02ab /* U+011E LATIN CAPITAL LETTER G WITH BREVE */ +#define XKB_KEY_Jcircumflex 0x02ac /* U+0134 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ +#define XKB_KEY_hstroke 0x02b1 /* U+0127 LATIN SMALL LETTER H WITH STROKE */ +#define XKB_KEY_hcircumflex 0x02b6 /* U+0125 LATIN SMALL LETTER H WITH CIRCUMFLEX */ +#define XKB_KEY_idotless 0x02b9 /* U+0131 LATIN SMALL LETTER DOTLESS I */ +#define XKB_KEY_gbreve 0x02bb /* U+011F LATIN SMALL LETTER G WITH BREVE */ +#define XKB_KEY_jcircumflex 0x02bc /* U+0135 LATIN SMALL LETTER J WITH CIRCUMFLEX */ +#define XKB_KEY_Cabovedot 0x02c5 /* U+010A LATIN CAPITAL LETTER C WITH DOT ABOVE */ +#define XKB_KEY_Ccircumflex 0x02c6 /* U+0108 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ +#define XKB_KEY_Gabovedot 0x02d5 /* U+0120 LATIN CAPITAL LETTER G WITH DOT ABOVE */ +#define XKB_KEY_Gcircumflex 0x02d8 /* U+011C LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ +#define XKB_KEY_Ubreve 0x02dd /* U+016C LATIN CAPITAL LETTER U WITH BREVE */ +#define XKB_KEY_Scircumflex 0x02de /* U+015C LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ +#define XKB_KEY_cabovedot 0x02e5 /* U+010B LATIN SMALL LETTER C WITH DOT ABOVE */ +#define XKB_KEY_ccircumflex 0x02e6 /* U+0109 LATIN SMALL LETTER C WITH CIRCUMFLEX */ +#define XKB_KEY_gabovedot 0x02f5 /* U+0121 LATIN SMALL LETTER G WITH DOT ABOVE */ +#define XKB_KEY_gcircumflex 0x02f8 /* U+011D LATIN SMALL LETTER G WITH CIRCUMFLEX */ +#define XKB_KEY_ubreve 0x02fd /* U+016D LATIN SMALL LETTER U WITH BREVE */ +#define XKB_KEY_scircumflex 0x02fe /* U+015D LATIN SMALL LETTER S WITH CIRCUMFLEX */ + + +/* + * Latin 4 + * Byte 3 = 3 + */ + +#define XKB_KEY_kra 0x03a2 /* U+0138 LATIN SMALL LETTER KRA */ +#define XKB_KEY_kappa 0x03a2 /* deprecated */ +#define XKB_KEY_Rcedilla 0x03a3 /* U+0156 LATIN CAPITAL LETTER R WITH CEDILLA */ +#define XKB_KEY_Itilde 0x03a5 /* U+0128 LATIN CAPITAL LETTER I WITH TILDE */ +#define XKB_KEY_Lcedilla 0x03a6 /* U+013B LATIN CAPITAL LETTER L WITH CEDILLA */ +#define XKB_KEY_Emacron 0x03aa /* U+0112 LATIN CAPITAL LETTER E WITH MACRON */ +#define XKB_KEY_Gcedilla 0x03ab /* U+0122 LATIN CAPITAL LETTER G WITH CEDILLA */ +#define XKB_KEY_Tslash 0x03ac /* U+0166 LATIN CAPITAL LETTER T WITH STROKE */ +#define XKB_KEY_rcedilla 0x03b3 /* U+0157 LATIN SMALL LETTER R WITH CEDILLA */ +#define XKB_KEY_itilde 0x03b5 /* U+0129 LATIN SMALL LETTER I WITH TILDE */ +#define XKB_KEY_lcedilla 0x03b6 /* U+013C LATIN SMALL LETTER L WITH CEDILLA */ +#define XKB_KEY_emacron 0x03ba /* U+0113 LATIN SMALL LETTER E WITH MACRON */ +#define XKB_KEY_gcedilla 0x03bb /* U+0123 LATIN SMALL LETTER G WITH CEDILLA */ +#define XKB_KEY_tslash 0x03bc /* U+0167 LATIN SMALL LETTER T WITH STROKE */ +#define XKB_KEY_ENG 0x03bd /* U+014A LATIN CAPITAL LETTER ENG */ +#define XKB_KEY_eng 0x03bf /* U+014B LATIN SMALL LETTER ENG */ +#define XKB_KEY_Amacron 0x03c0 /* U+0100 LATIN CAPITAL LETTER A WITH MACRON */ +#define XKB_KEY_Iogonek 0x03c7 /* U+012E LATIN CAPITAL LETTER I WITH OGONEK */ +#define XKB_KEY_Eabovedot 0x03cc /* U+0116 LATIN CAPITAL LETTER E WITH DOT ABOVE */ +#define XKB_KEY_Imacron 0x03cf /* U+012A LATIN CAPITAL LETTER I WITH MACRON */ +#define XKB_KEY_Ncedilla 0x03d1 /* U+0145 LATIN CAPITAL LETTER N WITH CEDILLA */ +#define XKB_KEY_Omacron 0x03d2 /* U+014C LATIN CAPITAL LETTER O WITH MACRON */ +#define XKB_KEY_Kcedilla 0x03d3 /* U+0136 LATIN CAPITAL LETTER K WITH CEDILLA */ +#define XKB_KEY_Uogonek 0x03d9 /* U+0172 LATIN CAPITAL LETTER U WITH OGONEK */ +#define XKB_KEY_Utilde 0x03dd /* U+0168 LATIN CAPITAL LETTER U WITH TILDE */ +#define XKB_KEY_Umacron 0x03de /* U+016A LATIN CAPITAL LETTER U WITH MACRON */ +#define XKB_KEY_amacron 0x03e0 /* U+0101 LATIN SMALL LETTER A WITH MACRON */ +#define XKB_KEY_iogonek 0x03e7 /* U+012F LATIN SMALL LETTER I WITH OGONEK */ +#define XKB_KEY_eabovedot 0x03ec /* U+0117 LATIN SMALL LETTER E WITH DOT ABOVE */ +#define XKB_KEY_imacron 0x03ef /* U+012B LATIN SMALL LETTER I WITH MACRON */ +#define XKB_KEY_ncedilla 0x03f1 /* U+0146 LATIN SMALL LETTER N WITH CEDILLA */ +#define XKB_KEY_omacron 0x03f2 /* U+014D LATIN SMALL LETTER O WITH MACRON */ +#define XKB_KEY_kcedilla 0x03f3 /* U+0137 LATIN SMALL LETTER K WITH CEDILLA */ +#define XKB_KEY_uogonek 0x03f9 /* U+0173 LATIN SMALL LETTER U WITH OGONEK */ +#define XKB_KEY_utilde 0x03fd /* U+0169 LATIN SMALL LETTER U WITH TILDE */ +#define XKB_KEY_umacron 0x03fe /* U+016B LATIN SMALL LETTER U WITH MACRON */ + +/* + * Latin 8 + */ +#define XKB_KEY_Wcircumflex 0x1000174 /* U+0174 LATIN CAPITAL LETTER W WITH CIRCUMFLEX */ +#define XKB_KEY_wcircumflex 0x1000175 /* U+0175 LATIN SMALL LETTER W WITH CIRCUMFLEX */ +#define XKB_KEY_Ycircumflex 0x1000176 /* U+0176 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX */ +#define XKB_KEY_ycircumflex 0x1000177 /* U+0177 LATIN SMALL LETTER Y WITH CIRCUMFLEX */ +#define XKB_KEY_Babovedot 0x1001e02 /* U+1E02 LATIN CAPITAL LETTER B WITH DOT ABOVE */ +#define XKB_KEY_babovedot 0x1001e03 /* U+1E03 LATIN SMALL LETTER B WITH DOT ABOVE */ +#define XKB_KEY_Dabovedot 0x1001e0a /* U+1E0A LATIN CAPITAL LETTER D WITH DOT ABOVE */ +#define XKB_KEY_dabovedot 0x1001e0b /* U+1E0B LATIN SMALL LETTER D WITH DOT ABOVE */ +#define XKB_KEY_Fabovedot 0x1001e1e /* U+1E1E LATIN CAPITAL LETTER F WITH DOT ABOVE */ +#define XKB_KEY_fabovedot 0x1001e1f /* U+1E1F LATIN SMALL LETTER F WITH DOT ABOVE */ +#define XKB_KEY_Mabovedot 0x1001e40 /* U+1E40 LATIN CAPITAL LETTER M WITH DOT ABOVE */ +#define XKB_KEY_mabovedot 0x1001e41 /* U+1E41 LATIN SMALL LETTER M WITH DOT ABOVE */ +#define XKB_KEY_Pabovedot 0x1001e56 /* U+1E56 LATIN CAPITAL LETTER P WITH DOT ABOVE */ +#define XKB_KEY_pabovedot 0x1001e57 /* U+1E57 LATIN SMALL LETTER P WITH DOT ABOVE */ +#define XKB_KEY_Sabovedot 0x1001e60 /* U+1E60 LATIN CAPITAL LETTER S WITH DOT ABOVE */ +#define XKB_KEY_sabovedot 0x1001e61 /* U+1E61 LATIN SMALL LETTER S WITH DOT ABOVE */ +#define XKB_KEY_Tabovedot 0x1001e6a /* U+1E6A LATIN CAPITAL LETTER T WITH DOT ABOVE */ +#define XKB_KEY_tabovedot 0x1001e6b /* U+1E6B LATIN SMALL LETTER T WITH DOT ABOVE */ +#define XKB_KEY_Wgrave 0x1001e80 /* U+1E80 LATIN CAPITAL LETTER W WITH GRAVE */ +#define XKB_KEY_wgrave 0x1001e81 /* U+1E81 LATIN SMALL LETTER W WITH GRAVE */ +#define XKB_KEY_Wacute 0x1001e82 /* U+1E82 LATIN CAPITAL LETTER W WITH ACUTE */ +#define XKB_KEY_wacute 0x1001e83 /* U+1E83 LATIN SMALL LETTER W WITH ACUTE */ +#define XKB_KEY_Wdiaeresis 0x1001e84 /* U+1E84 LATIN CAPITAL LETTER W WITH DIAERESIS */ +#define XKB_KEY_wdiaeresis 0x1001e85 /* U+1E85 LATIN SMALL LETTER W WITH DIAERESIS */ +#define XKB_KEY_Ygrave 0x1001ef2 /* U+1EF2 LATIN CAPITAL LETTER Y WITH GRAVE */ +#define XKB_KEY_ygrave 0x1001ef3 /* U+1EF3 LATIN SMALL LETTER Y WITH GRAVE */ + +/* + * Latin 9 + * Byte 3 = 0x13 + */ + +#define XKB_KEY_OE 0x13bc /* U+0152 LATIN CAPITAL LIGATURE OE */ +#define XKB_KEY_oe 0x13bd /* U+0153 LATIN SMALL LIGATURE OE */ +#define XKB_KEY_Ydiaeresis 0x13be /* U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS */ + +/* + * Katakana + * Byte 3 = 4 + */ + +#define XKB_KEY_overline 0x047e /* U+203E OVERLINE */ +#define XKB_KEY_kana_fullstop 0x04a1 /* U+3002 IDEOGRAPHIC FULL STOP */ +#define XKB_KEY_kana_openingbracket 0x04a2 /* U+300C LEFT CORNER BRACKET */ +#define XKB_KEY_kana_closingbracket 0x04a3 /* U+300D RIGHT CORNER BRACKET */ +#define XKB_KEY_kana_comma 0x04a4 /* U+3001 IDEOGRAPHIC COMMA */ +#define XKB_KEY_kana_conjunctive 0x04a5 /* U+30FB KATAKANA MIDDLE DOT */ +#define XKB_KEY_kana_middledot 0x04a5 /* deprecated */ +#define XKB_KEY_kana_WO 0x04a6 /* U+30F2 KATAKANA LETTER WO */ +#define XKB_KEY_kana_a 0x04a7 /* U+30A1 KATAKANA LETTER SMALL A */ +#define XKB_KEY_kana_i 0x04a8 /* U+30A3 KATAKANA LETTER SMALL I */ +#define XKB_KEY_kana_u 0x04a9 /* U+30A5 KATAKANA LETTER SMALL U */ +#define XKB_KEY_kana_e 0x04aa /* U+30A7 KATAKANA LETTER SMALL E */ +#define XKB_KEY_kana_o 0x04ab /* U+30A9 KATAKANA LETTER SMALL O */ +#define XKB_KEY_kana_ya 0x04ac /* U+30E3 KATAKANA LETTER SMALL YA */ +#define XKB_KEY_kana_yu 0x04ad /* U+30E5 KATAKANA LETTER SMALL YU */ +#define XKB_KEY_kana_yo 0x04ae /* U+30E7 KATAKANA LETTER SMALL YO */ +#define XKB_KEY_kana_tsu 0x04af /* U+30C3 KATAKANA LETTER SMALL TU */ +#define XKB_KEY_kana_tu 0x04af /* deprecated */ +#define XKB_KEY_prolongedsound 0x04b0 /* U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK */ +#define XKB_KEY_kana_A 0x04b1 /* U+30A2 KATAKANA LETTER A */ +#define XKB_KEY_kana_I 0x04b2 /* U+30A4 KATAKANA LETTER I */ +#define XKB_KEY_kana_U 0x04b3 /* U+30A6 KATAKANA LETTER U */ +#define XKB_KEY_kana_E 0x04b4 /* U+30A8 KATAKANA LETTER E */ +#define XKB_KEY_kana_O 0x04b5 /* U+30AA KATAKANA LETTER O */ +#define XKB_KEY_kana_KA 0x04b6 /* U+30AB KATAKANA LETTER KA */ +#define XKB_KEY_kana_KI 0x04b7 /* U+30AD KATAKANA LETTER KI */ +#define XKB_KEY_kana_KU 0x04b8 /* U+30AF KATAKANA LETTER KU */ +#define XKB_KEY_kana_KE 0x04b9 /* U+30B1 KATAKANA LETTER KE */ +#define XKB_KEY_kana_KO 0x04ba /* U+30B3 KATAKANA LETTER KO */ +#define XKB_KEY_kana_SA 0x04bb /* U+30B5 KATAKANA LETTER SA */ +#define XKB_KEY_kana_SHI 0x04bc /* U+30B7 KATAKANA LETTER SI */ +#define XKB_KEY_kana_SU 0x04bd /* U+30B9 KATAKANA LETTER SU */ +#define XKB_KEY_kana_SE 0x04be /* U+30BB KATAKANA LETTER SE */ +#define XKB_KEY_kana_SO 0x04bf /* U+30BD KATAKANA LETTER SO */ +#define XKB_KEY_kana_TA 0x04c0 /* U+30BF KATAKANA LETTER TA */ +#define XKB_KEY_kana_CHI 0x04c1 /* U+30C1 KATAKANA LETTER TI */ +#define XKB_KEY_kana_TI 0x04c1 /* deprecated */ +#define XKB_KEY_kana_TSU 0x04c2 /* U+30C4 KATAKANA LETTER TU */ +#define XKB_KEY_kana_TU 0x04c2 /* deprecated */ +#define XKB_KEY_kana_TE 0x04c3 /* U+30C6 KATAKANA LETTER TE */ +#define XKB_KEY_kana_TO 0x04c4 /* U+30C8 KATAKANA LETTER TO */ +#define XKB_KEY_kana_NA 0x04c5 /* U+30CA KATAKANA LETTER NA */ +#define XKB_KEY_kana_NI 0x04c6 /* U+30CB KATAKANA LETTER NI */ +#define XKB_KEY_kana_NU 0x04c7 /* U+30CC KATAKANA LETTER NU */ +#define XKB_KEY_kana_NE 0x04c8 /* U+30CD KATAKANA LETTER NE */ +#define XKB_KEY_kana_NO 0x04c9 /* U+30CE KATAKANA LETTER NO */ +#define XKB_KEY_kana_HA 0x04ca /* U+30CF KATAKANA LETTER HA */ +#define XKB_KEY_kana_HI 0x04cb /* U+30D2 KATAKANA LETTER HI */ +#define XKB_KEY_kana_FU 0x04cc /* U+30D5 KATAKANA LETTER HU */ +#define XKB_KEY_kana_HU 0x04cc /* deprecated */ +#define XKB_KEY_kana_HE 0x04cd /* U+30D8 KATAKANA LETTER HE */ +#define XKB_KEY_kana_HO 0x04ce /* U+30DB KATAKANA LETTER HO */ +#define XKB_KEY_kana_MA 0x04cf /* U+30DE KATAKANA LETTER MA */ +#define XKB_KEY_kana_MI 0x04d0 /* U+30DF KATAKANA LETTER MI */ +#define XKB_KEY_kana_MU 0x04d1 /* U+30E0 KATAKANA LETTER MU */ +#define XKB_KEY_kana_ME 0x04d2 /* U+30E1 KATAKANA LETTER ME */ +#define XKB_KEY_kana_MO 0x04d3 /* U+30E2 KATAKANA LETTER MO */ +#define XKB_KEY_kana_YA 0x04d4 /* U+30E4 KATAKANA LETTER YA */ +#define XKB_KEY_kana_YU 0x04d5 /* U+30E6 KATAKANA LETTER YU */ +#define XKB_KEY_kana_YO 0x04d6 /* U+30E8 KATAKANA LETTER YO */ +#define XKB_KEY_kana_RA 0x04d7 /* U+30E9 KATAKANA LETTER RA */ +#define XKB_KEY_kana_RI 0x04d8 /* U+30EA KATAKANA LETTER RI */ +#define XKB_KEY_kana_RU 0x04d9 /* U+30EB KATAKANA LETTER RU */ +#define XKB_KEY_kana_RE 0x04da /* U+30EC KATAKANA LETTER RE */ +#define XKB_KEY_kana_RO 0x04db /* U+30ED KATAKANA LETTER RO */ +#define XKB_KEY_kana_WA 0x04dc /* U+30EF KATAKANA LETTER WA */ +#define XKB_KEY_kana_N 0x04dd /* U+30F3 KATAKANA LETTER N */ +#define XKB_KEY_voicedsound 0x04de /* U+309B KATAKANA-HIRAGANA VOICED SOUND MARK */ +#define XKB_KEY_semivoicedsound 0x04df /* U+309C KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK */ +#define XKB_KEY_kana_switch 0xff7e /* Alias for mode_switch */ + +/* + * Arabic + * Byte 3 = 5 + */ + +#define XKB_KEY_Farsi_0 0x10006f0 /* U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO */ +#define XKB_KEY_Farsi_1 0x10006f1 /* U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE */ +#define XKB_KEY_Farsi_2 0x10006f2 /* U+06F2 EXTENDED ARABIC-INDIC DIGIT TWO */ +#define XKB_KEY_Farsi_3 0x10006f3 /* U+06F3 EXTENDED ARABIC-INDIC DIGIT THREE */ +#define XKB_KEY_Farsi_4 0x10006f4 /* U+06F4 EXTENDED ARABIC-INDIC DIGIT FOUR */ +#define XKB_KEY_Farsi_5 0x10006f5 /* U+06F5 EXTENDED ARABIC-INDIC DIGIT FIVE */ +#define XKB_KEY_Farsi_6 0x10006f6 /* U+06F6 EXTENDED ARABIC-INDIC DIGIT SIX */ +#define XKB_KEY_Farsi_7 0x10006f7 /* U+06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN */ +#define XKB_KEY_Farsi_8 0x10006f8 /* U+06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT */ +#define XKB_KEY_Farsi_9 0x10006f9 /* U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE */ +#define XKB_KEY_Arabic_percent 0x100066a /* U+066A ARABIC PERCENT SIGN */ +#define XKB_KEY_Arabic_superscript_alef 0x1000670 /* U+0670 ARABIC LETTER SUPERSCRIPT ALEF */ +#define XKB_KEY_Arabic_tteh 0x1000679 /* U+0679 ARABIC LETTER TTEH */ +#define XKB_KEY_Arabic_peh 0x100067e /* U+067E ARABIC LETTER PEH */ +#define XKB_KEY_Arabic_tcheh 0x1000686 /* U+0686 ARABIC LETTER TCHEH */ +#define XKB_KEY_Arabic_ddal 0x1000688 /* U+0688 ARABIC LETTER DDAL */ +#define XKB_KEY_Arabic_rreh 0x1000691 /* U+0691 ARABIC LETTER RREH */ +#define XKB_KEY_Arabic_comma 0x05ac /* U+060C ARABIC COMMA */ +#define XKB_KEY_Arabic_fullstop 0x10006d4 /* U+06D4 ARABIC FULL STOP */ +#define XKB_KEY_Arabic_0 0x1000660 /* U+0660 ARABIC-INDIC DIGIT ZERO */ +#define XKB_KEY_Arabic_1 0x1000661 /* U+0661 ARABIC-INDIC DIGIT ONE */ +#define XKB_KEY_Arabic_2 0x1000662 /* U+0662 ARABIC-INDIC DIGIT TWO */ +#define XKB_KEY_Arabic_3 0x1000663 /* U+0663 ARABIC-INDIC DIGIT THREE */ +#define XKB_KEY_Arabic_4 0x1000664 /* U+0664 ARABIC-INDIC DIGIT FOUR */ +#define XKB_KEY_Arabic_5 0x1000665 /* U+0665 ARABIC-INDIC DIGIT FIVE */ +#define XKB_KEY_Arabic_6 0x1000666 /* U+0666 ARABIC-INDIC DIGIT SIX */ +#define XKB_KEY_Arabic_7 0x1000667 /* U+0667 ARABIC-INDIC DIGIT SEVEN */ +#define XKB_KEY_Arabic_8 0x1000668 /* U+0668 ARABIC-INDIC DIGIT EIGHT */ +#define XKB_KEY_Arabic_9 0x1000669 /* U+0669 ARABIC-INDIC DIGIT NINE */ +#define XKB_KEY_Arabic_semicolon 0x05bb /* U+061B ARABIC SEMICOLON */ +#define XKB_KEY_Arabic_question_mark 0x05bf /* U+061F ARABIC QUESTION MARK */ +#define XKB_KEY_Arabic_hamza 0x05c1 /* U+0621 ARABIC LETTER HAMZA */ +#define XKB_KEY_Arabic_maddaonalef 0x05c2 /* U+0622 ARABIC LETTER ALEF WITH MADDA ABOVE */ +#define XKB_KEY_Arabic_hamzaonalef 0x05c3 /* U+0623 ARABIC LETTER ALEF WITH HAMZA ABOVE */ +#define XKB_KEY_Arabic_hamzaonwaw 0x05c4 /* U+0624 ARABIC LETTER WAW WITH HAMZA ABOVE */ +#define XKB_KEY_Arabic_hamzaunderalef 0x05c5 /* U+0625 ARABIC LETTER ALEF WITH HAMZA BELOW */ +#define XKB_KEY_Arabic_hamzaonyeh 0x05c6 /* U+0626 ARABIC LETTER YEH WITH HAMZA ABOVE */ +#define XKB_KEY_Arabic_alef 0x05c7 /* U+0627 ARABIC LETTER ALEF */ +#define XKB_KEY_Arabic_beh 0x05c8 /* U+0628 ARABIC LETTER BEH */ +#define XKB_KEY_Arabic_tehmarbuta 0x05c9 /* U+0629 ARABIC LETTER TEH MARBUTA */ +#define XKB_KEY_Arabic_teh 0x05ca /* U+062A ARABIC LETTER TEH */ +#define XKB_KEY_Arabic_theh 0x05cb /* U+062B ARABIC LETTER THEH */ +#define XKB_KEY_Arabic_jeem 0x05cc /* U+062C ARABIC LETTER JEEM */ +#define XKB_KEY_Arabic_hah 0x05cd /* U+062D ARABIC LETTER HAH */ +#define XKB_KEY_Arabic_khah 0x05ce /* U+062E ARABIC LETTER KHAH */ +#define XKB_KEY_Arabic_dal 0x05cf /* U+062F ARABIC LETTER DAL */ +#define XKB_KEY_Arabic_thal 0x05d0 /* U+0630 ARABIC LETTER THAL */ +#define XKB_KEY_Arabic_ra 0x05d1 /* U+0631 ARABIC LETTER REH */ +#define XKB_KEY_Arabic_zain 0x05d2 /* U+0632 ARABIC LETTER ZAIN */ +#define XKB_KEY_Arabic_seen 0x05d3 /* U+0633 ARABIC LETTER SEEN */ +#define XKB_KEY_Arabic_sheen 0x05d4 /* U+0634 ARABIC LETTER SHEEN */ +#define XKB_KEY_Arabic_sad 0x05d5 /* U+0635 ARABIC LETTER SAD */ +#define XKB_KEY_Arabic_dad 0x05d6 /* U+0636 ARABIC LETTER DAD */ +#define XKB_KEY_Arabic_tah 0x05d7 /* U+0637 ARABIC LETTER TAH */ +#define XKB_KEY_Arabic_zah 0x05d8 /* U+0638 ARABIC LETTER ZAH */ +#define XKB_KEY_Arabic_ain 0x05d9 /* U+0639 ARABIC LETTER AIN */ +#define XKB_KEY_Arabic_ghain 0x05da /* U+063A ARABIC LETTER GHAIN */ +#define XKB_KEY_Arabic_tatweel 0x05e0 /* U+0640 ARABIC TATWEEL */ +#define XKB_KEY_Arabic_feh 0x05e1 /* U+0641 ARABIC LETTER FEH */ +#define XKB_KEY_Arabic_qaf 0x05e2 /* U+0642 ARABIC LETTER QAF */ +#define XKB_KEY_Arabic_kaf 0x05e3 /* U+0643 ARABIC LETTER KAF */ +#define XKB_KEY_Arabic_lam 0x05e4 /* U+0644 ARABIC LETTER LAM */ +#define XKB_KEY_Arabic_meem 0x05e5 /* U+0645 ARABIC LETTER MEEM */ +#define XKB_KEY_Arabic_noon 0x05e6 /* U+0646 ARABIC LETTER NOON */ +#define XKB_KEY_Arabic_ha 0x05e7 /* U+0647 ARABIC LETTER HEH */ +#define XKB_KEY_Arabic_heh 0x05e7 /* deprecated */ +#define XKB_KEY_Arabic_waw 0x05e8 /* U+0648 ARABIC LETTER WAW */ +#define XKB_KEY_Arabic_alefmaksura 0x05e9 /* U+0649 ARABIC LETTER ALEF MAKSURA */ +#define XKB_KEY_Arabic_yeh 0x05ea /* U+064A ARABIC LETTER YEH */ +#define XKB_KEY_Arabic_fathatan 0x05eb /* U+064B ARABIC FATHATAN */ +#define XKB_KEY_Arabic_dammatan 0x05ec /* U+064C ARABIC DAMMATAN */ +#define XKB_KEY_Arabic_kasratan 0x05ed /* U+064D ARABIC KASRATAN */ +#define XKB_KEY_Arabic_fatha 0x05ee /* U+064E ARABIC FATHA */ +#define XKB_KEY_Arabic_damma 0x05ef /* U+064F ARABIC DAMMA */ +#define XKB_KEY_Arabic_kasra 0x05f0 /* U+0650 ARABIC KASRA */ +#define XKB_KEY_Arabic_shadda 0x05f1 /* U+0651 ARABIC SHADDA */ +#define XKB_KEY_Arabic_sukun 0x05f2 /* U+0652 ARABIC SUKUN */ +#define XKB_KEY_Arabic_madda_above 0x1000653 /* U+0653 ARABIC MADDAH ABOVE */ +#define XKB_KEY_Arabic_hamza_above 0x1000654 /* U+0654 ARABIC HAMZA ABOVE */ +#define XKB_KEY_Arabic_hamza_below 0x1000655 /* U+0655 ARABIC HAMZA BELOW */ +#define XKB_KEY_Arabic_jeh 0x1000698 /* U+0698 ARABIC LETTER JEH */ +#define XKB_KEY_Arabic_veh 0x10006a4 /* U+06A4 ARABIC LETTER VEH */ +#define XKB_KEY_Arabic_keheh 0x10006a9 /* U+06A9 ARABIC LETTER KEHEH */ +#define XKB_KEY_Arabic_gaf 0x10006af /* U+06AF ARABIC LETTER GAF */ +#define XKB_KEY_Arabic_noon_ghunna 0x10006ba /* U+06BA ARABIC LETTER NOON GHUNNA */ +#define XKB_KEY_Arabic_heh_doachashmee 0x10006be /* U+06BE ARABIC LETTER HEH DOACHASHMEE */ +#define XKB_KEY_Farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */ +#define XKB_KEY_Arabic_farsi_yeh 0x10006cc /* U+06CC ARABIC LETTER FARSI YEH */ +#define XKB_KEY_Arabic_yeh_baree 0x10006d2 /* U+06D2 ARABIC LETTER YEH BARREE */ +#define XKB_KEY_Arabic_heh_goal 0x10006c1 /* U+06C1 ARABIC LETTER HEH GOAL */ +#define XKB_KEY_Arabic_switch 0xff7e /* Alias for mode_switch */ + +/* + * Cyrillic + * Byte 3 = 6 + */ +#define XKB_KEY_Cyrillic_GHE_bar 0x1000492 /* U+0492 CYRILLIC CAPITAL LETTER GHE WITH STROKE */ +#define XKB_KEY_Cyrillic_ghe_bar 0x1000493 /* U+0493 CYRILLIC SMALL LETTER GHE WITH STROKE */ +#define XKB_KEY_Cyrillic_ZHE_descender 0x1000496 /* U+0496 CYRILLIC CAPITAL LETTER ZHE WITH DESCENDER */ +#define XKB_KEY_Cyrillic_zhe_descender 0x1000497 /* U+0497 CYRILLIC SMALL LETTER ZHE WITH DESCENDER */ +#define XKB_KEY_Cyrillic_KA_descender 0x100049a /* U+049A CYRILLIC CAPITAL LETTER KA WITH DESCENDER */ +#define XKB_KEY_Cyrillic_ka_descender 0x100049b /* U+049B CYRILLIC SMALL LETTER KA WITH DESCENDER */ +#define XKB_KEY_Cyrillic_KA_vertstroke 0x100049c /* U+049C CYRILLIC CAPITAL LETTER KA WITH VERTICAL STROKE */ +#define XKB_KEY_Cyrillic_ka_vertstroke 0x100049d /* U+049D CYRILLIC SMALL LETTER KA WITH VERTICAL STROKE */ +#define XKB_KEY_Cyrillic_EN_descender 0x10004a2 /* U+04A2 CYRILLIC CAPITAL LETTER EN WITH DESCENDER */ +#define XKB_KEY_Cyrillic_en_descender 0x10004a3 /* U+04A3 CYRILLIC SMALL LETTER EN WITH DESCENDER */ +#define XKB_KEY_Cyrillic_U_straight 0x10004ae /* U+04AE CYRILLIC CAPITAL LETTER STRAIGHT U */ +#define XKB_KEY_Cyrillic_u_straight 0x10004af /* U+04AF CYRILLIC SMALL LETTER STRAIGHT U */ +#define XKB_KEY_Cyrillic_U_straight_bar 0x10004b0 /* U+04B0 CYRILLIC CAPITAL LETTER STRAIGHT U WITH STROKE */ +#define XKB_KEY_Cyrillic_u_straight_bar 0x10004b1 /* U+04B1 CYRILLIC SMALL LETTER STRAIGHT U WITH STROKE */ +#define XKB_KEY_Cyrillic_HA_descender 0x10004b2 /* U+04B2 CYRILLIC CAPITAL LETTER HA WITH DESCENDER */ +#define XKB_KEY_Cyrillic_ha_descender 0x10004b3 /* U+04B3 CYRILLIC SMALL LETTER HA WITH DESCENDER */ +#define XKB_KEY_Cyrillic_CHE_descender 0x10004b6 /* U+04B6 CYRILLIC CAPITAL LETTER CHE WITH DESCENDER */ +#define XKB_KEY_Cyrillic_che_descender 0x10004b7 /* U+04B7 CYRILLIC SMALL LETTER CHE WITH DESCENDER */ +#define XKB_KEY_Cyrillic_CHE_vertstroke 0x10004b8 /* U+04B8 CYRILLIC CAPITAL LETTER CHE WITH VERTICAL STROKE */ +#define XKB_KEY_Cyrillic_che_vertstroke 0x10004b9 /* U+04B9 CYRILLIC SMALL LETTER CHE WITH VERTICAL STROKE */ +#define XKB_KEY_Cyrillic_SHHA 0x10004ba /* U+04BA CYRILLIC CAPITAL LETTER SHHA */ +#define XKB_KEY_Cyrillic_shha 0x10004bb /* U+04BB CYRILLIC SMALL LETTER SHHA */ + +#define XKB_KEY_Cyrillic_SCHWA 0x10004d8 /* U+04D8 CYRILLIC CAPITAL LETTER SCHWA */ +#define XKB_KEY_Cyrillic_schwa 0x10004d9 /* U+04D9 CYRILLIC SMALL LETTER SCHWA */ +#define XKB_KEY_Cyrillic_I_macron 0x10004e2 /* U+04E2 CYRILLIC CAPITAL LETTER I WITH MACRON */ +#define XKB_KEY_Cyrillic_i_macron 0x10004e3 /* U+04E3 CYRILLIC SMALL LETTER I WITH MACRON */ +#define XKB_KEY_Cyrillic_O_bar 0x10004e8 /* U+04E8 CYRILLIC CAPITAL LETTER BARRED O */ +#define XKB_KEY_Cyrillic_o_bar 0x10004e9 /* U+04E9 CYRILLIC SMALL LETTER BARRED O */ +#define XKB_KEY_Cyrillic_U_macron 0x10004ee /* U+04EE CYRILLIC CAPITAL LETTER U WITH MACRON */ +#define XKB_KEY_Cyrillic_u_macron 0x10004ef /* U+04EF CYRILLIC SMALL LETTER U WITH MACRON */ + +#define XKB_KEY_Serbian_dje 0x06a1 /* U+0452 CYRILLIC SMALL LETTER DJE */ +#define XKB_KEY_Macedonia_gje 0x06a2 /* U+0453 CYRILLIC SMALL LETTER GJE */ +#define XKB_KEY_Cyrillic_io 0x06a3 /* U+0451 CYRILLIC SMALL LETTER IO */ +#define XKB_KEY_Ukrainian_ie 0x06a4 /* U+0454 CYRILLIC SMALL LETTER UKRAINIAN IE */ +#define XKB_KEY_Ukranian_je 0x06a4 /* deprecated */ +#define XKB_KEY_Macedonia_dse 0x06a5 /* U+0455 CYRILLIC SMALL LETTER DZE */ +#define XKB_KEY_Ukrainian_i 0x06a6 /* U+0456 CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I */ +#define XKB_KEY_Ukranian_i 0x06a6 /* deprecated */ +#define XKB_KEY_Ukrainian_yi 0x06a7 /* U+0457 CYRILLIC SMALL LETTER YI */ +#define XKB_KEY_Ukranian_yi 0x06a7 /* deprecated */ +#define XKB_KEY_Cyrillic_je 0x06a8 /* U+0458 CYRILLIC SMALL LETTER JE */ +#define XKB_KEY_Serbian_je 0x06a8 /* deprecated */ +#define XKB_KEY_Cyrillic_lje 0x06a9 /* U+0459 CYRILLIC SMALL LETTER LJE */ +#define XKB_KEY_Serbian_lje 0x06a9 /* deprecated */ +#define XKB_KEY_Cyrillic_nje 0x06aa /* U+045A CYRILLIC SMALL LETTER NJE */ +#define XKB_KEY_Serbian_nje 0x06aa /* deprecated */ +#define XKB_KEY_Serbian_tshe 0x06ab /* U+045B CYRILLIC SMALL LETTER TSHE */ +#define XKB_KEY_Macedonia_kje 0x06ac /* U+045C CYRILLIC SMALL LETTER KJE */ +#define XKB_KEY_Ukrainian_ghe_with_upturn 0x06ad /* U+0491 CYRILLIC SMALL LETTER GHE WITH UPTURN */ +#define XKB_KEY_Byelorussian_shortu 0x06ae /* U+045E CYRILLIC SMALL LETTER SHORT U */ +#define XKB_KEY_Cyrillic_dzhe 0x06af /* U+045F CYRILLIC SMALL LETTER DZHE */ +#define XKB_KEY_Serbian_dze 0x06af /* deprecated */ +#define XKB_KEY_numerosign 0x06b0 /* U+2116 NUMERO SIGN */ +#define XKB_KEY_Serbian_DJE 0x06b1 /* U+0402 CYRILLIC CAPITAL LETTER DJE */ +#define XKB_KEY_Macedonia_GJE 0x06b2 /* U+0403 CYRILLIC CAPITAL LETTER GJE */ +#define XKB_KEY_Cyrillic_IO 0x06b3 /* U+0401 CYRILLIC CAPITAL LETTER IO */ +#define XKB_KEY_Ukrainian_IE 0x06b4 /* U+0404 CYRILLIC CAPITAL LETTER UKRAINIAN IE */ +#define XKB_KEY_Ukranian_JE 0x06b4 /* deprecated */ +#define XKB_KEY_Macedonia_DSE 0x06b5 /* U+0405 CYRILLIC CAPITAL LETTER DZE */ +#define XKB_KEY_Ukrainian_I 0x06b6 /* U+0406 CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I */ +#define XKB_KEY_Ukranian_I 0x06b6 /* deprecated */ +#define XKB_KEY_Ukrainian_YI 0x06b7 /* U+0407 CYRILLIC CAPITAL LETTER YI */ +#define XKB_KEY_Ukranian_YI 0x06b7 /* deprecated */ +#define XKB_KEY_Cyrillic_JE 0x06b8 /* U+0408 CYRILLIC CAPITAL LETTER JE */ +#define XKB_KEY_Serbian_JE 0x06b8 /* deprecated */ +#define XKB_KEY_Cyrillic_LJE 0x06b9 /* U+0409 CYRILLIC CAPITAL LETTER LJE */ +#define XKB_KEY_Serbian_LJE 0x06b9 /* deprecated */ +#define XKB_KEY_Cyrillic_NJE 0x06ba /* U+040A CYRILLIC CAPITAL LETTER NJE */ +#define XKB_KEY_Serbian_NJE 0x06ba /* deprecated */ +#define XKB_KEY_Serbian_TSHE 0x06bb /* U+040B CYRILLIC CAPITAL LETTER TSHE */ +#define XKB_KEY_Macedonia_KJE 0x06bc /* U+040C CYRILLIC CAPITAL LETTER KJE */ +#define XKB_KEY_Ukrainian_GHE_WITH_UPTURN 0x06bd /* U+0490 CYRILLIC CAPITAL LETTER GHE WITH UPTURN */ +#define XKB_KEY_Byelorussian_SHORTU 0x06be /* U+040E CYRILLIC CAPITAL LETTER SHORT U */ +#define XKB_KEY_Cyrillic_DZHE 0x06bf /* U+040F CYRILLIC CAPITAL LETTER DZHE */ +#define XKB_KEY_Serbian_DZE 0x06bf /* deprecated */ +#define XKB_KEY_Cyrillic_yu 0x06c0 /* U+044E CYRILLIC SMALL LETTER YU */ +#define XKB_KEY_Cyrillic_a 0x06c1 /* U+0430 CYRILLIC SMALL LETTER A */ +#define XKB_KEY_Cyrillic_be 0x06c2 /* U+0431 CYRILLIC SMALL LETTER BE */ +#define XKB_KEY_Cyrillic_tse 0x06c3 /* U+0446 CYRILLIC SMALL LETTER TSE */ +#define XKB_KEY_Cyrillic_de 0x06c4 /* U+0434 CYRILLIC SMALL LETTER DE */ +#define XKB_KEY_Cyrillic_ie 0x06c5 /* U+0435 CYRILLIC SMALL LETTER IE */ +#define XKB_KEY_Cyrillic_ef 0x06c6 /* U+0444 CYRILLIC SMALL LETTER EF */ +#define XKB_KEY_Cyrillic_ghe 0x06c7 /* U+0433 CYRILLIC SMALL LETTER GHE */ +#define XKB_KEY_Cyrillic_ha 0x06c8 /* U+0445 CYRILLIC SMALL LETTER HA */ +#define XKB_KEY_Cyrillic_i 0x06c9 /* U+0438 CYRILLIC SMALL LETTER I */ +#define XKB_KEY_Cyrillic_shorti 0x06ca /* U+0439 CYRILLIC SMALL LETTER SHORT I */ +#define XKB_KEY_Cyrillic_ka 0x06cb /* U+043A CYRILLIC SMALL LETTER KA */ +#define XKB_KEY_Cyrillic_el 0x06cc /* U+043B CYRILLIC SMALL LETTER EL */ +#define XKB_KEY_Cyrillic_em 0x06cd /* U+043C CYRILLIC SMALL LETTER EM */ +#define XKB_KEY_Cyrillic_en 0x06ce /* U+043D CYRILLIC SMALL LETTER EN */ +#define XKB_KEY_Cyrillic_o 0x06cf /* U+043E CYRILLIC SMALL LETTER O */ +#define XKB_KEY_Cyrillic_pe 0x06d0 /* U+043F CYRILLIC SMALL LETTER PE */ +#define XKB_KEY_Cyrillic_ya 0x06d1 /* U+044F CYRILLIC SMALL LETTER YA */ +#define XKB_KEY_Cyrillic_er 0x06d2 /* U+0440 CYRILLIC SMALL LETTER ER */ +#define XKB_KEY_Cyrillic_es 0x06d3 /* U+0441 CYRILLIC SMALL LETTER ES */ +#define XKB_KEY_Cyrillic_te 0x06d4 /* U+0442 CYRILLIC SMALL LETTER TE */ +#define XKB_KEY_Cyrillic_u 0x06d5 /* U+0443 CYRILLIC SMALL LETTER U */ +#define XKB_KEY_Cyrillic_zhe 0x06d6 /* U+0436 CYRILLIC SMALL LETTER ZHE */ +#define XKB_KEY_Cyrillic_ve 0x06d7 /* U+0432 CYRILLIC SMALL LETTER VE */ +#define XKB_KEY_Cyrillic_softsign 0x06d8 /* U+044C CYRILLIC SMALL LETTER SOFT SIGN */ +#define XKB_KEY_Cyrillic_yeru 0x06d9 /* U+044B CYRILLIC SMALL LETTER YERU */ +#define XKB_KEY_Cyrillic_ze 0x06da /* U+0437 CYRILLIC SMALL LETTER ZE */ +#define XKB_KEY_Cyrillic_sha 0x06db /* U+0448 CYRILLIC SMALL LETTER SHA */ +#define XKB_KEY_Cyrillic_e 0x06dc /* U+044D CYRILLIC SMALL LETTER E */ +#define XKB_KEY_Cyrillic_shcha 0x06dd /* U+0449 CYRILLIC SMALL LETTER SHCHA */ +#define XKB_KEY_Cyrillic_che 0x06de /* U+0447 CYRILLIC SMALL LETTER CHE */ +#define XKB_KEY_Cyrillic_hardsign 0x06df /* U+044A CYRILLIC SMALL LETTER HARD SIGN */ +#define XKB_KEY_Cyrillic_YU 0x06e0 /* U+042E CYRILLIC CAPITAL LETTER YU */ +#define XKB_KEY_Cyrillic_A 0x06e1 /* U+0410 CYRILLIC CAPITAL LETTER A */ +#define XKB_KEY_Cyrillic_BE 0x06e2 /* U+0411 CYRILLIC CAPITAL LETTER BE */ +#define XKB_KEY_Cyrillic_TSE 0x06e3 /* U+0426 CYRILLIC CAPITAL LETTER TSE */ +#define XKB_KEY_Cyrillic_DE 0x06e4 /* U+0414 CYRILLIC CAPITAL LETTER DE */ +#define XKB_KEY_Cyrillic_IE 0x06e5 /* U+0415 CYRILLIC CAPITAL LETTER IE */ +#define XKB_KEY_Cyrillic_EF 0x06e6 /* U+0424 CYRILLIC CAPITAL LETTER EF */ +#define XKB_KEY_Cyrillic_GHE 0x06e7 /* U+0413 CYRILLIC CAPITAL LETTER GHE */ +#define XKB_KEY_Cyrillic_HA 0x06e8 /* U+0425 CYRILLIC CAPITAL LETTER HA */ +#define XKB_KEY_Cyrillic_I 0x06e9 /* U+0418 CYRILLIC CAPITAL LETTER I */ +#define XKB_KEY_Cyrillic_SHORTI 0x06ea /* U+0419 CYRILLIC CAPITAL LETTER SHORT I */ +#define XKB_KEY_Cyrillic_KA 0x06eb /* U+041A CYRILLIC CAPITAL LETTER KA */ +#define XKB_KEY_Cyrillic_EL 0x06ec /* U+041B CYRILLIC CAPITAL LETTER EL */ +#define XKB_KEY_Cyrillic_EM 0x06ed /* U+041C CYRILLIC CAPITAL LETTER EM */ +#define XKB_KEY_Cyrillic_EN 0x06ee /* U+041D CYRILLIC CAPITAL LETTER EN */ +#define XKB_KEY_Cyrillic_O 0x06ef /* U+041E CYRILLIC CAPITAL LETTER O */ +#define XKB_KEY_Cyrillic_PE 0x06f0 /* U+041F CYRILLIC CAPITAL LETTER PE */ +#define XKB_KEY_Cyrillic_YA 0x06f1 /* U+042F CYRILLIC CAPITAL LETTER YA */ +#define XKB_KEY_Cyrillic_ER 0x06f2 /* U+0420 CYRILLIC CAPITAL LETTER ER */ +#define XKB_KEY_Cyrillic_ES 0x06f3 /* U+0421 CYRILLIC CAPITAL LETTER ES */ +#define XKB_KEY_Cyrillic_TE 0x06f4 /* U+0422 CYRILLIC CAPITAL LETTER TE */ +#define XKB_KEY_Cyrillic_U 0x06f5 /* U+0423 CYRILLIC CAPITAL LETTER U */ +#define XKB_KEY_Cyrillic_ZHE 0x06f6 /* U+0416 CYRILLIC CAPITAL LETTER ZHE */ +#define XKB_KEY_Cyrillic_VE 0x06f7 /* U+0412 CYRILLIC CAPITAL LETTER VE */ +#define XKB_KEY_Cyrillic_SOFTSIGN 0x06f8 /* U+042C CYRILLIC CAPITAL LETTER SOFT SIGN */ +#define XKB_KEY_Cyrillic_YERU 0x06f9 /* U+042B CYRILLIC CAPITAL LETTER YERU */ +#define XKB_KEY_Cyrillic_ZE 0x06fa /* U+0417 CYRILLIC CAPITAL LETTER ZE */ +#define XKB_KEY_Cyrillic_SHA 0x06fb /* U+0428 CYRILLIC CAPITAL LETTER SHA */ +#define XKB_KEY_Cyrillic_E 0x06fc /* U+042D CYRILLIC CAPITAL LETTER E */ +#define XKB_KEY_Cyrillic_SHCHA 0x06fd /* U+0429 CYRILLIC CAPITAL LETTER SHCHA */ +#define XKB_KEY_Cyrillic_CHE 0x06fe /* U+0427 CYRILLIC CAPITAL LETTER CHE */ +#define XKB_KEY_Cyrillic_HARDSIGN 0x06ff /* U+042A CYRILLIC CAPITAL LETTER HARD SIGN */ + +/* + * Greek + * (based on an early draft of, and not quite identical to, ISO/IEC 8859-7) + * Byte 3 = 7 + */ + +#define XKB_KEY_Greek_ALPHAaccent 0x07a1 /* U+0386 GREEK CAPITAL LETTER ALPHA WITH TONOS */ +#define XKB_KEY_Greek_EPSILONaccent 0x07a2 /* U+0388 GREEK CAPITAL LETTER EPSILON WITH TONOS */ +#define XKB_KEY_Greek_ETAaccent 0x07a3 /* U+0389 GREEK CAPITAL LETTER ETA WITH TONOS */ +#define XKB_KEY_Greek_IOTAaccent 0x07a4 /* U+038A GREEK CAPITAL LETTER IOTA WITH TONOS */ +#define XKB_KEY_Greek_IOTAdieresis 0x07a5 /* U+03AA GREEK CAPITAL LETTER IOTA WITH DIALYTIKA */ +#define XKB_KEY_Greek_IOTAdiaeresis 0x07a5 /* old typo */ +#define XKB_KEY_Greek_OMICRONaccent 0x07a7 /* U+038C GREEK CAPITAL LETTER OMICRON WITH TONOS */ +#define XKB_KEY_Greek_UPSILONaccent 0x07a8 /* U+038E GREEK CAPITAL LETTER UPSILON WITH TONOS */ +#define XKB_KEY_Greek_UPSILONdieresis 0x07a9 /* U+03AB GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA */ +#define XKB_KEY_Greek_OMEGAaccent 0x07ab /* U+038F GREEK CAPITAL LETTER OMEGA WITH TONOS */ +#define XKB_KEY_Greek_accentdieresis 0x07ae /* U+0385 GREEK DIALYTIKA TONOS */ +#define XKB_KEY_Greek_horizbar 0x07af /* U+2015 HORIZONTAL BAR */ +#define XKB_KEY_Greek_alphaaccent 0x07b1 /* U+03AC GREEK SMALL LETTER ALPHA WITH TONOS */ +#define XKB_KEY_Greek_epsilonaccent 0x07b2 /* U+03AD GREEK SMALL LETTER EPSILON WITH TONOS */ +#define XKB_KEY_Greek_etaaccent 0x07b3 /* U+03AE GREEK SMALL LETTER ETA WITH TONOS */ +#define XKB_KEY_Greek_iotaaccent 0x07b4 /* U+03AF GREEK SMALL LETTER IOTA WITH TONOS */ +#define XKB_KEY_Greek_iotadieresis 0x07b5 /* U+03CA GREEK SMALL LETTER IOTA WITH DIALYTIKA */ +#define XKB_KEY_Greek_iotaaccentdieresis 0x07b6 /* U+0390 GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS */ +#define XKB_KEY_Greek_omicronaccent 0x07b7 /* U+03CC GREEK SMALL LETTER OMICRON WITH TONOS */ +#define XKB_KEY_Greek_upsilonaccent 0x07b8 /* U+03CD GREEK SMALL LETTER UPSILON WITH TONOS */ +#define XKB_KEY_Greek_upsilondieresis 0x07b9 /* U+03CB GREEK SMALL LETTER UPSILON WITH DIALYTIKA */ +#define XKB_KEY_Greek_upsilonaccentdieresis 0x07ba /* U+03B0 GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS */ +#define XKB_KEY_Greek_omegaaccent 0x07bb /* U+03CE GREEK SMALL LETTER OMEGA WITH TONOS */ +#define XKB_KEY_Greek_ALPHA 0x07c1 /* U+0391 GREEK CAPITAL LETTER ALPHA */ +#define XKB_KEY_Greek_BETA 0x07c2 /* U+0392 GREEK CAPITAL LETTER BETA */ +#define XKB_KEY_Greek_GAMMA 0x07c3 /* U+0393 GREEK CAPITAL LETTER GAMMA */ +#define XKB_KEY_Greek_DELTA 0x07c4 /* U+0394 GREEK CAPITAL LETTER DELTA */ +#define XKB_KEY_Greek_EPSILON 0x07c5 /* U+0395 GREEK CAPITAL LETTER EPSILON */ +#define XKB_KEY_Greek_ZETA 0x07c6 /* U+0396 GREEK CAPITAL LETTER ZETA */ +#define XKB_KEY_Greek_ETA 0x07c7 /* U+0397 GREEK CAPITAL LETTER ETA */ +#define XKB_KEY_Greek_THETA 0x07c8 /* U+0398 GREEK CAPITAL LETTER THETA */ +#define XKB_KEY_Greek_IOTA 0x07c9 /* U+0399 GREEK CAPITAL LETTER IOTA */ +#define XKB_KEY_Greek_KAPPA 0x07ca /* U+039A GREEK CAPITAL LETTER KAPPA */ +#define XKB_KEY_Greek_LAMDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */ +#define XKB_KEY_Greek_LAMBDA 0x07cb /* U+039B GREEK CAPITAL LETTER LAMDA */ +#define XKB_KEY_Greek_MU 0x07cc /* U+039C GREEK CAPITAL LETTER MU */ +#define XKB_KEY_Greek_NU 0x07cd /* U+039D GREEK CAPITAL LETTER NU */ +#define XKB_KEY_Greek_XI 0x07ce /* U+039E GREEK CAPITAL LETTER XI */ +#define XKB_KEY_Greek_OMICRON 0x07cf /* U+039F GREEK CAPITAL LETTER OMICRON */ +#define XKB_KEY_Greek_PI 0x07d0 /* U+03A0 GREEK CAPITAL LETTER PI */ +#define XKB_KEY_Greek_RHO 0x07d1 /* U+03A1 GREEK CAPITAL LETTER RHO */ +#define XKB_KEY_Greek_SIGMA 0x07d2 /* U+03A3 GREEK CAPITAL LETTER SIGMA */ +#define XKB_KEY_Greek_TAU 0x07d4 /* U+03A4 GREEK CAPITAL LETTER TAU */ +#define XKB_KEY_Greek_UPSILON 0x07d5 /* U+03A5 GREEK CAPITAL LETTER UPSILON */ +#define XKB_KEY_Greek_PHI 0x07d6 /* U+03A6 GREEK CAPITAL LETTER PHI */ +#define XKB_KEY_Greek_CHI 0x07d7 /* U+03A7 GREEK CAPITAL LETTER CHI */ +#define XKB_KEY_Greek_PSI 0x07d8 /* U+03A8 GREEK CAPITAL LETTER PSI */ +#define XKB_KEY_Greek_OMEGA 0x07d9 /* U+03A9 GREEK CAPITAL LETTER OMEGA */ +#define XKB_KEY_Greek_alpha 0x07e1 /* U+03B1 GREEK SMALL LETTER ALPHA */ +#define XKB_KEY_Greek_beta 0x07e2 /* U+03B2 GREEK SMALL LETTER BETA */ +#define XKB_KEY_Greek_gamma 0x07e3 /* U+03B3 GREEK SMALL LETTER GAMMA */ +#define XKB_KEY_Greek_delta 0x07e4 /* U+03B4 GREEK SMALL LETTER DELTA */ +#define XKB_KEY_Greek_epsilon 0x07e5 /* U+03B5 GREEK SMALL LETTER EPSILON */ +#define XKB_KEY_Greek_zeta 0x07e6 /* U+03B6 GREEK SMALL LETTER ZETA */ +#define XKB_KEY_Greek_eta 0x07e7 /* U+03B7 GREEK SMALL LETTER ETA */ +#define XKB_KEY_Greek_theta 0x07e8 /* U+03B8 GREEK SMALL LETTER THETA */ +#define XKB_KEY_Greek_iota 0x07e9 /* U+03B9 GREEK SMALL LETTER IOTA */ +#define XKB_KEY_Greek_kappa 0x07ea /* U+03BA GREEK SMALL LETTER KAPPA */ +#define XKB_KEY_Greek_lamda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */ +#define XKB_KEY_Greek_lambda 0x07eb /* U+03BB GREEK SMALL LETTER LAMDA */ +#define XKB_KEY_Greek_mu 0x07ec /* U+03BC GREEK SMALL LETTER MU */ +#define XKB_KEY_Greek_nu 0x07ed /* U+03BD GREEK SMALL LETTER NU */ +#define XKB_KEY_Greek_xi 0x07ee /* U+03BE GREEK SMALL LETTER XI */ +#define XKB_KEY_Greek_omicron 0x07ef /* U+03BF GREEK SMALL LETTER OMICRON */ +#define XKB_KEY_Greek_pi 0x07f0 /* U+03C0 GREEK SMALL LETTER PI */ +#define XKB_KEY_Greek_rho 0x07f1 /* U+03C1 GREEK SMALL LETTER RHO */ +#define XKB_KEY_Greek_sigma 0x07f2 /* U+03C3 GREEK SMALL LETTER SIGMA */ +#define XKB_KEY_Greek_finalsmallsigma 0x07f3 /* U+03C2 GREEK SMALL LETTER FINAL SIGMA */ +#define XKB_KEY_Greek_tau 0x07f4 /* U+03C4 GREEK SMALL LETTER TAU */ +#define XKB_KEY_Greek_upsilon 0x07f5 /* U+03C5 GREEK SMALL LETTER UPSILON */ +#define XKB_KEY_Greek_phi 0x07f6 /* U+03C6 GREEK SMALL LETTER PHI */ +#define XKB_KEY_Greek_chi 0x07f7 /* U+03C7 GREEK SMALL LETTER CHI */ +#define XKB_KEY_Greek_psi 0x07f8 /* U+03C8 GREEK SMALL LETTER PSI */ +#define XKB_KEY_Greek_omega 0x07f9 /* U+03C9 GREEK SMALL LETTER OMEGA */ +#define XKB_KEY_Greek_switch 0xff7e /* Alias for mode_switch */ + +/* + * Technical + * (from the DEC VT330/VT420 Technical Character Set, http://vt100.net/charsets/technical.html) + * Byte 3 = 8 + */ + +#define XKB_KEY_leftradical 0x08a1 /* U+23B7 RADICAL SYMBOL BOTTOM */ +#define XKB_KEY_topleftradical 0x08a2 /*(U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT)*/ +#define XKB_KEY_horizconnector 0x08a3 /*(U+2500 BOX DRAWINGS LIGHT HORIZONTAL)*/ +#define XKB_KEY_topintegral 0x08a4 /* U+2320 TOP HALF INTEGRAL */ +#define XKB_KEY_botintegral 0x08a5 /* U+2321 BOTTOM HALF INTEGRAL */ +#define XKB_KEY_vertconnector 0x08a6 /*(U+2502 BOX DRAWINGS LIGHT VERTICAL)*/ +#define XKB_KEY_topleftsqbracket 0x08a7 /* U+23A1 LEFT SQUARE BRACKET UPPER CORNER */ +#define XKB_KEY_botleftsqbracket 0x08a8 /* U+23A3 LEFT SQUARE BRACKET LOWER CORNER */ +#define XKB_KEY_toprightsqbracket 0x08a9 /* U+23A4 RIGHT SQUARE BRACKET UPPER CORNER */ +#define XKB_KEY_botrightsqbracket 0x08aa /* U+23A6 RIGHT SQUARE BRACKET LOWER CORNER */ +#define XKB_KEY_topleftparens 0x08ab /* U+239B LEFT PARENTHESIS UPPER HOOK */ +#define XKB_KEY_botleftparens 0x08ac /* U+239D LEFT PARENTHESIS LOWER HOOK */ +#define XKB_KEY_toprightparens 0x08ad /* U+239E RIGHT PARENTHESIS UPPER HOOK */ +#define XKB_KEY_botrightparens 0x08ae /* U+23A0 RIGHT PARENTHESIS LOWER HOOK */ +#define XKB_KEY_leftmiddlecurlybrace 0x08af /* U+23A8 LEFT CURLY BRACKET MIDDLE PIECE */ +#define XKB_KEY_rightmiddlecurlybrace 0x08b0 /* U+23AC RIGHT CURLY BRACKET MIDDLE PIECE */ +#define XKB_KEY_topleftsummation 0x08b1 +#define XKB_KEY_botleftsummation 0x08b2 +#define XKB_KEY_topvertsummationconnector 0x08b3 +#define XKB_KEY_botvertsummationconnector 0x08b4 +#define XKB_KEY_toprightsummation 0x08b5 +#define XKB_KEY_botrightsummation 0x08b6 +#define XKB_KEY_rightmiddlesummation 0x08b7 +#define XKB_KEY_lessthanequal 0x08bc /* U+2264 LESS-THAN OR EQUAL TO */ +#define XKB_KEY_notequal 0x08bd /* U+2260 NOT EQUAL TO */ +#define XKB_KEY_greaterthanequal 0x08be /* U+2265 GREATER-THAN OR EQUAL TO */ +#define XKB_KEY_integral 0x08bf /* U+222B INTEGRAL */ +#define XKB_KEY_therefore 0x08c0 /* U+2234 THEREFORE */ +#define XKB_KEY_variation 0x08c1 /* U+221D PROPORTIONAL TO */ +#define XKB_KEY_infinity 0x08c2 /* U+221E INFINITY */ +#define XKB_KEY_nabla 0x08c5 /* U+2207 NABLA */ +#define XKB_KEY_approximate 0x08c8 /* U+223C TILDE OPERATOR */ +#define XKB_KEY_similarequal 0x08c9 /* U+2243 ASYMPTOTICALLY EQUAL TO */ +#define XKB_KEY_ifonlyif 0x08cd /* U+21D4 LEFT RIGHT DOUBLE ARROW */ +#define XKB_KEY_implies 0x08ce /* U+21D2 RIGHTWARDS DOUBLE ARROW */ +#define XKB_KEY_identical 0x08cf /* U+2261 IDENTICAL TO */ +#define XKB_KEY_radical 0x08d6 /* U+221A SQUARE ROOT */ +#define XKB_KEY_includedin 0x08da /* U+2282 SUBSET OF */ +#define XKB_KEY_includes 0x08db /* U+2283 SUPERSET OF */ +#define XKB_KEY_intersection 0x08dc /* U+2229 INTERSECTION */ +#define XKB_KEY_union 0x08dd /* U+222A UNION */ +#define XKB_KEY_logicaland 0x08de /* U+2227 LOGICAL AND */ +#define XKB_KEY_logicalor 0x08df /* U+2228 LOGICAL OR */ +#define XKB_KEY_partialderivative 0x08ef /* U+2202 PARTIAL DIFFERENTIAL */ +#define XKB_KEY_function 0x08f6 /* U+0192 LATIN SMALL LETTER F WITH HOOK */ +#define XKB_KEY_leftarrow 0x08fb /* U+2190 LEFTWARDS ARROW */ +#define XKB_KEY_uparrow 0x08fc /* U+2191 UPWARDS ARROW */ +#define XKB_KEY_rightarrow 0x08fd /* U+2192 RIGHTWARDS ARROW */ +#define XKB_KEY_downarrow 0x08fe /* U+2193 DOWNWARDS ARROW */ + +/* + * Special + * (from the DEC VT100 Special Graphics Character Set) + * Byte 3 = 9 + */ + +#define XKB_KEY_blank 0x09df +#define XKB_KEY_soliddiamond 0x09e0 /* U+25C6 BLACK DIAMOND */ +#define XKB_KEY_checkerboard 0x09e1 /* U+2592 MEDIUM SHADE */ +#define XKB_KEY_ht 0x09e2 /* U+2409 SYMBOL FOR HORIZONTAL TABULATION */ +#define XKB_KEY_ff 0x09e3 /* U+240C SYMBOL FOR FORM FEED */ +#define XKB_KEY_cr 0x09e4 /* U+240D SYMBOL FOR CARRIAGE RETURN */ +#define XKB_KEY_lf 0x09e5 /* U+240A SYMBOL FOR LINE FEED */ +#define XKB_KEY_nl 0x09e8 /* U+2424 SYMBOL FOR NEWLINE */ +#define XKB_KEY_vt 0x09e9 /* U+240B SYMBOL FOR VERTICAL TABULATION */ +#define XKB_KEY_lowrightcorner 0x09ea /* U+2518 BOX DRAWINGS LIGHT UP AND LEFT */ +#define XKB_KEY_uprightcorner 0x09eb /* U+2510 BOX DRAWINGS LIGHT DOWN AND LEFT */ +#define XKB_KEY_upleftcorner 0x09ec /* U+250C BOX DRAWINGS LIGHT DOWN AND RIGHT */ +#define XKB_KEY_lowleftcorner 0x09ed /* U+2514 BOX DRAWINGS LIGHT UP AND RIGHT */ +#define XKB_KEY_crossinglines 0x09ee /* U+253C BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL */ +#define XKB_KEY_horizlinescan1 0x09ef /* U+23BA HORIZONTAL SCAN LINE-1 */ +#define XKB_KEY_horizlinescan3 0x09f0 /* U+23BB HORIZONTAL SCAN LINE-3 */ +#define XKB_KEY_horizlinescan5 0x09f1 /* U+2500 BOX DRAWINGS LIGHT HORIZONTAL */ +#define XKB_KEY_horizlinescan7 0x09f2 /* U+23BC HORIZONTAL SCAN LINE-7 */ +#define XKB_KEY_horizlinescan9 0x09f3 /* U+23BD HORIZONTAL SCAN LINE-9 */ +#define XKB_KEY_leftt 0x09f4 /* U+251C BOX DRAWINGS LIGHT VERTICAL AND RIGHT */ +#define XKB_KEY_rightt 0x09f5 /* U+2524 BOX DRAWINGS LIGHT VERTICAL AND LEFT */ +#define XKB_KEY_bott 0x09f6 /* U+2534 BOX DRAWINGS LIGHT UP AND HORIZONTAL */ +#define XKB_KEY_topt 0x09f7 /* U+252C BOX DRAWINGS LIGHT DOWN AND HORIZONTAL */ +#define XKB_KEY_vertbar 0x09f8 /* U+2502 BOX DRAWINGS LIGHT VERTICAL */ + +/* + * Publishing + * (these are probably from a long forgotten DEC Publishing + * font that once shipped with DECwrite) + * Byte 3 = 0x0a + */ + +#define XKB_KEY_emspace 0x0aa1 /* U+2003 EM SPACE */ +#define XKB_KEY_enspace 0x0aa2 /* U+2002 EN SPACE */ +#define XKB_KEY_em3space 0x0aa3 /* U+2004 THREE-PER-EM SPACE */ +#define XKB_KEY_em4space 0x0aa4 /* U+2005 FOUR-PER-EM SPACE */ +#define XKB_KEY_digitspace 0x0aa5 /* U+2007 FIGURE SPACE */ +#define XKB_KEY_punctspace 0x0aa6 /* U+2008 PUNCTUATION SPACE */ +#define XKB_KEY_thinspace 0x0aa7 /* U+2009 THIN SPACE */ +#define XKB_KEY_hairspace 0x0aa8 /* U+200A HAIR SPACE */ +#define XKB_KEY_emdash 0x0aa9 /* U+2014 EM DASH */ +#define XKB_KEY_endash 0x0aaa /* U+2013 EN DASH */ +#define XKB_KEY_signifblank 0x0aac /*(U+2423 OPEN BOX)*/ +#define XKB_KEY_ellipsis 0x0aae /* U+2026 HORIZONTAL ELLIPSIS */ +#define XKB_KEY_doubbaselinedot 0x0aaf /* U+2025 TWO DOT LEADER */ +#define XKB_KEY_onethird 0x0ab0 /* U+2153 VULGAR FRACTION ONE THIRD */ +#define XKB_KEY_twothirds 0x0ab1 /* U+2154 VULGAR FRACTION TWO THIRDS */ +#define XKB_KEY_onefifth 0x0ab2 /* U+2155 VULGAR FRACTION ONE FIFTH */ +#define XKB_KEY_twofifths 0x0ab3 /* U+2156 VULGAR FRACTION TWO FIFTHS */ +#define XKB_KEY_threefifths 0x0ab4 /* U+2157 VULGAR FRACTION THREE FIFTHS */ +#define XKB_KEY_fourfifths 0x0ab5 /* U+2158 VULGAR FRACTION FOUR FIFTHS */ +#define XKB_KEY_onesixth 0x0ab6 /* U+2159 VULGAR FRACTION ONE SIXTH */ +#define XKB_KEY_fivesixths 0x0ab7 /* U+215A VULGAR FRACTION FIVE SIXTHS */ +#define XKB_KEY_careof 0x0ab8 /* U+2105 CARE OF */ +#define XKB_KEY_figdash 0x0abb /* U+2012 FIGURE DASH */ +#define XKB_KEY_leftanglebracket 0x0abc /*(U+27E8 MATHEMATICAL LEFT ANGLE BRACKET)*/ +#define XKB_KEY_decimalpoint 0x0abd /*(U+002E FULL STOP)*/ +#define XKB_KEY_rightanglebracket 0x0abe /*(U+27E9 MATHEMATICAL RIGHT ANGLE BRACKET)*/ +#define XKB_KEY_marker 0x0abf +#define XKB_KEY_oneeighth 0x0ac3 /* U+215B VULGAR FRACTION ONE EIGHTH */ +#define XKB_KEY_threeeighths 0x0ac4 /* U+215C VULGAR FRACTION THREE EIGHTHS */ +#define XKB_KEY_fiveeighths 0x0ac5 /* U+215D VULGAR FRACTION FIVE EIGHTHS */ +#define XKB_KEY_seveneighths 0x0ac6 /* U+215E VULGAR FRACTION SEVEN EIGHTHS */ +#define XKB_KEY_trademark 0x0ac9 /* U+2122 TRADE MARK SIGN */ +#define XKB_KEY_signaturemark 0x0aca /*(U+2613 SALTIRE)*/ +#define XKB_KEY_trademarkincircle 0x0acb +#define XKB_KEY_leftopentriangle 0x0acc /*(U+25C1 WHITE LEFT-POINTING TRIANGLE)*/ +#define XKB_KEY_rightopentriangle 0x0acd /*(U+25B7 WHITE RIGHT-POINTING TRIANGLE)*/ +#define XKB_KEY_emopencircle 0x0ace /*(U+25CB WHITE CIRCLE)*/ +#define XKB_KEY_emopenrectangle 0x0acf /*(U+25AF WHITE VERTICAL RECTANGLE)*/ +#define XKB_KEY_leftsinglequotemark 0x0ad0 /* U+2018 LEFT SINGLE QUOTATION MARK */ +#define XKB_KEY_rightsinglequotemark 0x0ad1 /* U+2019 RIGHT SINGLE QUOTATION MARK */ +#define XKB_KEY_leftdoublequotemark 0x0ad2 /* U+201C LEFT DOUBLE QUOTATION MARK */ +#define XKB_KEY_rightdoublequotemark 0x0ad3 /* U+201D RIGHT DOUBLE QUOTATION MARK */ +#define XKB_KEY_prescription 0x0ad4 /* U+211E PRESCRIPTION TAKE */ +#define XKB_KEY_permille 0x0ad5 /* U+2030 PER MILLE SIGN */ +#define XKB_KEY_minutes 0x0ad6 /* U+2032 PRIME */ +#define XKB_KEY_seconds 0x0ad7 /* U+2033 DOUBLE PRIME */ +#define XKB_KEY_latincross 0x0ad9 /* U+271D LATIN CROSS */ +#define XKB_KEY_hexagram 0x0ada +#define XKB_KEY_filledrectbullet 0x0adb /*(U+25AC BLACK RECTANGLE)*/ +#define XKB_KEY_filledlefttribullet 0x0adc /*(U+25C0 BLACK LEFT-POINTING TRIANGLE)*/ +#define XKB_KEY_filledrighttribullet 0x0add /*(U+25B6 BLACK RIGHT-POINTING TRIANGLE)*/ +#define XKB_KEY_emfilledcircle 0x0ade /*(U+25CF BLACK CIRCLE)*/ +#define XKB_KEY_emfilledrect 0x0adf /*(U+25AE BLACK VERTICAL RECTANGLE)*/ +#define XKB_KEY_enopencircbullet 0x0ae0 /*(U+25E6 WHITE BULLET)*/ +#define XKB_KEY_enopensquarebullet 0x0ae1 /*(U+25AB WHITE SMALL SQUARE)*/ +#define XKB_KEY_openrectbullet 0x0ae2 /*(U+25AD WHITE RECTANGLE)*/ +#define XKB_KEY_opentribulletup 0x0ae3 /*(U+25B3 WHITE UP-POINTING TRIANGLE)*/ +#define XKB_KEY_opentribulletdown 0x0ae4 /*(U+25BD WHITE DOWN-POINTING TRIANGLE)*/ +#define XKB_KEY_openstar 0x0ae5 /*(U+2606 WHITE STAR)*/ +#define XKB_KEY_enfilledcircbullet 0x0ae6 /*(U+2022 BULLET)*/ +#define XKB_KEY_enfilledsqbullet 0x0ae7 /*(U+25AA BLACK SMALL SQUARE)*/ +#define XKB_KEY_filledtribulletup 0x0ae8 /*(U+25B2 BLACK UP-POINTING TRIANGLE)*/ +#define XKB_KEY_filledtribulletdown 0x0ae9 /*(U+25BC BLACK DOWN-POINTING TRIANGLE)*/ +#define XKB_KEY_leftpointer 0x0aea /*(U+261C WHITE LEFT POINTING INDEX)*/ +#define XKB_KEY_rightpointer 0x0aeb /*(U+261E WHITE RIGHT POINTING INDEX)*/ +#define XKB_KEY_club 0x0aec /* U+2663 BLACK CLUB SUIT */ +#define XKB_KEY_diamond 0x0aed /* U+2666 BLACK DIAMOND SUIT */ +#define XKB_KEY_heart 0x0aee /* U+2665 BLACK HEART SUIT */ +#define XKB_KEY_maltesecross 0x0af0 /* U+2720 MALTESE CROSS */ +#define XKB_KEY_dagger 0x0af1 /* U+2020 DAGGER */ +#define XKB_KEY_doubledagger 0x0af2 /* U+2021 DOUBLE DAGGER */ +#define XKB_KEY_checkmark 0x0af3 /* U+2713 CHECK MARK */ +#define XKB_KEY_ballotcross 0x0af4 /* U+2717 BALLOT X */ +#define XKB_KEY_musicalsharp 0x0af5 /* U+266F MUSIC SHARP SIGN */ +#define XKB_KEY_musicalflat 0x0af6 /* U+266D MUSIC FLAT SIGN */ +#define XKB_KEY_malesymbol 0x0af7 /* U+2642 MALE SIGN */ +#define XKB_KEY_femalesymbol 0x0af8 /* U+2640 FEMALE SIGN */ +#define XKB_KEY_telephone 0x0af9 /* U+260E BLACK TELEPHONE */ +#define XKB_KEY_telephonerecorder 0x0afa /* U+2315 TELEPHONE RECORDER */ +#define XKB_KEY_phonographcopyright 0x0afb /* U+2117 SOUND RECORDING COPYRIGHT */ +#define XKB_KEY_caret 0x0afc /* U+2038 CARET */ +#define XKB_KEY_singlelowquotemark 0x0afd /* U+201A SINGLE LOW-9 QUOTATION MARK */ +#define XKB_KEY_doublelowquotemark 0x0afe /* U+201E DOUBLE LOW-9 QUOTATION MARK */ +#define XKB_KEY_cursor 0x0aff + +/* + * APL + * Byte 3 = 0x0b + */ + +#define XKB_KEY_leftcaret 0x0ba3 /*(U+003C LESS-THAN SIGN)*/ +#define XKB_KEY_rightcaret 0x0ba6 /*(U+003E GREATER-THAN SIGN)*/ +#define XKB_KEY_downcaret 0x0ba8 /*(U+2228 LOGICAL OR)*/ +#define XKB_KEY_upcaret 0x0ba9 /*(U+2227 LOGICAL AND)*/ +#define XKB_KEY_overbar 0x0bc0 /*(U+00AF MACRON)*/ +#define XKB_KEY_downtack 0x0bc2 /* U+22A4 DOWN TACK */ +#define XKB_KEY_upshoe 0x0bc3 /*(U+2229 INTERSECTION)*/ +#define XKB_KEY_downstile 0x0bc4 /* U+230A LEFT FLOOR */ +#define XKB_KEY_underbar 0x0bc6 /*(U+005F LOW LINE)*/ +#define XKB_KEY_jot 0x0bca /* U+2218 RING OPERATOR */ +#define XKB_KEY_quad 0x0bcc /* U+2395 APL FUNCTIONAL SYMBOL QUAD */ +#define XKB_KEY_uptack 0x0bce /* U+22A5 UP TACK */ +#define XKB_KEY_circle 0x0bcf /* U+25CB WHITE CIRCLE */ +#define XKB_KEY_upstile 0x0bd3 /* U+2308 LEFT CEILING */ +#define XKB_KEY_downshoe 0x0bd6 /*(U+222A UNION)*/ +#define XKB_KEY_rightshoe 0x0bd8 /*(U+2283 SUPERSET OF)*/ +#define XKB_KEY_leftshoe 0x0bda /*(U+2282 SUBSET OF)*/ +#define XKB_KEY_lefttack 0x0bdc /* U+22A3 LEFT TACK */ +#define XKB_KEY_righttack 0x0bfc /* U+22A2 RIGHT TACK */ + +/* + * Hebrew + * Byte 3 = 0x0c + */ + +#define XKB_KEY_hebrew_doublelowline 0x0cdf /* U+2017 DOUBLE LOW LINE */ +#define XKB_KEY_hebrew_aleph 0x0ce0 /* U+05D0 HEBREW LETTER ALEF */ +#define XKB_KEY_hebrew_bet 0x0ce1 /* U+05D1 HEBREW LETTER BET */ +#define XKB_KEY_hebrew_beth 0x0ce1 /* deprecated */ +#define XKB_KEY_hebrew_gimel 0x0ce2 /* U+05D2 HEBREW LETTER GIMEL */ +#define XKB_KEY_hebrew_gimmel 0x0ce2 /* deprecated */ +#define XKB_KEY_hebrew_dalet 0x0ce3 /* U+05D3 HEBREW LETTER DALET */ +#define XKB_KEY_hebrew_daleth 0x0ce3 /* deprecated */ +#define XKB_KEY_hebrew_he 0x0ce4 /* U+05D4 HEBREW LETTER HE */ +#define XKB_KEY_hebrew_waw 0x0ce5 /* U+05D5 HEBREW LETTER VAV */ +#define XKB_KEY_hebrew_zain 0x0ce6 /* U+05D6 HEBREW LETTER ZAYIN */ +#define XKB_KEY_hebrew_zayin 0x0ce6 /* deprecated */ +#define XKB_KEY_hebrew_chet 0x0ce7 /* U+05D7 HEBREW LETTER HET */ +#define XKB_KEY_hebrew_het 0x0ce7 /* deprecated */ +#define XKB_KEY_hebrew_tet 0x0ce8 /* U+05D8 HEBREW LETTER TET */ +#define XKB_KEY_hebrew_teth 0x0ce8 /* deprecated */ +#define XKB_KEY_hebrew_yod 0x0ce9 /* U+05D9 HEBREW LETTER YOD */ +#define XKB_KEY_hebrew_finalkaph 0x0cea /* U+05DA HEBREW LETTER FINAL KAF */ +#define XKB_KEY_hebrew_kaph 0x0ceb /* U+05DB HEBREW LETTER KAF */ +#define XKB_KEY_hebrew_lamed 0x0cec /* U+05DC HEBREW LETTER LAMED */ +#define XKB_KEY_hebrew_finalmem 0x0ced /* U+05DD HEBREW LETTER FINAL MEM */ +#define XKB_KEY_hebrew_mem 0x0cee /* U+05DE HEBREW LETTER MEM */ +#define XKB_KEY_hebrew_finalnun 0x0cef /* U+05DF HEBREW LETTER FINAL NUN */ +#define XKB_KEY_hebrew_nun 0x0cf0 /* U+05E0 HEBREW LETTER NUN */ +#define XKB_KEY_hebrew_samech 0x0cf1 /* U+05E1 HEBREW LETTER SAMEKH */ +#define XKB_KEY_hebrew_samekh 0x0cf1 /* deprecated */ +#define XKB_KEY_hebrew_ayin 0x0cf2 /* U+05E2 HEBREW LETTER AYIN */ +#define XKB_KEY_hebrew_finalpe 0x0cf3 /* U+05E3 HEBREW LETTER FINAL PE */ +#define XKB_KEY_hebrew_pe 0x0cf4 /* U+05E4 HEBREW LETTER PE */ +#define XKB_KEY_hebrew_finalzade 0x0cf5 /* U+05E5 HEBREW LETTER FINAL TSADI */ +#define XKB_KEY_hebrew_finalzadi 0x0cf5 /* deprecated */ +#define XKB_KEY_hebrew_zade 0x0cf6 /* U+05E6 HEBREW LETTER TSADI */ +#define XKB_KEY_hebrew_zadi 0x0cf6 /* deprecated */ +#define XKB_KEY_hebrew_qoph 0x0cf7 /* U+05E7 HEBREW LETTER QOF */ +#define XKB_KEY_hebrew_kuf 0x0cf7 /* deprecated */ +#define XKB_KEY_hebrew_resh 0x0cf8 /* U+05E8 HEBREW LETTER RESH */ +#define XKB_KEY_hebrew_shin 0x0cf9 /* U+05E9 HEBREW LETTER SHIN */ +#define XKB_KEY_hebrew_taw 0x0cfa /* U+05EA HEBREW LETTER TAV */ +#define XKB_KEY_hebrew_taf 0x0cfa /* deprecated */ +#define XKB_KEY_Hebrew_switch 0xff7e /* Alias for mode_switch */ + +/* + * Thai + * Byte 3 = 0x0d + */ + +#define XKB_KEY_Thai_kokai 0x0da1 /* U+0E01 THAI CHARACTER KO KAI */ +#define XKB_KEY_Thai_khokhai 0x0da2 /* U+0E02 THAI CHARACTER KHO KHAI */ +#define XKB_KEY_Thai_khokhuat 0x0da3 /* U+0E03 THAI CHARACTER KHO KHUAT */ +#define XKB_KEY_Thai_khokhwai 0x0da4 /* U+0E04 THAI CHARACTER KHO KHWAI */ +#define XKB_KEY_Thai_khokhon 0x0da5 /* U+0E05 THAI CHARACTER KHO KHON */ +#define XKB_KEY_Thai_khorakhang 0x0da6 /* U+0E06 THAI CHARACTER KHO RAKHANG */ +#define XKB_KEY_Thai_ngongu 0x0da7 /* U+0E07 THAI CHARACTER NGO NGU */ +#define XKB_KEY_Thai_chochan 0x0da8 /* U+0E08 THAI CHARACTER CHO CHAN */ +#define XKB_KEY_Thai_choching 0x0da9 /* U+0E09 THAI CHARACTER CHO CHING */ +#define XKB_KEY_Thai_chochang 0x0daa /* U+0E0A THAI CHARACTER CHO CHANG */ +#define XKB_KEY_Thai_soso 0x0dab /* U+0E0B THAI CHARACTER SO SO */ +#define XKB_KEY_Thai_chochoe 0x0dac /* U+0E0C THAI CHARACTER CHO CHOE */ +#define XKB_KEY_Thai_yoying 0x0dad /* U+0E0D THAI CHARACTER YO YING */ +#define XKB_KEY_Thai_dochada 0x0dae /* U+0E0E THAI CHARACTER DO CHADA */ +#define XKB_KEY_Thai_topatak 0x0daf /* U+0E0F THAI CHARACTER TO PATAK */ +#define XKB_KEY_Thai_thothan 0x0db0 /* U+0E10 THAI CHARACTER THO THAN */ +#define XKB_KEY_Thai_thonangmontho 0x0db1 /* U+0E11 THAI CHARACTER THO NANGMONTHO */ +#define XKB_KEY_Thai_thophuthao 0x0db2 /* U+0E12 THAI CHARACTER THO PHUTHAO */ +#define XKB_KEY_Thai_nonen 0x0db3 /* U+0E13 THAI CHARACTER NO NEN */ +#define XKB_KEY_Thai_dodek 0x0db4 /* U+0E14 THAI CHARACTER DO DEK */ +#define XKB_KEY_Thai_totao 0x0db5 /* U+0E15 THAI CHARACTER TO TAO */ +#define XKB_KEY_Thai_thothung 0x0db6 /* U+0E16 THAI CHARACTER THO THUNG */ +#define XKB_KEY_Thai_thothahan 0x0db7 /* U+0E17 THAI CHARACTER THO THAHAN */ +#define XKB_KEY_Thai_thothong 0x0db8 /* U+0E18 THAI CHARACTER THO THONG */ +#define XKB_KEY_Thai_nonu 0x0db9 /* U+0E19 THAI CHARACTER NO NU */ +#define XKB_KEY_Thai_bobaimai 0x0dba /* U+0E1A THAI CHARACTER BO BAIMAI */ +#define XKB_KEY_Thai_popla 0x0dbb /* U+0E1B THAI CHARACTER PO PLA */ +#define XKB_KEY_Thai_phophung 0x0dbc /* U+0E1C THAI CHARACTER PHO PHUNG */ +#define XKB_KEY_Thai_fofa 0x0dbd /* U+0E1D THAI CHARACTER FO FA */ +#define XKB_KEY_Thai_phophan 0x0dbe /* U+0E1E THAI CHARACTER PHO PHAN */ +#define XKB_KEY_Thai_fofan 0x0dbf /* U+0E1F THAI CHARACTER FO FAN */ +#define XKB_KEY_Thai_phosamphao 0x0dc0 /* U+0E20 THAI CHARACTER PHO SAMPHAO */ +#define XKB_KEY_Thai_moma 0x0dc1 /* U+0E21 THAI CHARACTER MO MA */ +#define XKB_KEY_Thai_yoyak 0x0dc2 /* U+0E22 THAI CHARACTER YO YAK */ +#define XKB_KEY_Thai_rorua 0x0dc3 /* U+0E23 THAI CHARACTER RO RUA */ +#define XKB_KEY_Thai_ru 0x0dc4 /* U+0E24 THAI CHARACTER RU */ +#define XKB_KEY_Thai_loling 0x0dc5 /* U+0E25 THAI CHARACTER LO LING */ +#define XKB_KEY_Thai_lu 0x0dc6 /* U+0E26 THAI CHARACTER LU */ +#define XKB_KEY_Thai_wowaen 0x0dc7 /* U+0E27 THAI CHARACTER WO WAEN */ +#define XKB_KEY_Thai_sosala 0x0dc8 /* U+0E28 THAI CHARACTER SO SALA */ +#define XKB_KEY_Thai_sorusi 0x0dc9 /* U+0E29 THAI CHARACTER SO RUSI */ +#define XKB_KEY_Thai_sosua 0x0dca /* U+0E2A THAI CHARACTER SO SUA */ +#define XKB_KEY_Thai_hohip 0x0dcb /* U+0E2B THAI CHARACTER HO HIP */ +#define XKB_KEY_Thai_lochula 0x0dcc /* U+0E2C THAI CHARACTER LO CHULA */ +#define XKB_KEY_Thai_oang 0x0dcd /* U+0E2D THAI CHARACTER O ANG */ +#define XKB_KEY_Thai_honokhuk 0x0dce /* U+0E2E THAI CHARACTER HO NOKHUK */ +#define XKB_KEY_Thai_paiyannoi 0x0dcf /* U+0E2F THAI CHARACTER PAIYANNOI */ +#define XKB_KEY_Thai_saraa 0x0dd0 /* U+0E30 THAI CHARACTER SARA A */ +#define XKB_KEY_Thai_maihanakat 0x0dd1 /* U+0E31 THAI CHARACTER MAI HAN-AKAT */ +#define XKB_KEY_Thai_saraaa 0x0dd2 /* U+0E32 THAI CHARACTER SARA AA */ +#define XKB_KEY_Thai_saraam 0x0dd3 /* U+0E33 THAI CHARACTER SARA AM */ +#define XKB_KEY_Thai_sarai 0x0dd4 /* U+0E34 THAI CHARACTER SARA I */ +#define XKB_KEY_Thai_saraii 0x0dd5 /* U+0E35 THAI CHARACTER SARA II */ +#define XKB_KEY_Thai_saraue 0x0dd6 /* U+0E36 THAI CHARACTER SARA UE */ +#define XKB_KEY_Thai_sarauee 0x0dd7 /* U+0E37 THAI CHARACTER SARA UEE */ +#define XKB_KEY_Thai_sarau 0x0dd8 /* U+0E38 THAI CHARACTER SARA U */ +#define XKB_KEY_Thai_sarauu 0x0dd9 /* U+0E39 THAI CHARACTER SARA UU */ +#define XKB_KEY_Thai_phinthu 0x0dda /* U+0E3A THAI CHARACTER PHINTHU */ +#define XKB_KEY_Thai_maihanakat_maitho 0x0dde +#define XKB_KEY_Thai_baht 0x0ddf /* U+0E3F THAI CURRENCY SYMBOL BAHT */ +#define XKB_KEY_Thai_sarae 0x0de0 /* U+0E40 THAI CHARACTER SARA E */ +#define XKB_KEY_Thai_saraae 0x0de1 /* U+0E41 THAI CHARACTER SARA AE */ +#define XKB_KEY_Thai_sarao 0x0de2 /* U+0E42 THAI CHARACTER SARA O */ +#define XKB_KEY_Thai_saraaimaimuan 0x0de3 /* U+0E43 THAI CHARACTER SARA AI MAIMUAN */ +#define XKB_KEY_Thai_saraaimaimalai 0x0de4 /* U+0E44 THAI CHARACTER SARA AI MAIMALAI */ +#define XKB_KEY_Thai_lakkhangyao 0x0de5 /* U+0E45 THAI CHARACTER LAKKHANGYAO */ +#define XKB_KEY_Thai_maiyamok 0x0de6 /* U+0E46 THAI CHARACTER MAIYAMOK */ +#define XKB_KEY_Thai_maitaikhu 0x0de7 /* U+0E47 THAI CHARACTER MAITAIKHU */ +#define XKB_KEY_Thai_maiek 0x0de8 /* U+0E48 THAI CHARACTER MAI EK */ +#define XKB_KEY_Thai_maitho 0x0de9 /* U+0E49 THAI CHARACTER MAI THO */ +#define XKB_KEY_Thai_maitri 0x0dea /* U+0E4A THAI CHARACTER MAI TRI */ +#define XKB_KEY_Thai_maichattawa 0x0deb /* U+0E4B THAI CHARACTER MAI CHATTAWA */ +#define XKB_KEY_Thai_thanthakhat 0x0dec /* U+0E4C THAI CHARACTER THANTHAKHAT */ +#define XKB_KEY_Thai_nikhahit 0x0ded /* U+0E4D THAI CHARACTER NIKHAHIT */ +#define XKB_KEY_Thai_leksun 0x0df0 /* U+0E50 THAI DIGIT ZERO */ +#define XKB_KEY_Thai_leknung 0x0df1 /* U+0E51 THAI DIGIT ONE */ +#define XKB_KEY_Thai_leksong 0x0df2 /* U+0E52 THAI DIGIT TWO */ +#define XKB_KEY_Thai_leksam 0x0df3 /* U+0E53 THAI DIGIT THREE */ +#define XKB_KEY_Thai_leksi 0x0df4 /* U+0E54 THAI DIGIT FOUR */ +#define XKB_KEY_Thai_lekha 0x0df5 /* U+0E55 THAI DIGIT FIVE */ +#define XKB_KEY_Thai_lekhok 0x0df6 /* U+0E56 THAI DIGIT SIX */ +#define XKB_KEY_Thai_lekchet 0x0df7 /* U+0E57 THAI DIGIT SEVEN */ +#define XKB_KEY_Thai_lekpaet 0x0df8 /* U+0E58 THAI DIGIT EIGHT */ +#define XKB_KEY_Thai_lekkao 0x0df9 /* U+0E59 THAI DIGIT NINE */ + +/* + * Korean + * Byte 3 = 0x0e + */ + + +#define XKB_KEY_Hangul 0xff31 /* Hangul start/stop(toggle) */ +#define XKB_KEY_Hangul_Start 0xff32 /* Hangul start */ +#define XKB_KEY_Hangul_End 0xff33 /* Hangul end, English start */ +#define XKB_KEY_Hangul_Hanja 0xff34 /* Start Hangul->Hanja Conversion */ +#define XKB_KEY_Hangul_Jamo 0xff35 /* Hangul Jamo mode */ +#define XKB_KEY_Hangul_Romaja 0xff36 /* Hangul Romaja mode */ +#define XKB_KEY_Hangul_Codeinput 0xff37 /* Hangul code input mode */ +#define XKB_KEY_Hangul_Jeonja 0xff38 /* Jeonja mode */ +#define XKB_KEY_Hangul_Banja 0xff39 /* Banja mode */ +#define XKB_KEY_Hangul_PreHanja 0xff3a /* Pre Hanja conversion */ +#define XKB_KEY_Hangul_PostHanja 0xff3b /* Post Hanja conversion */ +#define XKB_KEY_Hangul_SingleCandidate 0xff3c /* Single candidate */ +#define XKB_KEY_Hangul_MultipleCandidate 0xff3d /* Multiple candidate */ +#define XKB_KEY_Hangul_PreviousCandidate 0xff3e /* Previous candidate */ +#define XKB_KEY_Hangul_Special 0xff3f /* Special symbols */ +#define XKB_KEY_Hangul_switch 0xff7e /* Alias for mode_switch */ + +/* Hangul Consonant Characters */ +#define XKB_KEY_Hangul_Kiyeog 0x0ea1 +#define XKB_KEY_Hangul_SsangKiyeog 0x0ea2 +#define XKB_KEY_Hangul_KiyeogSios 0x0ea3 +#define XKB_KEY_Hangul_Nieun 0x0ea4 +#define XKB_KEY_Hangul_NieunJieuj 0x0ea5 +#define XKB_KEY_Hangul_NieunHieuh 0x0ea6 +#define XKB_KEY_Hangul_Dikeud 0x0ea7 +#define XKB_KEY_Hangul_SsangDikeud 0x0ea8 +#define XKB_KEY_Hangul_Rieul 0x0ea9 +#define XKB_KEY_Hangul_RieulKiyeog 0x0eaa +#define XKB_KEY_Hangul_RieulMieum 0x0eab +#define XKB_KEY_Hangul_RieulPieub 0x0eac +#define XKB_KEY_Hangul_RieulSios 0x0ead +#define XKB_KEY_Hangul_RieulTieut 0x0eae +#define XKB_KEY_Hangul_RieulPhieuf 0x0eaf +#define XKB_KEY_Hangul_RieulHieuh 0x0eb0 +#define XKB_KEY_Hangul_Mieum 0x0eb1 +#define XKB_KEY_Hangul_Pieub 0x0eb2 +#define XKB_KEY_Hangul_SsangPieub 0x0eb3 +#define XKB_KEY_Hangul_PieubSios 0x0eb4 +#define XKB_KEY_Hangul_Sios 0x0eb5 +#define XKB_KEY_Hangul_SsangSios 0x0eb6 +#define XKB_KEY_Hangul_Ieung 0x0eb7 +#define XKB_KEY_Hangul_Jieuj 0x0eb8 +#define XKB_KEY_Hangul_SsangJieuj 0x0eb9 +#define XKB_KEY_Hangul_Cieuc 0x0eba +#define XKB_KEY_Hangul_Khieuq 0x0ebb +#define XKB_KEY_Hangul_Tieut 0x0ebc +#define XKB_KEY_Hangul_Phieuf 0x0ebd +#define XKB_KEY_Hangul_Hieuh 0x0ebe + +/* Hangul Vowel Characters */ +#define XKB_KEY_Hangul_A 0x0ebf +#define XKB_KEY_Hangul_AE 0x0ec0 +#define XKB_KEY_Hangul_YA 0x0ec1 +#define XKB_KEY_Hangul_YAE 0x0ec2 +#define XKB_KEY_Hangul_EO 0x0ec3 +#define XKB_KEY_Hangul_E 0x0ec4 +#define XKB_KEY_Hangul_YEO 0x0ec5 +#define XKB_KEY_Hangul_YE 0x0ec6 +#define XKB_KEY_Hangul_O 0x0ec7 +#define XKB_KEY_Hangul_WA 0x0ec8 +#define XKB_KEY_Hangul_WAE 0x0ec9 +#define XKB_KEY_Hangul_OE 0x0eca +#define XKB_KEY_Hangul_YO 0x0ecb +#define XKB_KEY_Hangul_U 0x0ecc +#define XKB_KEY_Hangul_WEO 0x0ecd +#define XKB_KEY_Hangul_WE 0x0ece +#define XKB_KEY_Hangul_WI 0x0ecf +#define XKB_KEY_Hangul_YU 0x0ed0 +#define XKB_KEY_Hangul_EU 0x0ed1 +#define XKB_KEY_Hangul_YI 0x0ed2 +#define XKB_KEY_Hangul_I 0x0ed3 + +/* Hangul syllable-final (JongSeong) Characters */ +#define XKB_KEY_Hangul_J_Kiyeog 0x0ed4 +#define XKB_KEY_Hangul_J_SsangKiyeog 0x0ed5 +#define XKB_KEY_Hangul_J_KiyeogSios 0x0ed6 +#define XKB_KEY_Hangul_J_Nieun 0x0ed7 +#define XKB_KEY_Hangul_J_NieunJieuj 0x0ed8 +#define XKB_KEY_Hangul_J_NieunHieuh 0x0ed9 +#define XKB_KEY_Hangul_J_Dikeud 0x0eda +#define XKB_KEY_Hangul_J_Rieul 0x0edb +#define XKB_KEY_Hangul_J_RieulKiyeog 0x0edc +#define XKB_KEY_Hangul_J_RieulMieum 0x0edd +#define XKB_KEY_Hangul_J_RieulPieub 0x0ede +#define XKB_KEY_Hangul_J_RieulSios 0x0edf +#define XKB_KEY_Hangul_J_RieulTieut 0x0ee0 +#define XKB_KEY_Hangul_J_RieulPhieuf 0x0ee1 +#define XKB_KEY_Hangul_J_RieulHieuh 0x0ee2 +#define XKB_KEY_Hangul_J_Mieum 0x0ee3 +#define XKB_KEY_Hangul_J_Pieub 0x0ee4 +#define XKB_KEY_Hangul_J_PieubSios 0x0ee5 +#define XKB_KEY_Hangul_J_Sios 0x0ee6 +#define XKB_KEY_Hangul_J_SsangSios 0x0ee7 +#define XKB_KEY_Hangul_J_Ieung 0x0ee8 +#define XKB_KEY_Hangul_J_Jieuj 0x0ee9 +#define XKB_KEY_Hangul_J_Cieuc 0x0eea +#define XKB_KEY_Hangul_J_Khieuq 0x0eeb +#define XKB_KEY_Hangul_J_Tieut 0x0eec +#define XKB_KEY_Hangul_J_Phieuf 0x0eed +#define XKB_KEY_Hangul_J_Hieuh 0x0eee + +/* Ancient Hangul Consonant Characters */ +#define XKB_KEY_Hangul_RieulYeorinHieuh 0x0eef +#define XKB_KEY_Hangul_SunkyeongeumMieum 0x0ef0 +#define XKB_KEY_Hangul_SunkyeongeumPieub 0x0ef1 +#define XKB_KEY_Hangul_PanSios 0x0ef2 +#define XKB_KEY_Hangul_KkogjiDalrinIeung 0x0ef3 +#define XKB_KEY_Hangul_SunkyeongeumPhieuf 0x0ef4 +#define XKB_KEY_Hangul_YeorinHieuh 0x0ef5 + +/* Ancient Hangul Vowel Characters */ +#define XKB_KEY_Hangul_AraeA 0x0ef6 +#define XKB_KEY_Hangul_AraeAE 0x0ef7 + +/* Ancient Hangul syllable-final (JongSeong) Characters */ +#define XKB_KEY_Hangul_J_PanSios 0x0ef8 +#define XKB_KEY_Hangul_J_KkogjiDalrinIeung 0x0ef9 +#define XKB_KEY_Hangul_J_YeorinHieuh 0x0efa + +/* Korean currency symbol */ +#define XKB_KEY_Korean_Won 0x0eff /*(U+20A9 WON SIGN)*/ + + +/* + * Armenian + */ + +#define XKB_KEY_Armenian_ligature_ew 0x1000587 /* U+0587 ARMENIAN SMALL LIGATURE ECH YIWN */ +#define XKB_KEY_Armenian_full_stop 0x1000589 /* U+0589 ARMENIAN FULL STOP */ +#define XKB_KEY_Armenian_verjaket 0x1000589 /* U+0589 ARMENIAN FULL STOP */ +#define XKB_KEY_Armenian_separation_mark 0x100055d /* U+055D ARMENIAN COMMA */ +#define XKB_KEY_Armenian_but 0x100055d /* U+055D ARMENIAN COMMA */ +#define XKB_KEY_Armenian_hyphen 0x100058a /* U+058A ARMENIAN HYPHEN */ +#define XKB_KEY_Armenian_yentamna 0x100058a /* U+058A ARMENIAN HYPHEN */ +#define XKB_KEY_Armenian_exclam 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */ +#define XKB_KEY_Armenian_amanak 0x100055c /* U+055C ARMENIAN EXCLAMATION MARK */ +#define XKB_KEY_Armenian_accent 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */ +#define XKB_KEY_Armenian_shesht 0x100055b /* U+055B ARMENIAN EMPHASIS MARK */ +#define XKB_KEY_Armenian_question 0x100055e /* U+055E ARMENIAN QUESTION MARK */ +#define XKB_KEY_Armenian_paruyk 0x100055e /* U+055E ARMENIAN QUESTION MARK */ +#define XKB_KEY_Armenian_AYB 0x1000531 /* U+0531 ARMENIAN CAPITAL LETTER AYB */ +#define XKB_KEY_Armenian_ayb 0x1000561 /* U+0561 ARMENIAN SMALL LETTER AYB */ +#define XKB_KEY_Armenian_BEN 0x1000532 /* U+0532 ARMENIAN CAPITAL LETTER BEN */ +#define XKB_KEY_Armenian_ben 0x1000562 /* U+0562 ARMENIAN SMALL LETTER BEN */ +#define XKB_KEY_Armenian_GIM 0x1000533 /* U+0533 ARMENIAN CAPITAL LETTER GIM */ +#define XKB_KEY_Armenian_gim 0x1000563 /* U+0563 ARMENIAN SMALL LETTER GIM */ +#define XKB_KEY_Armenian_DA 0x1000534 /* U+0534 ARMENIAN CAPITAL LETTER DA */ +#define XKB_KEY_Armenian_da 0x1000564 /* U+0564 ARMENIAN SMALL LETTER DA */ +#define XKB_KEY_Armenian_YECH 0x1000535 /* U+0535 ARMENIAN CAPITAL LETTER ECH */ +#define XKB_KEY_Armenian_yech 0x1000565 /* U+0565 ARMENIAN SMALL LETTER ECH */ +#define XKB_KEY_Armenian_ZA 0x1000536 /* U+0536 ARMENIAN CAPITAL LETTER ZA */ +#define XKB_KEY_Armenian_za 0x1000566 /* U+0566 ARMENIAN SMALL LETTER ZA */ +#define XKB_KEY_Armenian_E 0x1000537 /* U+0537 ARMENIAN CAPITAL LETTER EH */ +#define XKB_KEY_Armenian_e 0x1000567 /* U+0567 ARMENIAN SMALL LETTER EH */ +#define XKB_KEY_Armenian_AT 0x1000538 /* U+0538 ARMENIAN CAPITAL LETTER ET */ +#define XKB_KEY_Armenian_at 0x1000568 /* U+0568 ARMENIAN SMALL LETTER ET */ +#define XKB_KEY_Armenian_TO 0x1000539 /* U+0539 ARMENIAN CAPITAL LETTER TO */ +#define XKB_KEY_Armenian_to 0x1000569 /* U+0569 ARMENIAN SMALL LETTER TO */ +#define XKB_KEY_Armenian_ZHE 0x100053a /* U+053A ARMENIAN CAPITAL LETTER ZHE */ +#define XKB_KEY_Armenian_zhe 0x100056a /* U+056A ARMENIAN SMALL LETTER ZHE */ +#define XKB_KEY_Armenian_INI 0x100053b /* U+053B ARMENIAN CAPITAL LETTER INI */ +#define XKB_KEY_Armenian_ini 0x100056b /* U+056B ARMENIAN SMALL LETTER INI */ +#define XKB_KEY_Armenian_LYUN 0x100053c /* U+053C ARMENIAN CAPITAL LETTER LIWN */ +#define XKB_KEY_Armenian_lyun 0x100056c /* U+056C ARMENIAN SMALL LETTER LIWN */ +#define XKB_KEY_Armenian_KHE 0x100053d /* U+053D ARMENIAN CAPITAL LETTER XEH */ +#define XKB_KEY_Armenian_khe 0x100056d /* U+056D ARMENIAN SMALL LETTER XEH */ +#define XKB_KEY_Armenian_TSA 0x100053e /* U+053E ARMENIAN CAPITAL LETTER CA */ +#define XKB_KEY_Armenian_tsa 0x100056e /* U+056E ARMENIAN SMALL LETTER CA */ +#define XKB_KEY_Armenian_KEN 0x100053f /* U+053F ARMENIAN CAPITAL LETTER KEN */ +#define XKB_KEY_Armenian_ken 0x100056f /* U+056F ARMENIAN SMALL LETTER KEN */ +#define XKB_KEY_Armenian_HO 0x1000540 /* U+0540 ARMENIAN CAPITAL LETTER HO */ +#define XKB_KEY_Armenian_ho 0x1000570 /* U+0570 ARMENIAN SMALL LETTER HO */ +#define XKB_KEY_Armenian_DZA 0x1000541 /* U+0541 ARMENIAN CAPITAL LETTER JA */ +#define XKB_KEY_Armenian_dza 0x1000571 /* U+0571 ARMENIAN SMALL LETTER JA */ +#define XKB_KEY_Armenian_GHAT 0x1000542 /* U+0542 ARMENIAN CAPITAL LETTER GHAD */ +#define XKB_KEY_Armenian_ghat 0x1000572 /* U+0572 ARMENIAN SMALL LETTER GHAD */ +#define XKB_KEY_Armenian_TCHE 0x1000543 /* U+0543 ARMENIAN CAPITAL LETTER CHEH */ +#define XKB_KEY_Armenian_tche 0x1000573 /* U+0573 ARMENIAN SMALL LETTER CHEH */ +#define XKB_KEY_Armenian_MEN 0x1000544 /* U+0544 ARMENIAN CAPITAL LETTER MEN */ +#define XKB_KEY_Armenian_men 0x1000574 /* U+0574 ARMENIAN SMALL LETTER MEN */ +#define XKB_KEY_Armenian_HI 0x1000545 /* U+0545 ARMENIAN CAPITAL LETTER YI */ +#define XKB_KEY_Armenian_hi 0x1000575 /* U+0575 ARMENIAN SMALL LETTER YI */ +#define XKB_KEY_Armenian_NU 0x1000546 /* U+0546 ARMENIAN CAPITAL LETTER NOW */ +#define XKB_KEY_Armenian_nu 0x1000576 /* U+0576 ARMENIAN SMALL LETTER NOW */ +#define XKB_KEY_Armenian_SHA 0x1000547 /* U+0547 ARMENIAN CAPITAL LETTER SHA */ +#define XKB_KEY_Armenian_sha 0x1000577 /* U+0577 ARMENIAN SMALL LETTER SHA */ +#define XKB_KEY_Armenian_VO 0x1000548 /* U+0548 ARMENIAN CAPITAL LETTER VO */ +#define XKB_KEY_Armenian_vo 0x1000578 /* U+0578 ARMENIAN SMALL LETTER VO */ +#define XKB_KEY_Armenian_CHA 0x1000549 /* U+0549 ARMENIAN CAPITAL LETTER CHA */ +#define XKB_KEY_Armenian_cha 0x1000579 /* U+0579 ARMENIAN SMALL LETTER CHA */ +#define XKB_KEY_Armenian_PE 0x100054a /* U+054A ARMENIAN CAPITAL LETTER PEH */ +#define XKB_KEY_Armenian_pe 0x100057a /* U+057A ARMENIAN SMALL LETTER PEH */ +#define XKB_KEY_Armenian_JE 0x100054b /* U+054B ARMENIAN CAPITAL LETTER JHEH */ +#define XKB_KEY_Armenian_je 0x100057b /* U+057B ARMENIAN SMALL LETTER JHEH */ +#define XKB_KEY_Armenian_RA 0x100054c /* U+054C ARMENIAN CAPITAL LETTER RA */ +#define XKB_KEY_Armenian_ra 0x100057c /* U+057C ARMENIAN SMALL LETTER RA */ +#define XKB_KEY_Armenian_SE 0x100054d /* U+054D ARMENIAN CAPITAL LETTER SEH */ +#define XKB_KEY_Armenian_se 0x100057d /* U+057D ARMENIAN SMALL LETTER SEH */ +#define XKB_KEY_Armenian_VEV 0x100054e /* U+054E ARMENIAN CAPITAL LETTER VEW */ +#define XKB_KEY_Armenian_vev 0x100057e /* U+057E ARMENIAN SMALL LETTER VEW */ +#define XKB_KEY_Armenian_TYUN 0x100054f /* U+054F ARMENIAN CAPITAL LETTER TIWN */ +#define XKB_KEY_Armenian_tyun 0x100057f /* U+057F ARMENIAN SMALL LETTER TIWN */ +#define XKB_KEY_Armenian_RE 0x1000550 /* U+0550 ARMENIAN CAPITAL LETTER REH */ +#define XKB_KEY_Armenian_re 0x1000580 /* U+0580 ARMENIAN SMALL LETTER REH */ +#define XKB_KEY_Armenian_TSO 0x1000551 /* U+0551 ARMENIAN CAPITAL LETTER CO */ +#define XKB_KEY_Armenian_tso 0x1000581 /* U+0581 ARMENIAN SMALL LETTER CO */ +#define XKB_KEY_Armenian_VYUN 0x1000552 /* U+0552 ARMENIAN CAPITAL LETTER YIWN */ +#define XKB_KEY_Armenian_vyun 0x1000582 /* U+0582 ARMENIAN SMALL LETTER YIWN */ +#define XKB_KEY_Armenian_PYUR 0x1000553 /* U+0553 ARMENIAN CAPITAL LETTER PIWR */ +#define XKB_KEY_Armenian_pyur 0x1000583 /* U+0583 ARMENIAN SMALL LETTER PIWR */ +#define XKB_KEY_Armenian_KE 0x1000554 /* U+0554 ARMENIAN CAPITAL LETTER KEH */ +#define XKB_KEY_Armenian_ke 0x1000584 /* U+0584 ARMENIAN SMALL LETTER KEH */ +#define XKB_KEY_Armenian_O 0x1000555 /* U+0555 ARMENIAN CAPITAL LETTER OH */ +#define XKB_KEY_Armenian_o 0x1000585 /* U+0585 ARMENIAN SMALL LETTER OH */ +#define XKB_KEY_Armenian_FE 0x1000556 /* U+0556 ARMENIAN CAPITAL LETTER FEH */ +#define XKB_KEY_Armenian_fe 0x1000586 /* U+0586 ARMENIAN SMALL LETTER FEH */ +#define XKB_KEY_Armenian_apostrophe 0x100055a /* U+055A ARMENIAN APOSTROPHE */ + +/* + * Georgian + */ + +#define XKB_KEY_Georgian_an 0x10010d0 /* U+10D0 GEORGIAN LETTER AN */ +#define XKB_KEY_Georgian_ban 0x10010d1 /* U+10D1 GEORGIAN LETTER BAN */ +#define XKB_KEY_Georgian_gan 0x10010d2 /* U+10D2 GEORGIAN LETTER GAN */ +#define XKB_KEY_Georgian_don 0x10010d3 /* U+10D3 GEORGIAN LETTER DON */ +#define XKB_KEY_Georgian_en 0x10010d4 /* U+10D4 GEORGIAN LETTER EN */ +#define XKB_KEY_Georgian_vin 0x10010d5 /* U+10D5 GEORGIAN LETTER VIN */ +#define XKB_KEY_Georgian_zen 0x10010d6 /* U+10D6 GEORGIAN LETTER ZEN */ +#define XKB_KEY_Georgian_tan 0x10010d7 /* U+10D7 GEORGIAN LETTER TAN */ +#define XKB_KEY_Georgian_in 0x10010d8 /* U+10D8 GEORGIAN LETTER IN */ +#define XKB_KEY_Georgian_kan 0x10010d9 /* U+10D9 GEORGIAN LETTER KAN */ +#define XKB_KEY_Georgian_las 0x10010da /* U+10DA GEORGIAN LETTER LAS */ +#define XKB_KEY_Georgian_man 0x10010db /* U+10DB GEORGIAN LETTER MAN */ +#define XKB_KEY_Georgian_nar 0x10010dc /* U+10DC GEORGIAN LETTER NAR */ +#define XKB_KEY_Georgian_on 0x10010dd /* U+10DD GEORGIAN LETTER ON */ +#define XKB_KEY_Georgian_par 0x10010de /* U+10DE GEORGIAN LETTER PAR */ +#define XKB_KEY_Georgian_zhar 0x10010df /* U+10DF GEORGIAN LETTER ZHAR */ +#define XKB_KEY_Georgian_rae 0x10010e0 /* U+10E0 GEORGIAN LETTER RAE */ +#define XKB_KEY_Georgian_san 0x10010e1 /* U+10E1 GEORGIAN LETTER SAN */ +#define XKB_KEY_Georgian_tar 0x10010e2 /* U+10E2 GEORGIAN LETTER TAR */ +#define XKB_KEY_Georgian_un 0x10010e3 /* U+10E3 GEORGIAN LETTER UN */ +#define XKB_KEY_Georgian_phar 0x10010e4 /* U+10E4 GEORGIAN LETTER PHAR */ +#define XKB_KEY_Georgian_khar 0x10010e5 /* U+10E5 GEORGIAN LETTER KHAR */ +#define XKB_KEY_Georgian_ghan 0x10010e6 /* U+10E6 GEORGIAN LETTER GHAN */ +#define XKB_KEY_Georgian_qar 0x10010e7 /* U+10E7 GEORGIAN LETTER QAR */ +#define XKB_KEY_Georgian_shin 0x10010e8 /* U+10E8 GEORGIAN LETTER SHIN */ +#define XKB_KEY_Georgian_chin 0x10010e9 /* U+10E9 GEORGIAN LETTER CHIN */ +#define XKB_KEY_Georgian_can 0x10010ea /* U+10EA GEORGIAN LETTER CAN */ +#define XKB_KEY_Georgian_jil 0x10010eb /* U+10EB GEORGIAN LETTER JIL */ +#define XKB_KEY_Georgian_cil 0x10010ec /* U+10EC GEORGIAN LETTER CIL */ +#define XKB_KEY_Georgian_char 0x10010ed /* U+10ED GEORGIAN LETTER CHAR */ +#define XKB_KEY_Georgian_xan 0x10010ee /* U+10EE GEORGIAN LETTER XAN */ +#define XKB_KEY_Georgian_jhan 0x10010ef /* U+10EF GEORGIAN LETTER JHAN */ +#define XKB_KEY_Georgian_hae 0x10010f0 /* U+10F0 GEORGIAN LETTER HAE */ +#define XKB_KEY_Georgian_he 0x10010f1 /* U+10F1 GEORGIAN LETTER HE */ +#define XKB_KEY_Georgian_hie 0x10010f2 /* U+10F2 GEORGIAN LETTER HIE */ +#define XKB_KEY_Georgian_we 0x10010f3 /* U+10F3 GEORGIAN LETTER WE */ +#define XKB_KEY_Georgian_har 0x10010f4 /* U+10F4 GEORGIAN LETTER HAR */ +#define XKB_KEY_Georgian_hoe 0x10010f5 /* U+10F5 GEORGIAN LETTER HOE */ +#define XKB_KEY_Georgian_fi 0x10010f6 /* U+10F6 GEORGIAN LETTER FI */ + +/* + * Azeri (and other Turkic or Caucasian languages) + */ + +/* latin */ +#define XKB_KEY_Xabovedot 0x1001e8a /* U+1E8A LATIN CAPITAL LETTER X WITH DOT ABOVE */ +#define XKB_KEY_Ibreve 0x100012c /* U+012C LATIN CAPITAL LETTER I WITH BREVE */ +#define XKB_KEY_Zstroke 0x10001b5 /* U+01B5 LATIN CAPITAL LETTER Z WITH STROKE */ +#define XKB_KEY_Gcaron 0x10001e6 /* U+01E6 LATIN CAPITAL LETTER G WITH CARON */ +#define XKB_KEY_Ocaron 0x10001d1 /* U+01D2 LATIN CAPITAL LETTER O WITH CARON */ +#define XKB_KEY_Obarred 0x100019f /* U+019F LATIN CAPITAL LETTER O WITH MIDDLE TILDE */ +#define XKB_KEY_xabovedot 0x1001e8b /* U+1E8B LATIN SMALL LETTER X WITH DOT ABOVE */ +#define XKB_KEY_ibreve 0x100012d /* U+012D LATIN SMALL LETTER I WITH BREVE */ +#define XKB_KEY_zstroke 0x10001b6 /* U+01B6 LATIN SMALL LETTER Z WITH STROKE */ +#define XKB_KEY_gcaron 0x10001e7 /* U+01E7 LATIN SMALL LETTER G WITH CARON */ +#define XKB_KEY_ocaron 0x10001d2 /* U+01D2 LATIN SMALL LETTER O WITH CARON */ +#define XKB_KEY_obarred 0x1000275 /* U+0275 LATIN SMALL LETTER BARRED O */ +#define XKB_KEY_SCHWA 0x100018f /* U+018F LATIN CAPITAL LETTER SCHWA */ +#define XKB_KEY_schwa 0x1000259 /* U+0259 LATIN SMALL LETTER SCHWA */ +#define XKB_KEY_EZH 0x10001b7 /* U+01B7 LATIN CAPITAL LETTER EZH */ +#define XKB_KEY_ezh 0x1000292 /* U+0292 LATIN SMALL LETTER EZH */ +/* those are not really Caucasus */ +/* For Inupiak */ +#define XKB_KEY_Lbelowdot 0x1001e36 /* U+1E36 LATIN CAPITAL LETTER L WITH DOT BELOW */ +#define XKB_KEY_lbelowdot 0x1001e37 /* U+1E37 LATIN SMALL LETTER L WITH DOT BELOW */ + +/* + * Vietnamese + */ + +#define XKB_KEY_Abelowdot 0x1001ea0 /* U+1EA0 LATIN CAPITAL LETTER A WITH DOT BELOW */ +#define XKB_KEY_abelowdot 0x1001ea1 /* U+1EA1 LATIN SMALL LETTER A WITH DOT BELOW */ +#define XKB_KEY_Ahook 0x1001ea2 /* U+1EA2 LATIN CAPITAL LETTER A WITH HOOK ABOVE */ +#define XKB_KEY_ahook 0x1001ea3 /* U+1EA3 LATIN SMALL LETTER A WITH HOOK ABOVE */ +#define XKB_KEY_Acircumflexacute 0x1001ea4 /* U+1EA4 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE */ +#define XKB_KEY_acircumflexacute 0x1001ea5 /* U+1EA5 LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE */ +#define XKB_KEY_Acircumflexgrave 0x1001ea6 /* U+1EA6 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE */ +#define XKB_KEY_acircumflexgrave 0x1001ea7 /* U+1EA7 LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE */ +#define XKB_KEY_Acircumflexhook 0x1001ea8 /* U+1EA8 LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */ +#define XKB_KEY_acircumflexhook 0x1001ea9 /* U+1EA9 LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE */ +#define XKB_KEY_Acircumflextilde 0x1001eaa /* U+1EAA LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE */ +#define XKB_KEY_acircumflextilde 0x1001eab /* U+1EAB LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE */ +#define XKB_KEY_Acircumflexbelowdot 0x1001eac /* U+1EAC LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW */ +#define XKB_KEY_acircumflexbelowdot 0x1001ead /* U+1EAD LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW */ +#define XKB_KEY_Abreveacute 0x1001eae /* U+1EAE LATIN CAPITAL LETTER A WITH BREVE AND ACUTE */ +#define XKB_KEY_abreveacute 0x1001eaf /* U+1EAF LATIN SMALL LETTER A WITH BREVE AND ACUTE */ +#define XKB_KEY_Abrevegrave 0x1001eb0 /* U+1EB0 LATIN CAPITAL LETTER A WITH BREVE AND GRAVE */ +#define XKB_KEY_abrevegrave 0x1001eb1 /* U+1EB1 LATIN SMALL LETTER A WITH BREVE AND GRAVE */ +#define XKB_KEY_Abrevehook 0x1001eb2 /* U+1EB2 LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE */ +#define XKB_KEY_abrevehook 0x1001eb3 /* U+1EB3 LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE */ +#define XKB_KEY_Abrevetilde 0x1001eb4 /* U+1EB4 LATIN CAPITAL LETTER A WITH BREVE AND TILDE */ +#define XKB_KEY_abrevetilde 0x1001eb5 /* U+1EB5 LATIN SMALL LETTER A WITH BREVE AND TILDE */ +#define XKB_KEY_Abrevebelowdot 0x1001eb6 /* U+1EB6 LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW */ +#define XKB_KEY_abrevebelowdot 0x1001eb7 /* U+1EB7 LATIN SMALL LETTER A WITH BREVE AND DOT BELOW */ +#define XKB_KEY_Ebelowdot 0x1001eb8 /* U+1EB8 LATIN CAPITAL LETTER E WITH DOT BELOW */ +#define XKB_KEY_ebelowdot 0x1001eb9 /* U+1EB9 LATIN SMALL LETTER E WITH DOT BELOW */ +#define XKB_KEY_Ehook 0x1001eba /* U+1EBA LATIN CAPITAL LETTER E WITH HOOK ABOVE */ +#define XKB_KEY_ehook 0x1001ebb /* U+1EBB LATIN SMALL LETTER E WITH HOOK ABOVE */ +#define XKB_KEY_Etilde 0x1001ebc /* U+1EBC LATIN CAPITAL LETTER E WITH TILDE */ +#define XKB_KEY_etilde 0x1001ebd /* U+1EBD LATIN SMALL LETTER E WITH TILDE */ +#define XKB_KEY_Ecircumflexacute 0x1001ebe /* U+1EBE LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE */ +#define XKB_KEY_ecircumflexacute 0x1001ebf /* U+1EBF LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE */ +#define XKB_KEY_Ecircumflexgrave 0x1001ec0 /* U+1EC0 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE */ +#define XKB_KEY_ecircumflexgrave 0x1001ec1 /* U+1EC1 LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE */ +#define XKB_KEY_Ecircumflexhook 0x1001ec2 /* U+1EC2 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */ +#define XKB_KEY_ecircumflexhook 0x1001ec3 /* U+1EC3 LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE */ +#define XKB_KEY_Ecircumflextilde 0x1001ec4 /* U+1EC4 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE */ +#define XKB_KEY_ecircumflextilde 0x1001ec5 /* U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE */ +#define XKB_KEY_Ecircumflexbelowdot 0x1001ec6 /* U+1EC6 LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW */ +#define XKB_KEY_ecircumflexbelowdot 0x1001ec7 /* U+1EC7 LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW */ +#define XKB_KEY_Ihook 0x1001ec8 /* U+1EC8 LATIN CAPITAL LETTER I WITH HOOK ABOVE */ +#define XKB_KEY_ihook 0x1001ec9 /* U+1EC9 LATIN SMALL LETTER I WITH HOOK ABOVE */ +#define XKB_KEY_Ibelowdot 0x1001eca /* U+1ECA LATIN CAPITAL LETTER I WITH DOT BELOW */ +#define XKB_KEY_ibelowdot 0x1001ecb /* U+1ECB LATIN SMALL LETTER I WITH DOT BELOW */ +#define XKB_KEY_Obelowdot 0x1001ecc /* U+1ECC LATIN CAPITAL LETTER O WITH DOT BELOW */ +#define XKB_KEY_obelowdot 0x1001ecd /* U+1ECD LATIN SMALL LETTER O WITH DOT BELOW */ +#define XKB_KEY_Ohook 0x1001ece /* U+1ECE LATIN CAPITAL LETTER O WITH HOOK ABOVE */ +#define XKB_KEY_ohook 0x1001ecf /* U+1ECF LATIN SMALL LETTER O WITH HOOK ABOVE */ +#define XKB_KEY_Ocircumflexacute 0x1001ed0 /* U+1ED0 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE */ +#define XKB_KEY_ocircumflexacute 0x1001ed1 /* U+1ED1 LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE */ +#define XKB_KEY_Ocircumflexgrave 0x1001ed2 /* U+1ED2 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE */ +#define XKB_KEY_ocircumflexgrave 0x1001ed3 /* U+1ED3 LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE */ +#define XKB_KEY_Ocircumflexhook 0x1001ed4 /* U+1ED4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */ +#define XKB_KEY_ocircumflexhook 0x1001ed5 /* U+1ED5 LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE */ +#define XKB_KEY_Ocircumflextilde 0x1001ed6 /* U+1ED6 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE */ +#define XKB_KEY_ocircumflextilde 0x1001ed7 /* U+1ED7 LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE */ +#define XKB_KEY_Ocircumflexbelowdot 0x1001ed8 /* U+1ED8 LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW */ +#define XKB_KEY_ocircumflexbelowdot 0x1001ed9 /* U+1ED9 LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW */ +#define XKB_KEY_Ohornacute 0x1001eda /* U+1EDA LATIN CAPITAL LETTER O WITH HORN AND ACUTE */ +#define XKB_KEY_ohornacute 0x1001edb /* U+1EDB LATIN SMALL LETTER O WITH HORN AND ACUTE */ +#define XKB_KEY_Ohorngrave 0x1001edc /* U+1EDC LATIN CAPITAL LETTER O WITH HORN AND GRAVE */ +#define XKB_KEY_ohorngrave 0x1001edd /* U+1EDD LATIN SMALL LETTER O WITH HORN AND GRAVE */ +#define XKB_KEY_Ohornhook 0x1001ede /* U+1EDE LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE */ +#define XKB_KEY_ohornhook 0x1001edf /* U+1EDF LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE */ +#define XKB_KEY_Ohorntilde 0x1001ee0 /* U+1EE0 LATIN CAPITAL LETTER O WITH HORN AND TILDE */ +#define XKB_KEY_ohorntilde 0x1001ee1 /* U+1EE1 LATIN SMALL LETTER O WITH HORN AND TILDE */ +#define XKB_KEY_Ohornbelowdot 0x1001ee2 /* U+1EE2 LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW */ +#define XKB_KEY_ohornbelowdot 0x1001ee3 /* U+1EE3 LATIN SMALL LETTER O WITH HORN AND DOT BELOW */ +#define XKB_KEY_Ubelowdot 0x1001ee4 /* U+1EE4 LATIN CAPITAL LETTER U WITH DOT BELOW */ +#define XKB_KEY_ubelowdot 0x1001ee5 /* U+1EE5 LATIN SMALL LETTER U WITH DOT BELOW */ +#define XKB_KEY_Uhook 0x1001ee6 /* U+1EE6 LATIN CAPITAL LETTER U WITH HOOK ABOVE */ +#define XKB_KEY_uhook 0x1001ee7 /* U+1EE7 LATIN SMALL LETTER U WITH HOOK ABOVE */ +#define XKB_KEY_Uhornacute 0x1001ee8 /* U+1EE8 LATIN CAPITAL LETTER U WITH HORN AND ACUTE */ +#define XKB_KEY_uhornacute 0x1001ee9 /* U+1EE9 LATIN SMALL LETTER U WITH HORN AND ACUTE */ +#define XKB_KEY_Uhorngrave 0x1001eea /* U+1EEA LATIN CAPITAL LETTER U WITH HORN AND GRAVE */ +#define XKB_KEY_uhorngrave 0x1001eeb /* U+1EEB LATIN SMALL LETTER U WITH HORN AND GRAVE */ +#define XKB_KEY_Uhornhook 0x1001eec /* U+1EEC LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE */ +#define XKB_KEY_uhornhook 0x1001eed /* U+1EED LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE */ +#define XKB_KEY_Uhorntilde 0x1001eee /* U+1EEE LATIN CAPITAL LETTER U WITH HORN AND TILDE */ +#define XKB_KEY_uhorntilde 0x1001eef /* U+1EEF LATIN SMALL LETTER U WITH HORN AND TILDE */ +#define XKB_KEY_Uhornbelowdot 0x1001ef0 /* U+1EF0 LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW */ +#define XKB_KEY_uhornbelowdot 0x1001ef1 /* U+1EF1 LATIN SMALL LETTER U WITH HORN AND DOT BELOW */ +#define XKB_KEY_Ybelowdot 0x1001ef4 /* U+1EF4 LATIN CAPITAL LETTER Y WITH DOT BELOW */ +#define XKB_KEY_ybelowdot 0x1001ef5 /* U+1EF5 LATIN SMALL LETTER Y WITH DOT BELOW */ +#define XKB_KEY_Yhook 0x1001ef6 /* U+1EF6 LATIN CAPITAL LETTER Y WITH HOOK ABOVE */ +#define XKB_KEY_yhook 0x1001ef7 /* U+1EF7 LATIN SMALL LETTER Y WITH HOOK ABOVE */ +#define XKB_KEY_Ytilde 0x1001ef8 /* U+1EF8 LATIN CAPITAL LETTER Y WITH TILDE */ +#define XKB_KEY_ytilde 0x1001ef9 /* U+1EF9 LATIN SMALL LETTER Y WITH TILDE */ +#define XKB_KEY_Ohorn 0x10001a0 /* U+01A0 LATIN CAPITAL LETTER O WITH HORN */ +#define XKB_KEY_ohorn 0x10001a1 /* U+01A1 LATIN SMALL LETTER O WITH HORN */ +#define XKB_KEY_Uhorn 0x10001af /* U+01AF LATIN CAPITAL LETTER U WITH HORN */ +#define XKB_KEY_uhorn 0x10001b0 /* U+01B0 LATIN SMALL LETTER U WITH HORN */ + + +#define XKB_KEY_EcuSign 0x10020a0 /* U+20A0 EURO-CURRENCY SIGN */ +#define XKB_KEY_ColonSign 0x10020a1 /* U+20A1 COLON SIGN */ +#define XKB_KEY_CruzeiroSign 0x10020a2 /* U+20A2 CRUZEIRO SIGN */ +#define XKB_KEY_FFrancSign 0x10020a3 /* U+20A3 FRENCH FRANC SIGN */ +#define XKB_KEY_LiraSign 0x10020a4 /* U+20A4 LIRA SIGN */ +#define XKB_KEY_MillSign 0x10020a5 /* U+20A5 MILL SIGN */ +#define XKB_KEY_NairaSign 0x10020a6 /* U+20A6 NAIRA SIGN */ +#define XKB_KEY_PesetaSign 0x10020a7 /* U+20A7 PESETA SIGN */ +#define XKB_KEY_RupeeSign 0x10020a8 /* U+20A8 RUPEE SIGN */ +#define XKB_KEY_WonSign 0x10020a9 /* U+20A9 WON SIGN */ +#define XKB_KEY_NewSheqelSign 0x10020aa /* U+20AA NEW SHEQEL SIGN */ +#define XKB_KEY_DongSign 0x10020ab /* U+20AB DONG SIGN */ +#define XKB_KEY_EuroSign 0x20ac /* U+20AC EURO SIGN */ + +/* one, two and three are defined above. */ +#define XKB_KEY_zerosuperior 0x1002070 /* U+2070 SUPERSCRIPT ZERO */ +#define XKB_KEY_foursuperior 0x1002074 /* U+2074 SUPERSCRIPT FOUR */ +#define XKB_KEY_fivesuperior 0x1002075 /* U+2075 SUPERSCRIPT FIVE */ +#define XKB_KEY_sixsuperior 0x1002076 /* U+2076 SUPERSCRIPT SIX */ +#define XKB_KEY_sevensuperior 0x1002077 /* U+2077 SUPERSCRIPT SEVEN */ +#define XKB_KEY_eightsuperior 0x1002078 /* U+2078 SUPERSCRIPT EIGHT */ +#define XKB_KEY_ninesuperior 0x1002079 /* U+2079 SUPERSCRIPT NINE */ +#define XKB_KEY_zerosubscript 0x1002080 /* U+2080 SUBSCRIPT ZERO */ +#define XKB_KEY_onesubscript 0x1002081 /* U+2081 SUBSCRIPT ONE */ +#define XKB_KEY_twosubscript 0x1002082 /* U+2082 SUBSCRIPT TWO */ +#define XKB_KEY_threesubscript 0x1002083 /* U+2083 SUBSCRIPT THREE */ +#define XKB_KEY_foursubscript 0x1002084 /* U+2084 SUBSCRIPT FOUR */ +#define XKB_KEY_fivesubscript 0x1002085 /* U+2085 SUBSCRIPT FIVE */ +#define XKB_KEY_sixsubscript 0x1002086 /* U+2086 SUBSCRIPT SIX */ +#define XKB_KEY_sevensubscript 0x1002087 /* U+2087 SUBSCRIPT SEVEN */ +#define XKB_KEY_eightsubscript 0x1002088 /* U+2088 SUBSCRIPT EIGHT */ +#define XKB_KEY_ninesubscript 0x1002089 /* U+2089 SUBSCRIPT NINE */ +#define XKB_KEY_partdifferential 0x1002202 /* U+2202 PARTIAL DIFFERENTIAL */ +#define XKB_KEY_emptyset 0x1002205 /* U+2205 NULL SET */ +#define XKB_KEY_elementof 0x1002208 /* U+2208 ELEMENT OF */ +#define XKB_KEY_notelementof 0x1002209 /* U+2209 NOT AN ELEMENT OF */ +#define XKB_KEY_containsas 0x100220B /* U+220B CONTAINS AS MEMBER */ +#define XKB_KEY_squareroot 0x100221A /* U+221A SQUARE ROOT */ +#define XKB_KEY_cuberoot 0x100221B /* U+221B CUBE ROOT */ +#define XKB_KEY_fourthroot 0x100221C /* U+221C FOURTH ROOT */ +#define XKB_KEY_dintegral 0x100222C /* U+222C DOUBLE INTEGRAL */ +#define XKB_KEY_tintegral 0x100222D /* U+222D TRIPLE INTEGRAL */ +#define XKB_KEY_because 0x1002235 /* U+2235 BECAUSE */ +#define XKB_KEY_approxeq 0x1002248 /* U+2245 ALMOST EQUAL TO */ +#define XKB_KEY_notapproxeq 0x1002247 /* U+2247 NOT ALMOST EQUAL TO */ +#define XKB_KEY_notidentical 0x1002262 /* U+2262 NOT IDENTICAL TO */ +#define XKB_KEY_stricteq 0x1002263 /* U+2263 STRICTLY EQUIVALENT TO */ + +#define XKB_KEY_braille_dot_1 0xfff1 +#define XKB_KEY_braille_dot_2 0xfff2 +#define XKB_KEY_braille_dot_3 0xfff3 +#define XKB_KEY_braille_dot_4 0xfff4 +#define XKB_KEY_braille_dot_5 0xfff5 +#define XKB_KEY_braille_dot_6 0xfff6 +#define XKB_KEY_braille_dot_7 0xfff7 +#define XKB_KEY_braille_dot_8 0xfff8 +#define XKB_KEY_braille_dot_9 0xfff9 +#define XKB_KEY_braille_dot_10 0xfffa +#define XKB_KEY_braille_blank 0x1002800 /* U+2800 BRAILLE PATTERN BLANK */ +#define XKB_KEY_braille_dots_1 0x1002801 /* U+2801 BRAILLE PATTERN DOTS-1 */ +#define XKB_KEY_braille_dots_2 0x1002802 /* U+2802 BRAILLE PATTERN DOTS-2 */ +#define XKB_KEY_braille_dots_12 0x1002803 /* U+2803 BRAILLE PATTERN DOTS-12 */ +#define XKB_KEY_braille_dots_3 0x1002804 /* U+2804 BRAILLE PATTERN DOTS-3 */ +#define XKB_KEY_braille_dots_13 0x1002805 /* U+2805 BRAILLE PATTERN DOTS-13 */ +#define XKB_KEY_braille_dots_23 0x1002806 /* U+2806 BRAILLE PATTERN DOTS-23 */ +#define XKB_KEY_braille_dots_123 0x1002807 /* U+2807 BRAILLE PATTERN DOTS-123 */ +#define XKB_KEY_braille_dots_4 0x1002808 /* U+2808 BRAILLE PATTERN DOTS-4 */ +#define XKB_KEY_braille_dots_14 0x1002809 /* U+2809 BRAILLE PATTERN DOTS-14 */ +#define XKB_KEY_braille_dots_24 0x100280a /* U+280a BRAILLE PATTERN DOTS-24 */ +#define XKB_KEY_braille_dots_124 0x100280b /* U+280b BRAILLE PATTERN DOTS-124 */ +#define XKB_KEY_braille_dots_34 0x100280c /* U+280c BRAILLE PATTERN DOTS-34 */ +#define XKB_KEY_braille_dots_134 0x100280d /* U+280d BRAILLE PATTERN DOTS-134 */ +#define XKB_KEY_braille_dots_234 0x100280e /* U+280e BRAILLE PATTERN DOTS-234 */ +#define XKB_KEY_braille_dots_1234 0x100280f /* U+280f BRAILLE PATTERN DOTS-1234 */ +#define XKB_KEY_braille_dots_5 0x1002810 /* U+2810 BRAILLE PATTERN DOTS-5 */ +#define XKB_KEY_braille_dots_15 0x1002811 /* U+2811 BRAILLE PATTERN DOTS-15 */ +#define XKB_KEY_braille_dots_25 0x1002812 /* U+2812 BRAILLE PATTERN DOTS-25 */ +#define XKB_KEY_braille_dots_125 0x1002813 /* U+2813 BRAILLE PATTERN DOTS-125 */ +#define XKB_KEY_braille_dots_35 0x1002814 /* U+2814 BRAILLE PATTERN DOTS-35 */ +#define XKB_KEY_braille_dots_135 0x1002815 /* U+2815 BRAILLE PATTERN DOTS-135 */ +#define XKB_KEY_braille_dots_235 0x1002816 /* U+2816 BRAILLE PATTERN DOTS-235 */ +#define XKB_KEY_braille_dots_1235 0x1002817 /* U+2817 BRAILLE PATTERN DOTS-1235 */ +#define XKB_KEY_braille_dots_45 0x1002818 /* U+2818 BRAILLE PATTERN DOTS-45 */ +#define XKB_KEY_braille_dots_145 0x1002819 /* U+2819 BRAILLE PATTERN DOTS-145 */ +#define XKB_KEY_braille_dots_245 0x100281a /* U+281a BRAILLE PATTERN DOTS-245 */ +#define XKB_KEY_braille_dots_1245 0x100281b /* U+281b BRAILLE PATTERN DOTS-1245 */ +#define XKB_KEY_braille_dots_345 0x100281c /* U+281c BRAILLE PATTERN DOTS-345 */ +#define XKB_KEY_braille_dots_1345 0x100281d /* U+281d BRAILLE PATTERN DOTS-1345 */ +#define XKB_KEY_braille_dots_2345 0x100281e /* U+281e BRAILLE PATTERN DOTS-2345 */ +#define XKB_KEY_braille_dots_12345 0x100281f /* U+281f BRAILLE PATTERN DOTS-12345 */ +#define XKB_KEY_braille_dots_6 0x1002820 /* U+2820 BRAILLE PATTERN DOTS-6 */ +#define XKB_KEY_braille_dots_16 0x1002821 /* U+2821 BRAILLE PATTERN DOTS-16 */ +#define XKB_KEY_braille_dots_26 0x1002822 /* U+2822 BRAILLE PATTERN DOTS-26 */ +#define XKB_KEY_braille_dots_126 0x1002823 /* U+2823 BRAILLE PATTERN DOTS-126 */ +#define XKB_KEY_braille_dots_36 0x1002824 /* U+2824 BRAILLE PATTERN DOTS-36 */ +#define XKB_KEY_braille_dots_136 0x1002825 /* U+2825 BRAILLE PATTERN DOTS-136 */ +#define XKB_KEY_braille_dots_236 0x1002826 /* U+2826 BRAILLE PATTERN DOTS-236 */ +#define XKB_KEY_braille_dots_1236 0x1002827 /* U+2827 BRAILLE PATTERN DOTS-1236 */ +#define XKB_KEY_braille_dots_46 0x1002828 /* U+2828 BRAILLE PATTERN DOTS-46 */ +#define XKB_KEY_braille_dots_146 0x1002829 /* U+2829 BRAILLE PATTERN DOTS-146 */ +#define XKB_KEY_braille_dots_246 0x100282a /* U+282a BRAILLE PATTERN DOTS-246 */ +#define XKB_KEY_braille_dots_1246 0x100282b /* U+282b BRAILLE PATTERN DOTS-1246 */ +#define XKB_KEY_braille_dots_346 0x100282c /* U+282c BRAILLE PATTERN DOTS-346 */ +#define XKB_KEY_braille_dots_1346 0x100282d /* U+282d BRAILLE PATTERN DOTS-1346 */ +#define XKB_KEY_braille_dots_2346 0x100282e /* U+282e BRAILLE PATTERN DOTS-2346 */ +#define XKB_KEY_braille_dots_12346 0x100282f /* U+282f BRAILLE PATTERN DOTS-12346 */ +#define XKB_KEY_braille_dots_56 0x1002830 /* U+2830 BRAILLE PATTERN DOTS-56 */ +#define XKB_KEY_braille_dots_156 0x1002831 /* U+2831 BRAILLE PATTERN DOTS-156 */ +#define XKB_KEY_braille_dots_256 0x1002832 /* U+2832 BRAILLE PATTERN DOTS-256 */ +#define XKB_KEY_braille_dots_1256 0x1002833 /* U+2833 BRAILLE PATTERN DOTS-1256 */ +#define XKB_KEY_braille_dots_356 0x1002834 /* U+2834 BRAILLE PATTERN DOTS-356 */ +#define XKB_KEY_braille_dots_1356 0x1002835 /* U+2835 BRAILLE PATTERN DOTS-1356 */ +#define XKB_KEY_braille_dots_2356 0x1002836 /* U+2836 BRAILLE PATTERN DOTS-2356 */ +#define XKB_KEY_braille_dots_12356 0x1002837 /* U+2837 BRAILLE PATTERN DOTS-12356 */ +#define XKB_KEY_braille_dots_456 0x1002838 /* U+2838 BRAILLE PATTERN DOTS-456 */ +#define XKB_KEY_braille_dots_1456 0x1002839 /* U+2839 BRAILLE PATTERN DOTS-1456 */ +#define XKB_KEY_braille_dots_2456 0x100283a /* U+283a BRAILLE PATTERN DOTS-2456 */ +#define XKB_KEY_braille_dots_12456 0x100283b /* U+283b BRAILLE PATTERN DOTS-12456 */ +#define XKB_KEY_braille_dots_3456 0x100283c /* U+283c BRAILLE PATTERN DOTS-3456 */ +#define XKB_KEY_braille_dots_13456 0x100283d /* U+283d BRAILLE PATTERN DOTS-13456 */ +#define XKB_KEY_braille_dots_23456 0x100283e /* U+283e BRAILLE PATTERN DOTS-23456 */ +#define XKB_KEY_braille_dots_123456 0x100283f /* U+283f BRAILLE PATTERN DOTS-123456 */ +#define XKB_KEY_braille_dots_7 0x1002840 /* U+2840 BRAILLE PATTERN DOTS-7 */ +#define XKB_KEY_braille_dots_17 0x1002841 /* U+2841 BRAILLE PATTERN DOTS-17 */ +#define XKB_KEY_braille_dots_27 0x1002842 /* U+2842 BRAILLE PATTERN DOTS-27 */ +#define XKB_KEY_braille_dots_127 0x1002843 /* U+2843 BRAILLE PATTERN DOTS-127 */ +#define XKB_KEY_braille_dots_37 0x1002844 /* U+2844 BRAILLE PATTERN DOTS-37 */ +#define XKB_KEY_braille_dots_137 0x1002845 /* U+2845 BRAILLE PATTERN DOTS-137 */ +#define XKB_KEY_braille_dots_237 0x1002846 /* U+2846 BRAILLE PATTERN DOTS-237 */ +#define XKB_KEY_braille_dots_1237 0x1002847 /* U+2847 BRAILLE PATTERN DOTS-1237 */ +#define XKB_KEY_braille_dots_47 0x1002848 /* U+2848 BRAILLE PATTERN DOTS-47 */ +#define XKB_KEY_braille_dots_147 0x1002849 /* U+2849 BRAILLE PATTERN DOTS-147 */ +#define XKB_KEY_braille_dots_247 0x100284a /* U+284a BRAILLE PATTERN DOTS-247 */ +#define XKB_KEY_braille_dots_1247 0x100284b /* U+284b BRAILLE PATTERN DOTS-1247 */ +#define XKB_KEY_braille_dots_347 0x100284c /* U+284c BRAILLE PATTERN DOTS-347 */ +#define XKB_KEY_braille_dots_1347 0x100284d /* U+284d BRAILLE PATTERN DOTS-1347 */ +#define XKB_KEY_braille_dots_2347 0x100284e /* U+284e BRAILLE PATTERN DOTS-2347 */ +#define XKB_KEY_braille_dots_12347 0x100284f /* U+284f BRAILLE PATTERN DOTS-12347 */ +#define XKB_KEY_braille_dots_57 0x1002850 /* U+2850 BRAILLE PATTERN DOTS-57 */ +#define XKB_KEY_braille_dots_157 0x1002851 /* U+2851 BRAILLE PATTERN DOTS-157 */ +#define XKB_KEY_braille_dots_257 0x1002852 /* U+2852 BRAILLE PATTERN DOTS-257 */ +#define XKB_KEY_braille_dots_1257 0x1002853 /* U+2853 BRAILLE PATTERN DOTS-1257 */ +#define XKB_KEY_braille_dots_357 0x1002854 /* U+2854 BRAILLE PATTERN DOTS-357 */ +#define XKB_KEY_braille_dots_1357 0x1002855 /* U+2855 BRAILLE PATTERN DOTS-1357 */ +#define XKB_KEY_braille_dots_2357 0x1002856 /* U+2856 BRAILLE PATTERN DOTS-2357 */ +#define XKB_KEY_braille_dots_12357 0x1002857 /* U+2857 BRAILLE PATTERN DOTS-12357 */ +#define XKB_KEY_braille_dots_457 0x1002858 /* U+2858 BRAILLE PATTERN DOTS-457 */ +#define XKB_KEY_braille_dots_1457 0x1002859 /* U+2859 BRAILLE PATTERN DOTS-1457 */ +#define XKB_KEY_braille_dots_2457 0x100285a /* U+285a BRAILLE PATTERN DOTS-2457 */ +#define XKB_KEY_braille_dots_12457 0x100285b /* U+285b BRAILLE PATTERN DOTS-12457 */ +#define XKB_KEY_braille_dots_3457 0x100285c /* U+285c BRAILLE PATTERN DOTS-3457 */ +#define XKB_KEY_braille_dots_13457 0x100285d /* U+285d BRAILLE PATTERN DOTS-13457 */ +#define XKB_KEY_braille_dots_23457 0x100285e /* U+285e BRAILLE PATTERN DOTS-23457 */ +#define XKB_KEY_braille_dots_123457 0x100285f /* U+285f BRAILLE PATTERN DOTS-123457 */ +#define XKB_KEY_braille_dots_67 0x1002860 /* U+2860 BRAILLE PATTERN DOTS-67 */ +#define XKB_KEY_braille_dots_167 0x1002861 /* U+2861 BRAILLE PATTERN DOTS-167 */ +#define XKB_KEY_braille_dots_267 0x1002862 /* U+2862 BRAILLE PATTERN DOTS-267 */ +#define XKB_KEY_braille_dots_1267 0x1002863 /* U+2863 BRAILLE PATTERN DOTS-1267 */ +#define XKB_KEY_braille_dots_367 0x1002864 /* U+2864 BRAILLE PATTERN DOTS-367 */ +#define XKB_KEY_braille_dots_1367 0x1002865 /* U+2865 BRAILLE PATTERN DOTS-1367 */ +#define XKB_KEY_braille_dots_2367 0x1002866 /* U+2866 BRAILLE PATTERN DOTS-2367 */ +#define XKB_KEY_braille_dots_12367 0x1002867 /* U+2867 BRAILLE PATTERN DOTS-12367 */ +#define XKB_KEY_braille_dots_467 0x1002868 /* U+2868 BRAILLE PATTERN DOTS-467 */ +#define XKB_KEY_braille_dots_1467 0x1002869 /* U+2869 BRAILLE PATTERN DOTS-1467 */ +#define XKB_KEY_braille_dots_2467 0x100286a /* U+286a BRAILLE PATTERN DOTS-2467 */ +#define XKB_KEY_braille_dots_12467 0x100286b /* U+286b BRAILLE PATTERN DOTS-12467 */ +#define XKB_KEY_braille_dots_3467 0x100286c /* U+286c BRAILLE PATTERN DOTS-3467 */ +#define XKB_KEY_braille_dots_13467 0x100286d /* U+286d BRAILLE PATTERN DOTS-13467 */ +#define XKB_KEY_braille_dots_23467 0x100286e /* U+286e BRAILLE PATTERN DOTS-23467 */ +#define XKB_KEY_braille_dots_123467 0x100286f /* U+286f BRAILLE PATTERN DOTS-123467 */ +#define XKB_KEY_braille_dots_567 0x1002870 /* U+2870 BRAILLE PATTERN DOTS-567 */ +#define XKB_KEY_braille_dots_1567 0x1002871 /* U+2871 BRAILLE PATTERN DOTS-1567 */ +#define XKB_KEY_braille_dots_2567 0x1002872 /* U+2872 BRAILLE PATTERN DOTS-2567 */ +#define XKB_KEY_braille_dots_12567 0x1002873 /* U+2873 BRAILLE PATTERN DOTS-12567 */ +#define XKB_KEY_braille_dots_3567 0x1002874 /* U+2874 BRAILLE PATTERN DOTS-3567 */ +#define XKB_KEY_braille_dots_13567 0x1002875 /* U+2875 BRAILLE PATTERN DOTS-13567 */ +#define XKB_KEY_braille_dots_23567 0x1002876 /* U+2876 BRAILLE PATTERN DOTS-23567 */ +#define XKB_KEY_braille_dots_123567 0x1002877 /* U+2877 BRAILLE PATTERN DOTS-123567 */ +#define XKB_KEY_braille_dots_4567 0x1002878 /* U+2878 BRAILLE PATTERN DOTS-4567 */ +#define XKB_KEY_braille_dots_14567 0x1002879 /* U+2879 BRAILLE PATTERN DOTS-14567 */ +#define XKB_KEY_braille_dots_24567 0x100287a /* U+287a BRAILLE PATTERN DOTS-24567 */ +#define XKB_KEY_braille_dots_124567 0x100287b /* U+287b BRAILLE PATTERN DOTS-124567 */ +#define XKB_KEY_braille_dots_34567 0x100287c /* U+287c BRAILLE PATTERN DOTS-34567 */ +#define XKB_KEY_braille_dots_134567 0x100287d /* U+287d BRAILLE PATTERN DOTS-134567 */ +#define XKB_KEY_braille_dots_234567 0x100287e /* U+287e BRAILLE PATTERN DOTS-234567 */ +#define XKB_KEY_braille_dots_1234567 0x100287f /* U+287f BRAILLE PATTERN DOTS-1234567 */ +#define XKB_KEY_braille_dots_8 0x1002880 /* U+2880 BRAILLE PATTERN DOTS-8 */ +#define XKB_KEY_braille_dots_18 0x1002881 /* U+2881 BRAILLE PATTERN DOTS-18 */ +#define XKB_KEY_braille_dots_28 0x1002882 /* U+2882 BRAILLE PATTERN DOTS-28 */ +#define XKB_KEY_braille_dots_128 0x1002883 /* U+2883 BRAILLE PATTERN DOTS-128 */ +#define XKB_KEY_braille_dots_38 0x1002884 /* U+2884 BRAILLE PATTERN DOTS-38 */ +#define XKB_KEY_braille_dots_138 0x1002885 /* U+2885 BRAILLE PATTERN DOTS-138 */ +#define XKB_KEY_braille_dots_238 0x1002886 /* U+2886 BRAILLE PATTERN DOTS-238 */ +#define XKB_KEY_braille_dots_1238 0x1002887 /* U+2887 BRAILLE PATTERN DOTS-1238 */ +#define XKB_KEY_braille_dots_48 0x1002888 /* U+2888 BRAILLE PATTERN DOTS-48 */ +#define XKB_KEY_braille_dots_148 0x1002889 /* U+2889 BRAILLE PATTERN DOTS-148 */ +#define XKB_KEY_braille_dots_248 0x100288a /* U+288a BRAILLE PATTERN DOTS-248 */ +#define XKB_KEY_braille_dots_1248 0x100288b /* U+288b BRAILLE PATTERN DOTS-1248 */ +#define XKB_KEY_braille_dots_348 0x100288c /* U+288c BRAILLE PATTERN DOTS-348 */ +#define XKB_KEY_braille_dots_1348 0x100288d /* U+288d BRAILLE PATTERN DOTS-1348 */ +#define XKB_KEY_braille_dots_2348 0x100288e /* U+288e BRAILLE PATTERN DOTS-2348 */ +#define XKB_KEY_braille_dots_12348 0x100288f /* U+288f BRAILLE PATTERN DOTS-12348 */ +#define XKB_KEY_braille_dots_58 0x1002890 /* U+2890 BRAILLE PATTERN DOTS-58 */ +#define XKB_KEY_braille_dots_158 0x1002891 /* U+2891 BRAILLE PATTERN DOTS-158 */ +#define XKB_KEY_braille_dots_258 0x1002892 /* U+2892 BRAILLE PATTERN DOTS-258 */ +#define XKB_KEY_braille_dots_1258 0x1002893 /* U+2893 BRAILLE PATTERN DOTS-1258 */ +#define XKB_KEY_braille_dots_358 0x1002894 /* U+2894 BRAILLE PATTERN DOTS-358 */ +#define XKB_KEY_braille_dots_1358 0x1002895 /* U+2895 BRAILLE PATTERN DOTS-1358 */ +#define XKB_KEY_braille_dots_2358 0x1002896 /* U+2896 BRAILLE PATTERN DOTS-2358 */ +#define XKB_KEY_braille_dots_12358 0x1002897 /* U+2897 BRAILLE PATTERN DOTS-12358 */ +#define XKB_KEY_braille_dots_458 0x1002898 /* U+2898 BRAILLE PATTERN DOTS-458 */ +#define XKB_KEY_braille_dots_1458 0x1002899 /* U+2899 BRAILLE PATTERN DOTS-1458 */ +#define XKB_KEY_braille_dots_2458 0x100289a /* U+289a BRAILLE PATTERN DOTS-2458 */ +#define XKB_KEY_braille_dots_12458 0x100289b /* U+289b BRAILLE PATTERN DOTS-12458 */ +#define XKB_KEY_braille_dots_3458 0x100289c /* U+289c BRAILLE PATTERN DOTS-3458 */ +#define XKB_KEY_braille_dots_13458 0x100289d /* U+289d BRAILLE PATTERN DOTS-13458 */ +#define XKB_KEY_braille_dots_23458 0x100289e /* U+289e BRAILLE PATTERN DOTS-23458 */ +#define XKB_KEY_braille_dots_123458 0x100289f /* U+289f BRAILLE PATTERN DOTS-123458 */ +#define XKB_KEY_braille_dots_68 0x10028a0 /* U+28a0 BRAILLE PATTERN DOTS-68 */ +#define XKB_KEY_braille_dots_168 0x10028a1 /* U+28a1 BRAILLE PATTERN DOTS-168 */ +#define XKB_KEY_braille_dots_268 0x10028a2 /* U+28a2 BRAILLE PATTERN DOTS-268 */ +#define XKB_KEY_braille_dots_1268 0x10028a3 /* U+28a3 BRAILLE PATTERN DOTS-1268 */ +#define XKB_KEY_braille_dots_368 0x10028a4 /* U+28a4 BRAILLE PATTERN DOTS-368 */ +#define XKB_KEY_braille_dots_1368 0x10028a5 /* U+28a5 BRAILLE PATTERN DOTS-1368 */ +#define XKB_KEY_braille_dots_2368 0x10028a6 /* U+28a6 BRAILLE PATTERN DOTS-2368 */ +#define XKB_KEY_braille_dots_12368 0x10028a7 /* U+28a7 BRAILLE PATTERN DOTS-12368 */ +#define XKB_KEY_braille_dots_468 0x10028a8 /* U+28a8 BRAILLE PATTERN DOTS-468 */ +#define XKB_KEY_braille_dots_1468 0x10028a9 /* U+28a9 BRAILLE PATTERN DOTS-1468 */ +#define XKB_KEY_braille_dots_2468 0x10028aa /* U+28aa BRAILLE PATTERN DOTS-2468 */ +#define XKB_KEY_braille_dots_12468 0x10028ab /* U+28ab BRAILLE PATTERN DOTS-12468 */ +#define XKB_KEY_braille_dots_3468 0x10028ac /* U+28ac BRAILLE PATTERN DOTS-3468 */ +#define XKB_KEY_braille_dots_13468 0x10028ad /* U+28ad BRAILLE PATTERN DOTS-13468 */ +#define XKB_KEY_braille_dots_23468 0x10028ae /* U+28ae BRAILLE PATTERN DOTS-23468 */ +#define XKB_KEY_braille_dots_123468 0x10028af /* U+28af BRAILLE PATTERN DOTS-123468 */ +#define XKB_KEY_braille_dots_568 0x10028b0 /* U+28b0 BRAILLE PATTERN DOTS-568 */ +#define XKB_KEY_braille_dots_1568 0x10028b1 /* U+28b1 BRAILLE PATTERN DOTS-1568 */ +#define XKB_KEY_braille_dots_2568 0x10028b2 /* U+28b2 BRAILLE PATTERN DOTS-2568 */ +#define XKB_KEY_braille_dots_12568 0x10028b3 /* U+28b3 BRAILLE PATTERN DOTS-12568 */ +#define XKB_KEY_braille_dots_3568 0x10028b4 /* U+28b4 BRAILLE PATTERN DOTS-3568 */ +#define XKB_KEY_braille_dots_13568 0x10028b5 /* U+28b5 BRAILLE PATTERN DOTS-13568 */ +#define XKB_KEY_braille_dots_23568 0x10028b6 /* U+28b6 BRAILLE PATTERN DOTS-23568 */ +#define XKB_KEY_braille_dots_123568 0x10028b7 /* U+28b7 BRAILLE PATTERN DOTS-123568 */ +#define XKB_KEY_braille_dots_4568 0x10028b8 /* U+28b8 BRAILLE PATTERN DOTS-4568 */ +#define XKB_KEY_braille_dots_14568 0x10028b9 /* U+28b9 BRAILLE PATTERN DOTS-14568 */ +#define XKB_KEY_braille_dots_24568 0x10028ba /* U+28ba BRAILLE PATTERN DOTS-24568 */ +#define XKB_KEY_braille_dots_124568 0x10028bb /* U+28bb BRAILLE PATTERN DOTS-124568 */ +#define XKB_KEY_braille_dots_34568 0x10028bc /* U+28bc BRAILLE PATTERN DOTS-34568 */ +#define XKB_KEY_braille_dots_134568 0x10028bd /* U+28bd BRAILLE PATTERN DOTS-134568 */ +#define XKB_KEY_braille_dots_234568 0x10028be /* U+28be BRAILLE PATTERN DOTS-234568 */ +#define XKB_KEY_braille_dots_1234568 0x10028bf /* U+28bf BRAILLE PATTERN DOTS-1234568 */ +#define XKB_KEY_braille_dots_78 0x10028c0 /* U+28c0 BRAILLE PATTERN DOTS-78 */ +#define XKB_KEY_braille_dots_178 0x10028c1 /* U+28c1 BRAILLE PATTERN DOTS-178 */ +#define XKB_KEY_braille_dots_278 0x10028c2 /* U+28c2 BRAILLE PATTERN DOTS-278 */ +#define XKB_KEY_braille_dots_1278 0x10028c3 /* U+28c3 BRAILLE PATTERN DOTS-1278 */ +#define XKB_KEY_braille_dots_378 0x10028c4 /* U+28c4 BRAILLE PATTERN DOTS-378 */ +#define XKB_KEY_braille_dots_1378 0x10028c5 /* U+28c5 BRAILLE PATTERN DOTS-1378 */ +#define XKB_KEY_braille_dots_2378 0x10028c6 /* U+28c6 BRAILLE PATTERN DOTS-2378 */ +#define XKB_KEY_braille_dots_12378 0x10028c7 /* U+28c7 BRAILLE PATTERN DOTS-12378 */ +#define XKB_KEY_braille_dots_478 0x10028c8 /* U+28c8 BRAILLE PATTERN DOTS-478 */ +#define XKB_KEY_braille_dots_1478 0x10028c9 /* U+28c9 BRAILLE PATTERN DOTS-1478 */ +#define XKB_KEY_braille_dots_2478 0x10028ca /* U+28ca BRAILLE PATTERN DOTS-2478 */ +#define XKB_KEY_braille_dots_12478 0x10028cb /* U+28cb BRAILLE PATTERN DOTS-12478 */ +#define XKB_KEY_braille_dots_3478 0x10028cc /* U+28cc BRAILLE PATTERN DOTS-3478 */ +#define XKB_KEY_braille_dots_13478 0x10028cd /* U+28cd BRAILLE PATTERN DOTS-13478 */ +#define XKB_KEY_braille_dots_23478 0x10028ce /* U+28ce BRAILLE PATTERN DOTS-23478 */ +#define XKB_KEY_braille_dots_123478 0x10028cf /* U+28cf BRAILLE PATTERN DOTS-123478 */ +#define XKB_KEY_braille_dots_578 0x10028d0 /* U+28d0 BRAILLE PATTERN DOTS-578 */ +#define XKB_KEY_braille_dots_1578 0x10028d1 /* U+28d1 BRAILLE PATTERN DOTS-1578 */ +#define XKB_KEY_braille_dots_2578 0x10028d2 /* U+28d2 BRAILLE PATTERN DOTS-2578 */ +#define XKB_KEY_braille_dots_12578 0x10028d3 /* U+28d3 BRAILLE PATTERN DOTS-12578 */ +#define XKB_KEY_braille_dots_3578 0x10028d4 /* U+28d4 BRAILLE PATTERN DOTS-3578 */ +#define XKB_KEY_braille_dots_13578 0x10028d5 /* U+28d5 BRAILLE PATTERN DOTS-13578 */ +#define XKB_KEY_braille_dots_23578 0x10028d6 /* U+28d6 BRAILLE PATTERN DOTS-23578 */ +#define XKB_KEY_braille_dots_123578 0x10028d7 /* U+28d7 BRAILLE PATTERN DOTS-123578 */ +#define XKB_KEY_braille_dots_4578 0x10028d8 /* U+28d8 BRAILLE PATTERN DOTS-4578 */ +#define XKB_KEY_braille_dots_14578 0x10028d9 /* U+28d9 BRAILLE PATTERN DOTS-14578 */ +#define XKB_KEY_braille_dots_24578 0x10028da /* U+28da BRAILLE PATTERN DOTS-24578 */ +#define XKB_KEY_braille_dots_124578 0x10028db /* U+28db BRAILLE PATTERN DOTS-124578 */ +#define XKB_KEY_braille_dots_34578 0x10028dc /* U+28dc BRAILLE PATTERN DOTS-34578 */ +#define XKB_KEY_braille_dots_134578 0x10028dd /* U+28dd BRAILLE PATTERN DOTS-134578 */ +#define XKB_KEY_braille_dots_234578 0x10028de /* U+28de BRAILLE PATTERN DOTS-234578 */ +#define XKB_KEY_braille_dots_1234578 0x10028df /* U+28df BRAILLE PATTERN DOTS-1234578 */ +#define XKB_KEY_braille_dots_678 0x10028e0 /* U+28e0 BRAILLE PATTERN DOTS-678 */ +#define XKB_KEY_braille_dots_1678 0x10028e1 /* U+28e1 BRAILLE PATTERN DOTS-1678 */ +#define XKB_KEY_braille_dots_2678 0x10028e2 /* U+28e2 BRAILLE PATTERN DOTS-2678 */ +#define XKB_KEY_braille_dots_12678 0x10028e3 /* U+28e3 BRAILLE PATTERN DOTS-12678 */ +#define XKB_KEY_braille_dots_3678 0x10028e4 /* U+28e4 BRAILLE PATTERN DOTS-3678 */ +#define XKB_KEY_braille_dots_13678 0x10028e5 /* U+28e5 BRAILLE PATTERN DOTS-13678 */ +#define XKB_KEY_braille_dots_23678 0x10028e6 /* U+28e6 BRAILLE PATTERN DOTS-23678 */ +#define XKB_KEY_braille_dots_123678 0x10028e7 /* U+28e7 BRAILLE PATTERN DOTS-123678 */ +#define XKB_KEY_braille_dots_4678 0x10028e8 /* U+28e8 BRAILLE PATTERN DOTS-4678 */ +#define XKB_KEY_braille_dots_14678 0x10028e9 /* U+28e9 BRAILLE PATTERN DOTS-14678 */ +#define XKB_KEY_braille_dots_24678 0x10028ea /* U+28ea BRAILLE PATTERN DOTS-24678 */ +#define XKB_KEY_braille_dots_124678 0x10028eb /* U+28eb BRAILLE PATTERN DOTS-124678 */ +#define XKB_KEY_braille_dots_34678 0x10028ec /* U+28ec BRAILLE PATTERN DOTS-34678 */ +#define XKB_KEY_braille_dots_134678 0x10028ed /* U+28ed BRAILLE PATTERN DOTS-134678 */ +#define XKB_KEY_braille_dots_234678 0x10028ee /* U+28ee BRAILLE PATTERN DOTS-234678 */ +#define XKB_KEY_braille_dots_1234678 0x10028ef /* U+28ef BRAILLE PATTERN DOTS-1234678 */ +#define XKB_KEY_braille_dots_5678 0x10028f0 /* U+28f0 BRAILLE PATTERN DOTS-5678 */ +#define XKB_KEY_braille_dots_15678 0x10028f1 /* U+28f1 BRAILLE PATTERN DOTS-15678 */ +#define XKB_KEY_braille_dots_25678 0x10028f2 /* U+28f2 BRAILLE PATTERN DOTS-25678 */ +#define XKB_KEY_braille_dots_125678 0x10028f3 /* U+28f3 BRAILLE PATTERN DOTS-125678 */ +#define XKB_KEY_braille_dots_35678 0x10028f4 /* U+28f4 BRAILLE PATTERN DOTS-35678 */ +#define XKB_KEY_braille_dots_135678 0x10028f5 /* U+28f5 BRAILLE PATTERN DOTS-135678 */ +#define XKB_KEY_braille_dots_235678 0x10028f6 /* U+28f6 BRAILLE PATTERN DOTS-235678 */ +#define XKB_KEY_braille_dots_1235678 0x10028f7 /* U+28f7 BRAILLE PATTERN DOTS-1235678 */ +#define XKB_KEY_braille_dots_45678 0x10028f8 /* U+28f8 BRAILLE PATTERN DOTS-45678 */ +#define XKB_KEY_braille_dots_145678 0x10028f9 /* U+28f9 BRAILLE PATTERN DOTS-145678 */ +#define XKB_KEY_braille_dots_245678 0x10028fa /* U+28fa BRAILLE PATTERN DOTS-245678 */ +#define XKB_KEY_braille_dots_1245678 0x10028fb /* U+28fb BRAILLE PATTERN DOTS-1245678 */ +#define XKB_KEY_braille_dots_345678 0x10028fc /* U+28fc BRAILLE PATTERN DOTS-345678 */ +#define XKB_KEY_braille_dots_1345678 0x10028fd /* U+28fd BRAILLE PATTERN DOTS-1345678 */ +#define XKB_KEY_braille_dots_2345678 0x10028fe /* U+28fe BRAILLE PATTERN DOTS-2345678 */ +#define XKB_KEY_braille_dots_12345678 0x10028ff /* U+28ff BRAILLE PATTERN DOTS-12345678 */ + +/* + * Sinhala (http://unicode.org/charts/PDF/U0D80.pdf) + * http://www.nongnu.org/sinhala/doc/transliteration/sinhala-transliteration_6.html + */ + +#define XKB_KEY_Sinh_ng 0x1000d82 /* U+0D82 SINHALA ANUSVARAYA */ +#define XKB_KEY_Sinh_h2 0x1000d83 /* U+0D83 SINHALA VISARGAYA */ +#define XKB_KEY_Sinh_a 0x1000d85 /* U+0D85 SINHALA AYANNA */ +#define XKB_KEY_Sinh_aa 0x1000d86 /* U+0D86 SINHALA AAYANNA */ +#define XKB_KEY_Sinh_ae 0x1000d87 /* U+0D87 SINHALA AEYANNA */ +#define XKB_KEY_Sinh_aee 0x1000d88 /* U+0D88 SINHALA AEEYANNA */ +#define XKB_KEY_Sinh_i 0x1000d89 /* U+0D89 SINHALA IYANNA */ +#define XKB_KEY_Sinh_ii 0x1000d8a /* U+0D8A SINHALA IIYANNA */ +#define XKB_KEY_Sinh_u 0x1000d8b /* U+0D8B SINHALA UYANNA */ +#define XKB_KEY_Sinh_uu 0x1000d8c /* U+0D8C SINHALA UUYANNA */ +#define XKB_KEY_Sinh_ri 0x1000d8d /* U+0D8D SINHALA IRUYANNA */ +#define XKB_KEY_Sinh_rii 0x1000d8e /* U+0D8E SINHALA IRUUYANNA */ +#define XKB_KEY_Sinh_lu 0x1000d8f /* U+0D8F SINHALA ILUYANNA */ +#define XKB_KEY_Sinh_luu 0x1000d90 /* U+0D90 SINHALA ILUUYANNA */ +#define XKB_KEY_Sinh_e 0x1000d91 /* U+0D91 SINHALA EYANNA */ +#define XKB_KEY_Sinh_ee 0x1000d92 /* U+0D92 SINHALA EEYANNA */ +#define XKB_KEY_Sinh_ai 0x1000d93 /* U+0D93 SINHALA AIYANNA */ +#define XKB_KEY_Sinh_o 0x1000d94 /* U+0D94 SINHALA OYANNA */ +#define XKB_KEY_Sinh_oo 0x1000d95 /* U+0D95 SINHALA OOYANNA */ +#define XKB_KEY_Sinh_au 0x1000d96 /* U+0D96 SINHALA AUYANNA */ +#define XKB_KEY_Sinh_ka 0x1000d9a /* U+0D9A SINHALA KAYANNA */ +#define XKB_KEY_Sinh_kha 0x1000d9b /* U+0D9B SINHALA MAHA. KAYANNA */ +#define XKB_KEY_Sinh_ga 0x1000d9c /* U+0D9C SINHALA GAYANNA */ +#define XKB_KEY_Sinh_gha 0x1000d9d /* U+0D9D SINHALA MAHA. GAYANNA */ +#define XKB_KEY_Sinh_ng2 0x1000d9e /* U+0D9E SINHALA KANTAJA NAASIKYAYA */ +#define XKB_KEY_Sinh_nga 0x1000d9f /* U+0D9F SINHALA SANYAKA GAYANNA */ +#define XKB_KEY_Sinh_ca 0x1000da0 /* U+0DA0 SINHALA CAYANNA */ +#define XKB_KEY_Sinh_cha 0x1000da1 /* U+0DA1 SINHALA MAHA. CAYANNA */ +#define XKB_KEY_Sinh_ja 0x1000da2 /* U+0DA2 SINHALA JAYANNA */ +#define XKB_KEY_Sinh_jha 0x1000da3 /* U+0DA3 SINHALA MAHA. JAYANNA */ +#define XKB_KEY_Sinh_nya 0x1000da4 /* U+0DA4 SINHALA TAALUJA NAASIKYAYA */ +#define XKB_KEY_Sinh_jnya 0x1000da5 /* U+0DA5 SINHALA TAALUJA SANYOOGA NAASIKYAYA */ +#define XKB_KEY_Sinh_nja 0x1000da6 /* U+0DA6 SINHALA SANYAKA JAYANNA */ +#define XKB_KEY_Sinh_tta 0x1000da7 /* U+0DA7 SINHALA TTAYANNA */ +#define XKB_KEY_Sinh_ttha 0x1000da8 /* U+0DA8 SINHALA MAHA. TTAYANNA */ +#define XKB_KEY_Sinh_dda 0x1000da9 /* U+0DA9 SINHALA DDAYANNA */ +#define XKB_KEY_Sinh_ddha 0x1000daa /* U+0DAA SINHALA MAHA. DDAYANNA */ +#define XKB_KEY_Sinh_nna 0x1000dab /* U+0DAB SINHALA MUURDHAJA NAYANNA */ +#define XKB_KEY_Sinh_ndda 0x1000dac /* U+0DAC SINHALA SANYAKA DDAYANNA */ +#define XKB_KEY_Sinh_tha 0x1000dad /* U+0DAD SINHALA TAYANNA */ +#define XKB_KEY_Sinh_thha 0x1000dae /* U+0DAE SINHALA MAHA. TAYANNA */ +#define XKB_KEY_Sinh_dha 0x1000daf /* U+0DAF SINHALA DAYANNA */ +#define XKB_KEY_Sinh_dhha 0x1000db0 /* U+0DB0 SINHALA MAHA. DAYANNA */ +#define XKB_KEY_Sinh_na 0x1000db1 /* U+0DB1 SINHALA DANTAJA NAYANNA */ +#define XKB_KEY_Sinh_ndha 0x1000db3 /* U+0DB3 SINHALA SANYAKA DAYANNA */ +#define XKB_KEY_Sinh_pa 0x1000db4 /* U+0DB4 SINHALA PAYANNA */ +#define XKB_KEY_Sinh_pha 0x1000db5 /* U+0DB5 SINHALA MAHA. PAYANNA */ +#define XKB_KEY_Sinh_ba 0x1000db6 /* U+0DB6 SINHALA BAYANNA */ +#define XKB_KEY_Sinh_bha 0x1000db7 /* U+0DB7 SINHALA MAHA. BAYANNA */ +#define XKB_KEY_Sinh_ma 0x1000db8 /* U+0DB8 SINHALA MAYANNA */ +#define XKB_KEY_Sinh_mba 0x1000db9 /* U+0DB9 SINHALA AMBA BAYANNA */ +#define XKB_KEY_Sinh_ya 0x1000dba /* U+0DBA SINHALA YAYANNA */ +#define XKB_KEY_Sinh_ra 0x1000dbb /* U+0DBB SINHALA RAYANNA */ +#define XKB_KEY_Sinh_la 0x1000dbd /* U+0DBD SINHALA DANTAJA LAYANNA */ +#define XKB_KEY_Sinh_va 0x1000dc0 /* U+0DC0 SINHALA VAYANNA */ +#define XKB_KEY_Sinh_sha 0x1000dc1 /* U+0DC1 SINHALA TAALUJA SAYANNA */ +#define XKB_KEY_Sinh_ssha 0x1000dc2 /* U+0DC2 SINHALA MUURDHAJA SAYANNA */ +#define XKB_KEY_Sinh_sa 0x1000dc3 /* U+0DC3 SINHALA DANTAJA SAYANNA */ +#define XKB_KEY_Sinh_ha 0x1000dc4 /* U+0DC4 SINHALA HAYANNA */ +#define XKB_KEY_Sinh_lla 0x1000dc5 /* U+0DC5 SINHALA MUURDHAJA LAYANNA */ +#define XKB_KEY_Sinh_fa 0x1000dc6 /* U+0DC6 SINHALA FAYANNA */ +#define XKB_KEY_Sinh_al 0x1000dca /* U+0DCA SINHALA AL-LAKUNA */ +#define XKB_KEY_Sinh_aa2 0x1000dcf /* U+0DCF SINHALA AELA-PILLA */ +#define XKB_KEY_Sinh_ae2 0x1000dd0 /* U+0DD0 SINHALA AEDA-PILLA */ +#define XKB_KEY_Sinh_aee2 0x1000dd1 /* U+0DD1 SINHALA DIGA AEDA-PILLA */ +#define XKB_KEY_Sinh_i2 0x1000dd2 /* U+0DD2 SINHALA IS-PILLA */ +#define XKB_KEY_Sinh_ii2 0x1000dd3 /* U+0DD3 SINHALA DIGA IS-PILLA */ +#define XKB_KEY_Sinh_u2 0x1000dd4 /* U+0DD4 SINHALA PAA-PILLA */ +#define XKB_KEY_Sinh_uu2 0x1000dd6 /* U+0DD6 SINHALA DIGA PAA-PILLA */ +#define XKB_KEY_Sinh_ru2 0x1000dd8 /* U+0DD8 SINHALA GAETTA-PILLA */ +#define XKB_KEY_Sinh_e2 0x1000dd9 /* U+0DD9 SINHALA KOMBUVA */ +#define XKB_KEY_Sinh_ee2 0x1000dda /* U+0DDA SINHALA DIGA KOMBUVA */ +#define XKB_KEY_Sinh_ai2 0x1000ddb /* U+0DDB SINHALA KOMBU DEKA */ +#define XKB_KEY_Sinh_o2 0x1000ddc /* U+0DDC SINHALA KOMBUVA HAA AELA-PILLA*/ +#define XKB_KEY_Sinh_oo2 0x1000ddd /* U+0DDD SINHALA KOMBUVA HAA DIGA AELA-PILLA*/ +#define XKB_KEY_Sinh_au2 0x1000dde /* U+0DDE SINHALA KOMBUVA HAA GAYANUKITTA */ +#define XKB_KEY_Sinh_lu2 0x1000ddf /* U+0DDF SINHALA GAYANUKITTA */ +#define XKB_KEY_Sinh_ruu2 0x1000df2 /* U+0DF2 SINHALA DIGA GAETTA-PILLA */ +#define XKB_KEY_Sinh_luu2 0x1000df3 /* U+0DF3 SINHALA DIGA GAYANUKITTA */ +#define XKB_KEY_Sinh_kunddaliya 0x1000df4 /* U+0DF4 SINHALA KUNDDALIYA */ +/* + * XFree86 vendor specific keysyms. + * + * The XFree86 keysym range is 0x10080001 - 0x1008FFFF. + * + * When adding new entries, the xc/lib/XKeysymDB file should also be + * updated to make the new entries visible to Xlib. + */ + +/* + * ModeLock + * + * This one is old, and not really used any more since XKB offers this + * functionality. + */ + +#define XKB_KEY_XF86ModeLock 0x1008FF01 /* Mode Switch Lock */ + +/* + * Note, 0x1008FF07 - 0x1008FF0F are free and should be used for misc new + * keysyms that don't fit into any of the groups below. + * + * 0x1008FF64, 0x1008FF6F, 0x1008FF71, 0x1008FF83 are no longer used, + * and should be used first for new keysyms. + * + * Check in keysymdef.h for generic symbols before adding new XFree86-specific + * symbols here. + * + * X.Org will not be adding to the XF86 set of keysyms, though they have + * been adopted and are considered a "standard" part of X keysym definitions. + * XFree86 never properly commented these keysyms, so we have done our + * best to explain the semantic meaning of these keys. + * + * XFree86 has removed their mail archives of the period, that might have + * shed more light on some of these definitions. Until/unless we resurrect + * these archives, these are from memory and usage. + */ + + +/* Backlight controls. */ +#define XKB_KEY_XF86MonBrightnessUp 0x1008FF02 /* Monitor/panel brightness */ +#define XKB_KEY_XF86MonBrightnessDown 0x1008FF03 /* Monitor/panel brightness */ +#define XKB_KEY_XF86KbdLightOnOff 0x1008FF04 /* Keyboards may be lit */ +#define XKB_KEY_XF86KbdBrightnessUp 0x1008FF05 /* Keyboards may be lit */ +#define XKB_KEY_XF86KbdBrightnessDown 0x1008FF06 /* Keyboards may be lit */ + +/* + * Keys found on some "Internet" keyboards. + */ +#define XKB_KEY_XF86Standby 0x1008FF10 /* System into standby mode */ +#define XKB_KEY_XF86AudioLowerVolume 0x1008FF11 /* Volume control down */ +#define XKB_KEY_XF86AudioMute 0x1008FF12 /* Mute sound from the system */ +#define XKB_KEY_XF86AudioRaiseVolume 0x1008FF13 /* Volume control up */ +#define XKB_KEY_XF86AudioPlay 0x1008FF14 /* Start playing of audio > */ +#define XKB_KEY_XF86AudioStop 0x1008FF15 /* Stop playing audio */ +#define XKB_KEY_XF86AudioPrev 0x1008FF16 /* Previous track */ +#define XKB_KEY_XF86AudioNext 0x1008FF17 /* Next track */ +#define XKB_KEY_XF86HomePage 0x1008FF18 /* Display user's home page */ +#define XKB_KEY_XF86Mail 0x1008FF19 /* Invoke user's mail program */ +#define XKB_KEY_XF86Start 0x1008FF1A /* Start application */ +#define XKB_KEY_XF86Search 0x1008FF1B /* Search */ +#define XKB_KEY_XF86AudioRecord 0x1008FF1C /* Record audio application */ + +/* These are sometimes found on PDA's (e.g. Palm, PocketPC or elsewhere) */ +#define XKB_KEY_XF86Calculator 0x1008FF1D /* Invoke calculator program */ +#define XKB_KEY_XF86Memo 0x1008FF1E /* Invoke Memo taking program */ +#define XKB_KEY_XF86ToDoList 0x1008FF1F /* Invoke To Do List program */ +#define XKB_KEY_XF86Calendar 0x1008FF20 /* Invoke Calendar program */ +#define XKB_KEY_XF86PowerDown 0x1008FF21 /* Deep sleep the system */ +#define XKB_KEY_XF86ContrastAdjust 0x1008FF22 /* Adjust screen contrast */ +#define XKB_KEY_XF86RockerUp 0x1008FF23 /* Rocker switches exist up */ +#define XKB_KEY_XF86RockerDown 0x1008FF24 /* and down */ +#define XKB_KEY_XF86RockerEnter 0x1008FF25 /* and let you press them */ + +/* Some more "Internet" keyboard symbols */ +#define XKB_KEY_XF86Back 0x1008FF26 /* Like back on a browser */ +#define XKB_KEY_XF86Forward 0x1008FF27 /* Like forward on a browser */ +#define XKB_KEY_XF86Stop 0x1008FF28 /* Stop current operation */ +#define XKB_KEY_XF86Refresh 0x1008FF29 /* Refresh the page */ +#define XKB_KEY_XF86PowerOff 0x1008FF2A /* Power off system entirely */ +#define XKB_KEY_XF86WakeUp 0x1008FF2B /* Wake up system from sleep */ +#define XKB_KEY_XF86Eject 0x1008FF2C /* Eject device (e.g. DVD) */ +#define XKB_KEY_XF86ScreenSaver 0x1008FF2D /* Invoke screensaver */ +#define XKB_KEY_XF86WWW 0x1008FF2E /* Invoke web browser */ +#define XKB_KEY_XF86Sleep 0x1008FF2F /* Put system to sleep */ +#define XKB_KEY_XF86Favorites 0x1008FF30 /* Show favorite locations */ +#define XKB_KEY_XF86AudioPause 0x1008FF31 /* Pause audio playing */ +#define XKB_KEY_XF86AudioMedia 0x1008FF32 /* Launch media collection app */ +#define XKB_KEY_XF86MyComputer 0x1008FF33 /* Display "My Computer" window */ +#define XKB_KEY_XF86VendorHome 0x1008FF34 /* Display vendor home web site */ +#define XKB_KEY_XF86LightBulb 0x1008FF35 /* Light bulb keys exist */ +#define XKB_KEY_XF86Shop 0x1008FF36 /* Display shopping web site */ +#define XKB_KEY_XF86History 0x1008FF37 /* Show history of web surfing */ +#define XKB_KEY_XF86OpenURL 0x1008FF38 /* Open selected URL */ +#define XKB_KEY_XF86AddFavorite 0x1008FF39 /* Add URL to favorites list */ +#define XKB_KEY_XF86HotLinks 0x1008FF3A /* Show "hot" links */ +#define XKB_KEY_XF86BrightnessAdjust 0x1008FF3B /* Invoke brightness adj. UI */ +#define XKB_KEY_XF86Finance 0x1008FF3C /* Display financial site */ +#define XKB_KEY_XF86Community 0x1008FF3D /* Display user's community */ +#define XKB_KEY_XF86AudioRewind 0x1008FF3E /* "rewind" audio track */ +#define XKB_KEY_XF86BackForward 0x1008FF3F /* ??? */ +#define XKB_KEY_XF86Launch0 0x1008FF40 /* Launch Application */ +#define XKB_KEY_XF86Launch1 0x1008FF41 /* Launch Application */ +#define XKB_KEY_XF86Launch2 0x1008FF42 /* Launch Application */ +#define XKB_KEY_XF86Launch3 0x1008FF43 /* Launch Application */ +#define XKB_KEY_XF86Launch4 0x1008FF44 /* Launch Application */ +#define XKB_KEY_XF86Launch5 0x1008FF45 /* Launch Application */ +#define XKB_KEY_XF86Launch6 0x1008FF46 /* Launch Application */ +#define XKB_KEY_XF86Launch7 0x1008FF47 /* Launch Application */ +#define XKB_KEY_XF86Launch8 0x1008FF48 /* Launch Application */ +#define XKB_KEY_XF86Launch9 0x1008FF49 /* Launch Application */ +#define XKB_KEY_XF86LaunchA 0x1008FF4A /* Launch Application */ +#define XKB_KEY_XF86LaunchB 0x1008FF4B /* Launch Application */ +#define XKB_KEY_XF86LaunchC 0x1008FF4C /* Launch Application */ +#define XKB_KEY_XF86LaunchD 0x1008FF4D /* Launch Application */ +#define XKB_KEY_XF86LaunchE 0x1008FF4E /* Launch Application */ +#define XKB_KEY_XF86LaunchF 0x1008FF4F /* Launch Application */ + +#define XKB_KEY_XF86ApplicationLeft 0x1008FF50 /* switch to application, left */ +#define XKB_KEY_XF86ApplicationRight 0x1008FF51 /* switch to application, right*/ +#define XKB_KEY_XF86Book 0x1008FF52 /* Launch bookreader */ +#define XKB_KEY_XF86CD 0x1008FF53 /* Launch CD/DVD player */ +#define XKB_KEY_XF86Calculater 0x1008FF54 /* Launch Calculater */ +#define XKB_KEY_XF86Clear 0x1008FF55 /* Clear window, screen */ +#define XKB_KEY_XF86Close 0x1008FF56 /* Close window */ +#define XKB_KEY_XF86Copy 0x1008FF57 /* Copy selection */ +#define XKB_KEY_XF86Cut 0x1008FF58 /* Cut selection */ +#define XKB_KEY_XF86Display 0x1008FF59 /* Output switch key */ +#define XKB_KEY_XF86DOS 0x1008FF5A /* Launch DOS (emulation) */ +#define XKB_KEY_XF86Documents 0x1008FF5B /* Open documents window */ +#define XKB_KEY_XF86Excel 0x1008FF5C /* Launch spread sheet */ +#define XKB_KEY_XF86Explorer 0x1008FF5D /* Launch file explorer */ +#define XKB_KEY_XF86Game 0x1008FF5E /* Launch game */ +#define XKB_KEY_XF86Go 0x1008FF5F /* Go to URL */ +#define XKB_KEY_XF86iTouch 0x1008FF60 /* Logitch iTouch- don't use */ +#define XKB_KEY_XF86LogOff 0x1008FF61 /* Log off system */ +#define XKB_KEY_XF86Market 0x1008FF62 /* ?? */ +#define XKB_KEY_XF86Meeting 0x1008FF63 /* enter meeting in calendar */ +#define XKB_KEY_XF86MenuKB 0x1008FF65 /* distingush keyboard from PB */ +#define XKB_KEY_XF86MenuPB 0x1008FF66 /* distinuish PB from keyboard */ +#define XKB_KEY_XF86MySites 0x1008FF67 /* Favourites */ +#define XKB_KEY_XF86New 0x1008FF68 /* New (folder, document... */ +#define XKB_KEY_XF86News 0x1008FF69 /* News */ +#define XKB_KEY_XF86OfficeHome 0x1008FF6A /* Office home (old Staroffice)*/ +#define XKB_KEY_XF86Open 0x1008FF6B /* Open */ +#define XKB_KEY_XF86Option 0x1008FF6C /* ?? */ +#define XKB_KEY_XF86Paste 0x1008FF6D /* Paste */ +#define XKB_KEY_XF86Phone 0x1008FF6E /* Launch phone; dial number */ +#define XKB_KEY_XF86Q 0x1008FF70 /* Compaq's Q - don't use */ +#define XKB_KEY_XF86Reply 0x1008FF72 /* Reply e.g., mail */ +#define XKB_KEY_XF86Reload 0x1008FF73 /* Reload web page, file, etc. */ +#define XKB_KEY_XF86RotateWindows 0x1008FF74 /* Rotate windows e.g. xrandr */ +#define XKB_KEY_XF86RotationPB 0x1008FF75 /* don't use */ +#define XKB_KEY_XF86RotationKB 0x1008FF76 /* don't use */ +#define XKB_KEY_XF86Save 0x1008FF77 /* Save (file, document, state */ +#define XKB_KEY_XF86ScrollUp 0x1008FF78 /* Scroll window/contents up */ +#define XKB_KEY_XF86ScrollDown 0x1008FF79 /* Scrool window/contentd down */ +#define XKB_KEY_XF86ScrollClick 0x1008FF7A /* Use XKB mousekeys instead */ +#define XKB_KEY_XF86Send 0x1008FF7B /* Send mail, file, object */ +#define XKB_KEY_XF86Spell 0x1008FF7C /* Spell checker */ +#define XKB_KEY_XF86SplitScreen 0x1008FF7D /* Split window or screen */ +#define XKB_KEY_XF86Support 0x1008FF7E /* Get support (??) */ +#define XKB_KEY_XF86TaskPane 0x1008FF7F /* Show tasks */ +#define XKB_KEY_XF86Terminal 0x1008FF80 /* Launch terminal emulator */ +#define XKB_KEY_XF86Tools 0x1008FF81 /* toolbox of desktop/app. */ +#define XKB_KEY_XF86Travel 0x1008FF82 /* ?? */ +#define XKB_KEY_XF86UserPB 0x1008FF84 /* ?? */ +#define XKB_KEY_XF86User1KB 0x1008FF85 /* ?? */ +#define XKB_KEY_XF86User2KB 0x1008FF86 /* ?? */ +#define XKB_KEY_XF86Video 0x1008FF87 /* Launch video player */ +#define XKB_KEY_XF86WheelButton 0x1008FF88 /* button from a mouse wheel */ +#define XKB_KEY_XF86Word 0x1008FF89 /* Launch word processor */ +#define XKB_KEY_XF86Xfer 0x1008FF8A +#define XKB_KEY_XF86ZoomIn 0x1008FF8B /* zoom in view, map, etc. */ +#define XKB_KEY_XF86ZoomOut 0x1008FF8C /* zoom out view, map, etc. */ + +#define XKB_KEY_XF86Away 0x1008FF8D /* mark yourself as away */ +#define XKB_KEY_XF86Messenger 0x1008FF8E /* as in instant messaging */ +#define XKB_KEY_XF86WebCam 0x1008FF8F /* Launch web camera app. */ +#define XKB_KEY_XF86MailForward 0x1008FF90 /* Forward in mail */ +#define XKB_KEY_XF86Pictures 0x1008FF91 /* Show pictures */ +#define XKB_KEY_XF86Music 0x1008FF92 /* Launch music application */ + +#define XKB_KEY_XF86Battery 0x1008FF93 /* Display battery information */ +#define XKB_KEY_XF86Bluetooth 0x1008FF94 /* Enable/disable Bluetooth */ +#define XKB_KEY_XF86WLAN 0x1008FF95 /* Enable/disable WLAN */ +#define XKB_KEY_XF86UWB 0x1008FF96 /* Enable/disable UWB */ + +#define XKB_KEY_XF86AudioForward 0x1008FF97 /* fast-forward audio track */ +#define XKB_KEY_XF86AudioRepeat 0x1008FF98 /* toggle repeat mode */ +#define XKB_KEY_XF86AudioRandomPlay 0x1008FF99 /* toggle shuffle mode */ +#define XKB_KEY_XF86Subtitle 0x1008FF9A /* cycle through subtitle */ +#define XKB_KEY_XF86AudioCycleTrack 0x1008FF9B /* cycle through audio tracks */ +#define XKB_KEY_XF86CycleAngle 0x1008FF9C /* cycle through angles */ +#define XKB_KEY_XF86FrameBack 0x1008FF9D /* video: go one frame back */ +#define XKB_KEY_XF86FrameForward 0x1008FF9E /* video: go one frame forward */ +#define XKB_KEY_XF86Time 0x1008FF9F /* display, or shows an entry for time seeking */ +#define XKB_KEY_XF86Select 0x1008FFA0 /* Select button on joypads and remotes */ +#define XKB_KEY_XF86View 0x1008FFA1 /* Show a view options/properties */ +#define XKB_KEY_XF86TopMenu 0x1008FFA2 /* Go to a top-level menu in a video */ + +#define XKB_KEY_XF86Red 0x1008FFA3 /* Red button */ +#define XKB_KEY_XF86Green 0x1008FFA4 /* Green button */ +#define XKB_KEY_XF86Yellow 0x1008FFA5 /* Yellow button */ +#define XKB_KEY_XF86Blue 0x1008FFA6 /* Blue button */ + +#define XKB_KEY_XF86Suspend 0x1008FFA7 /* Sleep to RAM */ +#define XKB_KEY_XF86Hibernate 0x1008FFA8 /* Sleep to disk */ +#define XKB_KEY_XF86TouchpadToggle 0x1008FFA9 /* Toggle between touchpad/trackstick */ +#define XKB_KEY_XF86TouchpadOn 0x1008FFB0 /* The touchpad got switched on */ +#define XKB_KEY_XF86TouchpadOff 0x1008FFB1 /* The touchpad got switched off */ + +#define XKB_KEY_XF86AudioMicMute 0x1008FFB2 /* Mute the Mic from the system */ + +/* Keys for special action keys (hot keys) */ +/* Virtual terminals on some operating systems */ +#define XKB_KEY_XF86Switch_VT_1 0x1008FE01 +#define XKB_KEY_XF86Switch_VT_2 0x1008FE02 +#define XKB_KEY_XF86Switch_VT_3 0x1008FE03 +#define XKB_KEY_XF86Switch_VT_4 0x1008FE04 +#define XKB_KEY_XF86Switch_VT_5 0x1008FE05 +#define XKB_KEY_XF86Switch_VT_6 0x1008FE06 +#define XKB_KEY_XF86Switch_VT_7 0x1008FE07 +#define XKB_KEY_XF86Switch_VT_8 0x1008FE08 +#define XKB_KEY_XF86Switch_VT_9 0x1008FE09 +#define XKB_KEY_XF86Switch_VT_10 0x1008FE0A +#define XKB_KEY_XF86Switch_VT_11 0x1008FE0B +#define XKB_KEY_XF86Switch_VT_12 0x1008FE0C + +#define XKB_KEY_XF86Ungrab 0x1008FE20 /* force ungrab */ +#define XKB_KEY_XF86ClearGrab 0x1008FE21 /* kill application with grab */ +#define XKB_KEY_XF86Next_VMode 0x1008FE22 /* next video mode available */ +#define XKB_KEY_XF86Prev_VMode 0x1008FE23 /* prev. video mode available */ +#define XKB_KEY_XF86LogWindowTree 0x1008FE24 /* print window tree to log */ +#define XKB_KEY_XF86LogGrabInfo 0x1008FE25 /* print all active grabs to log */ +/* + * Copyright (c) 1991, Oracle and/or its affiliates. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ +/************************************************************ + +Copyright 1991, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + +***********************************************************/ + +/* + * Floating Accent + */ + +#define XKB_KEY_SunFA_Grave 0x1005FF00 +#define XKB_KEY_SunFA_Circum 0x1005FF01 +#define XKB_KEY_SunFA_Tilde 0x1005FF02 +#define XKB_KEY_SunFA_Acute 0x1005FF03 +#define XKB_KEY_SunFA_Diaeresis 0x1005FF04 +#define XKB_KEY_SunFA_Cedilla 0x1005FF05 + +/* + * Miscellaneous Functions + */ + +#define XKB_KEY_SunF36 0x1005FF10 /* Labeled F11 */ +#define XKB_KEY_SunF37 0x1005FF11 /* Labeled F12 */ + +#define XKB_KEY_SunSys_Req 0x1005FF60 +#define XKB_KEY_SunPrint_Screen 0x0000FF61 /* Same as XK_Print */ + +/* + * International & Multi-Key Character Composition + */ + +#define XKB_KEY_SunCompose 0x0000FF20 /* Same as XK_Multi_key */ +#define XKB_KEY_SunAltGraph 0x0000FF7E /* Same as XK_Mode_switch */ + +/* + * Cursor Control + */ + +#define XKB_KEY_SunPageUp 0x0000FF55 /* Same as XK_Prior */ +#define XKB_KEY_SunPageDown 0x0000FF56 /* Same as XK_Next */ + +/* + * Open Look Functions + */ + +#define XKB_KEY_SunUndo 0x0000FF65 /* Same as XK_Undo */ +#define XKB_KEY_SunAgain 0x0000FF66 /* Same as XK_Redo */ +#define XKB_KEY_SunFind 0x0000FF68 /* Same as XK_Find */ +#define XKB_KEY_SunStop 0x0000FF69 /* Same as XK_Cancel */ +#define XKB_KEY_SunProps 0x1005FF70 +#define XKB_KEY_SunFront 0x1005FF71 +#define XKB_KEY_SunCopy 0x1005FF72 +#define XKB_KEY_SunOpen 0x1005FF73 +#define XKB_KEY_SunPaste 0x1005FF74 +#define XKB_KEY_SunCut 0x1005FF75 + +#define XKB_KEY_SunPowerSwitch 0x1005FF76 +#define XKB_KEY_SunAudioLowerVolume 0x1005FF77 +#define XKB_KEY_SunAudioMute 0x1005FF78 +#define XKB_KEY_SunAudioRaiseVolume 0x1005FF79 +#define XKB_KEY_SunVideoDegauss 0x1005FF7A +#define XKB_KEY_SunVideoLowerBrightness 0x1005FF7B +#define XKB_KEY_SunVideoRaiseBrightness 0x1005FF7C +#define XKB_KEY_SunPowerSwitchShift 0x1005FF7D +/*********************************************************** + +Copyright 1988, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from The Open Group. + + +Copyright 1988 by Digital Equipment Corporation, Maynard, Massachusetts. + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +******************************************************************/ + +/* + * DEC private keysyms + * (29th bit set) + */ + +/* two-key compose sequence initiators, chosen to map to Latin1 characters */ + +#define XKB_KEY_Dring_accent 0x1000FEB0 +#define XKB_KEY_Dcircumflex_accent 0x1000FE5E +#define XKB_KEY_Dcedilla_accent 0x1000FE2C +#define XKB_KEY_Dacute_accent 0x1000FE27 +#define XKB_KEY_Dgrave_accent 0x1000FE60 +#define XKB_KEY_Dtilde 0x1000FE7E +#define XKB_KEY_Ddiaeresis 0x1000FE22 + +/* special keysym for LK2** "Remove" key on editing keypad */ + +#define XKB_KEY_DRemove 0x1000FF00 /* Remove */ +/* + +Copyright 1987, 1998 The Open Group + +Permission to use, copy, modify, distribute, and sell this software and its +documentation for any purpose is hereby granted without fee, provided that +the above copyright notice appear in all copies and that both that +copyright notice and this permission notice appear in supporting +documentation. + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of The Open Group shall +not be used in advertising or otherwise to promote the sale, use or +other dealings in this Software without prior written authorization +from The Open Group. + +Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts, + + All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the names of Hewlett Packard +or Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. + +HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD +TO THIS SOFWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. Hewlett-Packard shall not be liable for errors +contained herein or direct, indirect, special, incidental or +consequential damages in connection with the furnishing, +performance, or use of this material. + +*/ + + + +#define XKB_KEY_hpClearLine 0x1000FF6F +#define XKB_KEY_hpInsertLine 0x1000FF70 +#define XKB_KEY_hpDeleteLine 0x1000FF71 +#define XKB_KEY_hpInsertChar 0x1000FF72 +#define XKB_KEY_hpDeleteChar 0x1000FF73 +#define XKB_KEY_hpBackTab 0x1000FF74 +#define XKB_KEY_hpKP_BackTab 0x1000FF75 +#define XKB_KEY_hpModelock1 0x1000FF48 +#define XKB_KEY_hpModelock2 0x1000FF49 +#define XKB_KEY_hpReset 0x1000FF6C +#define XKB_KEY_hpSystem 0x1000FF6D +#define XKB_KEY_hpUser 0x1000FF6E +#define XKB_KEY_hpmute_acute 0x100000A8 +#define XKB_KEY_hpmute_grave 0x100000A9 +#define XKB_KEY_hpmute_asciicircum 0x100000AA +#define XKB_KEY_hpmute_diaeresis 0x100000AB +#define XKB_KEY_hpmute_asciitilde 0x100000AC +#define XKB_KEY_hplira 0x100000AF +#define XKB_KEY_hpguilder 0x100000BE +#define XKB_KEY_hpYdiaeresis 0x100000EE +#define XKB_KEY_hpIO 0x100000EE +#define XKB_KEY_hplongminus 0x100000F6 +#define XKB_KEY_hpblock 0x100000FC + + + +#define XKB_KEY_osfCopy 0x1004FF02 +#define XKB_KEY_osfCut 0x1004FF03 +#define XKB_KEY_osfPaste 0x1004FF04 +#define XKB_KEY_osfBackTab 0x1004FF07 +#define XKB_KEY_osfBackSpace 0x1004FF08 +#define XKB_KEY_osfClear 0x1004FF0B +#define XKB_KEY_osfEscape 0x1004FF1B +#define XKB_KEY_osfAddMode 0x1004FF31 +#define XKB_KEY_osfPrimaryPaste 0x1004FF32 +#define XKB_KEY_osfQuickPaste 0x1004FF33 +#define XKB_KEY_osfPageLeft 0x1004FF40 +#define XKB_KEY_osfPageUp 0x1004FF41 +#define XKB_KEY_osfPageDown 0x1004FF42 +#define XKB_KEY_osfPageRight 0x1004FF43 +#define XKB_KEY_osfActivate 0x1004FF44 +#define XKB_KEY_osfMenuBar 0x1004FF45 +#define XKB_KEY_osfLeft 0x1004FF51 +#define XKB_KEY_osfUp 0x1004FF52 +#define XKB_KEY_osfRight 0x1004FF53 +#define XKB_KEY_osfDown 0x1004FF54 +#define XKB_KEY_osfEndLine 0x1004FF57 +#define XKB_KEY_osfBeginLine 0x1004FF58 +#define XKB_KEY_osfEndData 0x1004FF59 +#define XKB_KEY_osfBeginData 0x1004FF5A +#define XKB_KEY_osfPrevMenu 0x1004FF5B +#define XKB_KEY_osfNextMenu 0x1004FF5C +#define XKB_KEY_osfPrevField 0x1004FF5D +#define XKB_KEY_osfNextField 0x1004FF5E +#define XKB_KEY_osfSelect 0x1004FF60 +#define XKB_KEY_osfInsert 0x1004FF63 +#define XKB_KEY_osfUndo 0x1004FF65 +#define XKB_KEY_osfMenu 0x1004FF67 +#define XKB_KEY_osfCancel 0x1004FF69 +#define XKB_KEY_osfHelp 0x1004FF6A +#define XKB_KEY_osfSelectAll 0x1004FF71 +#define XKB_KEY_osfDeselectAll 0x1004FF72 +#define XKB_KEY_osfReselect 0x1004FF73 +#define XKB_KEY_osfExtend 0x1004FF74 +#define XKB_KEY_osfRestore 0x1004FF78 +#define XKB_KEY_osfDelete 0x1004FFFF + + + +/************************************************************** + * The use of the following macros is deprecated. + * They are listed below only for backwards compatibility. + */ +#define XKB_KEY_Reset 0x1000FF6C +#define XKB_KEY_System 0x1000FF6D +#define XKB_KEY_User 0x1000FF6E +#define XKB_KEY_ClearLine 0x1000FF6F +#define XKB_KEY_InsertLine 0x1000FF70 +#define XKB_KEY_DeleteLine 0x1000FF71 +#define XKB_KEY_InsertChar 0x1000FF72 +#define XKB_KEY_DeleteChar 0x1000FF73 +#define XKB_KEY_BackTab 0x1000FF74 +#define XKB_KEY_KP_BackTab 0x1000FF75 +#define XKB_KEY_Ext16bit_L 0x1000FF76 +#define XKB_KEY_Ext16bit_R 0x1000FF77 +#define XKB_KEY_mute_acute 0x100000a8 +#define XKB_KEY_mute_grave 0x100000a9 +#define XKB_KEY_mute_asciicircum 0x100000aa +#define XKB_KEY_mute_diaeresis 0x100000ab +#define XKB_KEY_mute_asciitilde 0x100000ac +#define XKB_KEY_lira 0x100000af +#define XKB_KEY_guilder 0x100000be +#define XKB_KEY_IO 0x100000ee +#define XKB_KEY_longminus 0x100000f6 +#define XKB_KEY_block 0x100000fc + + + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-names.h b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-names.h new file mode 100644 index 0000000..ecb551f --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-names.h @@ -0,0 +1,45 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#ifndef _XKBCOMMON_NAMES_H +#define _XKBCOMMON_NAMES_H + +/** + * @file + * @brief Predefined names for common modifiers and LEDs. + */ + +#define XKB_MOD_NAME_SHIFT "Shift" +#define XKB_MOD_NAME_CAPS "Lock" +#define XKB_MOD_NAME_CTRL "Control" +#define XKB_MOD_NAME_ALT "Mod1" +#define XKB_MOD_NAME_NUM "Mod2" +#define XKB_MOD_NAME_LOGO "Mod4" + +#define XKB_LED_NAME_CAPS "Caps Lock" +#define XKB_LED_NAME_NUM "Num Lock" +#define XKB_LED_NAME_SCROLL "Scroll Lock" + +#endif diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-x11.h b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-x11.h new file mode 100644 index 0000000..0158315 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon-x11.h @@ -0,0 +1,244 @@ +/* + * Copyright © 2013 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _XKBCOMMON_X11_H +#define _XKBCOMMON_X11_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file + * libxkbcommon-x11 API - Additional X11 support for xkbcommon. + */ + +/** + * @defgroup x11 X11 support + * Additional X11 support for xkbcommon. + * @since 0.4.0 + * + * @{ + */ + +/** + * @page x11-overview Overview + * @parblock + * + * The xkbcommon-x11 module provides a means for creating an xkb_keymap + * corresponding to the currently active keymap on the X server. To do + * so, it queries the XKB X11 extension using the xcb-xkb library. It + * can be used as a replacement for Xlib's keyboard handling. + * + * Following is an example workflow using xkbcommon-x11. A complete + * example may be found in the test/interactive-x11.c file in the + * xkbcommon source repository. On startup: + * + * 1. Connect to the X server using xcb_connect(). + * 2. Setup the XKB X11 extension. You can do this either by using the + * xcb_xkb_use_extension() request directly, or by using the + * xkb_x11_setup_xkb_extension() helper function. + * + * The XKB extension supports using separate keymaps and states for + * different keyboard devices. The devices are identified by an integer + * device ID and are managed by another X11 extension, XInput (or its + * successor, XInput2). The original X11 protocol only had one keyboard + * device, called the "core keyboard", which is still supported as a + * "virtual device". + * + * 3. We will use the core keyboard as an example. To get its device ID, + * use either the xcb_xkb_get_device_info() request directly, or the + * xkb_x11_get_core_keyboard_device_id() helper function. + * 4. Create an initial xkb_keymap for this device, using the + * xkb_x11_keymap_new_from_device() function. + * 5. Create an initial xkb_state for this device, using the + * xkb_x11_state_new_from_device() function. + * + * @note At this point, you may consider setting various XKB controls and + * XKB per-client flags. For example, enabling detectable autorepeat: \n + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Detectable_Autorepeat + * + * Next, you need to react to state changes (e.g. a modifier was pressed, + * the layout was changed) and to keymap changes (e.g. a tool like xkbcomp, + * setxkbmap or xmodmap was used): + * + * 6. Select to listen to at least the following XKB events: + * NewKeyboardNotify, MapNotify, StateNotify; using the + * xcb_xkb_select_events_aux() request. + * 7. When NewKeyboardNotify or MapNotify are received, recreate the + * xkb_keymap and xkb_state as described above. + * 8. When StateNotify is received, update the xkb_state accordingly + * using the xkb_state_update_mask() function. + * + * @note It is also possible to use the KeyPress/KeyRelease @p state + * field to find the effective modifier and layout state, instead of + * using XkbStateNotify: \n + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Computing_A_State_Field_from_an_XKB_State + * \n However, XkbStateNotify is more accurate. + * + * @note There is no need to call xkb_state_update_key(); the state is + * already synchronized. + * + * Finally, when a key event is received, you can use ordinary xkbcommon + * functions, like xkb_state_key_get_one_sym() and xkb_state_key_get_utf8(), + * as you normally would. + * + * @endparblock + */ + +/** + * The minimal compatible major version of the XKB X11 extension which + * this library can use. + */ +#define XKB_X11_MIN_MAJOR_XKB_VERSION 1 +/** + * The minimal compatible minor version of the XKB X11 extension which + * this library can use (for the minimal major version). + */ +#define XKB_X11_MIN_MINOR_XKB_VERSION 0 + +/** Flags for the xkb_x11_setup_xkb_extension() function. */ +enum xkb_x11_setup_xkb_extension_flags { + /** Do not apply any flags. */ + XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS = 0 +}; + +/** + * Setup the XKB X11 extension for this X client. + * + * The xkbcommon-x11 library uses various XKB requests. Before doing so, + * an X client must notify the server that it will be using the extension. + * This function (or an XCB equivalent) must be called before any other + * function in this library is used. + * + * Some X servers may not support or disable the XKB extension. If you + * want to support such servers, you need to use a different fallback. + * + * You may call this function several times; it is idempotent. + * + * @param connection + * An XCB connection to the X server. + * @param major_xkb_version + * See @p minor_xkb_version. + * @param minor_xkb_version + * The XKB extension version to request. To operate correctly, you + * must have (major_xkb_version, minor_xkb_version) >= + * (XKB_X11_MIN_MAJOR_XKB_VERSION, XKB_X11_MIN_MINOR_XKB_VERSION), + * though this is not enforced. + * @param flags + * Optional flags, or 0. + * @param[out] major_xkb_version_out + * See @p minor_xkb_version_out. + * @param[out] minor_xkb_version_out + * Backfilled with the compatible XKB extension version numbers picked + * by the server. Can be NULL. + * @param[out] base_event_out + * Backfilled with the XKB base (also known as first) event code, needed + * to distinguish XKB events. Can be NULL. + * @param[out] base_error_out + * Backfilled with the XKB base (also known as first) error code, needed + * to distinguish XKB errors. Can be NULL. + * + * @returns 1 on success, or 0 on failure. + */ +int +xkb_x11_setup_xkb_extension(xcb_connection_t *connection, + uint16_t major_xkb_version, + uint16_t minor_xkb_version, + enum xkb_x11_setup_xkb_extension_flags flags, + uint16_t *major_xkb_version_out, + uint16_t *minor_xkb_version_out, + uint8_t *base_event_out, + uint8_t *base_error_out); + +/** + * Get the keyboard device ID of the core X11 keyboard. + * + * @param connection An XCB connection to the X server. + * + * @returns A device ID which may be used with other xkb_x11_* functions, + * or -1 on failure. + */ +int32_t +xkb_x11_get_core_keyboard_device_id(xcb_connection_t *connection); + +/** + * Create a keymap from an X11 keyboard device. + * + * This function queries the X server with various requests, fetches the + * details of the active keymap on a keyboard device, and creates an + * xkb_keymap from these details. + * + * @param context + * The context in which to create the keymap. + * @param connection + * An XCB connection to the X server. + * @param device_id + * An XInput 1 device ID (in the range 0-255) with input class KEY. + * Passing values outside of this range is an error. + * @param flags + * Optional flags for the keymap, or 0. + * + * @returns A keymap retrieved from the X server, or NULL on failure. + * + * @memberof xkb_keymap + */ +struct xkb_keymap * +xkb_x11_keymap_new_from_device(struct xkb_context *context, + xcb_connection_t *connection, + int32_t device_id, + enum xkb_keymap_compile_flags flags); + +/** + * Create a new keyboard state object from an X11 keyboard device. + * + * This function is the same as xkb_state_new(), only pre-initialized + * with the state of the device at the time this function is called. + * + * @param keymap + * The keymap for which to create the state. + * @param connection + * An XCB connection to the X server. + * @param device_id + * An XInput 1 device ID (in the range 0-255) with input class KEY. + * Passing values outside of this range is an error. + * + * @returns A new keyboard state object, or NULL on failure. + * + * @memberof xkb_state + */ +struct xkb_state * +xkb_x11_state_new_from_device(struct xkb_keymap *keymap, + xcb_connection_t *connection, + int32_t device_id); + +/** @} */ + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _XKBCOMMON_X11_H */ diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon.h b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon.h new file mode 100644 index 0000000..f0c9202 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/xkbcommon/xkbcommon.h @@ -0,0 +1,1723 @@ +/* + * Copyright 1985, 1987, 1990, 1998 The Open Group + * Copyright 2008 Dan Nicholson + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * Except as contained in this notice, the names of the authors or their + * institutions shall not be used in advertising or otherwise to promote the + * sale, use or other dealings in this Software without prior written + * authorization from the authors. + */ + +/************************************************************ + * Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of Silicon Graphics not be + * used in advertising or publicity pertaining to distribution + * of the software without specific prior written permission. + * Silicon Graphics makes no representation about the suitability + * of this software for any purpose. It is provided "as is" + * without any express or implied warranty. + * + * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON + * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, + * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH + * THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + ********************************************************/ + +/* + * Copyright © 2009-2012 Daniel Stone + * Copyright © 2012 Intel Corporation + * Copyright © 2012 Ran Benita + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#ifndef _XKBCOMMON_H_ +#define _XKBCOMMON_H_ + +#include +#include +#include + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @file + * Main libxkbcommon API. + */ + +/** + * @struct xkb_context + * Opaque top level library context object. + * + * The context contains various general library data and state, like + * logging level and include paths. + * + * Objects are created in a specific context, and multiple contexts may + * coexist simultaneously. Objects from different contexts are completely + * separated and do not share any memory or state. + */ +struct xkb_context; + +/** + * @struct xkb_keymap + * Opaque compiled keymap object. + * + * The keymap object holds all of the static keyboard information obtained + * from compiling XKB files. + * + * A keymap is immutable after it is created (besides reference counts, etc.); + * if you need to change it, you must create a new one. + */ +struct xkb_keymap; + +/** + * @struct xkb_state + * Opaque keyboard state object. + * + * State objects contain the active state of a keyboard (or keyboards), such + * as the currently effective layout and the active modifiers. It acts as a + * simple state machine, wherein key presses and releases are the input, and + * key symbols (keysyms) are the output. + */ +struct xkb_state; + +/** + * A number used to represent a physical key on a keyboard. + * + * A standard PC-compatible keyboard might have 102 keys. An appropriate + * keymap would assign each of them a keycode, by which the user should + * refer to the key throughout the library. + * + * Historically, the X11 protocol, and consequentially the XKB protocol, + * assign only 8 bits for keycodes. This limits the number of different + * keys that can be used simultaneously in a single keymap to 256 + * (disregarding other limitations). This library does not share this limit; + * keycodes beyond 255 ('extended keycodes') are not treated specially. + * Keymaps and applications which are compatible with X11 should not use + * these keycodes. + * + * The values of specific keycodes are determined by the keymap and the + * underlying input system. For example, with an X11-compatible keymap + * and Linux evdev scan codes (see linux/input.h), a fixed offset is used: + * + * @code + * xkb_keycode_t keycode_A = KEY_A + 8; + * @endcode + * + * @sa xkb_keycode_is_legal_ext() xkb_keycode_is_legal_x11() + */ +typedef uint32_t xkb_keycode_t; + +/** + * A number used to represent the symbols generated from a key on a keyboard. + * + * A key, represented by a keycode, may generate different symbols according + * to keyboard state. For example, on a QWERTY keyboard, pressing the key + * labled \ generates the symbol 'a'. If the Shift key is held, it + * generates the symbol 'A'. If a different layout is used, say Greek, + * it generates the symbol 'α'. And so on. + * + * Each such symbol is represented by a keysym. Note that keysyms are + * somewhat more general, in that they can also represent some "function", + * such as "Left" or "Right" for the arrow keys. For more information, + * see: + * http://www.x.org/releases/X11R7.7/doc/xproto/x11protocol.html#keysym_encoding + * + * Specifically named keysyms can be found in the + * xkbcommon/xkbcommon-keysyms.h header file. Their name does not include + * the XKB_KEY_ prefix. + * + * Besides those, any Unicode/ISO 10646 character in the range U0100 to + * U10FFFF can be represented by a keysym value in the range 0x01000100 to + * 0x0110FFFF. The name of Unicode keysyms is "U", e.g. "UA1B2". + * + * The name of other unnamed keysyms is the hexadecimal representation of + * their value, e.g. "0xabcd1234". + * + * Keysym names are case-sensitive. + */ +typedef uint32_t xkb_keysym_t; + +/** + * Index of a keyboard layout. + * + * The layout index is a state component which detemines which keyboard + * layout is active. These may be different alphabets, different key + * arrangements, etc. + * + * Layout indices are consecutive. The first layout has index 0. + * + * Each layout is not required to have a name, and the names are not + * guaranteed to be unique (though they are usually provided and unique). + * Therefore, it is not safe to use the name as a unique identifier for a + * layout. Layout names are case-sensitive. + * + * Layouts are also called "groups" by XKB. + * + * @sa xkb_keymap_num_layouts() xkb_keymap_num_layouts_for_key() + */ +typedef uint32_t xkb_layout_index_t; +/** A mask of layout indices. */ +typedef uint32_t xkb_layout_mask_t; + +/** + * Index of a shift level. + * + * Any key, in any layout, can have several shift levels. Each + * shift level can assign different keysyms to the key. The shift level + * to use is chosen according to the current keyboard state; for example, + * if no keys are pressed, the first level may be used; if the Left Shift + * key is pressed, the second; if Num Lock is pressed, the third; and + * many such combinations are possible (see xkb_mod_index_t). + * + * Level indices are consecutive. The first level has index 0. + */ +typedef uint32_t xkb_level_index_t; + +/** + * Index of a modifier. + * + * A @e modifier is a state component which changes the way keys are + * interpreted. A keymap defines a set of modifiers, such as Alt, Shift, + * Num Lock or Meta, and specifies which keys may @e activate which + * modifiers (in a many-to-many relationship, i.e. a key can activate + * several modifiers, and a modifier may be activated by several keys. + * Different keymaps do this differently). + * + * When retrieving the keysyms for a key, the active modifier set is + * consulted; this detemines the correct shift level to use within the + * currently active layout (see xkb_level_index_t). + * + * Modifier indices are consecutive. The first modifier has index 0. + * + * Each modifier must have a name, and the names are unique. Therefore, it + * is safe to use the name as a unique identifier for a modifier. The names + * of some common modifiers are provided in the xkbcommon/xkbcommon-names.h + * header file. Modifier names are case-sensitive. + * + * @sa xkb_keymap_num_mods() + */ +typedef uint32_t xkb_mod_index_t; +/** A mask of modifier indices. */ +typedef uint32_t xkb_mod_mask_t; + +/** + * Index of a keyboard LED. + * + * LEDs are logical objects which may be @e active or @e inactive. They + * typically correspond to the lights on the keyboard. Their state is + * determined by the current keyboard state. + * + * LED indices are non-consecutive. The first LED has index 0. + * + * Each LED must have a name, and the names are unique. Therefore, + * it is safe to use the name as a unique identifier for a LED. The names + * of some common LEDs are provided in the xkbcommon/xkbcommon-names.h + * header file. LED names are case-sensitive. + * + * @warning A given keymap may specify an exact index for a given LED. + * Therefore, LED indexing is not necessarily sequential, as opposed to + * modifiers and layouts. This means that when iterating over the LEDs + * in a keymap using e.g. xkb_keymap_num_leds(), some indices might be + * invalid. Given such an index, functions like xkb_keymap_led_get_name() + * will return NULL, and xkb_state_led_index_is_active() will return -1. + * + * LEDs are also called "indicators" by XKB. + * + * @sa xkb_keymap_num_leds() + */ +typedef uint32_t xkb_led_index_t; +/** A mask of LED indices. */ +typedef uint32_t xkb_led_mask_t; + +#define XKB_KEYCODE_INVALID (0xffffffff) +#define XKB_LAYOUT_INVALID (0xffffffff) +#define XKB_LEVEL_INVALID (0xffffffff) +#define XKB_MOD_INVALID (0xffffffff) +#define XKB_LED_INVALID (0xffffffff) + +#define XKB_KEYCODE_MAX (0xffffffff - 1) + +/** + * Test whether a value is a valid extended keycode. + * @sa xkb_keycode_t + **/ +#define xkb_keycode_is_legal_ext(key) (key <= XKB_KEYCODE_MAX) + +/** + * Test whether a value is a valid X11 keycode. + * @sa xkb_keycode_t + */ +#define xkb_keycode_is_legal_x11(key) (key >= 8 && key <= 255) + +/** + * Names to compile a keymap with, also known as RMLVO. + * + * The names are the common configuration values by which a user picks + * a keymap. + * + * If the entire struct is NULL, then each field is taken to be NULL. + * You should prefer passing NULL instead of choosing your own defaults. + */ +struct xkb_rule_names { + /** + * The rules file to use. The rules file describes how to interpret + * the values of the model, layout, variant and options fields. + * + * If NULL or the empty string "", a default value is used. + * If the XKB_DEFAULT_RULES environment variable is set, it is used + * as the default. Otherwise the system default is used. + */ + const char *rules; + /** + * The keyboard model by which to interpret keycodes and LEDs. + * + * If NULL or the empty string "", a default value is used. + * If the XKB_DEFAULT_MODEL environment variable is set, it is used + * as the default. Otherwise the system default is used. + */ + const char *model; + /** + * A comma separated list of layouts (languages) to include in the + * keymap. + * + * If NULL or the empty string "", a default value is used. + * If the XKB_DEFAULT_LAYOUT environment variable is set, it is used + * as the default. Otherwise the system default is used. + */ + const char *layout; + /** + * A comma separated list of variants, one per layout, which may + * modify or augment the respective layout in various ways. + * + * If NULL or the empty string "", and a default value is also used + * for the layout, a default value is used. Otherwise no variant is + * used. + * If the XKB_DEFAULT_VARIANT environment variable is set, it is used + * as the default. Otherwise the system default is used. + */ + const char *variant; + /** + * A comma separated list of options, through which the user specifies + * non-layout related preferences, like which key combinations are used + * for switching layouts, or which key is the Compose key. + * + * If NULL, a default value is used. If the empty string "", no + * options are used. + * If the XKB_DEFAULT_OPTIONS environment variable is set, it is used + * as the default. Otherwise the system default is used. + */ + const char *options; +}; + +/** + * @defgroup keysyms Keysyms + * Utility functions related to keysyms. + * + * @{ + */ + +/** + * @page keysym-transformations Keysym Transformations + * + * Keysym translation is subject to several "keysym transformations", + * as described in the XKB specification. These are: + * + * - Capitalization transformation. If the Caps Lock modifier is + * active and was not consumed by the translation process, a single + * keysym is transformed to its upper-case form (if applicable). + * Similarly, the UTF-8/UTF-32 string produced is capitalized. + * + * This is described in: + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Lock_Modifier + * + * - Control transformation. If the Control modifier is active and + * was not consumed by the translation process, the string produced + * is transformed to its matching ASCII control character (if + * applicable). Keysyms are not affected. + * + * This is described in: + * http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Interpreting_the_Control_Modifier + * + * Each relevant function discusses which transformations it performs. + * + * These transformations are not applicable when a key produces multiple + * keysyms. + */ + + +/** + * Get the name of a keysym. + * + * For a description of how keysyms are named, see @ref xkb_keysym_t. + * + * @param[in] keysym The keysym. + * @param[out] buffer A string buffer to write the name into. + * @param[in] size Size of the buffer. + * + * @warning If the buffer passed is too small, the string is truncated + * (though still NUL-terminated); a size of at least 64 bytes is recommended. + * + * @returns The number of bytes in the name, excluding the NUL byte. If + * the keysym is invalid, returns -1. + * + * You may check if truncation has occurred by comparing the return value + * with the length of buffer, similarly to the snprintf(3) function. + * + * @sa xkb_keysym_t + */ +int +xkb_keysym_get_name(xkb_keysym_t keysym, char *buffer, size_t size); + +/** Flags for xkb_keysym_from_name(). */ +enum xkb_keysym_flags { + /** Do not apply any flags. */ + XKB_KEYSYM_NO_FLAGS = 0, + /** Find keysym by case-insensitive search. */ + XKB_KEYSYM_CASE_INSENSITIVE = (1 << 0) +}; + +/** + * Get a keysym from its name. + * + * @param name The name of a keysym. See remarks in xkb_keysym_get_name(); + * this function will accept any name returned by that function. + * @param flags A set of flags controlling how the search is done. If + * invalid flags are passed, this will fail with XKB_KEY_NoSymbol. + * + * If you use the XKB_KEYSYM_CASE_INSENSITIVE flag and two keysym names + * differ only by case, then the lower-case keysym is returned. For + * instance, for KEY_a and KEY_A, this function would return KEY_a for the + * case-insensitive search. If this functionality is needed, it is + * recommended to first call this function without this flag; and if that + * fails, only then to try with this flag, while possibly warning the user + * he had misspelled the name, and might get wrong results. + * + * @returns The keysym. If the name is invalid, returns XKB_KEY_NoSymbol. + * + * @sa xkb_keysym_t + */ +xkb_keysym_t +xkb_keysym_from_name(const char *name, enum xkb_keysym_flags flags); + +/** + * Get the Unicode/UTF-8 representation of a keysym. + * + * @param[in] keysym The keysym. + * @param[out] buffer A buffer to write the UTF-8 string into. + * @param[in] size The size of buffer. Must be at least 7. + * + * @returns The number of bytes written to the buffer (including the + * terminating byte). If the keysym does not have a Unicode + * representation, returns 0. If the buffer is too small, returns -1. + * + * This function does not perform any @ref keysym-transformations. + * Therefore, prefer to use xkb_state_key_get_utf8() if possible. + * + * @sa xkb_state_key_get_utf8() + */ +int +xkb_keysym_to_utf8(xkb_keysym_t keysym, char *buffer, size_t size); + +/** + * Get the Unicode/UTF-32 representation of a keysym. + * + * @returns The Unicode/UTF-32 representation of keysym, which is also + * compatible with UCS-4. If the keysym does not have a Unicode + * representation, returns 0. + * + * This function does not perform any @ref keysym-transformations. + * Therefore, prefer to use xkb_state_key_get_utf32() if possible. + * + * @sa xkb_state_key_get_utf32() + */ +uint32_t +xkb_keysym_to_utf32(xkb_keysym_t keysym); + +/** @} */ + +/** + * @defgroup context Library Context + * Creating, destroying and using library contexts. + * + * Every keymap compilation request must have a context associated with + * it. The context keeps around state such as the include path. + * + * @{ + */ + +/** Flags for context creation. */ +enum xkb_context_flags { + /** Do not apply any context flags. */ + XKB_CONTEXT_NO_FLAGS = 0, + /** Create this context with an empty include path. */ + XKB_CONTEXT_NO_DEFAULT_INCLUDES = (1 << 0), + /** + * Don't take RMLVO names from the environment. + * @since 0.3.0 + */ + XKB_CONTEXT_NO_ENVIRONMENT_NAMES = (1 << 1) +}; + +/** + * Create a new context. + * + * @param flags Optional flags for the context, or 0. + * + * @returns A new context, or NULL on failure. + * + * The user may set some environment variables to affect default values in + * the context. See e.g. xkb_context_set_log_level() and + * xkb_context_set_log_verbosity(). + * + * @memberof xkb_context + */ +struct xkb_context * +xkb_context_new(enum xkb_context_flags flags); + +/** + * Take a new reference on a context. + * + * @returns The passed in context. + * + * @memberof xkb_context + */ +struct xkb_context * +xkb_context_ref(struct xkb_context *context); + +/** + * Release a reference on a context, and possibly free it. + * + * @param context The context. If it is NULL, this function does nothing. + * + * @memberof xkb_context + */ +void +xkb_context_unref(struct xkb_context *context); + +/** + * Store custom user data in the context. + * + * This may be useful in conjunction with xkb_context_set_log_fn() or other + * callbacks. + * + * @memberof xkb_context + */ +void +xkb_context_set_user_data(struct xkb_context *context, void *user_data); + +/** + * Retrieves stored user data from the context. + * + * @returns The stored user data. If the user data wasn't set, or the + * passed in context is NULL, returns NULL. + * + * This may be useful to access private user data from callbacks like a + * custom logging function. + * + * @memberof xkb_context + **/ +void * +xkb_context_get_user_data(struct xkb_context *context); + +/** @} */ + +/** + * @defgroup include-path Include Paths + * Manipulating the include paths in a context. + * + * The include paths are the file-system paths that are searched when an + * include statement is encountered during keymap compilation. + * In most cases, the default include paths are sufficient. + * + * @{ + */ + +/** + * Append a new entry to the context's include path. + * + * @returns 1 on success, or 0 if the include path could not be added or is + * inaccessible. + * + * @memberof xkb_context + */ +int +xkb_context_include_path_append(struct xkb_context *context, const char *path); + +/** + * Append the default include paths to the context's include path. + * + * @returns 1 on success, or 0 if the primary include path could not be added. + * + * @memberof xkb_context + */ +int +xkb_context_include_path_append_default(struct xkb_context *context); + +/** + * Reset the context's include path to the default. + * + * Removes all entries from the context's include path, and inserts the + * default paths. + * + * @returns 1 on success, or 0 if the primary include path could not be added. + * + * @memberof xkb_context + */ +int +xkb_context_include_path_reset_defaults(struct xkb_context *context); + +/** + * Remove all entries from the context's include path. + * + * @memberof xkb_context + */ +void +xkb_context_include_path_clear(struct xkb_context *context); + +/** + * Get the number of paths in the context's include path. + * + * @memberof xkb_context + */ +unsigned int +xkb_context_num_include_paths(struct xkb_context *context); + +/** + * Get a specific include path from the context's include path. + * + * @returns The include path at the specified index. If the index is + * invalid, returns NULL. + * + * @memberof xkb_context + */ +const char * +xkb_context_include_path_get(struct xkb_context *context, unsigned int index); + +/** @} */ + +/** + * @defgroup logging Logging Handling + * Manipulating how logging from this library is handled. + * + * @{ + */ + +/** Specifies a logging level. */ +enum xkb_log_level { + XKB_LOG_LEVEL_CRITICAL = 10, /**< Log critical internal errors only. */ + XKB_LOG_LEVEL_ERROR = 20, /**< Log all errors. */ + XKB_LOG_LEVEL_WARNING = 30, /**< Log warnings and errors. */ + XKB_LOG_LEVEL_INFO = 40, /**< Log information, warnings, and errors. */ + XKB_LOG_LEVEL_DEBUG = 50 /**< Log everything. */ +}; + +/** + * Set the current logging level. + * + * @param context The context in which to set the logging level. + * @param level The logging level to use. Only messages from this level + * and below will be logged. + * + * The default level is XKB_LOG_LEVEL_ERROR. The environment variable + * XKB_LOG_LEVEL, if set in the time the context was created, overrides the + * default value. It may be specified as a level number or name. + * + * @memberof xkb_context + */ +void +xkb_context_set_log_level(struct xkb_context *context, + enum xkb_log_level level); + +/** + * Get the current logging level. + * + * @memberof xkb_context + */ +enum xkb_log_level +xkb_context_get_log_level(struct xkb_context *context); + +/** + * Sets the current logging verbosity. + * + * The library can generate a number of warnings which are not helpful to + * ordinary users of the library. The verbosity may be increased if more + * information is desired (e.g. when developing a new keymap). + * + * The default verbosity is 0. The environment variable XKB_LOG_VERBOSITY, + * if set in the time the context was created, overrides the default value. + * + * @param context The context in which to use the set verbosity. + * @param verbosity The verbosity to use. Currently used values are + * 1 to 10, higher values being more verbose. 0 would result in no verbose + * messages being logged. + * + * Most verbose messages are of level XKB_LOG_LEVEL_WARNING or lower. + * + * @memberof xkb_context + */ +void +xkb_context_set_log_verbosity(struct xkb_context *context, int verbosity); + +/** + * Get the current logging verbosity of the context. + * + * @memberof xkb_context + */ +int +xkb_context_get_log_verbosity(struct xkb_context *context); + +/** + * Set a custom function to handle logging messages. + * + * @param context The context in which to use the set logging function. + * @param log_fn The function that will be called for logging messages. + * Passing NULL restores the default function, which logs to stderr. + * + * By default, log messages from this library are printed to stderr. This + * function allows you to replace the default behavior with a custom + * handler. The handler is only called with messages which match the + * current logging level and verbosity settings for the context. + * level is the logging level of the message. @a format and @a args are + * the same as in the vprintf(3) function. + * + * You may use xkb_context_set_user_data() on the context, and then call + * xkb_context_get_user_data() from within the logging function to provide + * it with additional private context. + * + * @memberof xkb_context + */ +void +xkb_context_set_log_fn(struct xkb_context *context, + void (*log_fn)(struct xkb_context *context, + enum xkb_log_level level, + const char *format, va_list args)); + +/** @} */ + +/** + * @defgroup keymap Keymap Creation + * Creating and destroying keymaps. + * + * @{ + */ + +/** Flags for keymap compilation. */ +enum xkb_keymap_compile_flags { + /** Do not apply any flags. */ + XKB_KEYMAP_COMPILE_NO_FLAGS = 0 +}; + +/** + * Create a keymap from RMLVO names. + * + * The primary keymap entry point: creates a new XKB keymap from a set of + * RMLVO (Rules + Model + Layouts + Variants + Options) names. + * + * @param context The context in which to create the keymap. + * @param names The RMLVO names to use. See xkb_rule_names. + * @param flags Optional flags for the keymap, or 0. + * + * @returns A keymap compiled according to the RMLVO names, or NULL if + * the compilation failed. + * + * @sa xkb_rule_names + * @memberof xkb_keymap + */ +struct xkb_keymap * +xkb_keymap_new_from_names(struct xkb_context *context, + const struct xkb_rule_names *names, + enum xkb_keymap_compile_flags flags); + +/** The possible keymap formats. */ +enum xkb_keymap_format { + /** The current/classic XKB text format, as generated by xkbcomp -xkb. */ + XKB_KEYMAP_FORMAT_TEXT_V1 = 1 +}; + +/** + * Create a keymap from a keymap file. + * + * @param context The context in which to create the keymap. + * @param file The keymap file to compile. + * @param format The text format of the keymap file to compile. + * @param flags Optional flags for the keymap, or 0. + * + * @returns A keymap compiled from the given XKB keymap file, or NULL if + * the compilation failed. + * + * The file must contain a complete keymap. For example, in the + * XKB_KEYMAP_FORMAT_TEXT_V1 format, this means the file must contain one + * top level '%xkb_keymap' section, which in turn contains other required + * sections. + * + * @memberof xkb_keymap + */ +struct xkb_keymap * +xkb_keymap_new_from_file(struct xkb_context *context, FILE *file, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags); + +/** + * Create a keymap from a keymap string. + * + * This is just like xkb_keymap_new_from_file(), but instead of a file, gets + * the keymap as one enormous string. + * + * @see xkb_keymap_new_from_file() + * @memberof xkb_keymap + */ +struct xkb_keymap * +xkb_keymap_new_from_string(struct xkb_context *context, const char *string, + enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags); + +/** + * Create a keymap from a memory buffer. + * + * This is just like xkb_keymap_new_from_string(), but takes a length argument + * so the input string does not have to be zero-terminated. + * + * @see xkb_keymap_new_from_string() + * @memberof xkb_keymap + * @since 0.3.0 + */ +struct xkb_keymap * +xkb_keymap_new_from_buffer(struct xkb_context *context, const char *buffer, + size_t length, enum xkb_keymap_format format, + enum xkb_keymap_compile_flags flags); + +/** + * Take a new reference on a keymap. + * + * @returns The passed in keymap. + * + * @memberof xkb_keymap + */ +struct xkb_keymap * +xkb_keymap_ref(struct xkb_keymap *keymap); + +/** + * Release a reference on a keymap, and possibly free it. + * + * @param keymap The keymap. If it is NULL, this function does nothing. + * + * @memberof xkb_keymap + */ +void +xkb_keymap_unref(struct xkb_keymap *keymap); + +/** + * Get the keymap as a string in the format from which it was created. + * @sa xkb_keymap_get_as_string() + **/ +#define XKB_KEYMAP_USE_ORIGINAL_FORMAT ((enum xkb_keymap_format) -1) + +/** + * Get the compiled keymap as a string. + * + * @param keymap The keymap to get as a string. + * @param format The keymap format to use for the string. You can pass + * in the special value XKB_KEYMAP_USE_ORIGINAL_FORMAT to use the format + * from which the keymap was originally created. + * + * @returns The keymap as a NUL-terminated string, or NULL if unsuccessful. + * + * The returned string may be fed back into xkb_map_new_from_string() to get + * the exact same keymap (possibly in another process, etc.). + * + * The returned string is dynamically allocated and should be freed by the + * caller. + * + * @memberof xkb_keymap + */ +char * +xkb_keymap_get_as_string(struct xkb_keymap *keymap, + enum xkb_keymap_format format); + +/** @} */ + +/** + * @defgroup components Keymap Components + * Enumeration of state components in a keymap. + * + * @{ + */ + +/** + * Get the minimum keycode in the keymap. + * + * @sa xkb_keycode_t + * @memberof xkb_keymap + * @since 0.3.1 + */ +xkb_keycode_t +xkb_keymap_min_keycode(struct xkb_keymap *keymap); + +/** + * Get the maximum keycode in the keymap. + * + * @sa xkb_keycode_t + * @memberof xkb_keymap + * @since 0.3.1 + */ +xkb_keycode_t +xkb_keymap_max_keycode(struct xkb_keymap *keymap); + +/** + * The iterator used by xkb_keymap_key_for_each(). + * + * @sa xkb_keymap_key_for_each + * @memberof xkb_keymap + * @since 0.3.1 + */ +typedef void +(*xkb_keymap_key_iter_t)(struct xkb_keymap *keymap, xkb_keycode_t key, + void *data); + +/** + * Run a specified function for every valid keycode in the keymap. If a + * keymap is sparse, this function may be called fewer than + * (max_keycode - min_keycode + 1) times. + * + * @sa xkb_keymap_min_keycode() xkb_keymap_max_keycode() xkb_keycode_t + * @memberof xkb_keymap + * @since 0.3.1 + */ +void +xkb_keymap_key_for_each(struct xkb_keymap *keymap, xkb_keymap_key_iter_t iter, + void *data); + +/** + * Get the number of modifiers in the keymap. + * + * @sa xkb_mod_index_t + * @memberof xkb_keymap + */ +xkb_mod_index_t +xkb_keymap_num_mods(struct xkb_keymap *keymap); + +/** + * Get the name of a modifier by index. + * + * @returns The name. If the index is invalid, returns NULL. + * + * @sa xkb_mod_index_t + * @memberof xkb_keymap + */ +const char * +xkb_keymap_mod_get_name(struct xkb_keymap *keymap, xkb_mod_index_t idx); + +/** + * Get the index of a modifier by name. + * + * @returns The index. If no modifier with this name exists, returns + * XKB_MOD_INVALID. + * + * @sa xkb_mod_index_t + * @memberof xkb_keymap + */ +xkb_mod_index_t +xkb_keymap_mod_get_index(struct xkb_keymap *keymap, const char *name); + +/** + * Get the number of layouts in the keymap. + * + * @sa xkb_layout_index_t xkb_rule_names xkb_keymap_num_layouts_for_key() + * @memberof xkb_keymap + */ +xkb_layout_index_t +xkb_keymap_num_layouts(struct xkb_keymap *keymap); + +/** + * Get the name of a layout by index. + * + * @returns The name. If the index is invalid, or the layout does not have + * a name, returns NULL. + * + * @sa xkb_layout_index_t + * @memberof xkb_keymap + */ +const char * +xkb_keymap_layout_get_name(struct xkb_keymap *keymap, xkb_layout_index_t idx); + +/** + * Get the index of a layout by name. + * + * @returns The index. If no layout exists with this name, returns + * XKB_LAYOUT_INVALID. If more than one layout in the keymap has this name, + * returns the lowest index among them. + * + * @memberof xkb_keymap + */ +xkb_layout_index_t +xkb_keymap_layout_get_index(struct xkb_keymap *keymap, const char *name); + +/** + * Get the number of LEDs in the keymap. + * + * @warning The range [ 0...xkb_keymap_num_leds() ) includes all of the LEDs + * in the keymap, but may also contain inactive LEDs. When iterating over + * this range, you need the handle this case when calling functions such as + * xkb_keymap_led_get_name() or xkb_state_led_index_is_active(). + * + * @sa xkb_led_index_t + * @memberof xkb_keymap + */ +xkb_led_index_t +xkb_keymap_num_leds(struct xkb_keymap *keymap); + +/** + * Get the name of a LED by index. + * + * @returns The name. If the index is invalid, returns NULL. + * + * @memberof xkb_keymap + */ +const char * +xkb_keymap_led_get_name(struct xkb_keymap *keymap, xkb_led_index_t idx); + +/** + * Get the index of a LED by name. + * + * @returns The index. If no LED with this name exists, returns + * XKB_LED_INVALID. + * + * @memberof xkb_keymap + */ +xkb_led_index_t +xkb_keymap_led_get_index(struct xkb_keymap *keymap, const char *name); + +/** + * Get the number of layouts for a specific key. + * + * This number can be different from xkb_keymap_num_layouts(), but is always + * smaller. It is the appropriate value to use when iterating over the + * layouts of a key. + * + * @sa xkb_layout_index_t + * @memberof xkb_keymap + */ +xkb_layout_index_t +xkb_keymap_num_layouts_for_key(struct xkb_keymap *keymap, xkb_keycode_t key); + +/** + * Get the number of shift levels for a specific key and layout. + * + * If @c layout is out of range for this key (that is, larger or equal to + * the value returned by xkb_keymap_num_layouts_for_key()), it is brought + * back into range in a manner consistent with xkb_state_key_get_layout(). + * + * @sa xkb_level_index_t + * @memberof xkb_keymap + */ +xkb_level_index_t +xkb_keymap_num_levels_for_key(struct xkb_keymap *keymap, xkb_keycode_t key, + xkb_layout_index_t layout); + +/** + * Get the keysyms obtained from pressing a key in a given layout and + * shift level. + * + * This function is like xkb_state_key_get_syms(), only the layout and + * shift level are not derived from the keyboard state but are instead + * specified explicitly. + * + * @param[in] keymap The keymap. + * @param[in] key The keycode of the key. + * @param[in] layout The layout for which to get the keysyms. + * @param[in] level The shift level in the layout for which to get the + * keysyms. This must be smaller than: + * @code xkb_keymap_num_levels_for_key(keymap, key) @endcode + * @param[out] syms_out An immutable array of keysyms corresponding to the + * key in the given layout and shift level. + * + * If @c layout is out of range for this key (that is, larger or equal to + * the value returned by xkb_keymap_num_layouts_for_key()), it is brought + * back into range in a manner consistent with xkb_state_key_get_layout(). + * + * @returns The number of keysyms in the syms_out array. If no keysyms + * are produced by the key in the given layout and shift level, returns 0 + * and sets syms_out to NULL. + * + * @sa xkb_state_key_get_syms() + * @memberof xkb_keymap + */ +int +xkb_keymap_key_get_syms_by_level(struct xkb_keymap *keymap, + xkb_keycode_t key, + xkb_layout_index_t layout, + xkb_level_index_t level, + const xkb_keysym_t **syms_out); + +/** + * Determine whether a key should repeat or not. + * + * A keymap may specify different repeat behaviors for different keys. + * Most keys should generally exhibit repeat behavior; for example, holding + * the 'a' key down in a text editor should normally insert a single 'a' + * character every few milliseconds, until the key is released. However, + * there are keys which should not or do not need to be repeated. For + * example, repeating modifier keys such as Left/Right Shift or Caps Lock + * is not generally useful or desired. + * + * @returns 1 if the key should repeat, 0 otherwise. + * + * @memberof xkb_keymap + */ +int +xkb_keymap_key_repeats(struct xkb_keymap *keymap, xkb_keycode_t key); + +/** @} */ + +/** + * @defgroup state Keyboard State + * Creating, destroying and manipulating keyboard state objects. + * + * @{ + */ + +/** + * Create a new keyboard state object. + * + * @param keymap The keymap which the state will use. + * + * @returns A new keyboard state object, or NULL on failure. + * + * @memberof xkb_state + */ +struct xkb_state * +xkb_state_new(struct xkb_keymap *keymap); + +/** + * Take a new reference on a keyboard state object. + * + * @returns The passed in object. + * + * @memberof xkb_state + */ +struct xkb_state * +xkb_state_ref(struct xkb_state *state); + +/** + * Release a reference on a keybaord state object, and possibly free it. + * + * @param state The state. If it is NULL, this function does nothing. + * + * @memberof xkb_state + */ +void +xkb_state_unref(struct xkb_state *state); + +/** + * Get the keymap which a keyboard state object is using. + * + * @returns The keymap which was passed to xkb_state_new() when creating + * this state object. + * + * This function does not take a new reference on the keymap; you must + * explicitly reference it yourself if you plan to use it beyond the + * lifetime of the state. + * + * @memberof xkb_state + */ +struct xkb_keymap * +xkb_state_get_keymap(struct xkb_state *state); + +/** Specifies the direction of the key (press / release). */ +enum xkb_key_direction { + XKB_KEY_UP, /**< The key was released. */ + XKB_KEY_DOWN /**< The key was pressed. */ +}; + +/** + * Modifier and layout types for state objects. This enum is bitmaskable, + * e.g. (XKB_STATE_MODS_DEPRESSED | XKB_STATE_MODS_LATCHED) is valid to + * exclude locked modifiers. + * + * In XKB, the DEPRESSED components are also known as 'base'. + */ +enum xkb_state_component { + /** Depressed modifiers, i.e. a key is physically holding them. */ + XKB_STATE_MODS_DEPRESSED = (1 << 0), + /** Latched modifiers, i.e. will be unset after the next non-modifier + * key press. */ + XKB_STATE_MODS_LATCHED = (1 << 1), + /** Locked modifiers, i.e. will be unset after the key provoking the + * lock has been pressed again. */ + XKB_STATE_MODS_LOCKED = (1 << 2), + /** Effective modifiers, i.e. currently active and affect key + * processing (derived from the other state components). + * Use this unless you explictly care how the state came about. */ + XKB_STATE_MODS_EFFECTIVE = (1 << 3), + /** Depressed layout, i.e. a key is physically holding it. */ + XKB_STATE_LAYOUT_DEPRESSED = (1 << 4), + /** Latched layout, i.e. will be unset after the next non-modifier + * key press. */ + XKB_STATE_LAYOUT_LATCHED = (1 << 5), + /** Locked layout, i.e. will be unset after the key provoking the lock + * has been pressed again. */ + XKB_STATE_LAYOUT_LOCKED = (1 << 6), + /** Effective layout, i.e. currently active and affects key processing + * (derived from the other state components). + * Use this unless you explictly care how the state came about. */ + XKB_STATE_LAYOUT_EFFECTIVE = (1 << 7), + /** LEDs (derived from the other state components). */ + XKB_STATE_LEDS = (1 << 8) +}; + +/** + * Update the keyboard state to reflect a given key being pressed or + * released. + * + * This entry point is intended for programs which track the keyboard state + * explictly (like an evdev client). If the state is serialized to you by + * a master process (like a Wayland compositor) using functions like + * xkb_state_serialize_mods(), you should use xkb_state_update_mask() instead. + * The two functins should not generally be used together. + * + * A series of calls to this function should be consistent; that is, a call + * with XKB_KEY_DOWN for a key should be matched by an XKB_KEY_UP; if a key + * is pressed twice, it should be released twice; etc. Otherwise (e.g. due + * to missed input events), situations like "stuck modifiers" may occur. + * + * This function is often used in conjunction with the function + * xkb_state_key_get_syms() (or xkb_state_key_get_one_sym()), for example, + * when handling a key event. In this case, you should prefer to get the + * keysyms *before* updating the key, such that the keysyms reported for + * the key event are not affected by the event itself. This is the + * conventional behavior. + * + * @returns A mask of state components that have changed as a result of + * the update. If nothing in the state has changed, returns 0. + * + * @memberof xkb_state + * + * @sa xkb_state_update_mask() + */ +enum xkb_state_component +xkb_state_update_key(struct xkb_state *state, xkb_keycode_t key, + enum xkb_key_direction direction); + +/** + * Update a keyboard state from a set of explicit masks. + * + * This entry point is intended for window systems and the like, where a + * master process holds an xkb_state, then serializes it over a wire + * protocol, and clients then use the serialization to feed in to their own + * xkb_state. + * + * All parameters must always be passed, or the resulting state may be + * incoherent. + * + * The serialization is lossy and will not survive round trips; it must only + * be used to feed slave state objects, and must not be used to update the + * master state. + * + * If you do not fit the description above, you should use + * xkb_state_update_key() instead. The two functions should not generally be + * used together. + * + * @returns A mask of state components that have changed as a result of + * the update. If nothing in the state has changed, returns 0. + * + * @memberof xkb_state + * + * @sa xkb_state_component + * @sa xkb_state_update_key + */ +enum xkb_state_component +xkb_state_update_mask(struct xkb_state *state, + xkb_mod_mask_t depressed_mods, + xkb_mod_mask_t latched_mods, + xkb_mod_mask_t locked_mods, + xkb_layout_index_t depressed_layout, + xkb_layout_index_t latched_layout, + xkb_layout_index_t locked_layout); + +/** + * Get the keysyms obtained from pressing a particular key in a given + * keyboard state. + * + * Get the keysyms for a key according to the current active layout, + * modifiers and shift level for the key, as determined by a keyboard + * state. + * + * @param[in] state The keyboard state object. + * @param[in] key The keycode of the key. + * @param[out] syms_out An immutable array of keysyms corresponding the + * key in the given keyboard state. + * + * As an extension to XKB, this function can return more than one keysym. + * If you do not want to handle this case, you can use + * xkb_state_key_get_one_sym() for a simpler interface. + * + * This function does not perform any @ref keysym-transformations. + * (This might change). + * + * @returns The number of keysyms in the syms_out array. If no keysyms + * are produced by the key in the given keyboard state, returns 0 and sets + * syms_out to NULL. + * + * @memberof xkb_state + */ +int +xkb_state_key_get_syms(struct xkb_state *state, xkb_keycode_t key, + const xkb_keysym_t **syms_out); + +/** + * Get the Unicode/UTF-8 string obtained from pressing a particular key + * in a given keyboard state. + * + * @param[in] state The keyboard state object. + * @param[in] key The keycode of the key. + * @param[out] buffer A buffer to write the string into. + * @param[in] size Size of the buffer. + * + * @warning If the buffer passed is too small, the string is truncated + * (though still NUL-terminated). + * + * @returns The number of bytes required for the string, excluding the + * NUL byte. If there is nothing to write, returns 0. + * + * You may check if truncation has occurred by comparing the return value + * with the size of @p buffer, similarly to the snprintf(3) function. + * You may safely pass NULL and 0 to @p buffer and @p size to find the + * required size (without the NUL-byte). + * + * This function performs Capitalization and Control @ref + * keysym-transformations. + * + * @memberof xkb_state + * @since 0.4.1 + */ +int +xkb_state_key_get_utf8(struct xkb_state *state, xkb_keycode_t key, + char *buffer, size_t size); + +/** + * Get the Unicode/UTF-32 codepoint obtained from pressing a particular + * key in a a given keyboard state. + * + * @returns The UTF-32 representation for the key, if it consists of only + * a single codepoint. Otherwise, returns 0. + * + * This function performs Capitalization and Control @ref + * keysym-transformations. + * + * @memberof xkb_state + * @since 0.4.1 + */ +uint32_t +xkb_state_key_get_utf32(struct xkb_state *state, xkb_keycode_t key); + +/** + * Get the single keysym obtained from pressing a particular key in a + * given keyboard state. + * + * This function is similar to xkb_state_key_get_syms(), but intended + * for users which cannot or do not want to handle the case where + * multiple keysyms are returned (in which case this function is + * preferred). + * + * @returns The keysym. If the key does not have exactly one keysym, + * returns XKB_KEY_NoSymbol + * + * This function performs Capitalization @ref keysym-transformations. + * + * @sa xkb_state_key_get_syms() + * @memberof xkb_state + */ +xkb_keysym_t +xkb_state_key_get_one_sym(struct xkb_state *state, xkb_keycode_t key); + +/** + * Get the effective layout index for a key in a given keyboard state. + * + * @returns The layout index for the key in the given keyboard state. If + * the given keycode is invalid, or if the key is not included in any + * layout at all, returns XKB_LAYOUT_INVALID. + * + * @invariant If the returned layout is valid, the following always holds: + * @code + * xkb_state_key_get_layout(state, key) < xkb_keymap_num_layouts_for_key(keymap, key) + * @endcode + * + * @memberof xkb_state + */ +xkb_layout_index_t +xkb_state_key_get_layout(struct xkb_state *state, xkb_keycode_t key); + +/** + * Get the effective shift level for a key in a given keyboard state and + * layout. + * + * @param state The keyboard state. + * @param key The keycode of the key. + * @param layout The layout for which to get the shift level. This must be + * smaller than: + * @code xkb_keymap_num_layouts_for_key(keymap, key) @endcode + * usually it would be: + * @code xkb_state_key_get_layout(state, key) @endcode + * + * @return The shift level index. If the key or layout are invalid, + * returns XKB_LEVEL_INVALID. + * + * @invariant If the returned level is valid, the following always holds: + * @code + * xkb_state_key_get_level(state, key, layout) < xkb_keymap_num_levels_for_key(keymap, key, layout) + * @endcode + * + * @memberof xkb_state + */ +xkb_level_index_t +xkb_state_key_get_level(struct xkb_state *state, xkb_keycode_t key, + xkb_layout_index_t layout); + +/** + * Match flags for xkb_state_mod_indices_are_active() and + * xkb_state_mod_names_are_active(), specifying the conditions for a + * successful match. XKB_STATE_MATCH_NON_EXCLUSIVE is bitmaskable with + * the other modes. + */ +enum xkb_state_match { + /** Returns true if any of the modifiers are active. */ + XKB_STATE_MATCH_ANY = (1 << 0), + /** Returns true if all of the modifiers are active. */ + XKB_STATE_MATCH_ALL = (1 << 1), + /** Makes matching non-exclusive, i.e. will not return false if a + * modifier not specified in the arguments is active. */ + XKB_STATE_MATCH_NON_EXCLUSIVE = (1 << 16) +}; + +/** + * The counterpart to xkb_state_update_mask for modifiers, to be used on + * the server side of serialization. + * + * @param state The keyboard state. + * @param components A mask of the modifier state components to serialize. + * State components other than XKB_STATE_MODS_* are ignored. + * If XKB_STATE_MODS_EFFECTIVE is included, all other state components are + * ignored. + * + * @returns A xkb_mod_mask_t representing the given components of the + * modifier state. + * + * This function should not be used in regular clients; please use the + * xkb_state_mod_*_is_active API instead. + * + * @memberof xkb_state + */ +xkb_mod_mask_t +xkb_state_serialize_mods(struct xkb_state *state, + enum xkb_state_component components); + +/** + * The counterpart to xkb_state_update_mask for layouts, to be used on + * the server side of serialization. + * + * @param state The keyboard state. + * @param components A mask of the layout state components to serialize. + * State components other than XKB_STATE_LAYOUT_* are ignored. + * If XKB_STATE_LAYOUT_EFFECTIVE is included, all other state components are + * ignored. + * + * @returns A layout index representing the given components of the + * layout state. + * + * This function should not be used in regular clients; please use the + * xkb_state_layout_*_is_active API instead. + * + * @memberof xkb_state + */ +xkb_layout_index_t +xkb_state_serialize_layout(struct xkb_state *state, + enum xkb_state_component components); + +/** + * Test whether a modifier is active in a given keyboard state by name. + * + * @returns 1 if the modifier is active, 0 if it is not. If the modifier + * name does not exist in the keymap, returns -1. + * + * @memberof xkb_state + */ +int +xkb_state_mod_name_is_active(struct xkb_state *state, const char *name, + enum xkb_state_component type); + +/** + * Test whether a set of modifiers are active in a given keyboard state by + * name. + * + * @param state The keyboard state. + * @param type The component of the state against which to match the + * given modifiers. + * @param match The manner by which to match the state against the + * given modifiers. + * @param ... The set of of modifier names to test, terminated by a NULL + * argument (sentinel). + * + * @returns 1 if the modifiers are active, 0 if they are not. If any of + * the modifier names do not exist in the keymap, returns -1. + * + * @memberof xkb_state + */ +int +xkb_state_mod_names_are_active(struct xkb_state *state, + enum xkb_state_component type, + enum xkb_state_match match, + ...); + +/** + * Test whether a modifier is active in a given keyboard state by index. + * + * @returns 1 if the modifier is active, 0 if it is not. If the modifier + * index is invalid in the keymap, returns -1. + * + * @memberof xkb_state + */ +int +xkb_state_mod_index_is_active(struct xkb_state *state, xkb_mod_index_t idx, + enum xkb_state_component type); + +/** + * Test whether a set of modifiers are active in a given keyboard state by + * index. + * + * @param state The keyboard state. + * @param type The component of the state against which to match the + * given modifiers. + * @param match The manner by which to match the state against the + * given modifiers. + * @param ... The set of of modifier indices to test, terminated by a + * XKB_MOD_INVALID argument (sentinel). + * + * @returns 1 if the modifiers are active, 0 if they are not. If any of + * the modifier indices are invalid in the keymap, returns -1. + * + * @memberof xkb_state + */ +int +xkb_state_mod_indices_are_active(struct xkb_state *state, + enum xkb_state_component type, + enum xkb_state_match match, + ...); + +/** + * @page consumed-modifiers Consumed Modifiers + * @parblock + * + * Some functions, like xkb_state_key_get_syms(), look at the state of + * the modifiers in the keymap and derive from it the correct shift level + * to use for the key. For example, in a US layout, pressing the key + * labeled \ while the Shift modifier is active, generates the keysym + * 'A'. In this case, the Shift modifier is said to be "consumed". + * However, the Num Lock modifier does not affect this translation at all, + * even if it is active, so it is not consumed by this translation. + * + * It may be desirable for some application to not reuse consumed modifiers + * for further processing, e.g. for hotkeys or keyboard shortcuts. To + * understand why, consider some requirements from a standard shortcut + * mechanism, and how they are implemented: + * + * 1. The shortcut's modifiers must match exactly to the state. For + * example, it is possible to bind separate actions to \\ + * and to \\\. Further, if only \\ is + * bound to an action, pressing \\\ should not + * trigger the shortcut. + * Effectively, this means that the modifiers are compared using the + * equality operator (==). + * + * 2. Only relevant modifiers are considered for the matching. For example, + * Caps Lock and Num Lock should not generally affect the matching, e.g. + * when matching \\ against the state, it does not matter + * whether Num Lock is active or not. These relevant, or "significant", + * modifiers usually include Alt, Control, Shift, Super and similar. + * Effectively, this means that non-significant modifiers are masked out, + * before doing the comparison as described above. + * + * 3. The matching must be independent of the layout/keymap. For example, + * the \ (+) symbol is found on the first level on some layouts, + * but requires holding Shift on others. If you simply bind the action + * to the \ keysym, it would work for the unshifted kind, but + * not for the others, because the match against Shift would fail. If + * you bind the action to \\, only the shifted kind would + * work. So what is needed is to recognize that Shift is used up in the + * translation of the keysym itself, and therefore should not be included + * in the matching. + * Effectively, this means that consumed modifiers (Shift in this example) + * are masked out as well, before doing the comparison. + * + * In summary, this is how the matching would be performed: + * @code + * (keysym == shortcut_keysym) && + * ((state_mods & ~consumed_mods & significant_mods) == shortcut_mods) + * @endcode + * + * @c state_mods are the modifiers reported by + * xkb_state_mod_index_is_active() and similar functions. + * @c consumed_mods are the modifiers reported by + * xkb_state_mod_index_is_consumed() and similar functions. + * @c significant_mods are decided upon by the application/toolkit/user; + * it is up to them to decide whether these are configurable or hard-coded. + * + * @endparblock + */ + +/** + * Test whether a modifier is consumed by keyboard state translation for + * a key. + * + * @returns 1 if the modifier is consumed, 0 if it is not. If the modifier + * index is not valid in the keymap, returns -1. + * + * @sa xkb_state_mod_mask_remove_consumed() + * @sa xkb_state_key_get_consumed_mods() + * @memberof xkb_state + */ +int +xkb_state_mod_index_is_consumed(struct xkb_state *state, xkb_keycode_t key, + xkb_mod_index_t idx); + +/** + * Remove consumed modifiers from a modifier mask for a key. + * + * Takes the given modifier mask, and removes all modifiers which are + * consumed for that particular key (as in xkb_state_mod_index_is_consumed()). + * + * @sa xkb_state_mod_index_is_consumed() + * @memberof xkb_state + */ +xkb_mod_mask_t +xkb_state_mod_mask_remove_consumed(struct xkb_state *state, xkb_keycode_t key, + xkb_mod_mask_t mask); + +/** + * Get the mask of modifiers consumed by translating a given key. + * + * @returns a mask of the consumed modifiers. + * + * @sa xkb_state_mod_index_is_consumed() + * @memberof xkb_state + * @since 0.4.1 + */ +xkb_mod_mask_t +xkb_state_key_get_consumed_mods(struct xkb_state *state, xkb_keycode_t key); + +/** + * Test whether a layout is active in a given keyboard state by name. + * + * @returns 1 if the layout is active, 0 if it is not. If no layout with + * this name exists in the keymap, return -1. + * + * If multiple layouts in the keymap have this name, the one with the lowest + * index is tested. + * + * @sa xkb_layout_index_t + * @memberof xkb_state + */ +int +xkb_state_layout_name_is_active(struct xkb_state *state, const char *name, + enum xkb_state_component type); + +/** + * Test whether a layout is active in a given keyboard state by index. + * + * @returns 1 if the layout is active, 0 if it is not. If the layout index + * is not valid in the keymap, returns -1. + * + * @sa xkb_layout_index_t + * @memberof xkb_state + */ +int +xkb_state_layout_index_is_active(struct xkb_state *state, + xkb_layout_index_t idx, + enum xkb_state_component type); + +/** + * Test whether a LED is active in a given keyboard state by name. + * + * @returns 1 if the LED is active, 0 if it not. If no LED with this name + * exists in the keymap, returns -1. + * + * @sa xkb_led_index_t + * @memberof xkb_state + */ +int +xkb_state_led_name_is_active(struct xkb_state *state, const char *name); + +/** + * Test whether a LED is active in a given keyboard state by index. + * + * @returns 1 if the LED is active, 0 if it not. If the LED index is not + * valid in the keymap, returns -1. + * + * @sa xkb_led_index_t + * @memberof xkb_state + */ +int +xkb_state_led_index_is_active(struct xkb_state *state, xkb_led_index_t idx); + +/** @} */ + +/* Leave this include last, so it can pick up our types, etc. */ +#include + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _XKBCOMMON_H_ */ diff --git a/app/src/main/jni/lorie/Android.mk b/app/src/main/jni/lorie/Android.mk index d5b0606..1978597 100644 --- a/app/src/main/jni/lorie/Android.mk +++ b/app/src/main/jni/lorie/Android.mk @@ -4,8 +4,11 @@ include $(CLEAR_VARS) LOCAL_MODULE := lorie LOCAL_SRC_FILES := \ main.c \ + locale/android-utils.c \ backend-android.c \ renderer.c -LOCAL_SHARED_LIBRARIES := wayland-server +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../prebuilt/include LOCAL_LDLIBS := -lEGL -lGLESv2 -llog -landroid +LOCAL_LDFLAGS := -L$(LOCAL_PATH)/../prebuilt/$(TARGET_ARCH_ABI) -lwayland-server +LOCAL_SHARED_LIBRARIES := xkbcommon include $(BUILD_SHARED_LIBRARY) diff --git a/app/src/main/jni/lorie/backend-android.c b/app/src/main/jni/lorie/backend-android.c index 87ede0e..88e959b 100644 --- a/app/src/main/jni/lorie/backend-android.c +++ b/app/src/main/jni/lorie/backend-android.c @@ -2,15 +2,20 @@ #pragma ide diagnostic ignored "readability-isolate-declaration" #pragma ide diagnostic ignored "cppcoreguidelines-avoid-magic-numbers" #include -#include -#include #include #include #include +#include #include #include +#include #include +#include +#include #include +#include +#include +#include #include "backend.h" #include "log.h" @@ -42,10 +47,11 @@ static void checkEGLError(int line) { enum { ACTION_KEY = 1, - ACTION_POINTER = 2, - ACTION_WIN_CHANGE = 3, + ACTION_LAYOUT_CHANGE = 2, + ACTION_POINTER = 3, + ACTION_WIN_CHANGE = 4, #ifdef __ANDROID__ - ACTION_JNI_WIN_CHANGE = 4, + ACTION_JNI_WIN_CHANGE = 5, #endif }; static const EGLint ctxattr[] = { @@ -65,10 +71,13 @@ static const EGLint sfcattr[] = { typedef struct { uint8_t type; union { - struct { - uint8_t state; - uint16_t key; - } key; + struct { + uint8_t state; + uint16_t key; + } key; + struct { + char *layout; + } layout_change; struct { uint16_t state, button; uint32_t x, y; @@ -96,6 +105,10 @@ struct backend_android { EGLSurface sfc; struct callbacks callbacks; + + struct xkb_context *xkb_context; + struct xkb_rule_names xkb_names; + struct xkb_keymap *xkb_keymap; int fds[2]; }; @@ -103,16 +116,28 @@ struct backend_android { struct backend_android *backend = NULL; void lorie_key_event(void __unused *b, uint8_t state, uint16_t key) { - if (!backend) return; - - lorie_event e; - memset(&e, 0, sizeof(lorie_event)); - - e.type = ACTION_KEY; - e.key.state = state; - e.key.key = key; - - write(backend->fds[0], &e, sizeof(lorie_event)); + if (!backend) return; + + lorie_event e; + memset(&e, 0, sizeof(lorie_event)); + + e.type = ACTION_KEY; + e.key.state = state; + e.key.key = key; + + write(backend->fds[0], &e, sizeof(lorie_event)); +} + +void lorie_layout_change_event(void __unused *b, char *layout) { + if (!backend) return; + + lorie_event e; + memset(&e, 0, sizeof(lorie_event)); + + e.type = ACTION_LAYOUT_CHANGE; + e.layout_change.layout = layout; + + write(backend->fds[0], &e, sizeof(lorie_event)); } void lorie_pointer_event(void __unused *b, uint8_t state, uint16_t button, uint32_t x, uint32_t y) { @@ -216,14 +241,49 @@ Java_com_termux_wtermux_LorieService_onTouch(JNIEnv __unused *env, jobject __unu lorie_pointer_event(backend, (uint8_t) type, (uint16_t) button, (uint32_t) x, (uint32_t) y); } +int android_keycode_to_linux_event_code(int keyCode, int *eventCode, int *shift, char **sym); +void get_character_data(char** layout, int *shift, int *eventCode, char *ch); JNIEXPORT void JNICALL -Java_com_termux_wtermux_LorieService_onKey(JNIEnv __unused *env, jobject __unused instance, jlong __unused compositor, - jint type, jint key) { +Java_com_termux_wtermux_LorieService_onKey(JNIEnv *env, jobject instance, + jlong compositor, jint type, + jint keyCode, jint jshift, + jstring characters_) { + char *characters = NULL; + int eventCode = 0; + int shift = jshift; + if (characters_ != NULL) characters = (char*) (*env)->GetStringUTFChars(env, characters_, 0); + if (keyCode && !characters) { + android_keycode_to_linux_event_code(keyCode, &eventCode, &shift, &characters); + if (backend->xkb_names.layout != "us") { + lorie_layout_change_event(backend, "us"); + } + } + if (!keyCode && characters) { + char *layout = NULL; + get_character_data(&layout, &shift, &eventCode, characters); + if (layout && backend->xkb_names.layout != layout) { + lorie_layout_change_event(backend, layout); + } + } + LOGE("Keyboard input: keyCode: %d; eventCode: %d; characters: %s; shift: %d, type: %d", keyCode, eventCode, characters, shift, type); + if (!eventCode) return; - lorie_key_event(backend, (uint8_t) type, (uint16_t) key); + if (shift) + lorie_key_event(backend, (uint8_t) WL_KEYBOARD_KEY_STATE_PRESSED, (uint16_t) 42); // Send KEY_LEFTSHIFT + // For some reason Android do not send ACTION_DOWN for non-English characters + if (characters) + lorie_key_event(backend, (uint8_t) WL_KEYBOARD_KEY_STATE_PRESSED, (uint16_t) eventCode); + + lorie_key_event(backend, (uint8_t) type, (uint16_t) eventCode); + + if (shift) + lorie_key_event(backend, (uint8_t) WL_KEYBOARD_KEY_STATE_RELEASED, (uint16_t) 42); // Send KEY_LEFTSHIFT + + if (characters_ != NULL) (*env)->ReleaseStringUTFChars(env, characters_, characters); } + //////////////////////////////////////////////////////////////////////// void backend_init (struct callbacks *callbacks) { @@ -248,6 +308,29 @@ void backend_init (struct callbacks *callbacks) { eglChooseConfig (backend->dpy, sfcattr, &backend->config, 1, &num_configs_returned); checkEGLError(); backend->ctx = eglCreateContext (backend->dpy, backend->config, EGL_NO_CONTEXT, ctxattr); checkEGLError(); eglMakeCurrent(backend->dpy, EGL_NO_SURFACE, EGL_NO_SURFACE, backend->ctx); checkEGLError(); + + if (backend->xkb_context == NULL) { + backend->xkb_context = xkb_context_new(0); + if (backend->xkb_context == NULL) { + LOGE("failed to create XKB context\n"); + return; + } + } + + backend->xkb_names.rules = strdup("evdev"); + backend->xkb_names.model = strdup("pc105"); + backend->xkb_names.layout = strdup("us"); + + backend->xkb_keymap = xkb_keymap_new_from_names(backend->xkb_context, &backend->xkb_names, 0); + if (backend->xkb_keymap == NULL) { + LOGE("failed to compile global XKB keymap\n"); + LOGE(" tried rules %s, model %s, layout %s, variant %s, " + "options %s\n", + backend->xkb_names.rules, backend->xkb_names.model, + backend->xkb_names.layout, backend->xkb_names.variant, + backend->xkb_names.options); + return; + } } EGLDisplay __unused backend_get_egl_display (void) { @@ -291,6 +374,23 @@ void backend_dispatch_nonblocking (void) if (backend->callbacks.resize) backend->callbacks.resize(ev.window_change.width, ev.window_change.height); break; + case ACTION_LAYOUT_CHANGE: + xkb_keymap_unref(backend->xkb_keymap); + backend->xkb_names.layout = ev.layout_change.layout; + + backend->xkb_keymap = xkb_keymap_new_from_names(backend->xkb_context, &backend->xkb_names, 0); + if (backend->xkb_keymap == NULL) { + LOGE("failed to compile global XKB keymap\n"); + LOGE(" tried rules %s, model %s, layout %s, variant %s, " + "options %s\n", + backend->xkb_names.rules, backend->xkb_names.model, + backend->xkb_names.layout, backend->xkb_names.variant, + backend->xkb_names.options); + return; + } + + if (backend->callbacks.keymap) + backend->callbacks.keymap(); #if 0 #ifdef __ANDROID__ case ACTION_JNI_WIN_CHANGE: @@ -338,8 +438,17 @@ void backend_wait_for_events (int wayland_fd) { poll (fds, 2, -1); } -void __unused backend_get_keymap (int __unused *fd, int __unused *size) { - +void backend_get_keymap (int *fd, int *size) { + LOGI("Locale: %s", backend->xkb_names.layout); + char *string = xkb_keymap_get_as_string (backend->xkb_keymap, XKB_KEYMAP_FORMAT_TEXT_V1); + *size = strlen (string) + 1; + char *xdg_runtime_dir = "/data/data/com.termux/files/usr/tmp"; + *fd = open (xdg_runtime_dir, O_TMPFILE|O_RDWR|O_EXCL, 0600); + ftruncate (*fd, *size); + char *map = mmap (NULL, *size, PROT_READ|PROT_WRITE, MAP_SHARED, *fd, 0); + strcpy (map, string); + munmap (map, *size); + free (string); } long backend_get_timestamp (void) { @@ -352,4 +461,4 @@ void backend_get_dimensions(uint32_t *width, uint32_t *height) { if (width) *width = 480; if (height) *height = 800; } -#pragma clang diagnostic pop \ No newline at end of file +#pragma clang diagnostic pop diff --git a/app/src/main/jni/lorie/backend.h b/app/src/main/jni/lorie/backend.h index 3828ee4..e1cf141 100644 --- a/app/src/main/jni/lorie/backend.h +++ b/app/src/main/jni/lorie/backend.h @@ -13,6 +13,7 @@ struct callbacks { void (*mouse_button) (int button, int state); void (*key) (int key, int state); void (*modifiers) (struct modifier_state modifier_state); + void (*keymap) (); void (*terminate) (); }; diff --git a/app/src/main/jni/lorie/locale/android-keycodes.h b/app/src/main/jni/lorie/locale/android-keycodes.h new file mode 100644 index 0000000..1e225c5 --- /dev/null +++ b/app/src/main/jni/lorie/locale/android-keycodes.h @@ -0,0 +1,750 @@ +/* + * Copyright (C) 2006 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef __ANDROID_KEYCODES_H__ +#define __ANDROID_KEYCODES_H__ + +/** Key code constant: Unknown key code. */ +#define ANDROID_KEYCODE_UNKNOWN 0 +/** Key code constant: Soft Left key. + * Usually situated below the display on phones and used as a multi-function + * feature key for selecting a software defined function shown on the bottom left + * of the display. */ +#define ANDROID_KEYCODE_SOFT_LEFT 1 +/** Key code constant: Soft Right key. + * Usually situated below the display on phones and used as a multi-function + * feature key for selecting a software defined function shown on the bottom right + * of the display. */ +#define ANDROID_KEYCODE_SOFT_RIGHT 2 +/** Key code constant: Home key. + * This key is handled by the framework and is never delivered to applications. */ +#define ANDROID_KEYCODE_HOME 3 +/** Key code constant: Back key. */ +#define ANDROID_KEYCODE_BACK 4 +/** Key code constant: Call key. */ +#define ANDROID_KEYCODE_CALL 5 +/** Key code constant: End Call key. */ +#define ANDROID_KEYCODE_ENDCALL 6 +/** Key code constant: '0' key. */ +#define ANDROID_KEYCODE_0 7 +/** Key code constant: '1' key. */ +#define ANDROID_KEYCODE_1 8 +/** Key code constant: '2' key. */ +#define ANDROID_KEYCODE_2 9 +/** Key code constant: '3' key. */ +#define ANDROID_KEYCODE_3 10 +/** Key code constant: '4' key. */ +#define ANDROID_KEYCODE_4 11 +/** Key code constant: '5' key. */ +#define ANDROID_KEYCODE_5 12 +/** Key code constant: '6' key. */ +#define ANDROID_KEYCODE_6 13 +/** Key code constant: '7' key. */ +#define ANDROID_KEYCODE_7 14 +/** Key code constant: '8' key. */ +#define ANDROID_KEYCODE_8 15 +/** Key code constant: '9' key. */ +#define ANDROID_KEYCODE_9 16 +/** Key code constant: '*' key. */ +#define ANDROID_KEYCODE_STAR 17 +/** Key code constant: '#' key. */ +#define ANDROID_KEYCODE_POUND 18 +/** Key code constant: Directional Pad Up key. + * May also be synthesized from trackball motions. */ +#define ANDROID_KEYCODE_DPAD_UP 19 +/** Key code constant: Directional Pad Down key. + * May also be synthesized from trackball motions. */ +#define ANDROID_KEYCODE_DPAD_DOWN 20 +/** Key code constant: Directional Pad Left key. + * May also be synthesized from trackball motions. */ +#define ANDROID_KEYCODE_DPAD_LEFT 21 +/** Key code constant: Directional Pad Right key. + * May also be synthesized from trackball motions. */ +#define ANDROID_KEYCODE_DPAD_RIGHT 22 +/** Key code constant: Directional Pad Center key. + * May also be synthesized from trackball motions. */ +#define ANDROID_KEYCODE_DPAD_CENTER 23 +/** Key code constant: Volume Up key. + * Adjusts the speaker volume up. */ +#define ANDROID_KEYCODE_VOLUME_UP 24 +/** Key code constant: Volume Down key. + * Adjusts the speaker volume down. */ +#define ANDROID_KEYCODE_VOLUME_DOWN 25 +/** Key code constant: Power key. */ +#define ANDROID_KEYCODE_POWER 26 +/** Key code constant: Camera key. + * Used to launch a camera application or take pictures. */ +#define ANDROID_KEYCODE_CAMERA 27 +/** Key code constant: Clear key. */ +#define ANDROID_KEYCODE_CLEAR 28 +/** Key code constant: 'A' key. */ +#define ANDROID_KEYCODE_A 29 +/** Key code constant: 'B' key. */ +#define ANDROID_KEYCODE_B 30 +/** Key code constant: 'C' key. */ +#define ANDROID_KEYCODE_C 31 +/** Key code constant: 'D' key. */ +#define ANDROID_KEYCODE_D 32 +/** Key code constant: 'E' key. */ +#define ANDROID_KEYCODE_E 33 +/** Key code constant: 'F' key. */ +#define ANDROID_KEYCODE_F 34 +/** Key code constant: 'G' key. */ +#define ANDROID_KEYCODE_G 35 +/** Key code constant: 'H' key. */ +#define ANDROID_KEYCODE_H 36 +/** Key code constant: 'I' key. */ +#define ANDROID_KEYCODE_I 37 +/** Key code constant: 'J' key. */ +#define ANDROID_KEYCODE_J 38 +/** Key code constant: 'K' key. */ +#define ANDROID_KEYCODE_K 39 +/** Key code constant: 'L' key. */ +#define ANDROID_KEYCODE_L 40 +/** Key code constant: 'M' key. */ +#define ANDROID_KEYCODE_M 41 +/** Key code constant: 'N' key. */ +#define ANDROID_KEYCODE_N 42 +/** Key code constant: 'O' key. */ +#define ANDROID_KEYCODE_O 43 +/** Key code constant: 'P' key. */ +#define ANDROID_KEYCODE_P 44 +/** Key code constant: 'Q' key. */ +#define ANDROID_KEYCODE_Q 45 +/** Key code constant: 'R' key. */ +#define ANDROID_KEYCODE_R 46 +/** Key code constant: 'S' key. */ +#define ANDROID_KEYCODE_S 47 +/** Key code constant: 'T' key. */ +#define ANDROID_KEYCODE_T 48 +/** Key code constant: 'U' key. */ +#define ANDROID_KEYCODE_U 49 +/** Key code constant: 'V' key. */ +#define ANDROID_KEYCODE_V 50 +/** Key code constant: 'W' key. */ +#define ANDROID_KEYCODE_W 51 +/** Key code constant: 'X' key. */ +#define ANDROID_KEYCODE_X 52 +/** Key code constant: 'Y' key. */ +#define ANDROID_KEYCODE_Y 53 +/** Key code constant: 'Z' key. */ +#define ANDROID_KEYCODE_Z 54 +/** Key code constant: ',' key. */ +#define ANDROID_KEYCODE_COMMA 55 +/** Key code constant: '.' key. */ +#define ANDROID_KEYCODE_PERIOD 56 +/** Key code constant: Left Alt modifier key. */ +#define ANDROID_KEYCODE_ALT_LEFT 57 +/** Key code constant: Right Alt modifier key. */ +#define ANDROID_KEYCODE_ALT_RIGHT 58 +/** Key code constant: Left Shift modifier key. */ +#define ANDROID_KEYCODE_SHIFT_LEFT 59 +/** Key code constant: Right Shift modifier key. */ +#define ANDROID_KEYCODE_SHIFT_RIGHT 60 +/** Key code constant: Tab key. */ +#define ANDROID_KEYCODE_TAB 61 +/** Key code constant: Space key. */ +#define ANDROID_KEYCODE_SPACE 62 +/** Key code constant: Symbol modifier key. + * Used to enter alternate symbols. */ +#define ANDROID_KEYCODE_SYM 63 +/** Key code constant: Explorer special function key. + * Used to launch a browser application. */ +#define ANDROID_KEYCODE_EXPLORER 64 +/** Key code constant: Envelope special function key. + * Used to launch a mail application. */ +#define ANDROID_KEYCODE_ENVELOPE 65 +/** Key code constant: Enter key. */ +#define ANDROID_KEYCODE_ENTER 66 +/** Key code constant: Backspace key. + * Deletes characters before the insertion point, unlike {@link #KEYCODE_FORWARD_DEL}. */ +#define ANDROID_KEYCODE_DEL 67 +/** Key code constant: '`' (backtick) key. */ +#define ANDROID_KEYCODE_GRAVE 68 +/** Key code constant: '-'. */ +#define ANDROID_KEYCODE_MINUS 69 +/** Key code constant: '=' key. */ +#define ANDROID_KEYCODE_EQUALS 70 +/** Key code constant: '[' key. */ +#define ANDROID_KEYCODE_LEFT_BRACKET 71 +/** Key code constant: ']' key. */ +#define ANDROID_KEYCODE_RIGHT_BRACKET 72 +/** Key code constant: '\' key. */ +#define ANDROID_KEYCODE_BACKSLASH 73 +/** Key code constant: ';' key. */ +#define ANDROID_KEYCODE_SEMICOLON 74 +/** Key code constant: ''' (apostrophe) key. */ +#define ANDROID_KEYCODE_APOSTROPHE 75 +/** Key code constant: '/' key. */ +#define ANDROID_KEYCODE_SLASH 76 +/** Key code constant: '@' key. */ +#define ANDROID_KEYCODE_AT 77 +/** Key code constant: Number modifier key. + * Used to enter numeric symbols. + * This key is not Num Lock; it is more like {@link #KEYCODE_ALT_LEFT} and is + * interpreted as an ALT key by {@link android.text.method.MetaKeyKeyListener}. */ +#define ANDROID_KEYCODE_NUM 78 +/** Key code constant: Headset Hook key. + * Used to hang up calls and stop media. */ +#define ANDROID_KEYCODE_HEADSETHOOK 79 +/** Key code constant: Camera Focus key. + * Used to focus the camera. */ +#define ANDROID_KEYCODE_FOCUS 80 // *Camera* focus +/** Key code constant: '+' key. */ +#define ANDROID_KEYCODE_PLUS 81 +/** Key code constant: Menu key. */ +#define ANDROID_KEYCODE_MENU 82 +/** Key code constant: Notification key. */ +#define ANDROID_KEYCODE_NOTIFICATION 83 +/** Key code constant: Search key. */ +#define ANDROID_KEYCODE_SEARCH 84 +/** Key code constant: Play/Pause media key. */ +#define ANDROID_KEYCODE_MEDIA_PLAY_PAUSE 85 +/** Key code constant: Stop media key. */ +#define ANDROID_KEYCODE_MEDIA_STOP 86 +/** Key code constant: Play Next media key. */ +#define ANDROID_KEYCODE_MEDIA_NEXT 87 +/** Key code constant: Play Previous media key. */ +#define ANDROID_KEYCODE_MEDIA_PREVIOUS 88 +/** Key code constant: Rewind media key. */ +#define ANDROID_KEYCODE_MEDIA_REWIND 89 +/** Key code constant: Fast Forward media key. */ +#define ANDROID_KEYCODE_MEDIA_FAST_FORWARD 90 +/** Key code constant: Mute key. + * Mutes the microphone, unlike {@link #KEYCODE_VOLUME_MUTE}. */ +#define ANDROID_KEYCODE_MUTE 91 +/** Key code constant: Page Up key. */ +#define ANDROID_KEYCODE_PAGE_UP 92 +/** Key code constant: Page Down key. */ +#define ANDROID_KEYCODE_PAGE_DOWN 93 +/** Key code constant: Picture Symbols modifier key. + * Used to switch symbol sets (Emoji, Kao-moji). */ +#define ANDROID_KEYCODE_PICTSYMBOLS 94 // switch symbol-sets (Emoji,Kao-moji) +/** Key code constant: Switch Charset modifier key. + * Used to switch character sets (Kanji, Katakana). */ +#define ANDROID_KEYCODE_SWITCH_CHARSET 95 // switch char-sets (Kanji,Katakana) +/** Key code constant: A Button key. + * On a game controller, the A button should be either the button labeled A + * or the first button on the bottom row of controller buttons. */ +#define ANDROID_KEYCODE_BUTTON_A 96 +/** Key code constant: B Button key. + * On a game controller, the B button should be either the button labeled B + * or the second button on the bottom row of controller buttons. */ +#define ANDROID_KEYCODE_BUTTON_B 97 +/** Key code constant: C Button key. + * On a game controller, the C button should be either the button labeled C + * or the third button on the bottom row of controller buttons. */ +#define ANDROID_KEYCODE_BUTTON_C 98 +/** Key code constant: X Button key. + * On a game controller, the X button should be either the button labeled X + * or the first button on the upper row of controller buttons. */ +#define ANDROID_KEYCODE_BUTTON_X 99 +/** Key code constant: Y Button key. + * On a game controller, the Y button should be either the button labeled Y + * or the second button on the upper row of controller buttons. */ +#define ANDROID_KEYCODE_BUTTON_Y 100 +/** Key code constant: Z Button key. + * On a game controller, the Z button should be either the button labeled Z + * or the third button on the upper row of controller buttons. */ +#define ANDROID_KEYCODE_BUTTON_Z 101 +/** Key code constant: L1 Button key. + * On a game controller, the L1 button should be either the button labeled L1 (or L) + * or the top left trigger button. */ +#define ANDROID_KEYCODE_BUTTON_L1 102 +/** Key code constant: R1 Button key. + * On a game controller, the R1 button should be either the button labeled R1 (or R) + * or the top right trigger button. */ +#define ANDROID_KEYCODE_BUTTON_R1 103 +/** Key code constant: L2 Button key. + * On a game controller, the L2 button should be either the button labeled L2 + * or the bottom left trigger button. */ +#define ANDROID_KEYCODE_BUTTON_L2 104 +/** Key code constant: R2 Button key. + * On a game controller, the R2 button should be either the button labeled R2 + * or the bottom right trigger button. */ +#define ANDROID_KEYCODE_BUTTON_R2 105 +/** Key code constant: Left Thumb Button key. + * On a game controller, the left thumb button indicates that the left (or only) + * joystick is pressed. */ +#define ANDROID_KEYCODE_BUTTON_THUMBL 106 +/** Key code constant: Right Thumb Button key. + * On a game controller, the right thumb button indicates that the right + * joystick is pressed. */ +#define ANDROID_KEYCODE_BUTTON_THUMBR 107 +/** Key code constant: Start Button key. + * On a game controller, the button labeled Start. */ +#define ANDROID_KEYCODE_BUTTON_START 108 +/** Key code constant: Select Button key. + * On a game controller, the button labeled Select. */ +#define ANDROID_KEYCODE_BUTTON_SELECT 109 +/** Key code constant: Mode Button key. + * On a game controller, the button labeled Mode. */ +#define ANDROID_KEYCODE_BUTTON_MODE 110 +/** Key code constant: Escape key. */ +#define ANDROID_KEYCODE_ESCAPE 111 +/** Key code constant: Forward Delete key. + * Deletes characters ahead of the insertion point, unlike {@link #KEYCODE_DEL}. */ +#define ANDROID_KEYCODE_FORWARD_DEL 112 +/** Key code constant: Left Control modifier key. */ +#define ANDROID_KEYCODE_CTRL_LEFT 113 +/** Key code constant: Right Control modifier key. */ +#define ANDROID_KEYCODE_CTRL_RIGHT 114 +/** Key code constant: Caps Lock key. */ +#define ANDROID_KEYCODE_CAPS_LOCK 115 +/** Key code constant: Scroll Lock key. */ +#define ANDROID_KEYCODE_SCROLL_LOCK 116 +/** Key code constant: Left Meta modifier key. */ +#define ANDROID_KEYCODE_META_LEFT 117 +/** Key code constant: Right Meta modifier key. */ +#define ANDROID_KEYCODE_META_RIGHT 118 +/** Key code constant: Function modifier key. */ +#define ANDROID_KEYCODE_FUNCTION 119 +/** Key code constant: System Request / Print Screen key. */ +#define ANDROID_KEYCODE_SYSRQ 120 +/** Key code constant: Break / Pause key. */ +#define ANDROID_KEYCODE_BREAK 121 +/** Key code constant: Home Movement key. + * Used for scrolling or moving the cursor around to the start of a line + * or to the top of a list. */ +#define ANDROID_KEYCODE_MOVE_HOME 122 +/** Key code constant: End Movement key. + * Used for scrolling or moving the cursor around to the end of a line + * or to the bottom of a list. */ +#define ANDROID_KEYCODE_MOVE_END 123 +/** Key code constant: Insert key. + * Toggles insert / overwrite edit mode. */ +#define ANDROID_KEYCODE_INSERT 124 +/** Key code constant: Forward key. + * Navigates forward in the history stack. Complement of {@link #KEYCODE_BACK}. */ +#define ANDROID_KEYCODE_FORWARD 125 +/** Key code constant: Play media key. */ +#define ANDROID_KEYCODE_MEDIA_PLAY 126 +/** Key code constant: Pause media key. */ +#define ANDROID_KEYCODE_MEDIA_PAUSE 127 +/** Key code constant: Close media key. + * May be used to close a CD tray, for example. */ +#define ANDROID_KEYCODE_MEDIA_CLOSE 128 +/** Key code constant: Eject media key. + * May be used to eject a CD tray, for example. */ +#define ANDROID_KEYCODE_MEDIA_EJECT 129 +/** Key code constant: Record media key. */ +#define ANDROID_KEYCODE_MEDIA_RECORD 130 +/** Key code constant: F1 key. */ +#define ANDROID_KEYCODE_F1 131 +/** Key code constant: F2 key. */ +#define ANDROID_KEYCODE_F2 132 +/** Key code constant: F3 key. */ +#define ANDROID_KEYCODE_F3 133 +/** Key code constant: F4 key. */ +#define ANDROID_KEYCODE_F4 134 +/** Key code constant: F5 key. */ +#define ANDROID_KEYCODE_F5 135 +/** Key code constant: F6 key. */ +#define ANDROID_KEYCODE_F6 136 +/** Key code constant: F7 key. */ +#define ANDROID_KEYCODE_F7 137 +/** Key code constant: F8 key. */ +#define ANDROID_KEYCODE_F8 138 +/** Key code constant: F9 key. */ +#define ANDROID_KEYCODE_F9 139 +/** Key code constant: F10 key. */ +#define ANDROID_KEYCODE_F10 140 +/** Key code constant: F11 key. */ +#define ANDROID_KEYCODE_F11 141 +/** Key code constant: F12 key. */ +#define ANDROID_KEYCODE_F12 142 +/** Key code constant: Num Lock key. + * This is the Num Lock key; it is different from {@link #KEYCODE_NUM}. + * This key alters the behavior of other keys on the numeric keypad. */ +#define ANDROID_KEYCODE_NUM_LOCK 143 +/** Key code constant: Numeric keypad '0' key. */ +#define ANDROID_KEYCODE_NUMPAD_0 144 +/** Key code constant: Numeric keypad '1' key. */ +#define ANDROID_KEYCODE_NUMPAD_1 145 +/** Key code constant: Numeric keypad '2' key. */ +#define ANDROID_KEYCODE_NUMPAD_2 146 +/** Key code constant: Numeric keypad '3' key. */ +#define ANDROID_KEYCODE_NUMPAD_3 147 +/** Key code constant: Numeric keypad '4' key. */ +#define ANDROID_KEYCODE_NUMPAD_4 148 +/** Key code constant: Numeric keypad '5' key. */ +#define ANDROID_KEYCODE_NUMPAD_5 149 +/** Key code constant: Numeric keypad '6' key. */ +#define ANDROID_KEYCODE_NUMPAD_6 150 +/** Key code constant: Numeric keypad '7' key. */ +#define ANDROID_KEYCODE_NUMPAD_7 151 +/** Key code constant: Numeric keypad '8' key. */ +#define ANDROID_KEYCODE_NUMPAD_8 152 +/** Key code constant: Numeric keypad '9' key. */ +#define ANDROID_KEYCODE_NUMPAD_9 153 +/** Key code constant: Numeric keypad '/' key (for division). */ +#define ANDROID_KEYCODE_NUMPAD_DIVIDE 154 +/** Key code constant: Numeric keypad '*' key (for multiplication). */ +#define ANDROID_KEYCODE_NUMPAD_MULTIPLY 155 +/** Key code constant: Numeric keypad '-' key (for subtraction). */ +#define ANDROID_KEYCODE_NUMPAD_SUBTRACT 156 +/** Key code constant: Numeric keypad '+' key (for addition). */ +#define ANDROID_KEYCODE_NUMPAD_ADD 157 +/** Key code constant: Numeric keypad '.' key (for decimals or digit grouping). */ +#define ANDROID_KEYCODE_NUMPAD_DOT 158 +/** Key code constant: Numeric keypad ',' key (for decimals or digit grouping). */ +#define ANDROID_KEYCODE_NUMPAD_COMMA 159 +/** Key code constant: Numeric keypad Enter key. */ +#define ANDROID_KEYCODE_NUMPAD_ENTER 160 +/** Key code constant: Numeric keypad '=' key. */ +#define ANDROID_KEYCODE_NUMPAD_EQUALS 161 +/** Key code constant: Numeric keypad '(' key. */ +#define ANDROID_KEYCODE_NUMPAD_LEFT_PAREN 162 +/** Key code constant: Numeric keypad ')' key. */ +#define ANDROID_KEYCODE_NUMPAD_RIGHT_PAREN 163 +/** Key code constant: Volume Mute key. + * Mutes the speaker, unlike {@link #KEYCODE_MUTE}. + * This key should normally be implemented as a toggle such that the first press + * mutes the speaker and the second press restores the original volume. */ +#define ANDROID_KEYCODE_VOLUME_MUTE 164 +/** Key code constant: Info key. + * Common on TV remotes to show additional information related to what is + * currently being viewed. */ +#define ANDROID_KEYCODE_INFO 165 +/** Key code constant: Channel up key. + * On TV remotes, increments the television channel. */ +#define ANDROID_KEYCODE_CHANNEL_UP 166 +/** Key code constant: Channel down key. + * On TV remotes, decrements the television channel. */ +#define ANDROID_KEYCODE_CHANNEL_DOWN 167 +/** Key code constant: Zoom in key. */ +#define ANDROID_KEYCODE_ZOOM_IN 168 +/** Key code constant: Zoom out key. */ +#define ANDROID_KEYCODE_ZOOM_OUT 169 +/** Key code constant: TV key. + * On TV remotes, switches to viewing live TV. */ +#define ANDROID_KEYCODE_TV 170 +/** Key code constant: Window key. + * On TV remotes, toggles picture-in-picture mode or other windowing functions. + * On Android Wear devices, triggers a display offset. */ +#define ANDROID_KEYCODE_WINDOW 171 +/** Key code constant: Guide key. + * On TV remotes, shows a programming guide. */ +#define ANDROID_KEYCODE_GUIDE 172 +/** Key code constant: DVR key. + * On some TV remotes, switches to a DVR mode for recorded shows. */ +#define ANDROID_KEYCODE_DVR 173 +/** Key code constant: Bookmark key. + * On some TV remotes, bookmarks content or web pages. */ +#define ANDROID_KEYCODE_BOOKMARK 174 +/** Key code constant: Toggle captions key. + * Switches the mode for closed-captioning text, for example during television shows. */ +#define ANDROID_KEYCODE_CAPTIONS 175 +/** Key code constant: Settings key. + * Starts the system settings activity. */ +#define ANDROID_KEYCODE_SETTINGS 176 +/** Key code constant: TV power key. + * On TV remotes, toggles the power on a television screen. */ +#define ANDROID_KEYCODE_TV_POWER 177 +/** Key code constant: TV input key. + * On TV remotes, switches the input on a television screen. */ +#define ANDROID_KEYCODE_TV_INPUT 178 +/** Key code constant: Set-top-box power key. + * On TV remotes, toggles the power on an external Set-top-box. */ +#define ANDROID_KEYCODE_STB_POWER 179 +/** Key code constant: Set-top-box input key. + * On TV remotes, switches the input mode on an external Set-top-box. */ +#define ANDROID_KEYCODE_STB_INPUT 180 +/** Key code constant: A/V Receiver power key. + * On TV remotes, toggles the power on an external A/V Receiver. */ +#define ANDROID_KEYCODE_AVR_POWER 181 +/** Key code constant: A/V Receiver input key. + * On TV remotes, switches the input mode on an external A/V Receiver. */ +#define ANDROID_KEYCODE_AVR_INPUT 182 +/** Key code constant: Red "programmable" key. + * On TV remotes, acts as a contextual/programmable key. */ +#define ANDROID_KEYCODE_PROG_RED 183 +/** Key code constant: Green "programmable" key. + * On TV remotes, actsas a contextual/programmable key. */ +#define ANDROID_KEYCODE_PROG_GREEN 184 +/** Key code constant: Yellow "programmable" key. + * On TV remotes, acts as a contextual/programmable key. */ +#define ANDROID_KEYCODE_PROG_YELLOW 185 +/** Key code constant: Blue "programmable" key. + * On TV remotes, acts as a contextual/programmable key. */ +#define ANDROID_KEYCODE_PROG_BLUE 186 +/** Key code constant: App switch key. + * Should bring up the application switcher dialog. */ +#define ANDROID_KEYCODE_APP_SWITCH 187 +/** Key code constant: Generic Game Pad Button #1.*/ +#define ANDROID_KEYCODE_BUTTON_1 188 +/** Key code constant: Generic Game Pad Button #2.*/ +#define ANDROID_KEYCODE_BUTTON_2 189 +/** Key code constant: Generic Game Pad Button #3.*/ +#define ANDROID_KEYCODE_BUTTON_3 190 +/** Key code constant: Generic Game Pad Button #4.*/ +#define ANDROID_KEYCODE_BUTTON_4 191 +/** Key code constant: Generic Game Pad Button #5.*/ +#define ANDROID_KEYCODE_BUTTON_5 192 +/** Key code constant: Generic Game Pad Button #6.*/ +#define ANDROID_KEYCODE_BUTTON_6 193 +/** Key code constant: Generic Game Pad Button #7.*/ +#define ANDROID_KEYCODE_BUTTON_7 194 +/** Key code constant: Generic Game Pad Button #8.*/ +#define ANDROID_KEYCODE_BUTTON_8 195 +/** Key code constant: Generic Game Pad Button #9.*/ +#define ANDROID_KEYCODE_BUTTON_9 196 +/** Key code constant: Generic Game Pad Button #10.*/ +#define ANDROID_KEYCODE_BUTTON_10 197 +/** Key code constant: Generic Game Pad Button #11.*/ +#define ANDROID_KEYCODE_BUTTON_11 198 +/** Key code constant: Generic Game Pad Button #12.*/ +#define ANDROID_KEYCODE_BUTTON_12 199 +/** Key code constant: Generic Game Pad Button #13.*/ +#define ANDROID_KEYCODE_BUTTON_13 200 +/** Key code constant: Generic Game Pad Button #14.*/ +#define ANDROID_KEYCODE_BUTTON_14 201 +/** Key code constant: Generic Game Pad Button #15.*/ +#define ANDROID_KEYCODE_BUTTON_15 202 +/** Key code constant: Generic Game Pad Button #16.*/ +#define ANDROID_KEYCODE_BUTTON_16 203 +/** Key code constant: Language Switch key. + * Toggles the current input language such as switching between English and Japanese on + * a QWERTY keyboard. On some devices, the same function may be performed by + * pressing Shift+Spacebar. */ +#define ANDROID_KEYCODE_LANGUAGE_SWITCH 204 +/** Key code constant: Manner Mode key. + * Toggles silent or vibrate mode on and off to make the device behave more politely + * in certain settings such as on a crowded train. On some devices, the key may only + * operate when long-pressed. */ +#define ANDROID_KEYCODE_MANNER_MODE 205 +/** Key code constant: 3D Mode key. + * Toggles the display between 2D and 3D mode. */ +#define ANDROID_KEYCODE_3D_MODE 206 +/** Key code constant: Contacts special function key. + * Used to launch an address book application. */ +#define ANDROID_KEYCODE_CONTACTS 207 +/** Key code constant: Calendar special function key. + * Used to launch a calendar application. */ +#define ANDROID_KEYCODE_CALENDAR 208 +/** Key code constant: Music special function key. + * Used to launch a music player application. */ +#define ANDROID_KEYCODE_MUSIC 209 +/** Key code constant: Calculator special function key. + * Used to launch a calculator application. */ +#define ANDROID_KEYCODE_CALCULATOR 210 +/** Key code constant: Japanese full-width / half-width key. */ +#define ANDROID_KEYCODE_ZENKAKU_HANKAKU 211 +/** Key code constant: Japanese alphanumeric key. */ +#define ANDROID_KEYCODE_EISU 212 +/** Key code constant: Japanese non-conversion key. */ +#define ANDROID_KEYCODE_MUHENKAN 213 +/** Key code constant: Japanese conversion key. */ +#define ANDROID_KEYCODE_HENKAN 214 +/** Key code constant: Japanese katakana / hiragana key. */ +#define ANDROID_KEYCODE_KATAKANA_HIRAGANA 215 +/** Key code constant: Japanese Yen key. */ +#define ANDROID_KEYCODE_YEN 216 +/** Key code constant: Japanese Ro key. */ +#define ANDROID_KEYCODE_RO 217 +/** Key code constant: Japanese kana key. */ +#define ANDROID_KEYCODE_KANA 218 +/** Key code constant: Assist key. + * Launches the global assist activity. Not delivered to applications. */ +#define ANDROID_KEYCODE_ASSIST 219 +/** Key code constant: Brightness Down key. + * Adjusts the screen brightness down. */ +#define ANDROID_KEYCODE_BRIGHTNESS_DOWN 220 +/** Key code constant: Brightness Up key. + * Adjusts the screen brightness up. */ +#define ANDROID_KEYCODE_BRIGHTNESS_UP 221 +/** Key code constant: Audio Track key. + * Switches the audio tracks. */ +#define ANDROID_KEYCODE_MEDIA_AUDIO_TRACK 222 +/** Key code constant: Sleep key. + * Puts the device to sleep. Behaves somewhat like {@link #KEYCODE_POWER} but it + * has no effect if the device is already asleep. */ +#define ANDROID_KEYCODE_SLEEP 223 +/** Key code constant: Wakeup key. + * Wakes up the device. Behaves somewhat like {@link #KEYCODE_POWER} but it + * has no effect if the device is already awake. */ +#define ANDROID_KEYCODE_WAKEUP 224 +/** Key code constant: Pairing key. + * Initiates peripheral pairing mode. Useful for pairing remote control + * devices or game controllers, especially if no other input mode is + * available. */ +#define ANDROID_KEYCODE_PAIRING 225 +/** Key code constant: Media Top Menu key. + * Goes to the top of media menu. */ +#define ANDROID_KEYCODE_MEDIA_TOP_MENU 226 +/** Key code constant: '11' key. */ +#define ANDROID_KEYCODE_11 227 +/** Key code constant: '12' key. */ +#define ANDROID_KEYCODE_12 228 +/** Key code constant: Last Channel key. + * Goes to the last viewed channel. */ +#define ANDROID_KEYCODE_LAST_CHANNEL 229 +/** Key code constant: TV data service key. + * Displays data services like weather, sports. */ +#define ANDROID_KEYCODE_TV_DATA_SERVICE 230 +/** Key code constant: Voice Assist key. + * Launches the global voice assist activity. Not delivered to applications. */ +#define ANDROID_KEYCODE_VOICE_ASSIST 231 +/** Key code constant: Radio key. + * Toggles TV service / Radio service. */ +#define ANDROID_KEYCODE_TV_RADIO_SERVICE 232 +/** Key code constant: Teletext key. + * Displays Teletext service. */ +#define ANDROID_KEYCODE_TV_TELETEXT 233 +/** Key code constant: Number entry key. + * Initiates to enter multi-digit channel nubmber when each digit key is assigned + * for selecting separate channel. Corresponds to Number Entry Mode (0x1D) of CEC + * User Control Code. */ +#define ANDROID_KEYCODE_TV_NUMBER_ENTRY 234 +/** Key code constant: Analog Terrestrial key. + * Switches to analog terrestrial broadcast service. */ +#define ANDROID_KEYCODE_TV_TERRESTRIAL_ANALOG 235 +/** Key code constant: Digital Terrestrial key. + * Switches to digital terrestrial broadcast service. */ +#define ANDROID_KEYCODE_TV_TERRESTRIAL_DIGITAL 236 +/** Key code constant: Satellite key. + * Switches to digital satellite broadcast service. */ +#define ANDROID_KEYCODE_TV_SATELLITE 237 +/** Key code constant: BS key. + * Switches to BS digital satellite broadcasting service available in Japan. */ +#define ANDROID_KEYCODE_TV_SATELLITE_BS 238 +/** Key code constant: CS key. + * Switches to CS digital satellite broadcasting service available in Japan. */ +#define ANDROID_KEYCODE_TV_SATELLITE_CS 239 +/** Key code constant: BS/CS key. + * Toggles between BS and CS digital satellite services. */ +#define ANDROID_KEYCODE_TV_SATELLITE_SERVICE 240 +/** Key code constant: Toggle Network key. + * Toggles selecting broacast services. */ +#define ANDROID_KEYCODE_TV_NETWORK 241 +/** Key code constant: Antenna/Cable key. + * Toggles broadcast input source between antenna and cable. */ +#define ANDROID_KEYCODE_TV_ANTENNA_CABLE 242 +/** Key code constant: HDMI #1 key. + * Switches to HDMI input #1. */ +#define ANDROID_KEYCODE_TV_INPUT_HDMI_1 243 +/** Key code constant: HDMI #2 key. + * Switches to HDMI input #2. */ +#define ANDROID_KEYCODE_TV_INPUT_HDMI_2 244 +/** Key code constant: HDMI #3 key. + * Switches to HDMI input #3. */ +#define ANDROID_KEYCODE_TV_INPUT_HDMI_3 245 +/** Key code constant: HDMI #4 key. + * Switches to HDMI input #4. */ +#define ANDROID_KEYCODE_TV_INPUT_HDMI_4 246 +/** Key code constant: Composite #1 key. + * Switches to composite video input #1. */ +#define ANDROID_KEYCODE_TV_INPUT_COMPOSITE_1 247 +/** Key code constant: Composite #2 key. + * Switches to composite video input #2. */ +#define ANDROID_KEYCODE_TV_INPUT_COMPOSITE_2 248 +/** Key code constant: Component #1 key. + * Switches to component video input #1. */ +#define ANDROID_KEYCODE_TV_INPUT_COMPONENT_1 249 +/** Key code constant: Component #2 key. + * Switches to component video input #2. */ +#define ANDROID_KEYCODE_TV_INPUT_COMPONENT_2 250 +/** Key code constant: VGA #1 key. + * Switches to VGA (analog RGB) input #1. */ +#define ANDROID_KEYCODE_TV_INPUT_VGA_1 251 +/** Key code constant: Audio description key. + * Toggles audio description off / on. */ +#define ANDROID_KEYCODE_TV_AUDIO_DESCRIPTION 252 +/** Key code constant: Audio description mixing volume up key. + * Louden audio description volume as compared with normal audio volume. */ +#define ANDROID_KEYCODE_TV_AUDIO_DESCRIPTION_MIX_UP 253 +/** Key code constant: Audio description mixing volume down key. + * Lessen audio description volume as compared with normal audio volume. */ +#define ANDROID_KEYCODE_TV_AUDIO_DESCRIPTION_MIX_DOWN 254 +/** Key code constant: Zoom mode key. + * Changes Zoom mode (Normal, Full, Zoom, Wide-zoom, etc.) */ +#define ANDROID_KEYCODE_TV_ZOOM_MODE 255 +/** Key code constant: Contents menu key. + * Goes to the title list. Corresponds to Contents Menu (0x0B) of CEC User Control + * Code */ +#define ANDROID_KEYCODE_TV_CONTENTS_MENU 256 +/** Key code constant: Media context menu key. + * Goes to the context menu of media contents. Corresponds to Media Context-sensitive + * Menu (0x11) of CEC User Control Code. */ +#define ANDROID_KEYCODE_TV_MEDIA_CONTEXT_MENU 257 +/** Key code constant: Timer programming key. + * Goes to the timer recording menu. Corresponds to Timer Programming (0x54) of + * CEC User Control Code. */ +#define ANDROID_KEYCODE_TV_TIMER_PROGRAMMING 258 +/** Key code constant: Help key. */ +#define ANDROID_KEYCODE_HELP 259 +/** Key code constant: Navigate to previous key. + * Goes backward by one item in an ordered collection of items. */ +#define ANDROID_KEYCODE_NAVIGATE_PREVIOUS 260 +/** Key code constant: Navigate to next key. + * Advances to the next item in an ordered collection of items. */ +#define ANDROID_KEYCODE_NAVIGATE_NEXT 261 +/** Key code constant: Navigate in key. + * Activates the item that currently has focus or expands to the next level of a navigation + * hierarchy. */ +#define ANDROID_KEYCODE_NAVIGATE_IN 262 +/** Key code constant: Navigate out key. + * Backs out one level of a navigation hierarchy or collapses the item that currently has + * focus. */ +#define ANDROID_KEYCODE_NAVIGATE_OUT 263 +/** Key code constant: Primary stem key for Wear + * Main power/reset button on watch. */ +#define ANDROID_KEYCODE_STEM_PRIMARY 264 +/** Key code constant: Generic stem key 1 for Wear */ +#define ANDROID_KEYCODE_STEM_1 265 +/** Key code constant: Generic stem key 2 for Wear */ +#define ANDROID_KEYCODE_STEM_2 266 +/** Key code constant: Generic stem key 3 for Wear */ +#define ANDROID_KEYCODE_STEM_3 267 +/** Key code constant: Directional Pad Up-Left */ +#define ANDROID_KEYCODE_DPAD_UP_LEFT 268 +/** Key code constant: Directional Pad Down-Left */ +#define ANDROID_KEYCODE_DPAD_DOWN_LEFT 269 +/** Key code constant: Directional Pad Up-Right */ +#define ANDROID_KEYCODE_DPAD_UP_RIGHT 270 +/** Key code constant: Directional Pad Down-Right */ +#define ANDROID_KEYCODE_DPAD_DOWN_RIGHT 271 +/** Key code constant: Skip forward media key. */ +#define ANDROID_KEYCODE_MEDIA_SKIP_FORWARD 272 +/** Key code constant: Skip backward media key. */ +#define ANDROID_KEYCODE_MEDIA_SKIP_BACKWARD 273 +/** Key code constant: Step forward media key. + * Steps media forward, one frame at a time. */ +#define ANDROID_KEYCODE_MEDIA_STEP_FORWARD 274 +/** Key code constant: Step backward media key. + * Steps media backward, one frame at a time. */ +#define ANDROID_KEYCODE_MEDIA_STEP_BACKWARD 275 +/** Key code constant: put device to sleep unless a wakelock is held. */ +#define ANDROID_KEYCODE_SOFT_SLEEP 276 +/** Key code constant: Cut key. */ +#define ANDROID_KEYCODE_CUT 277 +/** Key code constant: Copy key. */ +#define ANDROID_KEYCODE_COPY 278 +/** Key code constant: Paste key. */ +#define ANDROID_KEYCODE_PASTE 279 +/** Key code constant: Consumed by the system for navigation up */ +#define ANDROID_KEYCODE_SYSTEM_NAVIGATION_UP 280 +/** Key code constant: Consumed by the system for navigation down */ +#define ANDROID_KEYCODE_SYSTEM_NAVIGATION_DOWN 281 +/** Key code constant: Consumed by the system for navigation left*/ +#define ANDROID_KEYCODE_SYSTEM_NAVIGATION_LEFT 282 +/** Key code constant: Consumed by the system for navigation right */ +#define ANDROID_KEYCODE_SYSTEM_NAVIGATION_RIGHT 283 +/** Key code constant: Show all apps */ +#define ANDROID_KEYCODE_ALL_APPS 284 +/** Key code constant: Refresh key. */ +#define ANDROID_KEYCODE_REFRESH 285 + +#endif // __ANDROID_KEYCODES_H__ diff --git a/app/src/main/jni/lorie/locale/android-utils.c b/app/src/main/jni/lorie/locale/android-utils.c new file mode 100644 index 0000000..d89fd39 --- /dev/null +++ b/app/src/main/jni/lorie/locale/android-utils.c @@ -0,0 +1,248 @@ +#pragma clang diagnostic push +#pragma ide diagnostic ignored "readability-non-const-parameter" +#pragma ide diagnostic ignored "OCDFAInspection" +#include +#include +#include +#include "input-event-codes.h" +#include "android-keycodes.h" +#include "evdev-keycodes.h" +#include "keymaps.h" + +#define KEYCODE1(c) case ANDROID_KEYCODE_##c : *eventCode = KEY_##c; return 0 +#define KEYCODE2(kc, ec) case ANDROID_KEYCODE_##kc : *eventCode = KEY_##ec; return 0 +#define KEYCODE2shift(kc, ec) case ANDROID_KEYCODE_##kc : *eventCode = KEY_##ec; *shift = 1; return 0 +int android_keycode_to_linux_event_code(int keyCode, int *eventCode, int *shift, char **sym) { + if (!eventCode || !sym) return 1; + *sym = NULL; + switch (keyCode) { + KEYCODE1(1); + KEYCODE1(2); + KEYCODE1(3); + KEYCODE1(4); + KEYCODE1(5); + KEYCODE1(6); + KEYCODE1(7); + KEYCODE1(8); + KEYCODE1(9); + KEYCODE1(0); + KEYCODE1(A); + KEYCODE1(B); + KEYCODE1(C); + KEYCODE1(D); + KEYCODE1(E); + KEYCODE1(F); + KEYCODE1(G); + KEYCODE1(H); + KEYCODE1(I); + KEYCODE1(J); + KEYCODE1(K); + KEYCODE1(L); + KEYCODE1(M); + KEYCODE1(N); + KEYCODE1(O); + KEYCODE1(P); + KEYCODE1(Q); + KEYCODE1(R); + KEYCODE1(S); + KEYCODE1(T); + KEYCODE1(U); + KEYCODE1(V); + KEYCODE1(W); + KEYCODE1(X); + KEYCODE1(Y); + KEYCODE1(Z); + KEYCODE1(COMMA); + KEYCODE2(PERIOD, DOT); + KEYCODE2(ALT_LEFT, LEFTALT); + KEYCODE2(ALT_RIGHT, RIGHTALT); + KEYCODE2(SHIFT_LEFT, LEFTSHIFT); + KEYCODE2(SHIFT_RIGHT, RIGHTSHIFT); + KEYCODE1(TAB); + KEYCODE1(SPACE); + KEYCODE2(EXPLORER, WWW); + KEYCODE2(ENVELOPE, MAIL); + KEYCODE1(ENTER); + KEYCODE2(DEL, BACKSPACE); + KEYCODE1(GRAVE); + KEYCODE1(MINUS); + KEYCODE2(EQUALS, EQUAL); + KEYCODE2(LEFT_BRACKET, LEFTBRACE); + KEYCODE2(RIGHT_BRACKET, RIGHTBRACE); + KEYCODE1(BACKSLASH); + KEYCODE1(SEMICOLON); + KEYCODE1(APOSTROPHE); + KEYCODE1(SLASH); + KEYCODE2shift(AT, 2); + KEYCODE2shift(POUND, 3); + KEYCODE2shift(STAR, 8); + KEYCODE2shift(PLUS, EQUAL); + KEYCODE1(MENU); + KEYCODE1(SEARCH); + KEYCODE2(MEDIA_PLAY_PAUSE, PLAYPAUSE); + KEYCODE2(MEDIA_PLAY, PLAY); + KEYCODE2(MEDIA_STOP, STOP_RECORD); + KEYCODE2(MEDIA_NEXT, NEXTSONG); + KEYCODE2(MEDIA_PREVIOUS, PREVIOUSSONG); + KEYCODE2(MEDIA_REWIND, REWIND); + KEYCODE2(MEDIA_FAST_FORWARD, FASTFORWARD); + KEYCODE2(MEDIA_CLOSE, CLOSECD); + KEYCODE2(MEDIA_EJECT, EJECTCD); + KEYCODE2(MEDIA_RECORD, RECORD); + KEYCODE2(MUTE, MICMUTE); + KEYCODE2(PAGE_UP, PAGEUP); + KEYCODE2(PAGE_DOWN, PAGEDOWN); + KEYCODE2(ESCAPE, ESC); + KEYCODE2(FORWARD_DEL, DELETE); + KEYCODE2(CTRL_LEFT, LEFTCTRL); + KEYCODE2(CTRL_RIGHT, RIGHTCTRL); + KEYCODE2(CAPS_LOCK, CAPSLOCK); + KEYCODE2(SCROLL_LOCK, SCROLLLOCK); + KEYCODE2(NUM_LOCK, NUMLOCK); + KEYCODE2(META_LEFT, LEFTMETA); + KEYCODE2(META_RIGHT, RIGHTMETA); + KEYCODE1(SYSRQ); // Print screen key + KEYCODE1(BREAK); // Pause key + KEYCODE2(MOVE_HOME, HOME); + KEYCODE2(MOVE_END, END); + KEYCODE1(INSERT); + KEYCODE1(FORWARD); + KEYCODE1(BACK); + KEYCODE1(F1); + KEYCODE1(F2); + KEYCODE1(F3); + KEYCODE1(F4); + KEYCODE1(F5); + KEYCODE1(F6); + KEYCODE1(F7); + KEYCODE1(F8); + KEYCODE1(F9); + KEYCODE1(F10); + KEYCODE1(F11); + KEYCODE1(F12); + KEYCODE2(NUMPAD_0, KP0); + KEYCODE2(NUMPAD_1, KP1); + KEYCODE2(NUMPAD_2, KP2); + KEYCODE2(NUMPAD_3, KP3); + KEYCODE2(NUMPAD_4, KP4); + KEYCODE2(NUMPAD_5, KP5); + KEYCODE2(NUMPAD_6, KP6); + KEYCODE2(NUMPAD_7, KP7); + KEYCODE2(NUMPAD_8, KP8); + KEYCODE2(NUMPAD_9, KP9); + KEYCODE2(NUMPAD_DIVIDE, KPSLASH); + KEYCODE2(NUMPAD_MULTIPLY, KPASTERISK); + KEYCODE2(NUMPAD_SUBTRACT, KPMINUS); + KEYCODE2(NUMPAD_ADD, KPPLUS); + KEYCODE2(NUMPAD_DOT, KPDOT); + KEYCODE2(NUMPAD_COMMA, KPCOMMA); + KEYCODE2(NUMPAD_ENTER, KPENTER); + KEYCODE2(NUMPAD_EQUALS, KPEQUAL); + KEYCODE2(NUMPAD_LEFT_PAREN, KPLEFTPAREN); + KEYCODE2(NUMPAD_RIGHT_PAREN, KPRIGHTPAREN); + KEYCODE1(POWER); + KEYCODE1(CAMERA); + KEYCODE2(VOLUME_MUTE, MUTE); + KEYCODE2(VOLUME_UP, VOLUMEUP); + KEYCODE2(VOLUME_DOWN, VOLUMEDOWN); + KEYCODE1(INFO); + KEYCODE2(CHANNEL_UP, CHANNELUP); + KEYCODE2(CHANNEL_DOWN, CHANNELDOWN); + KEYCODE2(ZOOM_IN, ZOOMIN); + KEYCODE2(ZOOM_OUT, ZOOMOUT); + KEYCODE1(TV); + KEYCODE2(BOOKMARK, BOOKMARKS); + KEYCODE2(PROG_RED, RED); + KEYCODE2(PROG_GREEN, GREEN); + KEYCODE2(PROG_YELLOW, YELLOW); + KEYCODE2(PROG_BLUE, BLUE); + KEYCODE2(CONTACTS, ADDRESSBOOK); + KEYCODE1(CALENDAR); + KEYCODE2(MUSIC, PLAYER); + KEYCODE2(CALCULATOR, CALC); + KEYCODE2(BRIGHTNESS_DOWN, BRIGHTNESSDOWN); + KEYCODE2(BRIGHTNESS_UP, BRIGHTNESSUP); + default: return KEY_RESERVED; + } + return KEY_RESERVED; +} +#undef KEYCODE1 +#undef KEYCODE2 + +#define K(c1, c2) case EVDEV_##c1: return KEY_##c2 +int keyCode2eventCode(int kc) { + int keyCode = kc - KEYCODE_MIN; + switch(keyCode) { + K(TLDE, GRAVE); + + K(AE01, 1); + K(AE02, 2); + K(AE03, 3); + K(AE04, 4); + K(AE05, 5); + K(AE06, 6); + K(AE07, 7); + K(AE08, 8); + K(AE09, 9); + K(AE10, 0); + K(AE11, MINUS); + K(AE12, EQUAL); + + K(AD01, Q); + K(AD02, W); + K(AD03, E); + K(AD04, R); + K(AD05, T); + K(AD06, Y); + K(AD07, U); + K(AD08, I); + K(AD09, O); + K(AD10, P); + K(AD11, LEFTBRACE); + K(AD12, RIGHTBRACE); + + K(AC01, A); + K(AC02, S); + K(AC03, D); + K(AC04, F); + K(AC05, G); + K(AC06, H); + K(AC07, J); + K(AC08, K); + K(AC09, L); + K(AC10, SEMICOLON); + K(AC11, APOSTROPHE); + + K(AB01, Z); + K(AB02, X); + K(AB03, C); + K(AB04, V); + K(AB05, B); + K(AB06, N); + K(AB07, M); + K(AB08, COMMA); + K(AB09, DOT); + K(AB10, SLASH); + default: return 0; + } +} + +void get_character_data(char** layout, int *shift, int *eventCode, char *ch) { + int i, j; + for (i=0; lorie_keymaps[i]; i++) { + for (j=0; j<(KEYCODE_MAX-KEYCODE_MIN); j++) { + if (!strcmp(ch, lorie_keymaps[i]->keysyms[j].normal)) { + *layout = lorie_keymaps[i]->name; + *shift = 0; + *eventCode = keyCode2eventCode(j+KEYCODE_MIN); + } + if (!strcmp(ch, lorie_keymaps[i]->keysyms[j].shift)) { + *layout = lorie_keymaps[i]->name; + *shift = 1; + *eventCode = keyCode2eventCode(j+KEYCODE_MIN); + } + } + } +} + +#pragma clang diagnostic pop diff --git a/app/src/main/jni/lorie/locale/evdev-keycodes.h b/app/src/main/jni/lorie/locale/evdev-keycodes.h new file mode 100644 index 0000000..6fe56c1 --- /dev/null +++ b/app/src/main/jni/lorie/locale/evdev-keycodes.h @@ -0,0 +1,296 @@ +#pragma clang diagnostic push +#pragma ide diagnostic ignored "OCUnusedMacroInspection" +#ifndef __EVDEV_KEYCODES_H__ +#define EVDEV___EVDEV_KEYCODES_H__ + +// Added for pc105 compatibility +#define EVDEV_LSGT 94 + +#define EVDEV_TLDE 49 +#define EVDEV_AE01 10 +#define EVDEV_AE02 11 +#define EVDEV_AE03 12 +#define EVDEV_AE04 13 +#define EVDEV_AE05 14 +#define EVDEV_AE06 15 +#define EVDEV_AE07 16 +#define EVDEV_AE08 17 +#define EVDEV_AE09 18 +#define EVDEV_AE10 19 +#define EVDEV_AE11 20 +#define EVDEV_AE12 21 +#define EVDEV_BKSP 22 + +#define EVDEV_TAB 23 +#define EVDEV_AD01 24 +#define EVDEV_AD02 25 +#define EVDEV_AD03 26 +#define EVDEV_AD04 27 +#define EVDEV_AD05 28 +#define EVDEV_AD06 29 +#define EVDEV_AD07 30 +#define EVDEV_AD08 31 +#define EVDEV_AD09 32 +#define EVDEV_AD10 33 +#define EVDEV_AD11 34 +#define EVDEV_AD12 35 +#define EVDEV_BKSL 51 +#define EVDEV_AC12 BKSL +#define EVDEV_RTRN 36 + +#define EVDEV_CAPS 66 +#define EVDEV_AC01 38 +#define EVDEV_AC02 39 +#define EVDEV_AC03 40 +#define EVDEV_AC04 41 +#define EVDEV_AC05 42 +#define EVDEV_AC06 43 +#define EVDEV_AC07 44 +#define EVDEV_AC08 45 +#define EVDEV_AC09 46 +#define EVDEV_AC10 47 +#define EVDEV_AC11 48 + +#define EVDEV_LFSH 50 +#define EVDEV_AB01 52 +#define EVDEV_AB02 53 +#define EVDEV_AB03 54 +#define EVDEV_AB04 55 +#define EVDEV_AB05 56 +#define EVDEV_AB06 57 +#define EVDEV_AB07 58 +#define EVDEV_AB08 59 +#define EVDEV_AB09 60 +#define EVDEV_AB10 61 +#define EVDEV_RTSH 62 + +#define EVDEV_LALT 64 +#define EVDEV_LCTL 37 +#define EVDEV_SPCE 65 +#define EVDEV_RCTL 105 +#define EVDEV_RALT 108 +// Microsoft keyboard extra keys +#define EVDEV_LWIN 133 +#define EVDEV_RWIN 134 +#define EVDEV_COMP 135 +#define EVDEV_MENU COMP + +#define EVDEV_ESC 9 +#define EVDEV_FK01 67 +#define EVDEV_FK02 68 +#define EVDEV_FK03 69 +#define EVDEV_FK04 70 +#define EVDEV_FK05 71 +#define EVDEV_FK06 72 +#define EVDEV_FK07 73 +#define EVDEV_FK08 74 +#define EVDEV_FK09 75 +#define EVDEV_FK10 76 +#define EVDEV_FK11 95 +#define EVDEV_FK12 96 + +#define EVDEV_PRSC 107 +//#define EVDEV_SYRQ 107 +#define EVDEV_SCLK 78 +#define EVDEV_PAUS 127 +//#define EVDEV_BRK 419 + +#define EVDEV_INS 118 +#define EVDEV_HOME 110 +#define EVDEV_PGUP 112 +#define EVDEV_DELE 119 +#define EVDEV_END 115 +#define EVDEV_PGDN 117 + +#define EVDEV_UP 111 +#define EVDEV_LEFT 113 +#define EVDEV_DOWN 116 +#define EVDEV_RGHT 114 + +#define EVDEV_NMLK 77 +#define EVDEV_KPDV 106 +#define EVDEV_KPMU 63 +#define EVDEV_KPSU 82 + +#define EVDEV_KP7 79 +#define EVDEV_KP8 80 +#define EVDEV_KP9 81 +#define EVDEV_KPAD 86 + +#define EVDEV_KP4 83 +#define EVDEV_KP5 84 +#define EVDEV_KP6 85 + +#define EVDEV_KP1 87 +#define EVDEV_KP2 88 +#define EVDEV_KP3 89 +#define EVDEV_KPEN 104 + +#define EVDEV_KP0 90 +#define EVDEV_KPDL 91 +#define EVDEV_KPEQ 125 + +#define EVDEV_FK13 191 +#define EVDEV_FK14 192 +#define EVDEV_FK15 193 +#define EVDEV_FK16 194 +#define EVDEV_FK17 195 +#define EVDEV_FK18 196 +#define EVDEV_FK19 197 +#define EVDEV_FK20 198 +#define EVDEV_FK21 199 +#define EVDEV_FK22 200 +#define EVDEV_FK23 201 +#define EVDEV_FK24 202 + +// Keys that are generated on Japanese keyboards + +//#define EVDEV_HZTG 93 // Hankaku/Zenkakau toggle - not actually used +#define EVDEV_HZTG TLDE +#define EVDEV_HKTG 101 // Hiragana/Katakana toggle +#define EVDEV_AB11 97 // backslash/underscore +#define EVDEV_HENK 100 // Henkan +#define EVDEV_MUHE 102 // Muhenkan +#define EVDEV_AE13 132 // Yen +#define EVDEV_KATA 98 // Katakana +#define EVDEV_HIRA 99 // Hiragana +#define EVDEV_JPCM 103 // KPJPComma +// #define EVDEV_RO 97 // Romaji + +// Keys that are generated on Korean keyboards + +#define EVDEV_HNGL 130 // Hangul Latin toggle +#define EVDEV_HJCV 131 // Hangul to Hanja conversion + + // Solaris compatibility + +#define EVDEV_LMTA LWIN +#define EVDEV_RMTA RWIN +#define EVDEV_MUTE 121 +#define EVDEV_VOL_MINUS 122 +#define EVDEV_VOL_PLUS 123 +#define EVDEV_POWR 124 +#define EVDEV_STOP 136 +#define EVDEV_AGAI 137 +#define EVDEV_PROP 138 +#define EVDEV_UNDO 139 +#define EVDEV_FRNT 140 +#define EVDEV_COPY 141 +#define EVDEV_OPEN 142 +#define EVDEV_PAST 143 +#define EVDEV_FIND 144 +#define EVDEV_CUT 145 +#define EVDEV_HELP 146 + +// Extended keys that may be generated on "Internet" keyboards. +// evdev has standardize names for these. + +#define EVDEV_LNFD 109 // #define EVDEV_KEY_LINEFEED 101 +#define EVDEV_I120 120 // #define EVDEV_KEY_MACRO 112 +#define EVDEV_I126 126 // #define EVDEV_KEY_KPPLUSMINUS 118 +#define EVDEV_I128 128 // #define EVDEV_KEY_SCALE 120 +#define EVDEV_I129 129 // #define EVDEV_KEY_KPCOMMA 121 +#define EVDEV_I147 147 // #define EVDEV_KEY_MENU 139 +#define EVDEV_I148 148 // #define EVDEV_KEY_CALC 140 +#define EVDEV_I149 149 // #define EVDEV_KEY_SETUP 141 +#define EVDEV_I150 150 // #define EVDEV_KEY_SLEEP 142 +#define EVDEV_I151 151 // #define EVDEV_KEY_WAKEUP 143 +#define EVDEV_I152 152 // #define EVDEV_KEY_FILE 144 +#define EVDEV_I153 153 // #define EVDEV_KEY_SENDFILE 145 +#define EVDEV_I154 154 // #define EVDEV_KEY_DELETEFILE 146 +#define EVDEV_I155 155 // #define EVDEV_KEY_XFER 147 +#define EVDEV_I156 156 // #define EVDEV_KEY_PROG1 148 +#define EVDEV_I157 157 // #define EVDEV_KEY_PROG2 149 +#define EVDEV_I158 158 // #define EVDEV_KEY_WWW 150 +#define EVDEV_I159 159 // #define EVDEV_KEY_MSDOS 151 +#define EVDEV_I160 160 // #define EVDEV_KEY_COFFEE 152 +#define EVDEV_I161 161 // #define EVDEV_KEY_DIRECTION 153 +#define EVDEV_I162 162 // #define EVDEV_KEY_CYCLEWINDOWS 154 +#define EVDEV_I163 163 // #define EVDEV_KEY_MAIL 155 +#define EVDEV_I164 164 // #define EVDEV_KEY_BOOKMARKS 156 +#define EVDEV_I165 165 // #define EVDEV_KEY_COMPUTER 157 +#define EVDEV_I166 166 // #define EVDEV_KEY_BACK 158 +#define EVDEV_I167 167 // #define EVDEV_KEY_FORWARD 159 +#define EVDEV_I168 168 // #define EVDEV_KEY_CLOSECD 160 +#define EVDEV_I169 169 // #define EVDEV_KEY_EJECTCD 161 +#define EVDEV_I170 170 // #define EVDEV_KEY_EJECTCLOSECD 162 +#define EVDEV_I171 171 // #define EVDEV_KEY_NEXTSONG 163 +#define EVDEV_I172 172 // #define EVDEV_KEY_PLAYPAUSE 164 +#define EVDEV_I173 173 // #define EVDEV_KEY_PREVIOUSSONG 165 +#define EVDEV_I174 174 // #define EVDEV_KEY_STOPCD 166 +#define EVDEV_I175 175 // #define EVDEV_KEY_RECORD 167 +#define EVDEV_I176 176 // #define EVDEV_KEY_REWIND 168 +#define EVDEV_I177 177 // #define EVDEV_KEY_PHONE 169 +#define EVDEV_I178 178 // #define EVDEV_KEY_ISO 170 +#define EVDEV_I179 179 // #define EVDEV_KEY_CONFIG 171 +#define EVDEV_I180 180 // #define EVDEV_KEY_HOMEPAGE 172 +#define EVDEV_I181 181 // #define EVDEV_KEY_REFRESH 173 +#define EVDEV_I182 182 // #define EVDEV_KEY_EXIT 174 +#define EVDEV_I183 183 // #define EVDEV_KEY_MOVE 175 +#define EVDEV_I184 184 // #define EVDEV_KEY_EDIT 176 +#define EVDEV_I185 185 // #define EVDEV_KEY_SCROLLUP 177 +#define EVDEV_I186 186 // #define EVDEV_KEY_SCROLLDOWN 178 +#define EVDEV_I187 187 // #define EVDEV_KEY_KPLEFTPAREN 179 +#define EVDEV_I188 188 // #define EVDEV_KEY_KPRIGHTPAREN 180 +#define EVDEV_I189 189 // #define EVDEV_KEY_NEW 181 +#define EVDEV_I190 190 // #define EVDEV_KEY_REDO 182 +#define EVDEV_I208 208 // #define EVDEV_KEY_PLAYCD 200 +#define EVDEV_I209 209 // #define EVDEV_KEY_PAUSECD 201 +#define EVDEV_I210 210 // #define EVDEV_KEY_PROG3 202 +#define EVDEV_I211 211 // #define EVDEV_KEY_PROG4 203 conflicts with AB11 +#define EVDEV_I212 212 // #define EVDEV_KEY_DASHBOARD 204 +#define EVDEV_I213 213 // #define EVDEV_KEY_SUSPEND 205 +#define EVDEV_I214 214 // #define EVDEV_KEY_CLOSE 206 +#define EVDEV_I215 215 // #define EVDEV_KEY_PLAY 207 +#define EVDEV_I216 216 // #define EVDEV_KEY_FASTFORWARD 208 +#define EVDEV_I217 217 // #define EVDEV_KEY_BASSBOOST 209 +#define EVDEV_I218 218 // #define EVDEV_KEY_PRINT 210 +#define EVDEV_I219 219 // #define EVDEV_KEY_HP 211 +#define EVDEV_I220 220 // #define EVDEV_KEY_CAMERA 212 +#define EVDEV_I221 221 // #define EVDEV_KEY_SOUND 213 +#define EVDEV_I222 222 // #define EVDEV_KEY_QUESTION 214 +#define EVDEV_I223 223 // #define EVDEV_KEY_EMAIL 215 +#define EVDEV_I224 224 // #define EVDEV_KEY_CHAT 216 +#define EVDEV_I225 225 // #define EVDEV_KEY_SEARCH 217 +#define EVDEV_I226 226 // #define EVDEV_KEY_CONNECT 218 +#define EVDEV_I227 227 // #define EVDEV_KEY_FINANCE 219 +#define EVDEV_I228 228 // #define EVDEV_KEY_SPORT 220 +#define EVDEV_I229 229 // #define EVDEV_KEY_SHOP 221 +#define EVDEV_I230 230 // #define EVDEV_KEY_ALTERASE 222 +#define EVDEV_I231 231 // #define EVDEV_KEY_CANCEL 223 +#define EVDEV_I232 232 // #define EVDEV_KEY_BRIGHTNESSDOWN 224 +#define EVDEV_I233 233 // #define EVDEV_KEY_BRIGHTNESSUP 225 +#define EVDEV_I234 234 // #define EVDEV_KEY_MEDIA 226 +#define EVDEV_I235 235 // #define EVDEV_KEY_SWITCHVIDEOMODE 227 +#define EVDEV_I236 236 // #define EVDEV_KEY_KBDILLUMTOGGLE 228 +#define EVDEV_I237 237 // #define EVDEV_KEY_KBDILLUMDOWN 229 +#define EVDEV_I238 238 // #define EVDEV_KEY_KBDILLUMUP 230 +#define EVDEV_I239 239 // #define EVDEV_KEY_SEND 231 +#define EVDEV_I240 240 // #define EVDEV_KEY_REPLY 232 +#define EVDEV_I241 241 // #define EVDEV_KEY_FORWARDMAIL 233 +#define EVDEV_I242 242 // #define EVDEV_KEY_SAVE 234 +#define EVDEV_I243 243 // #define EVDEV_KEY_DOCUMENTS 235 +#define EVDEV_I244 244 // #define EVDEV_KEY_BATTERY 236 +#define EVDEV_I245 245 // #define EVDEV_KEY_BLUETOOTH 237 +#define EVDEV_I246 246 // #define EVDEV_KEY_WLAN 238 +#define EVDEV_I247 247 // #define EVDEV_KEY_UWB 239 +#define EVDEV_I248 248 // #define EVDEV_KEY_UNKNOWN 240 +#define EVDEV_I249 249 // #define EVDEV_KEY_VIDEO_NEXT 241 +#define EVDEV_I250 250 // #define EVDEV_KEY_VIDEO_PREV 242 +#define EVDEV_I251 251 // #define EVDEV_KEY_BRIGHTNESS_CYCLE 243 +#define EVDEV_I252 252 // #define EVDEV_KEY_BRIGHTNESS_ZERO 244 +#define EVDEV_I253 253 // #define EVDEV_KEY_DISPLAY_OFF 245 +#define EVDEV_I254 254 // #define EVDEV_KEY_WWAN 246 +#define EVDEV_I255 255 // #define EVDEV_KEY_RFKILL 247 + +// Fake keycodes for virtual keys +#define EVDEV_LVL3 92 +#define EVDEV_MDSW 203 +#define EVDEV_ALT 204 +#define EVDEV_META 205 +#define EVDEV_SUPR 206 +#define EVDEV_HYPR 207 + +#endif // __EVDEV_KEYCODES_H__ + +#pragma clang diagnostic pop \ No newline at end of file diff --git a/app/src/main/jni/lorie/locale/generator b/app/src/main/jni/lorie/locale/generator new file mode 100755 index 0000000..7e29b5b Binary files /dev/null and b/app/src/main/jni/lorie/locale/generator differ diff --git a/app/src/main/jni/lorie/locale/generator.c b/app/src/main/jni/lorie/locale/generator.c new file mode 100644 index 0000000..aac4a68 --- /dev/null +++ b/app/src/main/jni/lorie/locale/generator.c @@ -0,0 +1,230 @@ +// gcc -o generator generator.c -lxkbcommon + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "../log.h" + +#define KEYCODE_MIN 8 +#define KEYCODE_MAX 255 +#define EVDEV_OFFSET 8 +#define SYM_LENGTH 7 + +struct keysym { + char normal[SYM_LENGTH]; + char shift[SYM_LENGTH]; +}; + +#define KEYMAPS_LENGTH 1 +struct keymap { + char *name; + struct keysym keysyms[KEYCODE_MAX - KEYCODE_MIN]; +} keymaps[KEYMAPS_LENGTH] = {0}; + +void handler(int sig) { + void *array[10]; + size_t size; + + // get void*'s for all entries on the stack + size = backtrace(array, 10); + + // print out all the frames to stderr + fprintf(stderr, "Error: signal %d:\n", sig); + backtrace_symbols_fd(array, size, STDERR_FILENO); + exit(1); +} + + +struct iterator_args { + struct keymap *keymap; + uint8_t symcase; +}; +void iterate_normal(struct xkb_keymap *xkb_keymap, xkb_keycode_t key, void *data) { + struct iterator_args *ita = data; + if (!ita || !ita->keymap) return; + + struct keymap *keymap = ita->keymap; + struct xkb_state *xkb_state = NULL; + char *buf = NULL; + xkb_keysym_t ks = 0; + + xkb_state = xkb_state_new(xkb_keymap); + if (xkb_state == NULL) { + LOGE("failed to create xkb_state"); + }; + + if (ita->symcase) { + xkb_state_update_key(xkb_state, KEY_LEFTSHIFT + EVDEV_OFFSET, XKB_KEY_DOWN); + buf = keymap->keysyms[key].shift; + } else { + buf = keymap->keysyms[key].normal; + } + + ks = xkb_state_key_get_one_sym(xkb_state, key); + xkb_keysym_to_utf8(ks, buf, SYM_LENGTH); + + xkb_state_unref(xkb_state); +} + +struct keymap* parse_keymap(struct xkb_context *ctx, char *name) { + if (!ctx || !name) return NULL; + + struct xkb_rule_names xkb_names = {0}; + struct xkb_keymap *xkb_keymap = NULL; + struct iterator_args ita = {0}; + struct keymap *result = NULL; + + xkb_names.rules = strdup("evdev"); + xkb_names.model = strdup("pc105"); + xkb_names.layout = strdup(name); + + xkb_keymap = xkb_keymap_new_from_names(ctx, &xkb_names, 0); + if (xkb_keymap == NULL) { + LOGE("failed to compile global XKB keymap\n"); + LOGE(" tried rules %s, model %s, layout %s, variant %s, " + "options %s\n", + xkb_names.rules, xkb_names.model, + xkb_names.layout, xkb_names.variant, + xkb_names.options); + goto end; + } + + result = calloc(1, sizeof(struct keymap)); + if (!result) { + LOGE("failed to allocate struct keymap"); + goto end; + } + + result->name = strdup(name); + + ita.keymap = result; + ita.symcase = 0; + xkb_keymap_key_for_each(xkb_keymap, iterate_normal, &ita); + + ita.symcase = 1; + xkb_keymap_key_for_each(xkb_keymap, iterate_normal, &ita); + +end: + if (xkb_keymap) xkb_keymap_unref(xkb_keymap); + if (xkb_names.rules) free((void*)xkb_names.rules); + if (xkb_names.model) free((void*)xkb_names.model); + if (xkb_names.layout) free((void*)xkb_names.layout); + return result; +} + +void print_header(void) { + printf( "#include \n" + "#define SYM_LENGTH %d\n" + "#define KEYCODE_MIN 8\n" + "#define KEYCODE_MAX 255\n" + "#define NOSYM {{0}, {0}}\n" + "struct lorie_keymap {\n" + "\tchar *name;\n" + "\tstruct keysym {\n" + "\t\tchar normal[SYM_LENGTH];\n" + "\t\tchar shift[SYM_LENGTH];\n" + "\t} keysyms[KEYCODE_MAX - KEYCODE_MIN];\n" + "};\n\n", + SYM_LENGTH + ); +} + +void print_sym(char *sym) { + int i; + if (strlen(sym)) { + printf("{"); + for(i=0; i 0 && i < SYM_LENGTH) printf(", "); + printf("%d", (inormal) && strlen(keysym->shift)) { + printf("\t\t{"); + print_sym(keysym->normal); + printf(", "); + print_sym(keysym->shift); + printf("}"); + } else printf("\t\tNOSYM"); +} + +int ks_displayable(int keycode, char *sym) { + if (strlen(sym) == 0) return 0; + if (strlen(sym) == 1) { + switch(sym[0]) { + case 8: + case 10: + case 13: + case 27: + case 30: + case 127: + return 0; + } + } + return 1; +} + +void keymap_print(struct keymap* keymap) { + if (!keymap) return; + int i; + + printf( "struct lorie_keymap lorie_keymap_%s = {\n" + "\t.name = \"%s\",\n" + "\t.keysyms = {\n", + keymap->name, keymap->name + ); + for (i=0; i<(KEYCODE_MAX-KEYCODE_MIN); i++) { + print_keysym(&keymap->keysyms[i]); + if (i!=(KEYCODE_MAX-KEYCODE_MIN-1)) printf(","); + + printf(" // keyCode: %d;", i + KEYCODE_MIN); + if (ks_displayable(i, keymap->keysyms[i].normal)) printf(" normal: \"%s\";", keymap->keysyms[i].normal); + if (ks_displayable(i, keymap->keysyms[i].shift)) printf(" shift: \"%s\";", keymap->keysyms[i].shift); + printf("\n"); + } + printf("\t}\n};\n"); +} + +int main(void) { + signal(SIGSEGV, handler); + int i; + struct xkb_context *xkb_context = NULL; + struct xkb_rule_names xkb_names = {0}; + struct xkb_keymap *xkb_keymap = NULL; + struct keymap* map = NULL; + char *keymaps[] = { "ru", "il", NULL }; + + if (xkb_context == NULL) { + xkb_context = xkb_context_new(0); + if (xkb_context == NULL) { + LOGE("failed to create XKB context\n"); + return 1; + } + } + print_header(); + for (i=0; keymaps[i]; i++) { + map = parse_keymap(xkb_context, keymaps[i]); + if (!map) { + LOGE("failed to parse keymap \"us\""); + return 1; + } + keymap_print(map); + } + + printf("\nstruct lorie_keymap *lorie_keymaps[] = {"); + for (i=0; keymaps[i]; i++) { + printf("&lorie_keymap_%s, ", keymaps[i]); + } + printf("NULL};\n"); +} diff --git a/app/src/main/jni/lorie/locale/input-event-codes.h b/app/src/main/jni/lorie/locale/input-event-codes.h new file mode 100644 index 0000000..a9902a7 --- /dev/null +++ b/app/src/main/jni/lorie/locale/input-event-codes.h @@ -0,0 +1,861 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Input event codes + * + * *** IMPORTANT *** + * This file is not only included from C-code but also from devicetree source + * files. As such this file MUST only contain comments and defines. + * + * Copyright (c) 1999-2002 Vojtech Pavlik + * Copyright (c) 2015 Hans de Goede + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ +#ifndef _INPUT_EVENT_CODES_H +#define _INPUT_EVENT_CODES_H + +/* + * Device properties and quirks + */ + +#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ +#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ +#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ +#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ +#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ +#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ +#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ + +#define INPUT_PROP_MAX 0x1f +#define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) + +/* + * Event types + */ + +#define EV_SYN 0x00 +#define EV_KEY 0x01 +#define EV_REL 0x02 +#define EV_ABS 0x03 +#define EV_MSC 0x04 +#define EV_SW 0x05 +#define EV_LED 0x11 +#define EV_SND 0x12 +#define EV_REP 0x14 +#define EV_FF 0x15 +#define EV_PWR 0x16 +#define EV_FF_STATUS 0x17 +#define EV_MAX 0x1f +#define EV_CNT (EV_MAX+1) + +/* + * Synchronization events. + */ + +#define SYN_REPORT 0 +#define SYN_CONFIG 1 +#define SYN_MT_REPORT 2 +#define SYN_DROPPED 3 +#define SYN_MAX 0xf +#define SYN_CNT (SYN_MAX+1) + +/* + * Keys and buttons + * + * Most of the keys/buttons are modeled after USB HUT 1.12 + * (see http://www.usb.org/developers/hidpage). + * Abbreviations in the comments: + * AC - Application Control + * AL - Application Launch Button + * SC - System Control + */ + +#define KEY_RESERVED 0 +#define KEY_ESC 1 +#define KEY_1 2 +#define KEY_2 3 +#define KEY_3 4 +#define KEY_4 5 +#define KEY_5 6 +#define KEY_6 7 +#define KEY_7 8 +#define KEY_8 9 +#define KEY_9 10 +#define KEY_0 11 +#define KEY_MINUS 12 +#define KEY_EQUAL 13 +#define KEY_BACKSPACE 14 +#define KEY_TAB 15 +#define KEY_Q 16 +#define KEY_W 17 +#define KEY_E 18 +#define KEY_R 19 +#define KEY_T 20 +#define KEY_Y 21 +#define KEY_U 22 +#define KEY_I 23 +#define KEY_O 24 +#define KEY_P 25 +#define KEY_LEFTBRACE 26 +#define KEY_RIGHTBRACE 27 +#define KEY_ENTER 28 +#define KEY_LEFTCTRL 29 +#define KEY_A 30 +#define KEY_S 31 +#define KEY_D 32 +#define KEY_F 33 +#define KEY_G 34 +#define KEY_H 35 +#define KEY_J 36 +#define KEY_K 37 +#define KEY_L 38 +#define KEY_SEMICOLON 39 +#define KEY_APOSTROPHE 40 +#define KEY_GRAVE 41 +#define KEY_LEFTSHIFT 42 +#define KEY_BACKSLASH 43 +#define KEY_Z 44 +#define KEY_X 45 +#define KEY_C 46 +#define KEY_V 47 +#define KEY_B 48 +#define KEY_N 49 +#define KEY_M 50 +#define KEY_COMMA 51 +#define KEY_DOT 52 +#define KEY_SLASH 53 +#define KEY_RIGHTSHIFT 54 +#define KEY_KPASTERISK 55 +#define KEY_LEFTALT 56 +#define KEY_SPACE 57 +#define KEY_CAPSLOCK 58 +#define KEY_F1 59 +#define KEY_F2 60 +#define KEY_F3 61 +#define KEY_F4 62 +#define KEY_F5 63 +#define KEY_F6 64 +#define KEY_F7 65 +#define KEY_F8 66 +#define KEY_F9 67 +#define KEY_F10 68 +#define KEY_NUMLOCK 69 +#define KEY_SCROLLLOCK 70 +#define KEY_KP7 71 +#define KEY_KP8 72 +#define KEY_KP9 73 +#define KEY_KPMINUS 74 +#define KEY_KP4 75 +#define KEY_KP5 76 +#define KEY_KP6 77 +#define KEY_KPPLUS 78 +#define KEY_KP1 79 +#define KEY_KP2 80 +#define KEY_KP3 81 +#define KEY_KP0 82 +#define KEY_KPDOT 83 + +#define KEY_ZENKAKUHANKAKU 85 +#define KEY_102ND 86 +#define KEY_F11 87 +#define KEY_F12 88 +#define KEY_RO 89 +#define KEY_KATAKANA 90 +#define KEY_HIRAGANA 91 +#define KEY_HENKAN 92 +#define KEY_KATAKANAHIRAGANA 93 +#define KEY_MUHENKAN 94 +#define KEY_KPJPCOMMA 95 +#define KEY_KPENTER 96 +#define KEY_RIGHTCTRL 97 +#define KEY_KPSLASH 98 +#define KEY_SYSRQ 99 +#define KEY_RIGHTALT 100 +#define KEY_LINEFEED 101 +#define KEY_HOME 102 +#define KEY_UP 103 +#define KEY_PAGEUP 104 +#define KEY_LEFT 105 +#define KEY_RIGHT 106 +#define KEY_END 107 +#define KEY_DOWN 108 +#define KEY_PAGEDOWN 109 +#define KEY_INSERT 110 +#define KEY_DELETE 111 +#define KEY_MACRO 112 +#define KEY_MUTE 113 +#define KEY_VOLUMEDOWN 114 +#define KEY_VOLUMEUP 115 +#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_KPEQUAL 117 +#define KEY_KPPLUSMINUS 118 +#define KEY_PAUSE 119 +#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ + +#define KEY_KPCOMMA 121 +#define KEY_HANGEUL 122 +#define KEY_HANGUEL KEY_HANGEUL +#define KEY_HANJA 123 +#define KEY_YEN 124 +#define KEY_LEFTMETA 125 +#define KEY_RIGHTMETA 126 +#define KEY_COMPOSE 127 + +#define KEY_STOP 128 /* AC Stop */ +#define KEY_AGAIN 129 +#define KEY_PROPS 130 /* AC Properties */ +#define KEY_UNDO 131 /* AC Undo */ +#define KEY_FRONT 132 +#define KEY_COPY 133 /* AC Copy */ +#define KEY_OPEN 134 /* AC Open */ +#define KEY_PASTE 135 /* AC Paste */ +#define KEY_FIND 136 /* AC Search */ +#define KEY_CUT 137 /* AC Cut */ +#define KEY_HELP 138 /* AL Integrated Help Center */ +#define KEY_MENU 139 /* Menu (show menu) */ +#define KEY_CALC 140 /* AL Calculator */ +#define KEY_SETUP 141 +#define KEY_SLEEP 142 /* SC System Sleep */ +#define KEY_WAKEUP 143 /* System Wake Up */ +#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SENDFILE 145 +#define KEY_DELETEFILE 146 +#define KEY_XFER 147 +#define KEY_PROG1 148 +#define KEY_PROG2 149 +#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_MSDOS 151 +#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_SCREENLOCK KEY_COFFEE +#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ +#define KEY_DIRECTION KEY_ROTATE_DISPLAY +#define KEY_CYCLEWINDOWS 154 +#define KEY_MAIL 155 +#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_COMPUTER 157 +#define KEY_BACK 158 /* AC Back */ +#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_CLOSECD 160 +#define KEY_EJECTCD 161 +#define KEY_EJECTCLOSECD 162 +#define KEY_NEXTSONG 163 +#define KEY_PLAYPAUSE 164 +#define KEY_PREVIOUSSONG 165 +#define KEY_STOPCD 166 +#define KEY_RECORD 167 +#define KEY_REWIND 168 +#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_ISO 170 +#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ +#define KEY_HOMEPAGE 172 /* AC Home */ +#define KEY_REFRESH 173 /* AC Refresh */ +#define KEY_EXIT 174 /* AC Exit */ +#define KEY_MOVE 175 +#define KEY_EDIT 176 +#define KEY_SCROLLUP 177 +#define KEY_SCROLLDOWN 178 +#define KEY_KPLEFTPAREN 179 +#define KEY_KPRIGHTPAREN 180 +#define KEY_NEW 181 /* AC New */ +#define KEY_REDO 182 /* AC Redo/Repeat */ + +#define KEY_F13 183 +#define KEY_F14 184 +#define KEY_F15 185 +#define KEY_F16 186 +#define KEY_F17 187 +#define KEY_F18 188 +#define KEY_F19 189 +#define KEY_F20 190 +#define KEY_F21 191 +#define KEY_F22 192 +#define KEY_F23 193 +#define KEY_F24 194 + +#define KEY_PLAYCD 200 +#define KEY_PAUSECD 201 +#define KEY_PROG3 202 +#define KEY_PROG4 203 +#define KEY_DASHBOARD 204 /* AL Dashboard */ +#define KEY_SUSPEND 205 +#define KEY_CLOSE 206 /* AC Close */ +#define KEY_PLAY 207 +#define KEY_FASTFORWARD 208 +#define KEY_BASSBOOST 209 +#define KEY_PRINT 210 /* AC Print */ +#define KEY_HP 211 +#define KEY_CAMERA 212 +#define KEY_SOUND 213 +#define KEY_QUESTION 214 +#define KEY_EMAIL 215 +#define KEY_CHAT 216 +#define KEY_SEARCH 217 +#define KEY_CONNECT 218 +#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_SPORT 220 +#define KEY_SHOP 221 +#define KEY_ALTERASE 222 +#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_BRIGHTNESSDOWN 224 +#define KEY_BRIGHTNESSUP 225 +#define KEY_MEDIA 226 + +#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video + outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_KBDILLUMTOGGLE 228 +#define KEY_KBDILLUMDOWN 229 +#define KEY_KBDILLUMUP 230 + +#define KEY_SEND 231 /* AC Send */ +#define KEY_REPLY 232 /* AC Reply */ +#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ +#define KEY_SAVE 234 /* AC Save */ +#define KEY_DOCUMENTS 235 + +#define KEY_BATTERY 236 + +#define KEY_BLUETOOTH 237 +#define KEY_WLAN 238 +#define KEY_UWB 239 + +#define KEY_UNKNOWN 240 + +#define KEY_VIDEO_NEXT 241 /* drive next video source */ +#define KEY_VIDEO_PREV 242 /* drive previous video source */ +#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ +#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual + brightness control is off, + rely on ambient */ +#define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO +#define KEY_DISPLAY_OFF 245 /* display device to off state */ + +#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WIMAX KEY_WWAN +#define KEY_RFKILL 247 /* Key that controls all radios */ + +#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ + +/* Code 255 is reserved for special needs of AT keyboard driver */ + +#define BTN_MISC 0x100 +#define BTN_0 0x100 +#define BTN_1 0x101 +#define BTN_2 0x102 +#define BTN_3 0x103 +#define BTN_4 0x104 +#define BTN_5 0x105 +#define BTN_6 0x106 +#define BTN_7 0x107 +#define BTN_8 0x108 +#define BTN_9 0x109 + +#define BTN_MOUSE 0x110 +#define BTN_LEFT 0x110 +#define BTN_RIGHT 0x111 +#define BTN_MIDDLE 0x112 +#define BTN_SIDE 0x113 +#define BTN_EXTRA 0x114 +#define BTN_FORWARD 0x115 +#define BTN_BACK 0x116 +#define BTN_TASK 0x117 + +#define BTN_JOYSTICK 0x120 +#define BTN_TRIGGER 0x120 +#define BTN_THUMB 0x121 +#define BTN_THUMB2 0x122 +#define BTN_TOP 0x123 +#define BTN_TOP2 0x124 +#define BTN_PINKIE 0x125 +#define BTN_BASE 0x126 +#define BTN_BASE2 0x127 +#define BTN_BASE3 0x128 +#define BTN_BASE4 0x129 +#define BTN_BASE5 0x12a +#define BTN_BASE6 0x12b +#define BTN_DEAD 0x12f + +#define BTN_GAMEPAD 0x130 +#define BTN_SOUTH 0x130 +#define BTN_A BTN_SOUTH +#define BTN_EAST 0x131 +#define BTN_B BTN_EAST +#define BTN_C 0x132 +#define BTN_NORTH 0x133 +#define BTN_X BTN_NORTH +#define BTN_WEST 0x134 +#define BTN_Y BTN_WEST +#define BTN_Z 0x135 +#define BTN_TL 0x136 +#define BTN_TR 0x137 +#define BTN_TL2 0x138 +#define BTN_TR2 0x139 +#define BTN_SELECT 0x13a +#define BTN_START 0x13b +#define BTN_MODE 0x13c +#define BTN_THUMBL 0x13d +#define BTN_THUMBR 0x13e + +#define BTN_DIGI 0x140 +#define BTN_TOOL_PEN 0x140 +#define BTN_TOOL_RUBBER 0x141 +#define BTN_TOOL_BRUSH 0x142 +#define BTN_TOOL_PENCIL 0x143 +#define BTN_TOOL_AIRBRUSH 0x144 +#define BTN_TOOL_FINGER 0x145 +#define BTN_TOOL_MOUSE 0x146 +#define BTN_TOOL_LENS 0x147 +#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_STYLUS3 0x149 +#define BTN_TOUCH 0x14a +#define BTN_STYLUS 0x14b +#define BTN_STYLUS2 0x14c +#define BTN_TOOL_DOUBLETAP 0x14d +#define BTN_TOOL_TRIPLETAP 0x14e +#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ + +#define BTN_WHEEL 0x150 +#define BTN_GEAR_DOWN 0x150 +#define BTN_GEAR_UP 0x151 + +#define KEY_OK 0x160 +#define KEY_SELECT 0x161 +#define KEY_GOTO 0x162 +#define KEY_CLEAR 0x163 +#define KEY_POWER2 0x164 +#define KEY_OPTION 0x165 +#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_TIME 0x167 +#define KEY_VENDOR 0x168 +#define KEY_ARCHIVE 0x169 +#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_CHANNEL 0x16b +#define KEY_FAVORITES 0x16c +#define KEY_EPG 0x16d +#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_MHP 0x16f +#define KEY_LANGUAGE 0x170 +#define KEY_TITLE 0x171 +#define KEY_SUBTITLE 0x172 +#define KEY_ANGLE 0x173 +#define KEY_ZOOM 0x174 +#define KEY_MODE 0x175 +#define KEY_KEYBOARD 0x176 +#define KEY_SCREEN 0x177 +#define KEY_PC 0x178 /* Media Select Computer */ +#define KEY_TV 0x179 /* Media Select TV */ +#define KEY_TV2 0x17a /* Media Select Cable */ +#define KEY_VCR 0x17b /* Media Select VCR */ +#define KEY_VCR2 0x17c /* VCR Plus */ +#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_SAT2 0x17e +#define KEY_CD 0x17f /* Media Select CD */ +#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_RADIO 0x181 +#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_PLAYER 0x183 +#define KEY_TEXT 0x184 +#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_AUX 0x186 +#define KEY_MP3 0x187 +#define KEY_AUDIO 0x188 /* AL Audio Browser */ +#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_DIRECTORY 0x18a +#define KEY_LIST 0x18b +#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_CALENDAR 0x18d +#define KEY_RED 0x18e +#define KEY_GREEN 0x18f +#define KEY_YELLOW 0x190 +#define KEY_BLUE 0x191 +#define KEY_CHANNELUP 0x192 /* Channel Increment */ +#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_FIRST 0x194 +#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_AB 0x196 +#define KEY_NEXT 0x197 +#define KEY_RESTART 0x198 +#define KEY_SLOW 0x199 +#define KEY_SHUFFLE 0x19a +#define KEY_BREAK 0x19b +#define KEY_PREVIOUS 0x19c +#define KEY_DIGITS 0x19d +#define KEY_TEEN 0x19e +#define KEY_TWEN 0x19f +#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ +#define KEY_GAMES 0x1a1 /* Media Select Games */ +#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ +#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ +#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ +#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ +#define KEY_EDITOR 0x1a6 /* AL Text Editor */ +#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ +#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ +#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ +#define KEY_DATABASE 0x1aa /* AL Database App */ +#define KEY_NEWS 0x1ab /* AL Newsreader */ +#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ +#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ +#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ +#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE +#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ +#define KEY_LOGOFF 0x1b1 /* AL Logoff */ + +#define KEY_DOLLAR 0x1b2 +#define KEY_EURO 0x1b3 + +#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEFORWARD 0x1b5 +#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ +#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ +#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ +#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ +#define KEY_IMAGES 0x1ba /* AL Image Browser */ + +#define KEY_DEL_EOL 0x1c0 +#define KEY_DEL_EOS 0x1c1 +#define KEY_INS_LINE 0x1c2 +#define KEY_DEL_LINE 0x1c3 + +#define KEY_FN 0x1d0 +#define KEY_FN_ESC 0x1d1 +#define KEY_FN_F1 0x1d2 +#define KEY_FN_F2 0x1d3 +#define KEY_FN_F3 0x1d4 +#define KEY_FN_F4 0x1d5 +#define KEY_FN_F5 0x1d6 +#define KEY_FN_F6 0x1d7 +#define KEY_FN_F7 0x1d8 +#define KEY_FN_F8 0x1d9 +#define KEY_FN_F9 0x1da +#define KEY_FN_F10 0x1db +#define KEY_FN_F11 0x1dc +#define KEY_FN_F12 0x1dd +#define KEY_FN_1 0x1de +#define KEY_FN_2 0x1df +#define KEY_FN_D 0x1e0 +#define KEY_FN_E 0x1e1 +#define KEY_FN_F 0x1e2 +#define KEY_FN_S 0x1e3 +#define KEY_FN_B 0x1e4 + +#define KEY_BRL_DOT1 0x1f1 +#define KEY_BRL_DOT2 0x1f2 +#define KEY_BRL_DOT3 0x1f3 +#define KEY_BRL_DOT4 0x1f4 +#define KEY_BRL_DOT5 0x1f5 +#define KEY_BRL_DOT6 0x1f6 +#define KEY_BRL_DOT7 0x1f7 +#define KEY_BRL_DOT8 0x1f8 +#define KEY_BRL_DOT9 0x1f9 +#define KEY_BRL_DOT10 0x1fa + +#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ +#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_2 0x202 +#define KEY_NUMERIC_3 0x203 +#define KEY_NUMERIC_4 0x204 +#define KEY_NUMERIC_5 0x205 +#define KEY_NUMERIC_6 0x206 +#define KEY_NUMERIC_7 0x207 +#define KEY_NUMERIC_8 0x208 +#define KEY_NUMERIC_9 0x209 +#define KEY_NUMERIC_STAR 0x20a +#define KEY_NUMERIC_POUND 0x20b +#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ +#define KEY_NUMERIC_B 0x20d +#define KEY_NUMERIC_C 0x20e +#define KEY_NUMERIC_D 0x20f + +#define KEY_CAMERA_FOCUS 0x210 +#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ + +#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_ON 0x213 +#define KEY_TOUCHPAD_OFF 0x214 + +#define KEY_CAMERA_ZOOMIN 0x215 +#define KEY_CAMERA_ZOOMOUT 0x216 +#define KEY_CAMERA_UP 0x217 +#define KEY_CAMERA_DOWN 0x218 +#define KEY_CAMERA_LEFT 0x219 +#define KEY_CAMERA_RIGHT 0x21a + +#define KEY_ATTENDANT_ON 0x21b +#define KEY_ATTENDANT_OFF 0x21c +#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ +#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ + +#define BTN_DPAD_UP 0x220 +#define BTN_DPAD_DOWN 0x221 +#define BTN_DPAD_LEFT 0x222 +#define BTN_DPAD_RIGHT 0x223 + +#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ +#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ + +#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ +#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ +#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ +#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ +#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ +#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ +#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ +#define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */ + +#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ +#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ + +#define KEY_KBDINPUTASSIST_PREV 0x260 +#define KEY_KBDINPUTASSIST_NEXT 0x261 +#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 +#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 +#define KEY_KBDINPUTASSIST_ACCEPT 0x264 +#define KEY_KBDINPUTASSIST_CANCEL 0x265 + +/* Diagonal movement keys */ +#define KEY_RIGHT_UP 0x266 +#define KEY_RIGHT_DOWN 0x267 +#define KEY_LEFT_UP 0x268 +#define KEY_LEFT_DOWN 0x269 + +#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ +/* Show Top Menu of the Media (e.g. DVD) */ +#define KEY_MEDIA_TOP_MENU 0x26b +#define KEY_NUMERIC_11 0x26c +#define KEY_NUMERIC_12 0x26d +/* + * Toggle Audio Description: refers to an audio service that helps blind and + * visually impaired consumers understand the action in a program. Note: in + * some countries this is referred to as "Video Description". + */ +#define KEY_AUDIO_DESC 0x26e +#define KEY_3D_MODE 0x26f +#define KEY_NEXT_FAVORITE 0x270 +#define KEY_STOP_RECORD 0x271 +#define KEY_PAUSE_RECORD 0x272 +#define KEY_VOD 0x273 /* Video on Demand */ +#define KEY_UNMUTE 0x274 +#define KEY_FASTREVERSE 0x275 +#define KEY_SLOWREVERSE 0x276 +/* + * Control a data application associated with the currently viewed channel, + * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) + */ +#define KEY_DATA 0x277 +#define KEY_ONSCREEN_KEYBOARD 0x278 + +#define BTN_TRIGGER_HAPPY 0x2c0 +#define BTN_TRIGGER_HAPPY1 0x2c0 +#define BTN_TRIGGER_HAPPY2 0x2c1 +#define BTN_TRIGGER_HAPPY3 0x2c2 +#define BTN_TRIGGER_HAPPY4 0x2c3 +#define BTN_TRIGGER_HAPPY5 0x2c4 +#define BTN_TRIGGER_HAPPY6 0x2c5 +#define BTN_TRIGGER_HAPPY7 0x2c6 +#define BTN_TRIGGER_HAPPY8 0x2c7 +#define BTN_TRIGGER_HAPPY9 0x2c8 +#define BTN_TRIGGER_HAPPY10 0x2c9 +#define BTN_TRIGGER_HAPPY11 0x2ca +#define BTN_TRIGGER_HAPPY12 0x2cb +#define BTN_TRIGGER_HAPPY13 0x2cc +#define BTN_TRIGGER_HAPPY14 0x2cd +#define BTN_TRIGGER_HAPPY15 0x2ce +#define BTN_TRIGGER_HAPPY16 0x2cf +#define BTN_TRIGGER_HAPPY17 0x2d0 +#define BTN_TRIGGER_HAPPY18 0x2d1 +#define BTN_TRIGGER_HAPPY19 0x2d2 +#define BTN_TRIGGER_HAPPY20 0x2d3 +#define BTN_TRIGGER_HAPPY21 0x2d4 +#define BTN_TRIGGER_HAPPY22 0x2d5 +#define BTN_TRIGGER_HAPPY23 0x2d6 +#define BTN_TRIGGER_HAPPY24 0x2d7 +#define BTN_TRIGGER_HAPPY25 0x2d8 +#define BTN_TRIGGER_HAPPY26 0x2d9 +#define BTN_TRIGGER_HAPPY27 0x2da +#define BTN_TRIGGER_HAPPY28 0x2db +#define BTN_TRIGGER_HAPPY29 0x2dc +#define BTN_TRIGGER_HAPPY30 0x2dd +#define BTN_TRIGGER_HAPPY31 0x2de +#define BTN_TRIGGER_HAPPY32 0x2df +#define BTN_TRIGGER_HAPPY33 0x2e0 +#define BTN_TRIGGER_HAPPY34 0x2e1 +#define BTN_TRIGGER_HAPPY35 0x2e2 +#define BTN_TRIGGER_HAPPY36 0x2e3 +#define BTN_TRIGGER_HAPPY37 0x2e4 +#define BTN_TRIGGER_HAPPY38 0x2e5 +#define BTN_TRIGGER_HAPPY39 0x2e6 +#define BTN_TRIGGER_HAPPY40 0x2e7 + +/* We avoid low common keys in module aliases so they don't get huge. */ +#define KEY_MIN_INTERESTING KEY_MUTE +#define KEY_MAX 0x2ff +#define KEY_CNT (KEY_MAX+1) + +/* + * Relative axes + */ + +#define REL_X 0x00 +#define REL_Y 0x01 +#define REL_Z 0x02 +#define REL_RX 0x03 +#define REL_RY 0x04 +#define REL_RZ 0x05 +#define REL_HWHEEL 0x06 +#define REL_DIAL 0x07 +#define REL_WHEEL 0x08 +#define REL_MISC 0x09 +/* + * 0x0a is reserved and should not be used in input drivers. + * It was used by HID as REL_MISC+1 and userspace needs to detect if + * the next REL_* event is correct or is just REL_MISC + n. + * We define here REL_RESERVED so userspace can rely on it and detect + * the situation described above. + */ +#define REL_RESERVED 0x0a +#define REL_WHEEL_HI_RES 0x0b +#define REL_HWHEEL_HI_RES 0x0c +#define REL_MAX 0x0f +#define REL_CNT (REL_MAX+1) + +/* + * Absolute axes + */ + +#define ABS_X 0x00 +#define ABS_Y 0x01 +#define ABS_Z 0x02 +#define ABS_RX 0x03 +#define ABS_RY 0x04 +#define ABS_RZ 0x05 +#define ABS_THROTTLE 0x06 +#define ABS_RUDDER 0x07 +#define ABS_WHEEL 0x08 +#define ABS_GAS 0x09 +#define ABS_BRAKE 0x0a +#define ABS_HAT0X 0x10 +#define ABS_HAT0Y 0x11 +#define ABS_HAT1X 0x12 +#define ABS_HAT1Y 0x13 +#define ABS_HAT2X 0x14 +#define ABS_HAT2Y 0x15 +#define ABS_HAT3X 0x16 +#define ABS_HAT3Y 0x17 +#define ABS_PRESSURE 0x18 +#define ABS_DISTANCE 0x19 +#define ABS_TILT_X 0x1a +#define ABS_TILT_Y 0x1b +#define ABS_TOOL_WIDTH 0x1c + +#define ABS_VOLUME 0x20 + +#define ABS_MISC 0x28 + +/* + * 0x2e is reserved and should not be used in input drivers. + * It was used by HID as ABS_MISC+6 and userspace needs to detect if + * the next ABS_* event is correct or is just ABS_MISC + n. + * We define here ABS_RESERVED so userspace can rely on it and detect + * the situation described above. + */ +#define ABS_RESERVED 0x2e + +#define ABS_MT_SLOT 0x2f /* MT slot being modified */ +#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ +#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ +#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ +#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ +#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ +#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ +#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ +#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ +#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ +#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ +#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ +#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ +#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ +#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ + + +#define ABS_MAX 0x3f +#define ABS_CNT (ABS_MAX+1) + +/* + * Switch events + */ + +#define SW_LID 0x00 /* set = lid shut */ +#define SW_TABLET_MODE 0x01 /* set = tablet mode */ +#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ +#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" + set = radio enabled */ +#define SW_RADIO SW_RFKILL_ALL /* deprecated */ +#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ +#define SW_DOCK 0x05 /* set = plugged into dock */ +#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ +#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ +#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ +#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ +#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ +#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ +#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ +#define SW_LINEIN_INSERT 0x0d /* set = inserted */ +#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ +#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ +#define SW_MAX 0x0f +#define SW_CNT (SW_MAX+1) + +/* + * Misc events + */ + +#define MSC_SERIAL 0x00 +#define MSC_PULSELED 0x01 +#define MSC_GESTURE 0x02 +#define MSC_RAW 0x03 +#define MSC_SCAN 0x04 +#define MSC_TIMESTAMP 0x05 +#define MSC_MAX 0x07 +#define MSC_CNT (MSC_MAX+1) + +/* + * LEDs + */ + +#define LED_NUML 0x00 +#define LED_CAPSL 0x01 +#define LED_SCROLLL 0x02 +#define LED_COMPOSE 0x03 +#define LED_KANA 0x04 +#define LED_SLEEP 0x05 +#define LED_SUSPEND 0x06 +#define LED_MUTE 0x07 +#define LED_MISC 0x08 +#define LED_MAIL 0x09 +#define LED_CHARGING 0x0a +#define LED_MAX 0x0f +#define LED_CNT (LED_MAX+1) + +/* + * Autorepeat values + */ + +#define REP_DELAY 0x00 +#define REP_PERIOD 0x01 +#define REP_MAX 0x01 +#define REP_CNT (REP_MAX+1) + +/* + * Sounds + */ + +#define SND_CLICK 0x00 +#define SND_BELL 0x01 +#define SND_TONE 0x02 +#define SND_MAX 0x07 +#define SND_CNT (SND_MAX+1) + +#endif diff --git a/app/src/main/jni/lorie/locale/keymaps.h b/app/src/main/jni/lorie/locale/keymaps.h new file mode 100644 index 0000000..fe67e24 --- /dev/null +++ b/app/src/main/jni/lorie/locale/keymaps.h @@ -0,0 +1,519 @@ +#include +#define SYM_LENGTH 7 +#define KEYCODE_MIN 8 +#define KEYCODE_MAX 255 +#define NOSYM {{0}, {0}} +struct lorie_keymap { + char *name; + struct keysym { + char normal[SYM_LENGTH]; + char shift[SYM_LENGTH]; + } keysyms[KEYCODE_MAX - KEYCODE_MIN]; +}; + +struct lorie_keymap lorie_keymap_ru = { + .name = "ru", + .keysyms = { + NOSYM, // keyCode: 8; + NOSYM, // keyCode: 9; + NOSYM, // keyCode: 10; + NOSYM, // keyCode: 11; + NOSYM, // keyCode: 12; + NOSYM, // keyCode: 13; + NOSYM, // keyCode: 14; + NOSYM, // keyCode: 15; + NOSYM, // keyCode: 16; + {{27, 0, 0, 0, 0, 0, 0}, {27, 0, 0, 0, 0, 0, 0}}, // keyCode: 17; + {{49, 0, 0, 0, 0, 0, 0}, {33, 0, 0, 0, 0, 0, 0}}, // keyCode: 18; normal: "1"; shift: "!"; + {{50, 0, 0, 0, 0, 0, 0}, {34, 0, 0, 0, 0, 0, 0}}, // keyCode: 19; normal: "2"; shift: """; + {{51, 0, 0, 0, 0, 0, 0}, {-30, -124, -106, 0, 0, 0, 0}}, // keyCode: 20; normal: "3"; shift: "№"; + {{52, 0, 0, 0, 0, 0, 0}, {59, 0, 0, 0, 0, 0, 0}}, // keyCode: 21; normal: "4"; shift: ";"; + {{53, 0, 0, 0, 0, 0, 0}, {37, 0, 0, 0, 0, 0, 0}}, // keyCode: 22; normal: "5"; shift: "%"; + {{54, 0, 0, 0, 0, 0, 0}, {58, 0, 0, 0, 0, 0, 0}}, // keyCode: 23; normal: "6"; shift: ":"; + {{55, 0, 0, 0, 0, 0, 0}, {63, 0, 0, 0, 0, 0, 0}}, // keyCode: 24; normal: "7"; shift: "?"; + {{56, 0, 0, 0, 0, 0, 0}, {42, 0, 0, 0, 0, 0, 0}}, // keyCode: 25; normal: "8"; shift: "*"; + {{57, 0, 0, 0, 0, 0, 0}, {40, 0, 0, 0, 0, 0, 0}}, // keyCode: 26; normal: "9"; shift: "("; + {{48, 0, 0, 0, 0, 0, 0}, {41, 0, 0, 0, 0, 0, 0}}, // keyCode: 27; normal: "0"; shift: ")"; + {{45, 0, 0, 0, 0, 0, 0}, {95, 0, 0, 0, 0, 0, 0}}, // keyCode: 28; normal: "-"; shift: "_"; + {{61, 0, 0, 0, 0, 0, 0}, {43, 0, 0, 0, 0, 0, 0}}, // keyCode: 29; normal: "="; shift: "+"; + {{8, 0, 0, 0, 0, 0, 0}, {8, 0, 0, 0, 0, 0, 0}}, // keyCode: 30; + NOSYM, // keyCode: 31; normal: " "; + {{-48, -71, 0, 0, 0, 0, 0}, {-48, -103, 0, 0, 0, 0, 0}}, // keyCode: 32; normal: "й"; shift: "Й"; + {{-47, -122, 0, 0, 0, 0, 0}, {-48, -90, 0, 0, 0, 0, 0}}, // keyCode: 33; normal: "ц"; shift: "Ц"; + {{-47, -125, 0, 0, 0, 0, 0}, {-48, -93, 0, 0, 0, 0, 0}}, // keyCode: 34; normal: "у"; shift: "У"; + {{-48, -70, 0, 0, 0, 0, 0}, {-48, -102, 0, 0, 0, 0, 0}}, // keyCode: 35; normal: "к"; shift: "К"; + {{-48, -75, 0, 0, 0, 0, 0}, {-48, -107, 0, 0, 0, 0, 0}}, // keyCode: 36; normal: "е"; shift: "Е"; + {{-48, -67, 0, 0, 0, 0, 0}, {-48, -99, 0, 0, 0, 0, 0}}, // keyCode: 37; normal: "н"; shift: "Н"; + {{-48, -77, 0, 0, 0, 0, 0}, {-48, -109, 0, 0, 0, 0, 0}}, // keyCode: 38; normal: "г"; shift: "Г"; + {{-47, -120, 0, 0, 0, 0, 0}, {-48, -88, 0, 0, 0, 0, 0}}, // keyCode: 39; normal: "ш"; shift: "Ш"; + {{-47, -119, 0, 0, 0, 0, 0}, {-48, -87, 0, 0, 0, 0, 0}}, // keyCode: 40; normal: "щ"; shift: "Щ"; + {{-48, -73, 0, 0, 0, 0, 0}, {-48, -105, 0, 0, 0, 0, 0}}, // keyCode: 41; normal: "з"; shift: "З"; + {{-47, -123, 0, 0, 0, 0, 0}, {-48, -91, 0, 0, 0, 0, 0}}, // keyCode: 42; normal: "х"; shift: "Х"; + {{-47, -118, 0, 0, 0, 0, 0}, {-48, -86, 0, 0, 0, 0, 0}}, // keyCode: 43; normal: "ъ"; shift: "Ъ"; + {{13, 0, 0, 0, 0, 0, 0}, {13, 0, 0, 0, 0, 0, 0}}, // keyCode: 44; + NOSYM, // keyCode: 45; + {{-47, -124, 0, 0, 0, 0, 0}, {-48, -92, 0, 0, 0, 0, 0}}, // keyCode: 46; normal: "ф"; shift: "Ф"; + {{-47, -117, 0, 0, 0, 0, 0}, {-48, -85, 0, 0, 0, 0, 0}}, // keyCode: 47; normal: "ы"; shift: "Ы"; + {{-48, -78, 0, 0, 0, 0, 0}, {-48, -110, 0, 0, 0, 0, 0}}, // keyCode: 48; normal: "в"; shift: "В"; + {{-48, -80, 0, 0, 0, 0, 0}, {-48, -112, 0, 0, 0, 0, 0}}, // keyCode: 49; normal: "а"; shift: "А"; + {{-48, -65, 0, 0, 0, 0, 0}, {-48, -97, 0, 0, 0, 0, 0}}, // keyCode: 50; normal: "п"; shift: "П"; + {{-47, -128, 0, 0, 0, 0, 0}, {-48, -96, 0, 0, 0, 0, 0}}, // keyCode: 51; normal: "р"; shift: "Р"; + {{-48, -66, 0, 0, 0, 0, 0}, {-48, -98, 0, 0, 0, 0, 0}}, // keyCode: 52; normal: "о"; shift: "О"; + {{-48, -69, 0, 0, 0, 0, 0}, {-48, -101, 0, 0, 0, 0, 0}}, // keyCode: 53; normal: "л"; shift: "Л"; + {{-48, -76, 0, 0, 0, 0, 0}, {-48, -108, 0, 0, 0, 0, 0}}, // keyCode: 54; normal: "д"; shift: "Д"; + {{-48, -74, 0, 0, 0, 0, 0}, {-48, -106, 0, 0, 0, 0, 0}}, // keyCode: 55; normal: "ж"; shift: "Ж"; + {{-47, -115, 0, 0, 0, 0, 0}, {-48, -83, 0, 0, 0, 0, 0}}, // keyCode: 56; normal: "э"; shift: "Э"; + {{-47, -111, 0, 0, 0, 0, 0}, {-48, -127, 0, 0, 0, 0, 0}}, // keyCode: 57; normal: "ё"; shift: "Ё"; + NOSYM, // keyCode: 58; + {{92, 0, 0, 0, 0, 0, 0}, {47, 0, 0, 0, 0, 0, 0}}, // keyCode: 59; normal: "\"; shift: "/"; + {{-47, -113, 0, 0, 0, 0, 0}, {-48, -81, 0, 0, 0, 0, 0}}, // keyCode: 60; normal: "я"; shift: "Я"; + {{-47, -121, 0, 0, 0, 0, 0}, {-48, -89, 0, 0, 0, 0, 0}}, // keyCode: 61; normal: "ч"; shift: "Ч"; + {{-47, -127, 0, 0, 0, 0, 0}, {-48, -95, 0, 0, 0, 0, 0}}, // keyCode: 62; normal: "с"; shift: "С"; + {{-48, -68, 0, 0, 0, 0, 0}, {-48, -100, 0, 0, 0, 0, 0}}, // keyCode: 63; normal: "м"; shift: "М"; + {{-48, -72, 0, 0, 0, 0, 0}, {-48, -104, 0, 0, 0, 0, 0}}, // keyCode: 64; normal: "и"; shift: "И"; + {{-47, -126, 0, 0, 0, 0, 0}, {-48, -94, 0, 0, 0, 0, 0}}, // keyCode: 65; normal: "т"; shift: "Т"; + {{-47, -116, 0, 0, 0, 0, 0}, {-48, -84, 0, 0, 0, 0, 0}}, // keyCode: 66; normal: "ь"; shift: "Ь"; + {{-48, -79, 0, 0, 0, 0, 0}, {-48, -111, 0, 0, 0, 0, 0}}, // keyCode: 67; normal: "б"; shift: "Б"; + {{-47, -114, 0, 0, 0, 0, 0}, {-48, -82, 0, 0, 0, 0, 0}}, // keyCode: 68; normal: "ю"; shift: "Ю"; + {{46, 0, 0, 0, 0, 0, 0}, {44, 0, 0, 0, 0, 0, 0}}, // keyCode: 69; normal: "."; shift: ","; + NOSYM, // keyCode: 70; + {{42, 0, 0, 0, 0, 0, 0}, {42, 0, 0, 0, 0, 0, 0}}, // keyCode: 71; normal: "*"; shift: "*"; + NOSYM, // keyCode: 72; + {{32, 0, 0, 0, 0, 0, 0}, {32, 0, 0, 0, 0, 0, 0}}, // keyCode: 73; normal: " "; shift: " "; + NOSYM, // keyCode: 74; + NOSYM, // keyCode: 75; + NOSYM, // keyCode: 76; + NOSYM, // keyCode: 77; + NOSYM, // keyCode: 78; + NOSYM, // keyCode: 79; + NOSYM, // keyCode: 80; + NOSYM, // keyCode: 81; + NOSYM, // keyCode: 82; + NOSYM, // keyCode: 83; + NOSYM, // keyCode: 84; + NOSYM, // keyCode: 85; + NOSYM, // keyCode: 86; + NOSYM, // keyCode: 87; shift: "7"; + NOSYM, // keyCode: 88; shift: "8"; + NOSYM, // keyCode: 89; shift: "9"; + {{45, 0, 0, 0, 0, 0, 0}, {45, 0, 0, 0, 0, 0, 0}}, // keyCode: 90; normal: "-"; shift: "-"; + NOSYM, // keyCode: 91; shift: "4"; + NOSYM, // keyCode: 92; shift: "5"; + NOSYM, // keyCode: 93; shift: "6"; + {{43, 0, 0, 0, 0, 0, 0}, {43, 0, 0, 0, 0, 0, 0}}, // keyCode: 94; normal: "+"; shift: "+"; + NOSYM, // keyCode: 95; shift: "1"; + NOSYM, // keyCode: 96; shift: "2"; + NOSYM, // keyCode: 97; shift: "3"; + NOSYM, // keyCode: 98; shift: "0"; + NOSYM, // keyCode: 99; shift: ","; + NOSYM, // keyCode: 100; + NOSYM, // keyCode: 101; + {{47, 0, 0, 0, 0, 0, 0}, {124, 0, 0, 0, 0, 0, 0}}, // keyCode: 102; normal: "/"; shift: "|"; + NOSYM, // keyCode: 103; + NOSYM, // keyCode: 104; + NOSYM, // keyCode: 105; + NOSYM, // keyCode: 106; + NOSYM, // keyCode: 107; + NOSYM, // keyCode: 108; + NOSYM, // keyCode: 109; + NOSYM, // keyCode: 110; + NOSYM, // keyCode: 111; + {{13, 0, 0, 0, 0, 0, 0}, {13, 0, 0, 0, 0, 0, 0}}, // keyCode: 112; + NOSYM, // keyCode: 113; + {{47, 0, 0, 0, 0, 0, 0}, {47, 0, 0, 0, 0, 0, 0}}, // keyCode: 114; normal: "/"; shift: "/"; + NOSYM, // keyCode: 115; + NOSYM, // keyCode: 116; + {{10, 0, 0, 0, 0, 0, 0}, {10, 0, 0, 0, 0, 0, 0}}, // keyCode: 117; + NOSYM, // keyCode: 118; + NOSYM, // keyCode: 119; + NOSYM, // keyCode: 120; + NOSYM, // keyCode: 121; + NOSYM, // keyCode: 122; + NOSYM, // keyCode: 123; + NOSYM, // keyCode: 124; + NOSYM, // keyCode: 125; + NOSYM, // keyCode: 126; + {{127, 0, 0, 0, 0, 0, 0}, {127, 0, 0, 0, 0, 0, 0}}, // keyCode: 127; + NOSYM, // keyCode: 128; + NOSYM, // keyCode: 129; + NOSYM, // keyCode: 130; + NOSYM, // keyCode: 131; + NOSYM, // keyCode: 132; + {{61, 0, 0, 0, 0, 0, 0}, {61, 0, 0, 0, 0, 0, 0}}, // keyCode: 133; normal: "="; shift: "="; + {{-62, -79, 0, 0, 0, 0, 0}, {-62, -79, 0, 0, 0, 0, 0}}, // keyCode: 134; normal: "±"; shift: "±"; + NOSYM, // keyCode: 135; + NOSYM, // keyCode: 136; + {{46, 0, 0, 0, 0, 0, 0}, {46, 0, 0, 0, 0, 0, 0}}, // keyCode: 137; normal: "."; shift: "."; + NOSYM, // keyCode: 138; + NOSYM, // keyCode: 139; + NOSYM, // keyCode: 140; + NOSYM, // keyCode: 141; + NOSYM, // keyCode: 142; + NOSYM, // keyCode: 143; + NOSYM, // keyCode: 144; + NOSYM, // keyCode: 145; + NOSYM, // keyCode: 146; + NOSYM, // keyCode: 147; + NOSYM, // keyCode: 148; + NOSYM, // keyCode: 149; + NOSYM, // keyCode: 150; + NOSYM, // keyCode: 151; + NOSYM, // keyCode: 152; + NOSYM, // keyCode: 153; + NOSYM, // keyCode: 154; + NOSYM, // keyCode: 155; + NOSYM, // keyCode: 156; + NOSYM, // keyCode: 157; + NOSYM, // keyCode: 158; + NOSYM, // keyCode: 159; + NOSYM, // keyCode: 160; + NOSYM, // keyCode: 161; + NOSYM, // keyCode: 162; + NOSYM, // keyCode: 163; + NOSYM, // keyCode: 164; + NOSYM, // keyCode: 165; + NOSYM, // keyCode: 166; + NOSYM, // keyCode: 167; + NOSYM, // keyCode: 168; + NOSYM, // keyCode: 169; + NOSYM, // keyCode: 170; + NOSYM, // keyCode: 171; + NOSYM, // keyCode: 172; + NOSYM, // keyCode: 173; + NOSYM, // keyCode: 174; + NOSYM, // keyCode: 175; + NOSYM, // keyCode: 176; + NOSYM, // keyCode: 177; + NOSYM, // keyCode: 178; + NOSYM, // keyCode: 179; + NOSYM, // keyCode: 180; + NOSYM, // keyCode: 181; + NOSYM, // keyCode: 182; + NOSYM, // keyCode: 183; + NOSYM, // keyCode: 184; + NOSYM, // keyCode: 185; + NOSYM, // keyCode: 186; + NOSYM, // keyCode: 187; + NOSYM, // keyCode: 188; + NOSYM, // keyCode: 189; + NOSYM, // keyCode: 190; + NOSYM, // keyCode: 191; + NOSYM, // keyCode: 192; + NOSYM, // keyCode: 193; + NOSYM, // keyCode: 194; + {{40, 0, 0, 0, 0, 0, 0}, {40, 0, 0, 0, 0, 0, 0}}, // keyCode: 195; normal: "("; shift: "("; + {{41, 0, 0, 0, 0, 0, 0}, {41, 0, 0, 0, 0, 0, 0}}, // keyCode: 196; normal: ")"; shift: ")"; + NOSYM, // keyCode: 197; + NOSYM, // keyCode: 198; + NOSYM, // keyCode: 199; + NOSYM, // keyCode: 200; + NOSYM, // keyCode: 201; + NOSYM, // keyCode: 202; + NOSYM, // keyCode: 203; + NOSYM, // keyCode: 204; + NOSYM, // keyCode: 205; + NOSYM, // keyCode: 206; + NOSYM, // keyCode: 207; + NOSYM, // keyCode: 208; + NOSYM, // keyCode: 209; + NOSYM, // keyCode: 210; + NOSYM, // keyCode: 211; + NOSYM, // keyCode: 212; + NOSYM, // keyCode: 213; + NOSYM, // keyCode: 214; + NOSYM, // keyCode: 215; + NOSYM, // keyCode: 216; + NOSYM, // keyCode: 217; + NOSYM, // keyCode: 218; + NOSYM, // keyCode: 219; + NOSYM, // keyCode: 220; + NOSYM, // keyCode: 221; + NOSYM, // keyCode: 222; + NOSYM, // keyCode: 223; + NOSYM, // keyCode: 224; + NOSYM, // keyCode: 225; + NOSYM, // keyCode: 226; + NOSYM, // keyCode: 227; + NOSYM, // keyCode: 228; + NOSYM, // keyCode: 229; + NOSYM, // keyCode: 230; + NOSYM, // keyCode: 231; + NOSYM, // keyCode: 232; + NOSYM, // keyCode: 233; + NOSYM, // keyCode: 234; + NOSYM, // keyCode: 235; + NOSYM, // keyCode: 236; + NOSYM, // keyCode: 237; + NOSYM, // keyCode: 238; + NOSYM, // keyCode: 239; + NOSYM, // keyCode: 240; + NOSYM, // keyCode: 241; + NOSYM, // keyCode: 242; + NOSYM, // keyCode: 243; + NOSYM, // keyCode: 244; + NOSYM, // keyCode: 245; + NOSYM, // keyCode: 246; + NOSYM, // keyCode: 247; + NOSYM, // keyCode: 248; + NOSYM, // keyCode: 249; + NOSYM, // keyCode: 250; + NOSYM, // keyCode: 251; + NOSYM, // keyCode: 252; + NOSYM, // keyCode: 253; + NOSYM // keyCode: 254; + } +}; +struct lorie_keymap lorie_keymap_il = { + .name = "il", + .keysyms = { + NOSYM, // keyCode: 8; + NOSYM, // keyCode: 9; + NOSYM, // keyCode: 10; + NOSYM, // keyCode: 11; + NOSYM, // keyCode: 12; + NOSYM, // keyCode: 13; + NOSYM, // keyCode: 14; + NOSYM, // keyCode: 15; + NOSYM, // keyCode: 16; + {{27, 0, 0, 0, 0, 0, 0}, {27, 0, 0, 0, 0, 0, 0}}, // keyCode: 17; + {{49, 0, 0, 0, 0, 0, 0}, {33, 0, 0, 0, 0, 0, 0}}, // keyCode: 18; normal: "1"; shift: "!"; + {{50, 0, 0, 0, 0, 0, 0}, {64, 0, 0, 0, 0, 0, 0}}, // keyCode: 19; normal: "2"; shift: "@"; + {{51, 0, 0, 0, 0, 0, 0}, {35, 0, 0, 0, 0, 0, 0}}, // keyCode: 20; normal: "3"; shift: "#"; + {{52, 0, 0, 0, 0, 0, 0}, {36, 0, 0, 0, 0, 0, 0}}, // keyCode: 21; normal: "4"; shift: "$"; + {{53, 0, 0, 0, 0, 0, 0}, {37, 0, 0, 0, 0, 0, 0}}, // keyCode: 22; normal: "5"; shift: "%"; + {{54, 0, 0, 0, 0, 0, 0}, {94, 0, 0, 0, 0, 0, 0}}, // keyCode: 23; normal: "6"; shift: "^"; + {{55, 0, 0, 0, 0, 0, 0}, {38, 0, 0, 0, 0, 0, 0}}, // keyCode: 24; normal: "7"; shift: "&"; + {{56, 0, 0, 0, 0, 0, 0}, {42, 0, 0, 0, 0, 0, 0}}, // keyCode: 25; normal: "8"; shift: "*"; + {{57, 0, 0, 0, 0, 0, 0}, {41, 0, 0, 0, 0, 0, 0}}, // keyCode: 26; normal: "9"; shift: ")"; + {{48, 0, 0, 0, 0, 0, 0}, {40, 0, 0, 0, 0, 0, 0}}, // keyCode: 27; normal: "0"; shift: "("; + {{45, 0, 0, 0, 0, 0, 0}, {95, 0, 0, 0, 0, 0, 0}}, // keyCode: 28; normal: "-"; shift: "_"; + {{61, 0, 0, 0, 0, 0, 0}, {43, 0, 0, 0, 0, 0, 0}}, // keyCode: 29; normal: "="; shift: "+"; + {{8, 0, 0, 0, 0, 0, 0}, {8, 0, 0, 0, 0, 0, 0}}, // keyCode: 30; + NOSYM, // keyCode: 31; normal: " "; + {{47, 0, 0, 0, 0, 0, 0}, {81, 0, 0, 0, 0, 0, 0}}, // keyCode: 32; normal: "/"; shift: "Q"; + {{39, 0, 0, 0, 0, 0, 0}, {87, 0, 0, 0, 0, 0, 0}}, // keyCode: 33; normal: "'"; shift: "W"; + {{-41, -89, 0, 0, 0, 0, 0}, {69, 0, 0, 0, 0, 0, 0}}, // keyCode: 34; normal: "ק"; shift: "E"; + {{-41, -88, 0, 0, 0, 0, 0}, {82, 0, 0, 0, 0, 0, 0}}, // keyCode: 35; normal: "ר"; shift: "R"; + {{-41, -112, 0, 0, 0, 0, 0}, {84, 0, 0, 0, 0, 0, 0}}, // keyCode: 36; normal: "א"; shift: "T"; + {{-41, -104, 0, 0, 0, 0, 0}, {89, 0, 0, 0, 0, 0, 0}}, // keyCode: 37; normal: "ט"; shift: "Y"; + {{-41, -107, 0, 0, 0, 0, 0}, {85, 0, 0, 0, 0, 0, 0}}, // keyCode: 38; normal: "ו"; shift: "U"; + {{-41, -97, 0, 0, 0, 0, 0}, {73, 0, 0, 0, 0, 0, 0}}, // keyCode: 39; normal: "ן"; shift: "I"; + {{-41, -99, 0, 0, 0, 0, 0}, {79, 0, 0, 0, 0, 0, 0}}, // keyCode: 40; normal: "ם"; shift: "O"; + {{-41, -92, 0, 0, 0, 0, 0}, {80, 0, 0, 0, 0, 0, 0}}, // keyCode: 41; normal: "פ"; shift: "P"; + {{93, 0, 0, 0, 0, 0, 0}, {125, 0, 0, 0, 0, 0, 0}}, // keyCode: 42; normal: "]"; shift: "}"; + {{91, 0, 0, 0, 0, 0, 0}, {123, 0, 0, 0, 0, 0, 0}}, // keyCode: 43; normal: "["; shift: "{"; + {{13, 0, 0, 0, 0, 0, 0}, {13, 0, 0, 0, 0, 0, 0}}, // keyCode: 44; + NOSYM, // keyCode: 45; + {{-41, -87, 0, 0, 0, 0, 0}, {65, 0, 0, 0, 0, 0, 0}}, // keyCode: 46; normal: "ש"; shift: "A"; + {{-41, -109, 0, 0, 0, 0, 0}, {83, 0, 0, 0, 0, 0, 0}}, // keyCode: 47; normal: "ד"; shift: "S"; + {{-41, -110, 0, 0, 0, 0, 0}, {68, 0, 0, 0, 0, 0, 0}}, // keyCode: 48; normal: "ג"; shift: "D"; + {{-41, -101, 0, 0, 0, 0, 0}, {70, 0, 0, 0, 0, 0, 0}}, // keyCode: 49; normal: "כ"; shift: "F"; + {{-41, -94, 0, 0, 0, 0, 0}, {71, 0, 0, 0, 0, 0, 0}}, // keyCode: 50; normal: "ע"; shift: "G"; + {{-41, -103, 0, 0, 0, 0, 0}, {72, 0, 0, 0, 0, 0, 0}}, // keyCode: 51; normal: "י"; shift: "H"; + {{-41, -105, 0, 0, 0, 0, 0}, {74, 0, 0, 0, 0, 0, 0}}, // keyCode: 52; normal: "ח"; shift: "J"; + {{-41, -100, 0, 0, 0, 0, 0}, {75, 0, 0, 0, 0, 0, 0}}, // keyCode: 53; normal: "ל"; shift: "K"; + {{-41, -102, 0, 0, 0, 0, 0}, {76, 0, 0, 0, 0, 0, 0}}, // keyCode: 54; normal: "ך"; shift: "L"; + {{-41, -93, 0, 0, 0, 0, 0}, {58, 0, 0, 0, 0, 0, 0}}, // keyCode: 55; normal: "ף"; shift: ":"; + {{44, 0, 0, 0, 0, 0, 0}, {34, 0, 0, 0, 0, 0, 0}}, // keyCode: 56; normal: ","; shift: """; + {{59, 0, 0, 0, 0, 0, 0}, {126, 0, 0, 0, 0, 0, 0}}, // keyCode: 57; normal: ";"; shift: "~"; + NOSYM, // keyCode: 58; + {{92, 0, 0, 0, 0, 0, 0}, {124, 0, 0, 0, 0, 0, 0}}, // keyCode: 59; normal: "\"; shift: "|"; + {{-41, -106, 0, 0, 0, 0, 0}, {90, 0, 0, 0, 0, 0, 0}}, // keyCode: 60; normal: "ז"; shift: "Z"; + {{-41, -95, 0, 0, 0, 0, 0}, {88, 0, 0, 0, 0, 0, 0}}, // keyCode: 61; normal: "ס"; shift: "X"; + {{-41, -111, 0, 0, 0, 0, 0}, {67, 0, 0, 0, 0, 0, 0}}, // keyCode: 62; normal: "ב"; shift: "C"; + {{-41, -108, 0, 0, 0, 0, 0}, {86, 0, 0, 0, 0, 0, 0}}, // keyCode: 63; normal: "ה"; shift: "V"; + {{-41, -96, 0, 0, 0, 0, 0}, {66, 0, 0, 0, 0, 0, 0}}, // keyCode: 64; normal: "נ"; shift: "B"; + {{-41, -98, 0, 0, 0, 0, 0}, {78, 0, 0, 0, 0, 0, 0}}, // keyCode: 65; normal: "מ"; shift: "N"; + {{-41, -90, 0, 0, 0, 0, 0}, {77, 0, 0, 0, 0, 0, 0}}, // keyCode: 66; normal: "צ"; shift: "M"; + {{-41, -86, 0, 0, 0, 0, 0}, {62, 0, 0, 0, 0, 0, 0}}, // keyCode: 67; normal: "ת"; shift: ">"; + {{-41, -91, 0, 0, 0, 0, 0}, {60, 0, 0, 0, 0, 0, 0}}, // keyCode: 68; normal: "ץ"; shift: "<"; + {{46, 0, 0, 0, 0, 0, 0}, {63, 0, 0, 0, 0, 0, 0}}, // keyCode: 69; normal: "."; shift: "?"; + NOSYM, // keyCode: 70; + {{42, 0, 0, 0, 0, 0, 0}, {42, 0, 0, 0, 0, 0, 0}}, // keyCode: 71; normal: "*"; shift: "*"; + NOSYM, // keyCode: 72; + {{32, 0, 0, 0, 0, 0, 0}, {32, 0, 0, 0, 0, 0, 0}}, // keyCode: 73; normal: " "; shift: " "; + NOSYM, // keyCode: 74; + NOSYM, // keyCode: 75; + NOSYM, // keyCode: 76; + NOSYM, // keyCode: 77; + NOSYM, // keyCode: 78; + NOSYM, // keyCode: 79; + NOSYM, // keyCode: 80; + NOSYM, // keyCode: 81; + NOSYM, // keyCode: 82; + NOSYM, // keyCode: 83; + NOSYM, // keyCode: 84; + NOSYM, // keyCode: 85; + NOSYM, // keyCode: 86; + NOSYM, // keyCode: 87; shift: "7"; + NOSYM, // keyCode: 88; shift: "8"; + NOSYM, // keyCode: 89; shift: "9"; + {{45, 0, 0, 0, 0, 0, 0}, {45, 0, 0, 0, 0, 0, 0}}, // keyCode: 90; normal: "-"; shift: "-"; + NOSYM, // keyCode: 91; shift: "4"; + NOSYM, // keyCode: 92; shift: "5"; + NOSYM, // keyCode: 93; shift: "6"; + {{43, 0, 0, 0, 0, 0, 0}, {43, 0, 0, 0, 0, 0, 0}}, // keyCode: 94; normal: "+"; shift: "+"; + NOSYM, // keyCode: 95; shift: "1"; + NOSYM, // keyCode: 96; shift: "2"; + NOSYM, // keyCode: 97; shift: "3"; + NOSYM, // keyCode: 98; shift: "0"; + NOSYM, // keyCode: 99; shift: "."; + NOSYM, // keyCode: 100; + NOSYM, // keyCode: 101; + {{60, 0, 0, 0, 0, 0, 0}, {62, 0, 0, 0, 0, 0, 0}}, // keyCode: 102; normal: "<"; shift: ">"; + NOSYM, // keyCode: 103; + NOSYM, // keyCode: 104; + NOSYM, // keyCode: 105; + NOSYM, // keyCode: 106; + NOSYM, // keyCode: 107; + NOSYM, // keyCode: 108; + NOSYM, // keyCode: 109; + NOSYM, // keyCode: 110; + NOSYM, // keyCode: 111; + {{13, 0, 0, 0, 0, 0, 0}, {13, 0, 0, 0, 0, 0, 0}}, // keyCode: 112; + NOSYM, // keyCode: 113; + {{47, 0, 0, 0, 0, 0, 0}, {47, 0, 0, 0, 0, 0, 0}}, // keyCode: 114; normal: "/"; shift: "/"; + NOSYM, // keyCode: 115; + NOSYM, // keyCode: 116; + {{10, 0, 0, 0, 0, 0, 0}, {10, 0, 0, 0, 0, 0, 0}}, // keyCode: 117; + NOSYM, // keyCode: 118; + NOSYM, // keyCode: 119; + NOSYM, // keyCode: 120; + NOSYM, // keyCode: 121; + NOSYM, // keyCode: 122; + NOSYM, // keyCode: 123; + NOSYM, // keyCode: 124; + NOSYM, // keyCode: 125; + NOSYM, // keyCode: 126; + {{127, 0, 0, 0, 0, 0, 0}, {127, 0, 0, 0, 0, 0, 0}}, // keyCode: 127; + NOSYM, // keyCode: 128; + NOSYM, // keyCode: 129; + NOSYM, // keyCode: 130; + NOSYM, // keyCode: 131; + NOSYM, // keyCode: 132; + {{61, 0, 0, 0, 0, 0, 0}, {61, 0, 0, 0, 0, 0, 0}}, // keyCode: 133; normal: "="; shift: "="; + {{-62, -79, 0, 0, 0, 0, 0}, {-62, -79, 0, 0, 0, 0, 0}}, // keyCode: 134; normal: "±"; shift: "±"; + NOSYM, // keyCode: 135; + NOSYM, // keyCode: 136; + {{46, 0, 0, 0, 0, 0, 0}, {46, 0, 0, 0, 0, 0, 0}}, // keyCode: 137; normal: "."; shift: "."; + NOSYM, // keyCode: 138; + NOSYM, // keyCode: 139; + NOSYM, // keyCode: 140; + NOSYM, // keyCode: 141; + NOSYM, // keyCode: 142; + NOSYM, // keyCode: 143; + NOSYM, // keyCode: 144; + NOSYM, // keyCode: 145; + NOSYM, // keyCode: 146; + NOSYM, // keyCode: 147; + NOSYM, // keyCode: 148; + NOSYM, // keyCode: 149; + NOSYM, // keyCode: 150; + NOSYM, // keyCode: 151; + NOSYM, // keyCode: 152; + NOSYM, // keyCode: 153; + NOSYM, // keyCode: 154; + NOSYM, // keyCode: 155; + NOSYM, // keyCode: 156; + NOSYM, // keyCode: 157; + NOSYM, // keyCode: 158; + NOSYM, // keyCode: 159; + NOSYM, // keyCode: 160; + NOSYM, // keyCode: 161; + NOSYM, // keyCode: 162; + NOSYM, // keyCode: 163; + NOSYM, // keyCode: 164; + NOSYM, // keyCode: 165; + NOSYM, // keyCode: 166; + NOSYM, // keyCode: 167; + NOSYM, // keyCode: 168; + NOSYM, // keyCode: 169; + NOSYM, // keyCode: 170; + NOSYM, // keyCode: 171; + NOSYM, // keyCode: 172; + NOSYM, // keyCode: 173; + NOSYM, // keyCode: 174; + NOSYM, // keyCode: 175; + NOSYM, // keyCode: 176; + NOSYM, // keyCode: 177; + NOSYM, // keyCode: 178; + NOSYM, // keyCode: 179; + NOSYM, // keyCode: 180; + NOSYM, // keyCode: 181; + NOSYM, // keyCode: 182; + NOSYM, // keyCode: 183; + NOSYM, // keyCode: 184; + NOSYM, // keyCode: 185; + NOSYM, // keyCode: 186; + NOSYM, // keyCode: 187; + NOSYM, // keyCode: 188; + NOSYM, // keyCode: 189; + NOSYM, // keyCode: 190; + NOSYM, // keyCode: 191; + NOSYM, // keyCode: 192; + NOSYM, // keyCode: 193; + NOSYM, // keyCode: 194; + {{40, 0, 0, 0, 0, 0, 0}, {40, 0, 0, 0, 0, 0, 0}}, // keyCode: 195; normal: "("; shift: "("; + {{41, 0, 0, 0, 0, 0, 0}, {41, 0, 0, 0, 0, 0, 0}}, // keyCode: 196; normal: ")"; shift: ")"; + NOSYM, // keyCode: 197; + NOSYM, // keyCode: 198; + NOSYM, // keyCode: 199; + NOSYM, // keyCode: 200; + NOSYM, // keyCode: 201; + NOSYM, // keyCode: 202; + NOSYM, // keyCode: 203; + NOSYM, // keyCode: 204; + NOSYM, // keyCode: 205; + NOSYM, // keyCode: 206; + NOSYM, // keyCode: 207; + NOSYM, // keyCode: 208; + NOSYM, // keyCode: 209; + NOSYM, // keyCode: 210; + NOSYM, // keyCode: 211; + NOSYM, // keyCode: 212; + NOSYM, // keyCode: 213; + NOSYM, // keyCode: 214; + NOSYM, // keyCode: 215; + NOSYM, // keyCode: 216; + NOSYM, // keyCode: 217; + NOSYM, // keyCode: 218; + NOSYM, // keyCode: 219; + NOSYM, // keyCode: 220; + NOSYM, // keyCode: 221; + NOSYM, // keyCode: 222; + NOSYM, // keyCode: 223; + NOSYM, // keyCode: 224; + NOSYM, // keyCode: 225; + NOSYM, // keyCode: 226; + NOSYM, // keyCode: 227; + NOSYM, // keyCode: 228; + NOSYM, // keyCode: 229; + NOSYM, // keyCode: 230; + NOSYM, // keyCode: 231; + NOSYM, // keyCode: 232; + NOSYM, // keyCode: 233; + NOSYM, // keyCode: 234; + NOSYM, // keyCode: 235; + NOSYM, // keyCode: 236; + NOSYM, // keyCode: 237; + NOSYM, // keyCode: 238; + NOSYM, // keyCode: 239; + NOSYM, // keyCode: 240; + NOSYM, // keyCode: 241; + NOSYM, // keyCode: 242; + NOSYM, // keyCode: 243; + NOSYM, // keyCode: 244; + NOSYM, // keyCode: 245; + NOSYM, // keyCode: 246; + NOSYM, // keyCode: 247; + NOSYM, // keyCode: 248; + NOSYM, // keyCode: 249; + NOSYM, // keyCode: 250; + NOSYM, // keyCode: 251; + NOSYM, // keyCode: 252; + NOSYM, // keyCode: 253; + NOSYM // keyCode: 254; + } +}; + +struct lorie_keymap *lorie_keymaps[] = {&lorie_keymap_ru, &lorie_keymap_il, NULL}; diff --git a/app/src/main/jni/lorie/locale/make.sh b/app/src/main/jni/lorie/locale/make.sh new file mode 100755 index 0000000..f199fa9 --- /dev/null +++ b/app/src/main/jni/lorie/locale/make.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e -x +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +cd ${DIR} +rm -f test generator +gcc -o generator generator.c -lxkbcommon -g -rdynamic +./generator > keymaps.h +gcc -o test test.c -lX11 -g -rdynamic +./test diff --git a/app/src/main/jni/lorie/locale/test.c b/app/src/main/jni/lorie/locale/test.c new file mode 100644 index 0000000..7731537 --- /dev/null +++ b/app/src/main/jni/lorie/locale/test.c @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include +#include "keymaps.h" +void handler(int sig) { + void *array[10]; + size_t size; + + // get void*'s for all entries on the stack + size = backtrace(array, 10); + + // print out all the frames to stderr + fprintf(stderr, "Error: signal %d:\n", sig); + backtrace_symbols_fd(array, size, STDERR_FILENO); + exit(1); +} + +void getSymLayout1(int keyCode, char* sym) { + int i; + for (i=0; lorie_keymaps[i]; i++) { + if (lorie_keymaps[i]->keysyms[keyCode - KEYCODE_MIN].normal[0] == sym[0]) { + printf("aasdasd\n"); + return; + } + } + printf("lorie_keymaps[i]->keysyms[%d].normal[0] = %c; sym[0] = %c\n", + keyCode + KEYCODE_MIN, + lorie_keymaps[0]->keysyms[keyCode - KEYCODE_MIN].normal[0], + sym[0]); + printf("aqweqweqwe\n"); +} + +char* getSymLayout(int keyCode, char* sym) { + int i, j; + for (i=0; lorie_keymaps[i]; i++) { + for (j=0; j<(KEYCODE_MAX-KEYCODE_MIN); j++) { + if (!strcmp(sym, lorie_keymaps[i]->keysyms[j].normal)) return lorie_keymaps[i]->name; + } + } + for (i=0; lorie_keymaps[i]; i++) { + for (j=0; j<(KEYCODE_MAX-KEYCODE_MIN); j++) { + if (!strcmp(sym, lorie_keymaps[i]->keysyms[j].shift)) return lorie_keymaps[i]->name; + } + } + return "unknown"; +} + +int main(void){ + signal(SIGSEGV, handler); + + char *teststrings[] = {"q", "w", "e", "1", "2", "3", "ф", "ы", "в", "ф", "א", "ת", "ה", NULL}; + for (int i=0; teststrings[i]; i++) { + printf("sym: %s, layout: %s\n", teststrings[i], getSymLayout(0, teststrings[i])); + } +} diff --git a/app/src/main/jni/lorie/main.c b/app/src/main/jni/lorie/main.c index 21fe64f..6776bb0 100644 --- a/app/src/main/jni/lorie/main.c +++ b/app/src/main/jni/lorie/main.c @@ -3,6 +3,7 @@ #include #include #include +#include #include "backend.h" #include "renderer.h" #include "interfaces.h" @@ -184,11 +185,11 @@ static void seat_get_pointer (struct wl_client *client, struct wl_resource *reso static void seat_get_keyboard (struct wl_client *client, struct wl_resource *resource, uint32_t id) { struct wl_resource *keyboard = wl_resource_create (client, &wl_keyboard_interface, 7, id); wl_resource_set_implementation (keyboard, &lorie_keyboard_interface, NULL, NULL); - //get_client(client)->keyboard = keyboard; - //int fd, size; - //backend_get_keymap (&fd, &size); - //wl_keyboard_send_keymap (keyboard, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, fd, size); - //close (fd); + get_client(client)->keyboard = keyboard; + int fd, size; + backend_get_keymap (&fd, &size); + wl_keyboard_send_keymap (keyboard, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, fd, size); + close (fd); } static struct wl_seat_interface seat_interface = {&seat_get_pointer, &seat_get_keyboard, NO_OP(wl_seat_get_touch_t)}; static void wl_seat_bind (struct wl_client *client, void *data, uint32_t version, uint32_t id) { @@ -243,11 +244,11 @@ static void handle_resize_event (int width, int height) { if (width == c.width && height == c.height) return; glViewport(0, 0, width, height); c.width = width; - c.height = height; + c.height = height; if (c.wl_output) { wl_output_send_mode(c.wl_output, 3, width, height, 60000); wl_output_send_done(c.wl_output); - + if (c.toplevel && c.toplevel->shell_surface) { wl_shell_surface_send_configure(c.toplevel->shell_surface->shell_surface, 0, width, height); wl_shell_surface_send_ping(c.toplevel->shell_surface->shell_surface, 33231); @@ -282,19 +283,29 @@ static void handle_mouse_button_event (int button, int state) { } } static void handle_key_event (int key, int state) { - //if (!c.toplevel || !c.toplevel->client->keyboard) return; - //wl_keyboard_send_key (c.toplevel->client->keyboard, 0, backend_get_timestamp(), key, state); + if (!c.toplevel || !c.toplevel->client->keyboard) return; + wl_keyboard_send_key (c.toplevel->client->keyboard, 0, backend_get_timestamp(), key, state); } static void handle_modifiers_changed (struct modifier_state new_state) { - //if (new_state.depressed == c.modifier_state.depressed && new_state.latched == c.modifier_state.latched && new_state.locked == c.modifier_state.locked && new_state.group == c.modifier_state.group) return; - //c.modifier_state = new_state; - //if (c.toplevel && c.toplevel->client->keyboard) - // wl_keyboard_send_modifiers (c.toplevel->client->keyboard, 0, c.modifier_state.depressed, c.modifier_state.latched, c.modifier_state.locked, c.modifier_state.group); + if (new_state.depressed == c.modifier_state.depressed && new_state.latched == c.modifier_state.latched && new_state.locked == c.modifier_state.locked && new_state.group == c.modifier_state.group) return; + c.modifier_state = new_state; + if (c.toplevel && c.toplevel->client->keyboard) + wl_keyboard_send_modifiers (c.toplevel->client->keyboard, 0, c.modifier_state.depressed, c.modifier_state.latched, c.modifier_state.locked, c.modifier_state.group); +} +static void handle_keymap_changed() { + struct client *client; + int fd, size; + backend_get_keymap (&fd, &size); + wl_list_for_each (client, &c.clients, link) { + if (client && client->keyboard) + wl_keyboard_send_keymap (client->keyboard, WL_KEYBOARD_KEYMAP_FORMAT_XKB_V1, fd, size); + } + close (fd); } static void handle_terminate() { c.running = false; } -static struct callbacks callbacks = {&handle_resize_event, &handle_draw_event, &handle_mouse_motion_event, &handle_mouse_button_event, &handle_key_event, &handle_modifiers_changed, &handle_terminate}; +static struct callbacks callbacks = {&handle_resize_event, &handle_draw_event, &handle_mouse_motion_event, &handle_mouse_button_event, &handle_key_event, &handle_modifiers_changed, &handle_keymap_changed, &handle_terminate}; static void draw (void) { glClearColor (0, 0, 0, 0); diff --git a/app/src/main/jni/prebuilt/Android.mk b/app/src/main/jni/prebuilt/Android.mk index 16b6f9c..e68a244 100644 --- a/app/src/main/jni/prebuilt/Android.mk +++ b/app/src/main/jni/prebuilt/Android.mk @@ -1,18 +1,16 @@ LOCAL_PATH := $(call my-dir) -# libs are prebuilt with termux -include $(CLEAR_VARS) +include $(CLEAR_VARS) LOCAL_MODULE := android-support -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so -include $(PREBUILT_SHARED_LIBRARY) +LOCAL_SRC_FILES:= $(TARGET_ARCH_ABI)/libandroid-support.so +include $(PREBUILT_SHARED_LIBRARY) -include $(CLEAR_VARS) +include $(CLEAR_VARS) LOCAL_MODULE := ffi -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so -include $(PREBUILT_SHARED_LIBRARY) +LOCAL_SRC_FILES:= $(TARGET_ARCH_ABI)/libffi.so +include $(PREBUILT_SHARED_LIBRARY) -include $(CLEAR_VARS) +include $(CLEAR_VARS) LOCAL_MODULE := wayland-server -LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/lib$(LOCAL_MODULE).so -LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include -include $(PREBUILT_SHARED_LIBRARY) +LOCAL_SRC_FILES:= $(TARGET_ARCH_ABI)/libwayland-server.so +include $(PREBUILT_SHARED_LIBRARY) diff --git a/app/src/main/jni/prebuilt/Android.mk2 b/app/src/main/jni/prebuilt/Android.mk2 new file mode 100644 index 0000000..b7ddc2d --- /dev/null +++ b/app/src/main/jni/prebuilt/Android.mk2 @@ -0,0 +1,19 @@ +LOCAL_PATH := $(call my-dir) + +define ev-prebuilt +include $$(CLEAR_VARS) +LOCAL_MODULE := $(strip $1) +LOCAL_SRC_FILES:= $$(TARGET_ARCH_ABI)/lib$(strip $1).so +include $$(PREBUILT_SHARED_LIBRARY) + +endef + +prebuilt = $(eval $(call ev-prebuilt, $1)) + +# libs are prebuilt with termux +$(info $(call ev-prebuilt, android-support)) +$(info $(call ev-prebuilt, ffi)) +$(info $(call ev-prebuilt, wayland-server)) +$(call prebuilt, android-support) +$(call prebuilt, ffi) +$(call prebuilt, wayland-server) diff --git a/app/src/main/jni/prebuilt/arm64-v8a/libandroid-support.so b/app/src/main/jni/prebuilt/arm64-v8a/libandroid-support.so new file mode 100755 index 0000000..76eb0d0 Binary files /dev/null and b/app/src/main/jni/prebuilt/arm64-v8a/libandroid-support.so differ diff --git a/app/src/main/jni/prebuilt/arm64-v8a/libffi.so b/app/src/main/jni/prebuilt/arm64-v8a/libffi.so new file mode 100755 index 0000000..666c38b Binary files /dev/null and b/app/src/main/jni/prebuilt/arm64-v8a/libffi.so differ diff --git a/app/src/main/jni/prebuilt/arm64-v8a/libwayland-server.so b/app/src/main/jni/prebuilt/arm64-v8a/libwayland-server.so new file mode 100755 index 0000000..491b0c4 Binary files /dev/null and b/app/src/main/jni/prebuilt/arm64-v8a/libwayland-server.so differ diff --git a/app/src/main/jni/prebuilt/armeabi-v7a/libandroid-support.so b/app/src/main/jni/prebuilt/armeabi-v7a/libandroid-support.so index 16494f5..cb61272 100755 Binary files a/app/src/main/jni/prebuilt/armeabi-v7a/libandroid-support.so and b/app/src/main/jni/prebuilt/armeabi-v7a/libandroid-support.so differ diff --git a/app/src/main/jni/prebuilt/armeabi-v7a/libffi.so b/app/src/main/jni/prebuilt/armeabi-v7a/libffi.so index 414df4c..4de1dab 100755 Binary files a/app/src/main/jni/prebuilt/armeabi-v7a/libffi.so and b/app/src/main/jni/prebuilt/armeabi-v7a/libffi.so differ diff --git a/app/src/main/jni/prebuilt/armeabi-v7a/libwayland-server.so b/app/src/main/jni/prebuilt/armeabi-v7a/libwayland-server.so index 94b495b..d0cd22d 100755 Binary files a/app/src/main/jni/prebuilt/armeabi-v7a/libwayland-server.so and b/app/src/main/jni/prebuilt/armeabi-v7a/libwayland-server.so differ diff --git a/app/src/main/jni/prebuilt/x86/libandroid-support.so b/app/src/main/jni/prebuilt/x86/libandroid-support.so new file mode 100755 index 0000000..8fbe6f6 Binary files /dev/null and b/app/src/main/jni/prebuilt/x86/libandroid-support.so differ diff --git a/app/src/main/jni/prebuilt/x86/libffi.so b/app/src/main/jni/prebuilt/x86/libffi.so new file mode 100755 index 0000000..c170194 Binary files /dev/null and b/app/src/main/jni/prebuilt/x86/libffi.so differ diff --git a/app/src/main/jni/prebuilt/x86/libwayland-server.so b/app/src/main/jni/prebuilt/x86/libwayland-server.so new file mode 100755 index 0000000..d6c8aa5 Binary files /dev/null and b/app/src/main/jni/prebuilt/x86/libwayland-server.so differ diff --git a/app/src/main/jni/prebuilt/x86_64/libandroid-support.so b/app/src/main/jni/prebuilt/x86_64/libandroid-support.so new file mode 100755 index 0000000..602765a Binary files /dev/null and b/app/src/main/jni/prebuilt/x86_64/libandroid-support.so differ diff --git a/app/src/main/jni/prebuilt/x86_64/libffi.so b/app/src/main/jni/prebuilt/x86_64/libffi.so new file mode 100755 index 0000000..03c2453 Binary files /dev/null and b/app/src/main/jni/prebuilt/x86_64/libffi.so differ diff --git a/app/src/main/jni/prebuilt/x86_64/libwayland-server.so b/app/src/main/jni/prebuilt/x86_64/libwayland-server.so new file mode 100755 index 0000000..29a1660 Binary files /dev/null and b/app/src/main/jni/prebuilt/x86_64/libwayland-server.so differ

; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias

! Shift : Y \n", + XKB_KEY_NoSymbol)); + + fprintf(stderr, "\n"); + table_string = + "! None : X \n" + "! Foo : X \n" + "None ! Shift : X \n" + "! : X \n" + "! ~ : X \n" + "! ! : X \n" + "! Ctrl ! Ctrl : X \n" + " ! : X \n" + " None : X \n" + "None None : X \n" + " : !Shift X \n"; + assert(!xkb_compose_table_new_from_buffer(ctx, table_string, + strlen(table_string), "C", + XKB_COMPOSE_FORMAT_TEXT_V1, + XKB_COMPOSE_COMPILE_NO_FLAGS)); + fprintf(stderr, "\n"); +} + +static void +test_include(struct xkb_context *ctx) +{ + char *path, *table_string; + int ret; + + path = test_get_path("compose/en_US.UTF-8/Compose"); + assert(path); + + /* We don't have a mechanism to change the include paths like we + * have for keymaps. So we must include the full path. */ + ret = asprintf(&table_string, + " : \"foo\" X\n" + "include \"%s\"\n" + " : \"bar\" Y\n", path); + assert(ret >= 0); + + assert(test_compose_seq_buffer(ctx, table_string, + /* No conflict. */ + XKB_KEY_dead_acute, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_dead_acute, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "´", XKB_KEY_acute, + + /* Comes before - doesn't override. */ + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_space, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "~", XKB_KEY_asciitilde, + + /* Comes after - does override. */ + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSING, "", XKB_KEY_NoSymbol, + XKB_KEY_dead_tilde, XKB_COMPOSE_FEED_ACCEPTED, XKB_COMPOSE_COMPOSED, "bar", XKB_KEY_Y, + + XKB_KEY_NoSymbol)); + + free(path); + free(table_string); +} + +int +main(int argc, char *argv[]) +{ + struct xkb_context *ctx; + + ctx = test_get_context(CONTEXT_NO_FLAG); + assert(ctx); + + test_seqs(ctx); + test_conflicting(ctx); + test_XCOMPOSEFILE(ctx); + test_state(ctx); + test_modifier_syntax(ctx); + test_include(ctx); + + xkb_context_unref(ctx); + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/context.c b/app/src/main/jni/libxkbcommon/xkbcommon/test/context.c new file mode 100644 index 0000000..dc60888 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/context.c @@ -0,0 +1,52 @@ +/* + * Copyright © 2012 Intel Corporation + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Author: Daniel Stone + */ + +#include "test.h" +#include "context.h" + +int +main(void) +{ + struct xkb_context *context = test_get_context(0); + xkb_atom_t atom; + + assert(context); + + assert(xkb_context_num_include_paths(context) == 1); + assert(!xkb_context_include_path_append(context, "¡NONSENSE!")); + assert(xkb_context_num_include_paths(context) == 1); + + atom = xkb_atom_intern(context, "HELLOjunkjunkjunk", 5); + assert(atom != XKB_ATOM_NONE); + assert(streq(xkb_atom_text(context, atom), "HELLO")); + + atom = xkb_atom_intern_literal(context, "HELLOjunkjunkjunk"); + assert(atom != XKB_ATOM_NONE); + assert(streq(xkb_atom_text(context, atom), "HELLOjunkjunkjunk")); + + xkb_context_unref(context); + + return 0; +} diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/accessx b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/accessx new file mode 100644 index 0000000..6dd6ca9 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/accessx @@ -0,0 +1,52 @@ +default partial xkb_compatibility "basic" { + interpret AccessX_Enable { + action= LockControls(controls=AccessXKeys); + }; +}; + +partial xkb_compatibility "full" { + + interpret AccessX_Enable { + action= LockControls(controls=AccessXKeys); + }; + + interpret AccessX_Feedback_Enable { + action= LockControls(controls=AccessXFeedback); + }; + + interpret RepeatKeys_Enable { + action= LockControls(controls=RepeatKeys); + }; + + interpret SlowKeys_Enable { + action= LockControls(controls=SlowKeys); + }; + + interpret BounceKeys_Enable { + action= LockControls(controls=BounceKeys); + }; + + interpret StickyKeys_Enable { + action= LockControls(controls=StickyKeys); + }; + + interpret MouseKeys_Enable { + action= LockControls(controls=MouseKeys); + }; + + interpret MouseKeys_Accel_Enable { + action= LockControls(controls=MouseKeysAccel); + }; + + interpret Overlay1_Enable { + action= LockControls(controls=Overlay1); + }; + + interpret Overlay2_Enable { + action= LockControls(controls=Overlay2); + }; + + interpret AudibleBell_Enable { + action= LockControls(controls=AudibleBell); + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/basic b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/basic new file mode 100644 index 0000000..745cbba --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/basic @@ -0,0 +1,49 @@ +// Minimal set of symbol interpretations to provide +// reasonable default behavior (Num lock, Shift lock, +// Caps lock, and Mode switch) and set up the +// automatic updating of common keyboard LEDs. + +default xkb_compatibility "basic" { + + virtual_modifiers NumLock,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret Shift_Lock+AnyOf(Shift+Lock) { + action= LockMods(modifiers=Shift); + }; + + interpret Any+Lock { + action= LockMods(modifiers=Lock); + }; + + interpret Num_Lock+Any { + virtualModifier= NumLock; + action= LockMods(modifiers=NumLock); + }; + + interpret Mode_switch { + useModMapMods= level1; + virtualModifier= AltGr; + action= SetGroup(group=+1); + }; + + interpret Any + Any { + action= SetMods(modifiers=modMapMods); + }; + + group 2 = AltGr; + group 3 = AltGr; + group 4 = AltGr; + + include "ledcaps" + include "lednum" + indicator "Shift Lock" { + !allowExplicit; + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/caps b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/caps new file mode 100644 index 0000000..4793051 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/caps @@ -0,0 +1,11 @@ +partial xkb_compatibility "caps_lock" { + // Keysym Caps_Lock locks the Lock modifier. + // With this definition, the keysym Caps_Lock can be used without binding + // the whole key to a real modifier. This is essential when you don't + // want to use Caps_Lock on the first level. + // This should not have any compatibility issues when used together with + // other layouts which don't utilize this capability. + interpret Caps_Lock { + action = LockMods(modifiers = Lock); + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/complete b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/complete new file mode 100644 index 0000000..8f77538 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/complete @@ -0,0 +1,10 @@ +default xkb_compatibility "complete" { + include "basic" + augment "iso9995" + augment "mousekeys" + augment "accessx(full)" + augment "misc" + augment "xfree86" + augment "level5" + augment "caps(caps_lock)" +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/iso9995 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/iso9995 new file mode 100644 index 0000000..0f3025b --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/iso9995 @@ -0,0 +1,77 @@ +// Fairly complete set of symbol interpretations +// to provide reasonable default behavior. + +default partial xkb_compatibility "default" { + + virtual_modifiers LevelThree,AltGr; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret ISO_Level2_Latch+Shift { + useModMapMods= level1; + action= LatchMods(modifiers=Shift); + }; + + interpret ISO_Level3_Shift+Any { + useModMapMods= level1; + virtualModifier= LevelThree; + action= SetMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Shift { + action= SetMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Latch+Any { + useModMapMods= level1; + virtualModifier= LevelThree; + action= LatchMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Latch { + action= LatchMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Lock+Any { + useModMapMods= level1; + virtualModifier= LevelThree; + action= LockMods(modifiers=LevelThree); + }; + + interpret ISO_Level3_Lock { + action= LockMods(modifiers=LevelThree); + }; + + interpret ISO_Group_Latch { + useModMapMods= level1; + virtualModifier= AltGr; + action= LatchGroup(group=2); + }; + + interpret ISO_Next_Group { + useModMapMods= level1; + virtualModifier= AltGr; + action= LockGroup(group=+1); + }; + + interpret ISO_Prev_Group { + useModMapMods= level1; + virtualModifier= AltGr; + action= LockGroup(group=-1); + }; + interpret ISO_First_Group { + action= LockGroup(group=1); + }; + + interpret ISO_Last_Group { + action= LockGroup(group=2); + }; + + indicator "Group 2" { + !allowExplicit; + groups= All-Group1; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/ledcaps b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/ledcaps new file mode 100644 index 0000000..f1460ba --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/ledcaps @@ -0,0 +1,24 @@ +// Use the Caps Lock LED to show either +// Caps Lock, Group, or Shift Lock state. + +default partial xkb_compatibility "caps_lock" { + indicator "Caps Lock" { + !allowExplicit; + whichModState= Locked; + modifiers= Lock; + }; +}; + +partial xkb_compatibility "group_lock" { + indicator "Caps Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "shift_lock" { + indicator "Caps Lock" { + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/lednum b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/lednum new file mode 100644 index 0000000..bfdcd74 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/lednum @@ -0,0 +1,24 @@ +// Use the Num Lock LED to show either +// Num Lock, Group, or Shift Lock state. + +default partial xkb_compatibility "num_lock" { + indicator "Num Lock" { + !allowExplicit; + whichModState= Locked; + modifiers= NumLock; + }; +}; + +partial xkb_compatibility "group_lock" { + indicator "Num Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "shift_lock" { + indicator "Num Lock" { + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/ledscroll b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/ledscroll new file mode 100644 index 0000000..a241698 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/ledscroll @@ -0,0 +1,24 @@ +// Use the Scroll Lock LED to show either +// Scroll Lock, Group, or Shift Lock state. + +default partial xkb_compatibility "scroll_lock" { + indicator "Scroll Lock" { + allowExplicit; + whichModState= Locked; + modifiers= ScrollLock; + }; +}; + +partial xkb_compatibility "group_lock" { + indicator "Scroll Lock" { + modifiers= None; + groups=All-group1; + }; +}; + +partial xkb_compatibility "shift_lock" { + indicator "Scroll Lock" { + whichModState= Locked; + modifiers= Shift; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/level5 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/level5 new file mode 100644 index 0000000..54f749d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/level5 @@ -0,0 +1,56 @@ +// Fairly complete set of symbol interpretations +// to provide reasonable default behavior. + +default partial xkb_compatibility "default" { + + virtual_modifiers LevelFive; + + interpret.repeat= False; + setMods.clearLocks= True; + latchMods.clearLocks= True; + latchMods.latchToLock= True; + + interpret ISO_Level5_Shift+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= SetMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Shift { + action= SetMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Latch+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= LatchMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Latch { + action= LatchMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Lock+Any { + useModMapMods= level1; + virtualModifier= LevelFive; + action= LockMods(modifiers=LevelFive); + }; + + interpret ISO_Level5_Lock { + action= LockMods(modifiers=LevelFive); + }; +}; + +partial xkb_compatibility "level5_lock" { + // This defines a Level5-Lock using the NumLock real modifier + // in order to create arbitrary level-behaviour, which would + // not be possible with the virtual modifier. + // See also: types/level5 : EIGHT_LEVEL_LEVEL_FIVE_LOCK + // See also: symbols/level5(lock) + + virtual_modifiers NumLock; + + interpret ISO_Level5_Lock { + action = LockMods(modifiers = NumLock); + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/misc b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/misc new file mode 100644 index 0000000..964f471 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/misc @@ -0,0 +1,122 @@ +default partial xkb_compatibility "misc" { + + virtual_modifiers Alt,Meta,Super,Hyper,ScrollLock; + + // Interpretations for some other useful keys. + + interpret Terminate_Server { + action = Terminate(); + }; + + setMods.clearLocks= True; + + // Sets the "Alt" virtual modifier. + + interpret Alt_L+Any { + //useModMapMods= level1; + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; + + interpret Alt_L { + action = SetMods(modifiers=Alt); + }; + + interpret Alt_R+Any { + //useModMapMods= level1; + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; + + interpret Alt_R { + action = SetMods(modifiers=Alt); + }; + + // Sets the "Meta" virtual modifier. + + interpret Meta_L+Any { + //useModMapMods= level1; + virtualModifier= Meta; + action = SetMods(modifiers=modMapMods); + }; + + interpret Meta_L { + action = SetMods(modifiers=Meta); + }; + + interpret Meta_R+Any { + //useModMapMods= level1; + virtualModifier= Meta; + action = SetMods(modifiers=modMapMods); + }; + + interpret Meta_R { + action = SetMods(modifiers=Meta); + }; + + // Sets the "Super" virtual modifier. + + interpret Super_L+Any { + //useModMapMods= level1; + virtualModifier= Super; + action = SetMods(modifiers=modMapMods); + }; + + interpret Super_L { + action = SetMods(modifiers=Super); + }; + + interpret Super_R+Any { + //useModMapMods= level1; + virtualModifier= Super; + action = SetMods(modifiers=modMapMods); + }; + + interpret Super_R { + action = SetMods(modifiers=Super); + }; + + // Sets the "Hyper" virtual modifier. + + interpret Hyper_L+Any { + //useModMapMods= level1; + virtualModifier= Hyper; + action = SetMods(modifiers=modMapMods); + }; + + interpret Hyper_L { + action = SetMods(modifiers=Hyper); + }; + + interpret Hyper_R+Any { + //useModMapMods= level1; + virtualModifier= Hyper; + action = SetMods(modifiers=modMapMods); + }; + + interpret Hyper_R { + action = SetMods(modifiers=Hyper); + }; + + // Sets the "ScrollLock" virtual modifier and + // makes it actually lock when pressed. Sets + // up a map for the scroll lock indicator. + interpret Scroll_Lock+Any { + virtualModifier= ScrollLock; + action = LockMods(modifiers=modMapMods); + }; + + include "ledscroll" + + include "misc(assign_shift_left_action)" +}; + +partial xkb_compatibility "assign_shift_left_action" { + // Because of the irrevertable modifier mapping in symbols/pc, + // is getting bound to the Lock modifier when using + // symbols/shift(both_capslock), creating unwanted behaviour. + // This is a quirk, to circumvent the problem. + interpret Shift_L { + action = SetMods(modifiers = Shift); + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/mousekeys b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/mousekeys new file mode 100644 index 0000000..6b96fbc --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/mousekeys @@ -0,0 +1,201 @@ +// Interpretations for arrow keys and a bunch of +// other common keysyms which make it possible to +// bind "mouse" keys using xmodmap and activate or +// deactivate them from the keyboard. + +default partial xkb_compatibility "mousekeys" { + + // Keypad actions. + + interpret.repeat= True; + + interpret KP_1 { + action = MovePtr(x=-1,y= +1); + }; + interpret KP_End { + action = MovePtr(x=-1,y= +1); + }; + + interpret KP_2 { + action = MovePtr(x=+0,y= +1); + }; + interpret KP_Down { + action = MovePtr(x=+0,y= +1); + }; + + interpret KP_3 { + action = MovePtr(x=+1,y=+1); + }; + interpret KP_Next { + action = MovePtr(x=+1,y=+1); + }; + + interpret KP_4 { + action = MovePtr(x=-1,y=+0); + }; + interpret KP_Left { + action = MovePtr(x=-1,y=+0); + }; + + interpret KP_6 { + action = MovePtr(x=+1,y=+0); + }; + interpret KP_Right { + action = MovePtr(x=+1,y=+0); + }; + + interpret KP_7 { + action = MovePtr(x=-1,y=-1); + }; + interpret KP_Home { + action = MovePtr(x=-1,y=-1); + }; + + interpret KP_8 { + action = MovePtr(x=+0,y=-1); + }; + interpret KP_Up { + action = MovePtr(x=+0,y=-1); + }; + + interpret KP_9 { + action = MovePtr(x=+1,y=-1); + }; + interpret KP_Prior { + action = MovePtr(x=+1,y=-1); + }; + + interpret KP_5 { + action = PointerButton(button=default); + }; + interpret KP_Begin { + action = PointerButton(button=default); + }; + + interpret KP_F2 { + action = SetPtrDflt(affect=defaultButton,button=1); + }; + interpret KP_Divide { + action = SetPtrDflt(affect=defaultButton,button=1); + }; + + interpret KP_F3 { + action = SetPtrDflt(affect=defaultButton,button=2); + }; + interpret KP_Multiply { + action = SetPtrDflt(affect=defaultButton,button=2); + }; + + interpret KP_F4 { + action = SetPtrDflt(affect=defaultButton,button=3); + }; + interpret KP_Subtract { + action = SetPtrDflt(affect=defaultButton,button=3); + }; + + interpret KP_Separator { + action = PointerButton(button=default,count=2); + }; + interpret KP_Add { + action = PointerButton(button=default,count=2); + }; + + interpret KP_0 { + action = LockPointerButton(button=default,affect=lock); + }; + interpret KP_Insert { + action = LockPointerButton(button=default,affect=lock); + }; + + interpret KP_Decimal { + action = LockPointerButton(button=default,affect=unlock); + }; + interpret KP_Delete { + action = LockPointerButton(button=default,affect=unlock); + }; + + // Additional mappings for Solaris keypad compatibility. + + interpret F25 { // aka KP_Divide + action = SetPtrDflt(affect=defaultButton,button=1); + }; + interpret F26 { // aka KP_Multiply + action = SetPtrDflt(affect=defaultButton,button=2); + }; + interpret F27 { // aka KP_Home + action = MovePtr(x=-1,y=-1); + }; + interpret F29 { // aka KP_Prior + action = MovePtr(x=+1,y=-1); + }; + interpret F31 { // aka KP_Begin + action = PointerButton(button=default); + }; + interpret F33 { // aka KP_End + action = MovePtr(x=-1,y= +1); + }; + interpret F35 { // aka KP_Next + action = MovePtr(x=+1,y=+1); + }; + + interpret.repeat= False; + + // New keysym actions. + + interpret Pointer_Button_Dflt { + action= PointerButton(button=default); + }; + interpret Pointer_Button1 { + action= PointerButton(button=1); + }; + interpret Pointer_Button2 { + action= PointerButton(button=2); + }; + interpret Pointer_Button3 { + action= PointerButton(button=3); + }; + interpret Pointer_DblClick_Dflt { + action= PointerButton(button=default,count=2); + }; + interpret Pointer_DblClick1 { + action= PointerButton(button=1,count=2); + }; + interpret Pointer_DblClick2 { + action= PointerButton(button=2,count=2); + }; + interpret Pointer_DblClick3 { + action= PointerButton(button=3,count=2); + }; + interpret Pointer_Drag_Dflt { + action= LockPointerButton(button=default); + }; + interpret Pointer_Drag1 { + action= LockPointerButton(button=1); + }; + interpret Pointer_Drag2 { + action= LockPointerButton(button=2); + }; + interpret Pointer_Drag3 { + action= LockPointerButton(button=3); + }; + + interpret Pointer_EnableKeys { + action= LockControls(controls=MouseKeys); + }; + interpret Pointer_Accelerate { + action= LockControls(controls=MouseKeysAccel); + }; + interpret Pointer_DfltBtnNext { + action= SetPtrDflt(affect=defaultButton,button= +1); + }; + interpret Pointer_DfltBtnPrev { + action= SetPtrDflt(affect=defaultButton,button= -1); + }; + + // Allow an indicator for MouseKeys. + indicator "Mouse Keys" { + //!allowExplicit; + indicatorDrivesKeyboard; + controls= MouseKeys; + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/pc b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/pc new file mode 100644 index 0000000..f69b54d --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/pc @@ -0,0 +1,17 @@ +default partial xkb_compatibility "pc" { + + // Sets the "Alt" virtual modifier. + + virtual_modifiers Alt; + + setMods.clearLocks= True; + interpret Alt_L+Any { + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; + + interpret Alt_R+Any { + virtualModifier= Alt; + action = SetMods(modifiers=modMapMods); + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/xfree86 b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/xfree86 new file mode 100644 index 0000000..cc43819 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/compat/xfree86 @@ -0,0 +1,66 @@ +// XFree86 special keysyms. + +default partial xkb_compatibility "basic" { + + interpret.repeat= True; + + interpret XF86_Switch_VT_1 { + action = SwitchScreen(Screen=1, !SameServer); + }; + interpret XF86_Switch_VT_2 { + action = SwitchScreen(Screen=2, !SameServer); + }; + interpret XF86_Switch_VT_3 { + action = SwitchScreen(Screen=3, !SameServer); + }; + interpret XF86_Switch_VT_4 { + action = SwitchScreen(Screen=4, !SameServer); + }; + interpret XF86_Switch_VT_5 { + action = SwitchScreen(Screen=5, !SameServer); + }; + interpret XF86_Switch_VT_6 { + action = SwitchScreen(Screen=6, !SameServer); + }; + interpret XF86_Switch_VT_7 { + action = SwitchScreen(Screen=7, !SameServer); + }; + interpret XF86_Switch_VT_8 { + action = SwitchScreen(Screen=8, !SameServer); + }; + interpret XF86_Switch_VT_9 { + action = SwitchScreen(Screen=9, !SameServer); + }; + interpret XF86_Switch_VT_10 { + action = SwitchScreen(Screen=10, !SameServer); + }; + interpret XF86_Switch_VT_11 { + action = SwitchScreen(Screen=11, !SameServer); + }; + interpret XF86_Switch_VT_12 { + action = SwitchScreen(Screen=12, !SameServer); + }; + + interpret XF86LogGrabInfo { + action = Private(type=0x86, data="PrGrbs"); + }; + interpret XF86LogWindowTree { + action = Private(type=0x86, data="PrWins"); + }; + + interpret XF86_Next_VMode { + action = Private(type=0x86, data="+VMode"); + }; + interpret XF86_Prev_VMode { + action = Private(type=0x86, data="-VMode"); + }; +}; + +partial xkb_compatibility "grab_break" { + interpret XF86_Ungrab { + action = Private(type=0x86, data="Ungrab"); + }; + interpret XF86_ClearGrab { + action = Private(type=0x86, data="ClsGrb"); + }; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/aliases b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/aliases new file mode 100644 index 0000000..f398772 --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/aliases @@ -0,0 +1,99 @@ + +// keycode aliases for phonetic keyboard maps + +default +xkb_keycodes "qwerty" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_keycodes "azerty" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; + +xkb_keycodes "qwertz" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; +}; diff --git a/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/aliases-xkbcommon b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/aliases-xkbcommon new file mode 100644 index 0000000..96a17ab --- /dev/null +++ b/app/src/main/jni/libxkbcommon/xkbcommon/test/data/keycodes/aliases-xkbcommon @@ -0,0 +1,99 @@ + +// keycode aliases for phonetic keyboard maps + +default +xkb_keycodes "qwerty" { + + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias = ; + alias =