summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcyan <cyjan@mrcyjanek.net>2024-11-08 15:23:04 +0000
committercyan <cyjan@mrcyjanek.net>2024-11-08 15:27:18 +0000
commit228c92021dafa1e76f7d39ecf1af5a0f843940d0 (patch)
tree642cd49522c747a6565000566bc4d45c8fa1fbb5
parentcb6dcd0ca499bfbd5e8c167dfbdff84b444d181c (diff)
migrate build system
-rw-r--r--.github/workflows/full_check.yaml91
-rwxr-xr-xbuild_single.sh126
-rw-r--r--contrib/depends/.gitignore10
-rw-r--r--contrib/depends/Makefile229
-rw-r--r--contrib/depends/README.md74
-rw-r--r--contrib/depends/builders/darwin.mk22
-rw-r--r--contrib/depends/builders/default.mk21
-rw-r--r--contrib/depends/builders/linux.mk2
-rwxr-xr-xcontrib/depends/config.guess1815
-rwxr-xr-xcontrib/depends/config.site.in66
-rwxr-xr-xcontrib/depends/config.sub2354
-rw-r--r--contrib/depends/description.md53
-rw-r--r--contrib/depends/funcs.mk272
-rw-r--r--contrib/depends/hosts/android.mk32
-rw-r--r--contrib/depends/hosts/darwin.mk23
-rw-r--r--contrib/depends/hosts/default.mk26
-rw-r--r--contrib/depends/hosts/freebsd.mk18
-rw-r--r--contrib/depends/hosts/linux.mk32
-rw-r--r--contrib/depends/hosts/mingw32.mk11
-rw-r--r--contrib/depends/packages.md165
-rw-r--r--contrib/depends/packages/android_ndk.mk36
-rw-r--r--contrib/depends/packages/boost.mk48
-rw-r--r--contrib/depends/packages/darwin_sdk.mk10
-rw-r--r--contrib/depends/packages/eudev.mk30
-rw-r--r--contrib/depends/packages/expat.mk28
-rw-r--r--contrib/depends/packages/freebsd_base.mk23
-rw-r--r--contrib/depends/packages/graphviz.mk30
-rw-r--r--contrib/depends/packages/gtest.mk39
-rw-r--r--contrib/depends/packages/hidapi.mk38
-rw-r--r--contrib/depends/packages/icu4c.mk27
-rw-r--r--contrib/depends/packages/libICE.mk23
-rw-r--r--contrib/depends/packages/libSM.mk23
-rw-r--r--contrib/depends/packages/libiconv.mk35
-rw-r--r--contrib/depends/packages/libusb.mk39
-rw-r--r--contrib/depends/packages/native_biplist.mk20
-rw-r--r--contrib/depends/packages/native_ccache.mk25
-rw-r--r--contrib/depends/packages/native_cctools.mk28
-rw-r--r--contrib/depends/packages/native_cdrkit.mk26
-rw-r--r--contrib/depends/packages/native_clang.mk29
-rw-r--r--contrib/depends/packages/native_cmake-unused.mk23
-rw-r--r--contrib/depends/packages/native_ds_store.mk17
-rw-r--r--contrib/depends/packages/native_libdmg-hfsplus.mk22
-rw-r--r--contrib/depends/packages/native_libtapi.mk28
-rw-r--r--contrib/depends/packages/native_mac_alias.mk21
-rw-r--r--contrib/depends/packages/native_protobuf.mk27
-rw-r--r--contrib/depends/packages/ncurses.mk63
-rw-r--r--contrib/depends/packages/openssl.mk68
-rw-r--r--contrib/depends/packages/packages.mk38
-rw-r--r--contrib/depends/packages/polyseed.mk28
-rw-r--r--contrib/depends/packages/protobuf.mk36
-rw-r--r--contrib/depends/packages/readline.mk29
-rw-r--r--contrib/depends/packages/sodium.mk34
-rw-r--r--contrib/depends/packages/unbound.mk36
-rw-r--r--contrib/depends/packages/unwind.mk29
-rw-r--r--contrib/depends/packages/wownero_seed.mk35
-rw-r--r--contrib/depends/packages/xproto.mk21
-rw-r--r--contrib/depends/packages/zeromq.mk35
-rw-r--r--contrib/depends/patches/boost/fix_arm_arch.patch11
-rw-r--r--contrib/depends/patches/boost/fix_aroptions.patch28
-rw-r--r--contrib/depends/patches/cmake/cmake-1-fixes.patch67
-rw-r--r--contrib/depends/patches/hidapi/missing_win_include.patch21
-rw-r--r--contrib/depends/patches/icu4c/icu-001-dont-build-static-dynamic-twice.patch37
-rw-r--r--contrib/depends/patches/libiconv/fix-whitespace.patch13
-rw-r--r--contrib/depends/patches/native_biplist/sorted_list.patch29
-rw-r--r--contrib/depends/patches/native_cdrkit/cdrkit-deterministic.patch86
-rw-r--r--contrib/depends/patches/native_mac_alias/python3.patch72
-rw-r--r--contrib/depends/patches/ncurses/fallback.c6621
-rw-r--r--contrib/depends/patches/polyseed/0001-disable-soname.patch48
-rw-r--r--contrib/depends/patches/polyseed/force-static-mingw.patch23
-rw-r--r--contrib/depends/patches/protobuf/visibility.patch159
-rw-r--r--contrib/depends/patches/sodium/disable-glibc-getrandom-getentropy.patch25
-rw-r--r--contrib/depends/patches/sodium/fix-whitespace.patch13
-rw-r--r--contrib/depends/patches/unbound/disable-glibc-reallocarray.patch14
-rw-r--r--contrib/depends/patches/unwind/fix_obj_order.patch11
-rw-r--r--contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch497
-rw-r--r--contrib/depends/patches/zeromq/06aba27b04c5822cb88a69677382a0f053367143.patch22
-rw-r--r--contrib/depends/toolchain.cmake.in177
-rw-r--r--monero_libwallet2_api_c/CMakeLists.txt284
-rw-r--r--patches/monero/0013-add-monero-submodule-support.patch65
-rw-r--r--patches/wownero/0015-add-monero-submodule-support.patch65
80 files changed, 14546 insertions, 431 deletions
diff --git a/.github/workflows/full_check.yaml b/.github/workflows/full_check.yaml
index 19f2786..f8d0491 100644
--- a/.github/workflows/full_check.yaml
+++ b/.github/workflows/full_check.yaml
@@ -35,8 +35,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: ${{ matrix.coin }}/x86_64-w64-mingw32
run: ./build_single.sh ${{ matrix.coin }} x86_64-w64-mingw32 -j$(nproc)
- name: ${{ matrix.coin }}/i686-w64-mingw32
@@ -101,8 +101,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: ${{ matrix.coin }}/x86_64-linux-android
run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-android -j$(nproc)
- name: ${{ matrix.coin }}/aarch64-linux-android
@@ -129,8 +129,8 @@ jobs:
path: release/${{ matrix.coin }}
- name: remove android_ndk
run: |
- rm -rf ${{ matrix.coin }}/contrib/depends/built/*/android_ndk
- rm -rf ${{ matrix.coin }}/contrib/depends/sources/android-ndk-r26d-linux.zip
+ rm -rf contrib/depends/built/*/android_ndk
+ rm -rf contrib/depends/sources/android-ndk-r26d-linux.zip
lib_linux:
strategy:
matrix:
@@ -162,8 +162,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: ${{ matrix.coin }}/x86_64-linux-gnu
run: ./build_single.sh ${{ matrix.coin }} x86_64-linux-gnu -j$(nproc)
- name: ${{ matrix.coin }}/aarch64-linux-gnu
@@ -220,8 +220,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
- name: ${{ matrix.coin }}/aarch64-meego-linux-gnu
run: |
docker run --rm -v $PWD/.ccache:/root/.ccache -v $PWD:$PWD -w $PWD ghcr.io/mrcyjanek/sailfishos:4.6.0.11_target_aarch64 bash -c 'zypper in -f -y perl-IPC-Cmd curl ccache gperf cmake ffmpeg-tools git clang libxkbcommon-devel wayland-protocols-devel wayland-client wayland-egl-devel make glibc-static && git config --global --add safe.directory "*" && for i in gcc g++ ar ranlib; do ln -s /usr/bin/$i /usr/bin/aarch64-meego-linux-gnu-$i; ln -s /usr/bin/$i /usr/bin/aarch64-linux-gnu-$i; done && ./build_single.sh ${{ matrix.coin }} aarch64-meego-linux-gnu -j$(nproc)'
@@ -268,8 +268,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: ${{ matrix.coin }}/aarch64-meego-linux-gnu
run: |
docker run --rm -v $PWD/.ccache:/root/.ccache -v $PWD:$PWD -w $PWD ghcr.io/mrcyjanek/sailfishos:4.6.0.11_target_i486 bash -c 'zypper in -f -y perl-IPC-Cmd curl ccache gperf cmake ffmpeg-tools git clang libxkbcommon-devel wayland-protocols-devel wayland-client wayland-egl-devel make glibc-static && git config --global --add safe.directory "*" && for i in gcc g++ ar ranlib; do ln -s /usr/bin/$i /usr/bin/i686-linux-gnu-$i; ln -s /usr/bin/$i /usr/bin/i686-meego-linux-gnu-$i; done && ./build_single.sh ${{ matrix.coin }} i686-meego-linux-gnu -j$(nproc)'
@@ -323,8 +323,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: ${{ matrix.coin }}/x86_64-apple-darwin11
run: ./build_single.sh ${{ matrix.coin }} x86_64-apple-darwin11 -j$(nproc)
- name: ${{ matrix.coin }}/aarch64-apple-darwin11
@@ -387,8 +387,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: build
run: |
./build_single.sh ${{ matrix.coin }} aarch64-host-apple-darwin -j$(sysctl -n hw.logicalcpu)
@@ -444,8 +444,8 @@ jobs:
uses: actions/cache@v4
with:
path: |
- ${{ matrix.coin }}/contrib/depends/built/*
- key: depends-${{ github.job }}-${{ matrix.coin }}-${{ hashFiles('*/contrib/depends/packages/*.mk') }}
+ contrib/depends/built/*
+ key: depends-${{ github.job }}-${{ hashFiles('contrib/depends/packages/*.mk') }}
- name: build
run: |
./build_single.sh ${{ matrix.coin }} host-apple-ios -j$(sysctl -n hw.logicalcpu)
@@ -609,57 +609,4 @@ jobs:
path: release/${{ matrix.coin }}
- name: Run regression tests
- run: COIN="${{ matrix.coin }}" deno test -A tests/
-
- comment_pr:
- name: comment on pr
- runs-on: ubuntu-latest
- needs: [
- lib_mingw, lib_android, lib_linux, lib_sailfishos_aarch64, lib_sailfishos_i486, lib_darwin, lib_macos, lib_ios,
- ]
- steps:
- - uses: actions/github-script@v7
- continue-on-error: true
- id: get_issue_number
- with:
- script: |
- if (context.issue.number) {
- // Return issue number if present
- return context.issue.number;
- } else {
- // Otherwise return issue number from commit
- return (
- await github.rest.repos.listPullRequestsAssociatedWithCommit({
- commit_sha: context.sha,
- owner: context.repo.owner,
- repo: context.repo.repo,
- })
- ).data[0].number;
- }
- result-encoding: string
- - name: Find Comment
- continue-on-error: true
- uses: peter-evans/find-comment@v3
- id: fc
- with:
- issue-number: ${{steps.get_issue_number.outputs.result}}
- comment-author: 'github-actions[bot]'
- body-includes: download artifacts
- - name: Update comment
- continue-on-error: true
- if: steps.fc.outcome == 'success'
- uses: peter-evans/create-or-update-comment@v4
- with:
- comment-id: ${{ steps.fc.outputs.comment-id }}
- issue-number: ${{steps.get_issue_number.outputs.result}}
- body: |
- [download artifacts #${{github.run_id}}](https://nightly.link/MrCyjaneK/monero_c/actions/runs/${{github.run_id}})
- edit-mode: replace
- - name: Create comment
- continue-on-error: true
- if: steps.fc.outcome == 'failure'
- uses: peter-evans/create-or-update-comment@v4
- with:
- issue-number: ${{steps.get_issue_number.outputs.result}}
- body: |
- [download artifacts #${{github.run_id}}](https://nightly.link/MrCyjaneK/monero_c/actions/runs/${{github.run_id}}) (this comment will update whenever you push)
+ run: COIN="${{ matrix.coin }}" deno test -A tests/ \ No newline at end of file
diff --git a/build_single.sh b/build_single.sh
index 4f0c5ad..b42a661 100755
--- a/build_single.sh
+++ b/build_single.sh
@@ -103,24 +103,24 @@ case "$HOST_ABI" in
export CXX="${HOST_ABI}-g++"
;;
"x86_64-linux-android")
- export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=x86_64-linux-android21-clang
- export CXX=x86_64-linux-android21-clang++
+ export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/x86_64-linux-android21-clang
+ export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/x86_64-linux-android21-clang++
;;
"i686-linux-android")
- export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=i686-linux-android21-clang
- export CXX=i686-linux-android21-clang++
+ export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/i686-linux-android21-clang
+ export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/i686-linux-android21-clang++
;;
"aarch64-linux-android")
- export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=aarch64-linux-android21-clang
- export CXX=aarch64-linux-android21-clang++
+ export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/aarch64-linux-android21-clang
+ export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/aarch64-linux-android21-clang++
;;
"armv7a-linux-androideabi")
- export PATH="$WDIR/$repo/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
- export CC=armv7a-linux-androideabi21-clang
- export CXX=armv7a-linux-androideabi21-clang++
+ export PATH="$WDIR/contrib/depends/${HOST_ABI}/native/bin/:$PATH"
+ export CC=$WDIR/contrib/depends/${HOST_ABI}/native/bin/armv7a-linux-androideabi21-clang
+ export CXX=$WDIR/contrib/depends/${HOST_ABI}/native/bin/armv7a-linux-androideabi21-clang++
;;
"i686-w64-mingw32")
update-alternatives --set i686-w64-mingw32-gcc /usr/bin/i686-w64-mingw32-gcc-posix
@@ -135,14 +135,14 @@ case "$HOST_ABI" in
export CXX=x86_64-w64-mingw32-g++-posix
;;
"x86_64-apple-darwin11")
- export PATH="$WDIR/$repo/contrib/depends/x86_64-apple-darwin11/native/bin:$PATH"
- export CC="clang -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/$repo/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
- export CXX="clang++ -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/$repo/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
+ export PATH="$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin:$PATH"
+ export CC="clang -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
+ export CXX="clang++ -stdlib=libc++ -target x86_64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/x86_64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/x86_64-apple-darwin11/native/bin/x86_64-apple-darwin11-"
;;
"aarch64-apple-darwin11")
- export PATH="$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin:$PATH"
- export CC="clang -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
- export CXX="clang++ -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/$repo/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
+ export PATH="$WDIR/contrib/depends/aarch64-apple-darwin11/native/bin:$PATH"
+ export CC="clang -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
+ export CXX="clang++ -stdlib=libc++ -target arm64-apple-darwin11 -mmacosx-version-min=10.14 --sysroot $WDIR/contrib/depends/aarch64-apple-darwin11/native/SDK/ -mlinker-version=609 -B$WDIR/contrib/depends/aarch64-apple-darwin11/native/bin/aarch64-apple-darwin11-"
;;
"host-apple-darwin"|"x86_64-host-apple-darwin"|"aarch64-host-apple-darwin")
export CC="clang"
@@ -157,7 +157,7 @@ case "$HOST_ABI" in
exit 1
;;
esac
-pushd $repo/contrib/depends
+pushd contrib/depends
case "$HOST_ABI" in
"x86_64-linux-gnu" | "i686-linux-gnu" | "i686-meego-linux-gnu" | "aarch64-linux-gnu" | "aarch64-meego-linux-gnu" | "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "armv7a-linux-androideabi" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11")
env -i PATH="$PATH" CC=gcc CXX=g++ make HOST="$HOST_ABI" "$NPROC"
@@ -299,83 +299,6 @@ popd
buildType=Debug
-rm -rf $repo/build/${HOST_ABI} 2>/dev/null || true
-mkdir -p $repo/build/${HOST_ABI}
-pushd $repo/build/${HOST_ABI}
- case "$HOST_ABI" in
- "x86_64-linux-gnu")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x64" -D CMAKE_SYSTEM_NAME="Linux" ../..
- ;;
- "i686-linux-gnu")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="i686" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x86" -D CMAKE_SYSTEM_NAME="Linux" ../..
- ;;
- "i686-meego-linux-gnu")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="i686" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x86" -D CMAKE_SYSTEM_NAME="Linux" ../..
- ;;
- "aarch64-linux-gnu")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv8-a" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-armv8" -D CMAKE_SYSTEM_NAME="Linux" ../..
- ;;
- "aarch64-meego-linux-gnu")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv8-a" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-armv8" -D CMAKE_SYSTEM_NAME="Linux" ../..
- ;;
- "x86_64-linux-android")
- env CC="${CC}" CXX="${CXX}" cmake -DMONERO_WALLET_CRYPTO_LIBRARY=amd64-64-24k -DHIDAPI_DUMMY=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-x86_64" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="x86_64" ../..
- ;;
- "i686-linux-android")
- env CC="${CC}" CXX="${CXX}" cmake -DHIDAPI_DUMMY=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-x86" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="x86" ../..
- ;;
- "aarch64-linux-android")
- env CC="${CC}" CXX="${CXX}" cmake -DHIDAPI_DUMMY=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv8-a" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-armv8" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="arm64-v8a" ../..
- ;;
- "armv7a-linux-androideabi")
- env CC="${CC}" CXX="${CXX}" cmake -DHIDAPI_DUMMY=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="armv7-a" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-armv7" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="armeabi-v7a" ../..
- ;;
- "x86_64-w64-mingw32")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="win-x64" ../..
- ;;
- "i686-w64-mingw32")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="i686" -D BUILD_64=OFF -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="win-x32" ../..
- ;;
- "x86_64-apple-darwin11")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="x86-64" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="mac-x64" ../..
- ;;
- "aarch64-apple-darwin11")
- env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_TOOLCHAIN_FILE=$PWD/../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D ARCH="armv8-a" -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType -D BUILD_TAG="mac-armv8" ../..
- ;;
- "host-apple-darwin" | "x86_64-host-apple-darwin" | "aarch64-host-apple-darwin")
- PREFIX="$(realpath "${PWD}/../../../external/macos/build/MACOS")"
- env \
- CMAKE_INCLUDE_PATH="${PREFIX}/include" \
- CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
- CC="${CC}" CXX="${CXX}" cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D STATIC=ON -D BUILD_64=ON -D CMAKE_BUILD_TYPE=$buildType ../..
- ;;
- "host-apple-ios")
- PREFIX="$(realpath "${PWD}/../../../external/ios/build/ios")"
- # echo $PREFIX
- # exit 1
- env \
- CMAKE_INCLUDE_PATH="${PREFIX}/include" \
- CMAKE_LIBRARY_PATH="${PREFIX}/lib" \
- CC="${IOS_CC}" CXX="${IOS_CXX}" cmake -DHIDAPI_DUMMY=ON -D IOS=ON -D ARCH=arm64 -D CMAKE_BUILD_DYPE=$buildType -D STATIC=ON -D BUILD_GUI_DEPS=1 -D UNBOUND_INCLUDE_DIR="${PREFIX}/lib" ../..
- ;;
- *)
- echo "we don't know how to compile monero for '$HOST_ABI'"
- exit 1
- ;;
- esac
- CC=gcc CXX=g++ make wallet_api $NPROC
-popd
-
-# Special treatment for apple
-if [[ "${HOST_ABI}" == "x86_64-apple-darwin11" || "${HOST_ABI}" == "aarch64-apple-darwin11" ]];
-then
- ${HOST_ABI}-ranlib $PWD/$repo/contrib/depends/${HOST_ABI}/lib/libpolyseed.a
- if [[ "$repo" == "wownero" ]];
- then
- ${HOST_ABI}-ranlib $PWD/$repo/contrib/depends/${HOST_ABI}/lib/libwownero-seed.a
- fi
-fi
-
pushd ${repo}_libwallet2_api_c
rm -rf build/${HOST_ABI} || true
mkdir -p build/${HOST_ABI} -p
@@ -383,12 +306,17 @@ pushd ${repo}_libwallet2_api_c
case $HOST_ABI in
"x86_64-linux-gnu" | "i686-linux-gnu" | "i686-meego-linux-gnu" | "aarch64-linux-gnu" | "aarch64-meego-linux-gnu" | "i686-w64-mingw32" | "x86_64-w64-mingw32" | "x86_64-apple-darwin11" | "aarch64-apple-darwin11" | "host-apple-darwin" | "x86_64-host-apple-darwin" | "aarch64-host-apple-darwin")
echo $CC
- env CC="${CC}" CXX="${CXX}" cmake -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../..
+ env CC="${CC}" CXX="${CXX}" cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=false -D BUILD_TAG="linux-x64" -D CMAKE_SYSTEM_NAME="Linux" -DCMAKE_TOOLCHAIN_FILE=$PWD/../../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../..
+ CC="${CC}" CXX="${CXX}" make $NPROC
+ ;;
+ "x86_64-linux-android")
+ echo $CC
+ env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -DMONERO_WALLET_CRYPTO_LIBRARY=amd64-64-24k -DHIDAPI_DUMMY=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86-64" -D STATIC=ON -D BUILD_64="ON" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-x86_64" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="x86_64" -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../..
CC="${CC}" CXX="${CXX}" make $NPROC
;;
- "x86_64-linux-android" | "i686-linux-android" | "aarch64-linux-android" | "armv7a-linux-androideabi")
+ "i686-linux-android" | "aarch64-linux-android" | "armv7a-linux-androideabi")
echo $CC
- env CC="${CC}" CXX="${CXX}" cmake -DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../..
+ env CC="${CC}" CXX="${CXX}" cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/../../../contrib/depends/${HOST_ABI}/share/toolchain.cmake -DHIDAPI_DUMMY=ON -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_SYSTEM_VERSION=1 -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH="x86" -D STATIC=ON -D BUILD_64="OFF" -D CMAKE_BUILD_TYPE=$buildType -D ANDROID=true -D BUILD_TAG="android-x86" -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_ARCH_ABI="x86"-DMONERO_FLAVOR=$repo -DCMAKE_BUILD_TYPE=Debug -DHOST_ABI=${HOST_ABI} ../..
CC="${CC}" CXX="${CXX}" make $NPROC
;;
"host-apple-ios")
diff --git a/contrib/depends/.gitignore b/contrib/depends/.gitignore
new file mode 100644
index 0000000..3cb4b9a
--- /dev/null
+++ b/contrib/depends/.gitignore
@@ -0,0 +1,10 @@
+SDKs/
+work/
+built/
+sources/
+config.site
+x86_64*
+i686*
+mips*
+arm*
+aarch64*
diff --git a/contrib/depends/Makefile b/contrib/depends/Makefile
new file mode 100644
index 0000000..09cb177
--- /dev/null
+++ b/contrib/depends/Makefile
@@ -0,0 +1,229 @@
+.NOTPARALLEL :
+
+SOURCES_PATH ?= $(BASEDIR)/sources
+BASE_CACHE ?= $(BASEDIR)/built
+FALLBACK_DOWNLOAD_PATH ?= https://static.mrcyjanek.net/.download_mirror
+
+BUILD = $(shell ./config.guess)
+HOST ?= $(BUILD)
+PATCHES_PATH = $(BASEDIR)/patches
+BASEDIR = $(CURDIR)
+HASH_LENGTH:=11
+DOWNLOAD_CONNECT_TIMEOUT:=30
+DOWNLOAD_RETRIES:=5
+HOST_ID_SALT ?= salt
+BUILD_ID_SALT ?= salt
+
+host:=$(BUILD)
+ifneq ($(HOST),)
+host:=$(HOST)
+host_toolchain:=$(HOST)-
+endif
+
+ifneq ($(DEBUG),)
+release_type=Debug
+else
+release_type=Release
+endif
+
+ifneq ($(TESTS),)
+build_tests=ON
+release_type=Debug
+else
+build_tests=OFF
+endif
+
+base_build_dir=$(BASEDIR)/work/build
+base_staging_dir=$(BASEDIR)/work/staging
+base_download_dir=$(BASEDIR)/work/download
+canonical_host:=$(shell ./config.sub $(HOST))
+build:=$(shell ./config.sub $(BUILD))
+
+build_arch =$(firstword $(subst -, ,$(build)))
+build_vendor=$(word 2,$(subst -, ,$(build)))
+full_build_os:=$(subst $(build_arch)-$(build_vendor)-,,$(build))
+build_os:=$(findstring linux,$(full_build_os))
+build_os+=$(findstring darwin,$(full_build_os))
+build_os:=$(strip $(build_os))
+ifeq ($(build_os),)
+build_os=$(full_build_os)
+endif
+
+host_arch=$(firstword $(subst -, ,$(canonical_host)))
+host_vendor=$(word 2,$(subst -, ,$(canonical_host)))
+full_host_os:=$(subst $(host_arch)-$(host_vendor)-,,$(canonical_host))
+host_os:=$(findstring android,$(full_host_os))
+ifeq ($(host_os),)
+host_os:=$(findstring linux,$(full_host_os))
+endif
+host_os+=$(findstring darwin,$(full_host_os))
+host_os+=$(findstring freebsd,$(full_host_os))
+host_os+=$(findstring mingw32,$(full_host_os))
+host_os:=$(strip $(host_os))
+ifeq ($(host_os),)
+host_os=$(full_host_os)
+endif
+
+$(host_arch)_$(host_os)_prefix=$(BASEDIR)/$(host)
+$(host_arch)_$(host_os)_host=$(host)
+host_prefix=$($(host_arch)_$(host_os)_prefix)
+build_prefix=$(host_prefix)/native
+ifeq ($(host_os),mingw32)
+host_cmake=Windows
+endif
+ifeq ($(host_os),linux)
+host_cmake=Linux
+endif
+ifeq ($(host_os),freebsd)
+host_cmake=FreeBSD
+endif
+ifeq ($(host_os),darwin)
+host_cmake=Darwin
+endif
+ifeq ($(host_os),android)
+host_cmake=Android
+endif
+
+AT_$(V):=
+AT_:=@
+AT:=$(AT_$(V))
+
+all: install
+
+include hosts/$(host_os).mk
+include hosts/default.mk
+include builders/$(build_os).mk
+include builders/default.mk
+include packages/packages.mk
+
+build_id_string:=$(BUILD_ID_SALT)
+build_id_string+=$(shell $(build_CC) --version 2>/dev/null)
+build_id_string+=$(shell $(build_AR) --version 2>/dev/null)
+build_id_string+=$(shell $(build_CXX) --version 2>/dev/null)
+build_id_string+=$(shell $(build_RANLIB) --version 2>/dev/null)
+build_id_string+=$(shell $(build_STRIP) --version 2>/dev/null)
+
+$(host_arch)_$(host_os)_id_string:=$(HOST_ID_SALT)
+$(host_arch)_$(host_os)_id_string+=$(shell $(host_CC) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string+=$(shell $(host_AR) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string+=$(shell $(host_CXX) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string+=$(shell $(host_RANLIB) --version 2>/dev/null)
+$(host_arch)_$(host_os)_id_string+=$(shell $(host_STRIP) --version 2>/dev/null)
+
+packages += $($(host_arch)_$(host_os)_packages) $($(host_os)_packages)
+native_packages += $($(host_arch)_$(host_os)_native_packages) $($(host_os)_native_packages)
+
+all_packages = $(packages) $(native_packages)
+
+meta_depends = Makefile funcs.mk builders/default.mk hosts/default.mk hosts/$(host_os).mk builders/$(build_os).mk
+
+$(host_arch)_$(host_os)_native_toolchain?=$($(host_os)_native_toolchain)
+
+include funcs.mk
+
+CONF_PKGS := cmake-conf mxe-conf
+
+build-only-$(1)_$(3): CMAKE_RUNRESULT_FILE = $(PREFIX)/share/cmake/modules/TryRunResults.cmake
+build-only-$(1)_$(3): CMAKE_TOOLCHAIN_FILE = $(PREFIX)/$(3)/share/cmake/mxe-conf.cmake
+build-only-$(1)_$(3): CMAKE_TOOLCHAIN_DIR = $(PREFIX)/$(3)/share/cmake/mxe-conf.d
+build-only-$(1)_$(3): CMAKE_STATIC_BOOL = $(if $(findstring shared,$(3)),OFF,ON)
+build-only-$(1)_$(3): CMAKE_SHARED_BOOL = $(if $(findstring shared,$(3)),ON,OFF)
+
+
+toolchain_path=$($($(host_arch)_$(host_os)_native_toolchain)_prefixbin)
+final_build_id_long+=$(shell $(build_SHA256SUM) config.site.in)
+final_build_id_long+=$(shell $(build_SHA256SUM) toolchain.cmake.in)
+final_build_id+=$(shell echo -n "$(final_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH))
+$(host_prefix)/.stamp_$(final_build_id): $(native_packages) $(packages)
+ $(AT)rm -rf $(@D)
+ $(AT)mkdir -p $(@D)
+ $(AT)echo copying packages: $^
+ $(AT)echo to: $(@D)
+ $(AT)cd $(@D); $(foreach package,$^, tar xf $($(package)_cached); )
+ $(AT)touch $@
+
+$(host_prefix)/share/config.site : config.site.in $(host_prefix)/.stamp_$(final_build_id)
+ $(AT)@mkdir -p $(@D)
+ $(AT)sed -e 's|@HOST@|$(host)|' \
+ -e 's|@CC@|$(toolchain_path)$(host_CC)|' \
+ -e 's|@CXX@|$(toolchain_path)$(host_CXX)|' \
+ -e 's|@AR@|$(toolchain_path)$(host_AR)|' \
+ -e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
+ -e 's|@NM@|$(toolchain_path)$(host_NM)|' \
+ -e 's|@STRIP@|$(toolchain_path)$(host_STRIP)|' \
+ -e 's|@build_os@|$(build_os)|' \
+ -e 's|@host_os@|$(host_os)|' \
+ -e 's|@CFLAGS@|$(strip $(host_CFLAGS) $(host_$(release_type)_CFLAGS))|' \
+ -e 's|@CXXFLAGS@|$(strip $(host_CXXFLAGS) $(host_$(release_type)_CXXFLAGS))|' \
+ -e 's|@CPPFLAGS@|$(strip $(host_CPPFLAGS) $(host_$(release_type)_CPPFLAGS))|' \
+ -e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \
+ -e 's|@allow_host_packages@|$(ALLOW_HOST_PACKAGES)|' \
+ -e 's|@debug@|$(DEBUG)|' \
+ $< > $@
+ $(AT)touch $@
+
+$(host_prefix)/share/toolchain.cmake : toolchain.cmake.in $(host_prefix)/.stamp_$(final_build_id)
+ $(AT)@mkdir -p $(@D)
+ $(AT)sed -e 's|@HOST@|$(host)|' \
+ -e 's|@CC@|$(toolchain_path)$(host_CC)|' \
+ -e 's|@CXX@|$(toolchain_path)$(host_CXX)|' \
+ -e 's|@AR@|$(toolchain_path)$(host_AR)|' \
+ -e 's|@RANLIB@|$(toolchain_path)$(host_RANLIB)|' \
+ -e 's|@NM@|$(toolchain_path)$(host_NM)|' \
+ -e 's|@STRIP@|$(toolchain_path)$(host_STRIP)|' \
+ -e 's|@build_os@|$(build_os)|' \
+ -e 's|@host_os@|$(host_os)|' \
+ -e 's|@CFLAGS@|$(strip $(host_CFLAGS) $(host_$(release_type)_CFLAGS))|' \
+ -e 's|@CXXFLAGS@|$(strip $(host_CXXFLAGS) $(host_$(release_type)_CXXFLAGS))|' \
+ -e 's|@CPPFLAGS@|$(strip $(host_CPPFLAGS) $(host_$(release_type)_CPPFLAGS))|' \
+ -e 's|@LDFLAGS@|$(strip $(host_LDFLAGS) $(host_$(release_type)_LDFLAGS))|' \
+ -e 's|@allow_host_packages@|$(ALLOW_HOST_PACKAGES)|' \
+ -e 's|@debug@|$(DEBUG)|' \
+ -e 's|@release_type@|$(release_type)|' \
+ -e 's|@build_tests@|$(build_tests)|' \
+ -e 's|@depends@|$(host_cmake)|' \
+ -e 's|@prefix@|$($(host_arch)_$(host_os)_prefix)|'\
+ -e 's|@arch@|$(host_arch)|'\
+ $< > $@
+ $(AT)touch $@
+
+define check_or_remove_cached
+ mkdir -p $(BASE_CACHE)/$(host)/$(package) && cd $(BASE_CACHE)/$(host)/$(package); \
+ $(build_SHA256SUM) -c $($(package)_cached_checksum) >/dev/null 2>/dev/null || \
+ ( rm -f $($(package)_cached_checksum); \
+ if test -f "$($(package)_cached)"; then echo "Checksum mismatch for $(package). Forcing rebuild.."; rm -f $($(package)_cached_checksum) $($(package)_cached); fi )
+endef
+
+define check_or_remove_sources
+ mkdir -p $($(package)_source_dir); cd $($(package)_source_dir); \
+ test -f $($(package)_fetched) && ( $(build_SHA256SUM) -c $($(package)_fetched) >/dev/null 2>/dev/null || \
+ ( echo "Checksum missing or mismatched for $(package) source. Forcing re-download."; \
+ rm -f $($(package)_all_sources) $($(1)_fetched))) || true
+endef
+
+check-packages:
+ @$(foreach package,$(all_packages),$(call check_or_remove_cached,$(package));)
+check-sources:
+ @$(foreach package,$(all_packages),$(call check_or_remove_sources,$(package));)
+
+$(host_prefix)/share/config.site: check-packages
+$(host_prefix)/share/toolchain.cmake: check-packages
+
+check-packages: check-sources
+
+install: check-packages $(host_prefix)/share/config.site
+install: check-packages $(host_prefix)/share/toolchain.cmake
+
+download-one: check-sources $(all_sources)
+
+download-osx:
+ @$(MAKE) -s HOST=x86_64-apple-darwin11 download-one
+download-linux:
+ @$(MAKE) -s HOST=x86_64-unknown-linux-gnu download-one
+download-win:
+ @$(MAKE) -s HOST=x86_64-w64-mingw32 download-one
+download: download-osx download-linux download-win
+
+ $(foreach package,$(all_packages),$(eval $(call ext_add_stages,$(package))))
+
+.PHONY: install cached download-one download-osx download-linux download-win download check-packages check-sources
diff --git a/contrib/depends/README.md b/contrib/depends/README.md
new file mode 100644
index 0000000..1aa5b27
--- /dev/null
+++ b/contrib/depends/README.md
@@ -0,0 +1,74 @@
+### Usage
+
+To build dependencies for the current arch+OS:
+
+```bash
+make
+```
+
+To build for another arch/OS:
+
+```bash
+make HOST=host-platform-triplet
+```
+
+For example:
+
+```bash
+make HOST=x86_64-w64-mingw32 -j4
+```
+
+A toolchain will be generated that's suitable for plugging into Monero's
+cmake. In the above example, a dir named x86_64-w64-mingw32 will be
+created. To use it for Monero:
+
+```bash
+cmake -DCMAKE_TOOLCHAIN=`pwd`/contrib/depends/x86_64-w64-mingw32
+```
+
+Common `host-platform-triplets` for cross compilation are:
+
+- `i686-w64-mingw32` for Win32
+- `x86_64-w64-mingw32` for Win64
+- `x86_64-apple-darwin11` for MacOSX x86_64
+- `arm-linux-gnueabihf` for Linux ARM 32 bit
+- `aarch64-linux-gnu` for Linux ARM 64 bit
+- `riscv64-linux-gnu` for Linux RISCV 64 bit
+
+No other options are needed, the paths are automatically configured.
+
+Dependency Options:
+The following can be set when running make: make FOO=bar
+
+```
+SOURCES_PATH: downloaded sources will be placed here
+BASE_CACHE: built packages will be placed here
+FALLBACK_DOWNLOAD_PATH: If a source file can't be fetched, try here before giving up
+DEBUG: disable some optimizations and enable more runtime checking
+HOST_ID_SALT: Optional salt to use when generating host package ids
+BUILD_ID_SALT: Optional salt to use when generating build package ids
+```
+
+Additional targets:
+
+```
+download: run 'make download' to fetch all sources without building them
+download-osx: run 'make download-osx' to fetch all sources needed for osx builds
+download-win: run 'make download-win' to fetch all sources needed for win builds
+download-linux: run 'make download-linux' to fetch all sources needed for linux builds
+```
+
+#Mingw builds
+
+Building for 32/64bit mingw requires switching alternatives to a posix mode
+
+```bash
+update-alternatives --set x86_64-w64-mingw32-g++ x86_64-w64-mingw32-g++-posix
+update-alternatives --set x86_64-w64-mingw32-gcc x86_64-w64-mingw32-gcc-posix
+```
+
+### Other documentation
+
+- [description.md](description.md): General description of the depends system
+- [packages.md](packages.md): Steps for adding packages
+
diff --git a/contrib/depends/builders/darwin.mk b/contrib/depends/builders/darwin.mk
new file mode 100644
index 0000000..27f550a
--- /dev/null
+++ b/contrib/depends/builders/darwin.mk
@@ -0,0 +1,22 @@
+build_darwin_CC: = $(shell xcrun -f clang)
+build_darwin_CXX: = $(shell xcrun -f clang++)
+build_darwin_AR: = $(shell xcrun -f ar)
+build_darwin_RANLIB: = $(shell xcrun -f ranlib)
+build_darwin_STRIP: = $(shell xcrun -f strip)
+build_darwin_OTOOL: = $(shell xcrun -f otool)
+build_darwin_NM: = $(shell xcrun -f nm)
+build_darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
+build_darwin_SHA256SUM = shasum -a 256
+build_darwin_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
+
+#darwin host on darwin builder. overrides darwin host preferences.
+darwin_CC=$(shell xcrun -f clang) -mmacosx-version-min=$(OSX_MIN_VERSION)
+darwin_CXX:=$(shell xcrun -f clang++) -mmacosx-version-min=$(OSX_MIN_VERSION) -stdlib=libc++
+darwin_AR:=$(shell xcrun -f ar)
+darwin_RANLIB:=$(shell xcrun -f ranlib)
+darwin_STRIP:=$(shell xcrun -f strip)
+darwin_LIBTOOL:=$(shell xcrun -f libtool)
+darwin_OTOOL:=$(shell xcrun -f otool)
+darwin_NM:=$(shell xcrun -f nm)
+darwin_INSTALL_NAME_TOOL:=$(shell xcrun -f install_name_tool)
+darwin_native_toolchain=
diff --git a/contrib/depends/builders/default.mk b/contrib/depends/builders/default.mk
new file mode 100644
index 0000000..59a887f
--- /dev/null
+++ b/contrib/depends/builders/default.mk
@@ -0,0 +1,21 @@
+default_build_CC = gcc
+default_build_CXX = g++
+default_build_AR = ar
+default_build_RANLIB = ranlib
+default_build_STRIP = strip
+default_build_NM = nm
+default_build_OTOOL = otool
+default_build_INSTALL_NAME_TOOL = install_name_tool
+
+
+define add_build_tool_func
+build_$(build_os)_$1 ?= $$(default_build_$1)
+build_$(build_arch)_$(build_os)_$1 ?= $$(build_$(build_os)_$1)
+build_$1=$$(build_$(build_arch)_$(build_os)_$1)
+endef
+$(foreach var,CC CXX AR RANLIB NM STRIP SHA256SUM DOWNLOAD OTOOL INSTALL_NAME_TOOL,$(eval $(call add_build_tool_func,$(var))))
+define add_build_flags_func
+build_$(build_arch)_$(build_os)_$1 += $(build_$(build_os)_$1)
+build_$1=$$(build_$(build_arch)_$(build_os)_$1)
+endef
+$(foreach flags, CFLAGS CXXFLAGS ARFLAGS LDFLAGS, $(eval $(call add_build_flags_func,$(flags))))
diff --git a/contrib/depends/builders/linux.mk b/contrib/depends/builders/linux.mk
new file mode 100644
index 0000000..b03f424
--- /dev/null
+++ b/contrib/depends/builders/linux.mk
@@ -0,0 +1,2 @@
+build_linux_SHA256SUM = sha256sum
+build_linux_DOWNLOAD = curl --location --fail --connect-timeout $(DOWNLOAD_CONNECT_TIMEOUT) --retry $(DOWNLOAD_RETRIES) -o
diff --git a/contrib/depends/config.guess b/contrib/depends/config.guess
new file mode 100755
index 0000000..48a6846
--- /dev/null
+++ b/contrib/depends/config.guess
@@ -0,0 +1,1815 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2024 Free Software Foundation, Inc.
+
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2024-07-27'
+
+# 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 <https://www.gnu.org/licenses/>.
+#
+# 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; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+#
+# Please send patches to <config-patches@gnu.org>.
+
+
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system '$me' is run on.
+
+Options:
+ -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 <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2024 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
+
+# Just in case it came from the environment.
+GUESS=
+
+# 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.
+
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039,SC3028
+ { 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" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c17 c99 c89 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD=$driver
+ 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
+}
+
+# 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 ; 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/*)
+ LIBC=unknown
+
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
+ #if defined(__ANDROID__)
+ LIBC=android
+ #else
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #elif defined(__GLIBC__)
+ LIBC=gnu
+ #elif defined(__LLVM_LIBC__)
+ LIBC=llvm
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
+ #endif
+ #endif
+ EOF
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
+
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
+ fi
+ ;;
+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".
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ echo unknown)`
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ earmv*)
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine=${arch}${endian}-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) and ABI.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ 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
+ # Determine ABI tags.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ ;;
+ 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/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
+ *:MidnightBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
+ *:ekkoBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
+ *:SolidBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
+ *:OS108:*:*)
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
+ macppc:MirBSD:*:*)
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
+ *:MirBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
+ *:Sortix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
+ *:Twizzler:*:*)
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
+ *:Redox:*:*)
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
+ mips:OSF1:*.*)
+ GUESS=mips-dec-osf1
+ ;;
+ alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
+ 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.
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ GUESS=m68k-unknown-sysv4
+ ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
+ *:OS/390:*:*)
+ GUESS=i370-ibm-openedition
+ ;;
+ *:z/VM:*:*)
+ GUESS=s390-ibm-zvmoe
+ ;;
+ *:OS400:*:*)
+ GUESS=powerpc-ibm-os400
+ ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ GUESS=arm-unknown-riscos
+ ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
+ NILE*:*:*:dcosx)
+ GUESS=pyramid-pyramid-svr4
+ ;;
+ DRS?6000:unix:4.0:6*)
+ GUESS=sparc-icl-nx6
+ ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
+ s390x:SunOS:*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
+ sun4H:SunOS:5.*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ 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 test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH=x86_64
+ fi
+ fi
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
+ 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.
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
+ 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'.
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
+ sun3*:SunOS:*:*)
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
+ 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)
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
+ sun4)
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
+ ;;
+ esac
+ ;;
+ aushp:SunOS:*:*)
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
+ # 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:*:*)
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
+ m68k:machten:*:*)
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
+ powerpc:machten:*:*)
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
+ RISC*:Mach:*:*)
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
+ RISC*:ULTRIX:*:*)
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
+ VAX*:ULTRIX*:*:*)
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+#ifdef __cplusplus
+#include <stdio.h> /* 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; }
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
+ Motorola:PowerMAX_OS:*:*)
+ GUESS=powerpc-motorola-powermax
+ ;;
+ Motorola:*:4.3:PL8-*)
+ GUESS=powerpc-harris-powermax
+ ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ GUESS=powerpc-harris-powermax
+ ;;
+ Night_Hawk:Power_UNIX:*:*)
+ GUESS=powerpc-harris-powerunix
+ ;;
+ m88k:CX/UX:7*:*)
+ GUESS=m88k-harris-cxux7
+ ;;
+ m88k:*:4*:R4*)
+ GUESS=m88k-motorola-sysv4
+ ;;
+ m88k:*:3*:R3*)
+ GUESS=m88k-motorola-sysv3
+ ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
+ then
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
+ then
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
+ else
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
+ fi
+ else
+ GUESS=i586-dg-dgux$UNAME_RELEASE
+ fi
+ ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ GUESS=m88k-dolphin-sysv3
+ ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ GUESS=m88k-motorola-sysv3
+ ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ GUESS=m88k-tektronix-sysv3
+ ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ GUESS=m68k-tektronix-bsd
+ ;;
+ *:IRIX*:*:*)
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ GUESS=i386-ibm-aix
+ ;;
+ ia64:AIX:*:*)
+ if test -x /usr/bin/oslevel ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
+ fi
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #include <sys/systemcfg.h>
+
+ int
+ 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
+ GUESS=$SYSTEM_NAME
+ else
+ GUESS=rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ GUESS=rs6000-ibm-aix3.2.4
+ else
+ GUESS=rs6000-ibm-aix3.2
+ fi
+ ;;
+ *: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 test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
+ fi
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
+ *:AIX:*:*)
+ GUESS=rs6000-ibm-aix
+ ;;
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ GUESS=romp-ibm-bsd4.4
+ ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ GUESS=rs6000-bull-bosx
+ ;;
+ DPX/2?00:B.O.S.:*:*)
+ GUESS=m68k-bull-sysv3
+ ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ GUESS=m68k-hp-bsd
+ ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ GUESS=m68k-hp-bsd4.4
+ ;;
+ 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 test -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 test "$HP_ARCH" = ""; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ 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 test "$HP_ARCH" = hppa2.0w
+ then
+ 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
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
+ 3050*:HI-UX:*:*)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #include <unistd.h>
+ 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; }
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ GUESS=hppa1.1-hp-bsd
+ ;;
+ 9000/8??:4.3bsd:*:*)
+ GUESS=hppa1.0-hp-bsd
+ ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ GUESS=hppa1.0-hp-mpeix
+ ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ GUESS=hppa1.1-hp-osf
+ ;;
+ hp8??:OSF1:*:*)
+ GUESS=hppa1.0-hp-osf
+ ;;
+ i*86:OSF1:*:*)
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
+ else
+ GUESS=$UNAME_MACHINE-unknown-osf1
+ fi
+ ;;
+ parisc*:Lites*:*:*)
+ GUESS=hppa1.1-hp-lites
+ ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ GUESS=c1-convex-bsd
+ ;;
+ 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*:*)
+ GUESS=c34-convex-bsd
+ ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ GUESS=c38-convex-bsd
+ ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ GUESS=c4-convex-bsd
+ ;;
+ CRAY*Y-MP:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
+ 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:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
+ CRAY*T3E:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
+ CRAY*SV1:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
+ *:UNICOS/mp:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
+ 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/ /_/'`
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
+ 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/ /_/'`
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
+ sparc*:BSD/OS:*:*)
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
+ *:BSD/OS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
+ else
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
+ fi
+ ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ amd64)
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
+ esac
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
+ i*:CYGWIN*:*)
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
+ *:MINGW64*:*)
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
+ *:MINGW*:*)
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
+ *:MSYS*:*)
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
+ i*:PW*:*)
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
+ *:Interix*:*)
+ case $UNAME_MACHINE in
+ x86)
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
+ authenticamd | genuineintel | EM64T)
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
+ IA64)
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
+ esac ;;
+ i*:UWIN*:*)
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ GUESS=x86_64-pc-cygwin
+ ;;
+ prep*:SunOS:5.*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
+ *:GNU:*:*)
+ # the GNU system
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
+ x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-pc-managarm-mlibc"
+ ;;
+ *:[Mm]anagarm:*:*)
+ GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"
+ ;;
+ *:Minix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
+ aarch64:Linux:*:*)
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __ARM_EABI__
+ #ifdef __ARM_PCS_VFP
+ ABI=eabihf
+ #else
+ ABI=eabi
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+ esac
+ fi
+ GUESS=$CPU-unknown-linux-$LIBCABI
+ ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` 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
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arm*:Linux:*:*)
+ set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
+ else
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ ;;
+ avr32*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ cris:Linux:*:*)
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
+ crisv32:Linux:*:*)
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
+ e2k:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ frv:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ hexagon:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ i*86:Linux:*:*)
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
+ ia64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ k1om:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ kvx:cos:*:*)
+ GUESS=$UNAME_MACHINE-unknown-cos
+ ;;
+ kvx:mbr:*:*)
+ GUESS=$UNAME_MACHINE-unknown-mbr
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ m32r*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ m68*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
+ sed 's/^ //' << EOF > "$dummy.c"
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ MIPS_ENDIAN=el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ MIPS_ENDIAN=
+ #else
+ MIPS_ENDIAN=
+ #endif
+ #endif
+EOF
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ ;;
+ mips64el:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ openrisc*:Linux:*:*)
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
+ or32:Linux:*:* | or1k*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ padre:Linux:*:*)
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
+ esac
+ ;;
+ ppc64:Linux:*:*)
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
+ ppc:Linux:*:*)
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
+ ppc64le:Linux:*:*)
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
+ ppcle:Linux:*:*)
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
+ sh64*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ sh*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ tile*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ vax:Linux:*:*)
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
+ x86_64:Linux:*:*)
+ set_cc_for_build
+ CPU=$UNAME_MACHINE
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ ABI=64
+ sed 's/^ //' << EOF > "$dummy.c"
+ #ifdef __i386__
+ ABI=x86
+ #else
+ #ifdef __ILP32__
+ ABI=x32
+ #endif
+ #endif
+EOF
+ cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+ eval "$cc_set_abi"
+ case $ABI in
+ x86) CPU=i686 ;;
+ x32) LIBCABI=${LIBC}x32 ;;
+ esac
+ fi
+ GUESS=$CPU-pc-linux-$LIBCABI
+ ;;
+ xtensa*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ 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.
+ GUESS=i386-sequent-sysv4
+ ;;
+ 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.
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
+ i*86:OS/2:*:*)
+ # If we were able to find 'uname', then EMX Unix compatibility
+ # is probably installed.
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
+ i*86:XTS-300:*:STOP)
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
+ i*86:atheos:*:*)
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
+ i*86:syllable:*:*)
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
+ i*86:*DOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
+ else
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
+ fi
+ ;;
+ 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
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/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
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
+ else
+ GUESS=$UNAME_MACHINE-pc-sysv32
+ fi
+ ;;
+ 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 configure will decide that
+ # this is a cross-build.
+ GUESS=i586-pc-msdosdjgpp
+ ;;
+ Intel:Mach:3*:*)
+ GUESS=i386-pc-mach3
+ ;;
+ paragon:*:*:*)
+ GUESS=i860-intel-osf1
+ ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
+ fi
+ ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ GUESS=m68010-convergent-sysv
+ ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ GUESS=m68k-convergent-sysv
+ ;;
+ M680?0:D-NIX:5.3:*)
+ GUESS=m68k-diab-dnix
+ ;;
+ 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*:*)
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
+ mc68030:UNIX_System_V:4.*:*)
+ GUESS=m68k-atari-sysv4
+ ;;
+ TSUNAMI:LynxOS:2.*:*)
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
+ rs6000:LynxOS:2.*:*)
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
+ SM[BE]S:UNIX_SV:*:*)
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
+ RM*:ReliantUNIX-*:*:*)
+ GUESS=mips-sni-sysv4
+ ;;
+ RM*:SINIX-*:*:*)
+ GUESS=mips-sni-sysv4
+ ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ GUESS=$UNAME_MACHINE-sni-sysv4
+ else
+ GUESS=ns32k-sni-sysv
+ fi
+ ;;
+ PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ GUESS=i586-unisys-sysv4
+ ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ GUESS=i860-stratus-sysv4
+ ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ GUESS=hppa1.1-stratus-vos
+ ;;
+ mc68*:A/UX:*:*)
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
+ news*:NEWS-OS:6*:*)
+ GUESS=mips-sony-newsos6
+ ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
+ else
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
+ fi
+ ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ GUESS=powerpc-be-beos
+ ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ GUESS=powerpc-apple-beos
+ ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ GUESS=i586-pc-beos
+ ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ GUESS=i586-pc-haiku
+ ;;
+ ppc:Haiku:*:*) # Haiku running on Apple PowerPC
+ GUESS=powerpc-apple-haiku
+ ;;
+ *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)
+ GUESS=$UNAME_MACHINE-unknown-haiku
+ ;;
+ SX-4:SUPER-UX:*:*)
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
+ SX-5:SUPER-UX:*:*)
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
+ SX-6:SUPER-UX:*:*)
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
+ SX-7:SUPER-UX:*:*)
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
+ SX-8:SUPER-UX:*:*)
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
+ SX-8R:SUPER-UX:*:*)
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
+ SX-ACE:SUPER-UX:*:*)
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
+ Power*:Rhapsody:*:*)
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
+ *:Rhapsody:*:*)
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
+ fi
+ if test "$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
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
+ fi
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = x86; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
+ *:QNX:*:4*)
+ GUESS=i386-pc-qnx
+ ;;
+ NEO-*:NONSTOP_KERNEL:*:*)
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSR-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
+ *:NonStop-UX:*:*)
+ GUESS=mips-compaq-nonstopux
+ ;;
+ BS2000:POSIX*:*:*)
+ GUESS=bs2000-siemens-sysv
+ ;;
+ DS/*:UNIX_System_V:*:*)
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
+ *: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
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
+ fi
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
+ *:TOPS-10:*:*)
+ GUESS=pdp10-unknown-tops10
+ ;;
+ *:TENEX:*:*)
+ GUESS=pdp10-unknown-tenex
+ ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ GUESS=pdp10-dec-tops20
+ ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ GUESS=pdp10-xkl-tops20
+ ;;
+ *:TOPS-20:*:*)
+ GUESS=pdp10-unknown-tops20
+ ;;
+ *:ITS:*:*)
+ GUESS=pdp10-unknown-its
+ ;;
+ SEI:*:*:SEIUX)
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
+ *:DragonFly:*:*)
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ GUESS=i386-pc-xenix
+ ;;
+ i*86:skyos:*:*)
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
+ i*86:rdos:*:*)
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
+ x86_64:VMkernel:*:*)
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
+ amd64:Isilon\ OneFS:*:*)
+ GUESS=x86_64-unknown-onefs
+ ;;
+ *:Unleashed:*:*)
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
+ *:Ironclad:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ironclad
+ ;;
+esac
+
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+int
+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 <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#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 <sys/param.h>
+#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
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#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; }
+
+echo "$0: unable to guess system type" >&2
+
+case $UNAME_MACHINE:$UNAME_SYSTEM in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
+esac
+
+cat >&2 <<EOF
+
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
+
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+and
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary 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
+fi
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/contrib/depends/config.site.in b/contrib/depends/config.site.in
new file mode 100755
index 0000000..11dab89
--- /dev/null
+++ b/contrib/depends/config.site.in
@@ -0,0 +1,66 @@
+depends_prefix="`dirname ${ac_site_file}`/.."
+
+cross_compiling=maybe
+host_alias=@HOST@
+ac_tool_prefix=${host_alias}-
+
+if test -z $with_boost; then
+ with_boost=$depends_prefix
+fi
+
+if test x@host_os@ = xdarwin; then
+ BREW=no
+ PORT=no
+fi
+
+PATH=$depends_prefix/native/bin:$PATH
+PKG_CONFIG="`which pkg-config` --static"
+
+# These two need to remain exported because pkg-config does not see them
+# otherwise. That means they must be unexported at the end of configure.ac to
+# avoid ruining the cache. Sigh.
+export PKG_CONFIG_PATH=$depends_prefix/share/pkgconfig:$depends_prefix/lib/pkgconfig
+if test -z "@allow_host_packages@"; then
+ export PKGCONFIG_LIBDIR=
+fi
+
+CPPFLAGS="-I$depends_prefix/include/ $CPPFLAGS"
+LDFLAGS="-L$depends_prefix/lib $LDFLAGS"
+
+CC="@CC@"
+CXX="@CXX@"
+OBJC="${CC}"
+CCACHE=$depends_prefix/native/bin/ccache
+PYTHONPATH=$depends_prefix/native/lib/python/dist-packages:$PYTHONPATH
+
+if test -n "@AR@"; then
+ AR=@AR@
+ ac_cv_path_ac_pt_AR=${AR}
+fi
+
+if test -n "@RANLIB@"; then
+ RANLIB=@RANLIB@
+ ac_cv_path_ac_pt_RANLIB=${RANLIB}
+fi
+
+if test -n "@NM@"; then
+ NM=@NM@
+ ac_cv_path_ac_pt_NM=${NM}
+fi
+
+if test -n "@debug@"; then
+ enable_reduce_exports=no
+fi
+
+if test -n "@CFLAGS@"; then
+ CFLAGS="@CFLAGS@ $CFLAGS"
+fi
+if test -n "@CXXFLAGS@"; then
+ CXXFLAGS="@CXXFLAGS@ $CXXFLAGS"
+fi
+if test -n "@CPPFLAGS@"; then
+ CPPFLAGS="@CPPFLAGS@ $CPPFLAGS"
+fi
+if test -n "@LDFLAGS@"; then
+ LDFLAGS="@LDFLAGS@ $LDFLAGS"
+fi
diff --git a/contrib/depends/config.sub b/contrib/depends/config.sub
new file mode 100755
index 0000000..4aaae46
--- /dev/null
+++ b/contrib/depends/config.sub
@@ -0,0 +1,2354 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright 1992-2024 Free Software Foundation, Inc.
+
+# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
+
+timestamp='2024-05-27'
+
+# 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 <https://www.gnu.org/licenses/>.
+#
+# 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 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:
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+
+# 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.
+
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+Canonicalize a configuration name.
+
+Options:
+ -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 <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2024 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 ;;
+
+ *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
+
+# Split fields of configuration type
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+IFS=$saved_IFS
+
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo "Invalid configuration '$1': more than four components" >&2
+ exit 1
+ ;;
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ basic_os=$field3-$field4
+ ;;
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ cloudabi*-eabi* \
+ | kfreebsd*-gnu* \
+ | knetbsd*-gnu* \
+ | kopensolaris*-gnu* \
+ | linux-* \
+ | managarm-* \
+ | netbsd*-eabi* \
+ | netbsd*-gnu* \
+ | nto-qnx* \
+ | os2-emx* \
+ | rtmk-nova* \
+ | storm-chaos* \
+ | uclinux-gnu* \
+ | uclinux-uclibc* \
+ | windows-* )
+ basic_machine=$field1
+ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ basic_os=$field3
+ ;;
+ esac
+ ;;
+ *-*)
+ case $field1-$field2 in
+ # Shorthands that happen to contain a single dash
+ convex-c[12] | convex-c3[248])
+ basic_machine=$field2-convex
+ basic_os=
+ ;;
+ decstation-3100)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Do not treat sunos as a manufacturer
+ sun*os*)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ # Manufacturers
+ 3100* \
+ | 32* \
+ | 3300* \
+ | 3600* \
+ | 7300* \
+ | acorn \
+ | altos* \
+ | apollo \
+ | apple \
+ | atari \
+ | att* \
+ | axis \
+ | be \
+ | bull \
+ | cbm \
+ | ccur \
+ | cisco \
+ | commodore \
+ | convergent* \
+ | convex* \
+ | cray \
+ | crds \
+ | dec* \
+ | delta* \
+ | dg \
+ | digital \
+ | dolphin \
+ | encore* \
+ | gould \
+ | harris \
+ | highlevel \
+ | hitachi* \
+ | hp \
+ | ibm* \
+ | intergraph \
+ | isi* \
+ | knuth \
+ | masscomp \
+ | microblaze* \
+ | mips* \
+ | motorola* \
+ | ncr* \
+ | news \
+ | next \
+ | ns \
+ | oki \
+ | omron* \
+ | pc533* \
+ | rebel \
+ | rom68k \
+ | rombug \
+ | semi \
+ | sequent* \
+ | siemens \
+ | sgi* \
+ | siemens \
+ | sim \
+ | sni \
+ | sony* \
+ | stratus \
+ | sun \
+ | sun[234]* \
+ | tektronix \
+ | tti* \
+ | ultra \
+ | unicom* \
+ | wec \
+ | winbond \
+ | wrs)
+ basic_machine=$field1-$field2
+ basic_os=
+ ;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
+ *)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ basic_os=cegcc
+ ;;
+ cray)
+ basic_machine=j90-cray
+ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ basic_os=sysv3
+ ;;
+ hp300 | hp300hpux)
+ basic_machine=m68k-hp
+ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ basic_os=
+ ;;
+ esac
+ ;;
+esac
+
+# Decode 1-component or ad-hoc basic machines
+case $basic_machine in
+ # 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)
+ cpu=hppa1.1
+ vendor=winbond
+ ;;
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
+ ;;
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
+ ;;
+ ibm*)
+ cpu=i370
+ vendor=ibm
+ ;;
+ orion105)
+ cpu=clipper
+ vendor=highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
+ ;;
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
+ ;;
+
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ cpu=m68000
+ vendor=att
+ ;;
+ 3b*)
+ cpu=we32k
+ vendor=att
+ ;;
+ bluegene*)
+ cpu=powerpc
+ vendor=ibm
+ basic_os=cnk
+ ;;
+ decsystem10* | dec10*)
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops10
+ ;;
+ decsystem20* | dec20*)
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops20
+ ;;
+ delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300)
+ cpu=m68k
+ vendor=motorola
+ ;;
+ # This used to be dpx2*, but that gets the RS6000-based
+ # DPX/20 and the x86-based DPX/2-100 wrong. See
+ # https://oldskool.silicium.org/stations/bull_dpx20.htm
+ # https://www.feb-patrimoine.com/english/bull_dpx2.htm
+ # https://www.feb-patrimoine.com/english/unix_and_bull.htm
+ dpx2 | dpx2[23]00 | dpx2[23]xx)
+ cpu=m68k
+ vendor=bull
+ ;;
+ dpx2100 | dpx21xx)
+ cpu=i386
+ vendor=bull
+ ;;
+ dpx20)
+ cpu=rs6000
+ vendor=bull
+ ;;
+ encore | umax | mmax)
+ cpu=ns32k
+ vendor=encore
+ ;;
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ basic_os=${basic_os:-bsd}
+ ;;
+ fx2800)
+ cpu=i860
+ vendor=alliant
+ ;;
+ genix)
+ cpu=ns32k
+ vendor=ns
+ ;;
+ h3050r* | hiux*)
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ cpu=m68000
+ vendor=hp
+ ;;
+ hp9k3[2-9][0-9])
+ cpu=m68k
+ vendor=hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ i*86v32)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv32
+ ;;
+ i*86v4*)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv4
+ ;;
+ i*86v)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv
+ ;;
+ i*86sol2)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=solaris2
+ ;;
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ basic_os=${basic_os:-unicos}
+ ;;
+ iris | iris4d)
+ cpu=mips
+ vendor=sgi
+ case $basic_os in
+ irix*)
+ ;;
+ *)
+ basic_os=irix4
+ ;;
+ esac
+ ;;
+ miniframe)
+ cpu=m68000
+ vendor=convergent
+ ;;
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ basic_os=mint
+ ;;
+ news-3600 | risc-news)
+ cpu=mips
+ vendor=sony
+ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+ ;;
+ np1)
+ cpu=np1
+ vendor=gould
+ ;;
+ op50n-* | op60c-*)
+ cpu=hppa1.1
+ vendor=oki
+ basic_os=proelf
+ ;;
+ pa-hitachi)
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
+ ;;
+ pbd)
+ cpu=sparc
+ vendor=tti
+ ;;
+ pbb)
+ cpu=m68k
+ vendor=tti
+ ;;
+ pc532)
+ cpu=ns32k
+ vendor=pc532
+ ;;
+ pn)
+ cpu=pn
+ vendor=gould
+ ;;
+ power)
+ cpu=power
+ vendor=ibm
+ ;;
+ ps2)
+ cpu=i386
+ vendor=ibm
+ ;;
+ rm[46]00)
+ cpu=mips
+ vendor=siemens
+ ;;
+ rtpc | rtpc-*)
+ cpu=romp
+ vendor=ibm
+ ;;
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ basic_os=${basic_os:-elf}
+ ;;
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ basic_os=vxworks
+ ;;
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
+ ;;
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
+ ;;
+ w65)
+ cpu=w65
+ vendor=wdc
+ ;;
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ basic_os=proelf
+ ;;
+ none)
+ cpu=none
+ vendor=none
+ ;;
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
+ ;;
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ ;;
+
+ *-*)
+ saved_IFS=$IFS
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
+ IFS=$saved_IFS
+ ;;
+ # 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)
+ cpu=$basic_machine
+ vendor=pc
+ ;;
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
+ ;;
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
+ ;;
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
+ ;;
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form.
+ # It is in some cases the only manufacturer, in others, it is the most popular.
+ c[12]-convex | c[12]-unknown | c3[248]-convex | c3[248]-unknown)
+ vendor=convex
+ basic_os=${basic_os:-bsd}
+ ;;
+ craynv-unknown)
+ vendor=cray
+ basic_os=${basic_os:-unicosmp}
+ ;;
+ c90-unknown | c90-cray)
+ vendor=cray
+ basic_os=${basic_os:-unicos}
+ ;;
+ fx80-unknown)
+ vendor=alliant
+ ;;
+ romp-unknown)
+ vendor=ibm
+ ;;
+ mmix-unknown)
+ vendor=knuth
+ ;;
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
+ ;;
+ rs6000-unknown)
+ vendor=ibm
+ ;;
+ vax-unknown)
+ vendor=dec
+ ;;
+ pdp11-unknown)
+ vendor=dec
+ ;;
+ we32k-unknown)
+ vendor=att
+ ;;
+ cydra-unknown)
+ vendor=cydrome
+ ;;
+ i370-ibm*)
+ vendor=ibm
+ ;;
+ orion-unknown)
+ vendor=highlevel
+ ;;
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
+ ;;
+
+ # Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
+
+ # Normalized CPU+vendor pairs that imply an OS, if not otherwise specified
+ m68k-isi)
+ basic_os=${basic_os:-sysv}
+ ;;
+ m68k-sony)
+ basic_os=${basic_os:-newsos}
+ ;;
+ m68k-tektronix)
+ basic_os=${basic_os:-bsd}
+ ;;
+ m88k-harris)
+ basic_os=${basic_os:-sysv3}
+ ;;
+ i386-bull | m68k-bull)
+ basic_os=${basic_os:-sysv3}
+ ;;
+ rs6000-bull)
+ basic_os=${basic_os:-bosx}
+ ;;
+ mips-sni)
+ basic_os=${basic_os:-sysv4}
+ ;;
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
+ ;;
+ blackfin-*)
+ cpu=bfin
+ basic_os=${basic_os:-linux}
+ ;;
+ c54x-*)
+ cpu=tic54x
+ ;;
+ c55x-*)
+ cpu=tic55x
+ ;;
+ c6x-*)
+ cpu=tic6x
+ ;;
+ e500v[12]-*)
+ cpu=powerpc
+ basic_os=${basic_os}"spe"
+ ;;
+ mips3*-*)
+ cpu=mips64
+ ;;
+ ms1-*)
+ cpu=mt
+ ;;
+ m68knommu-*)
+ cpu=m68k
+ basic_os=${basic_os:-linux}
+ ;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
+ ;;
+ openrisc-*)
+ cpu=or32
+ ;;
+ parisc-*)
+ cpu=hppa
+ basic_os=${basic_os:-linux}
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
+ cpu=i686
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
+ ;;
+ pentium4-*)
+ cpu=i786
+ ;;
+ ppc-* | ppcbe-*)
+ cpu=powerpc
+ ;;
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
+ ;;
+ ppc64-*)
+ cpu=powerpc64
+ ;;
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
+ ;;
+ sb1-*)
+ cpu=mipsisa64sb1
+ ;;
+ sb1el-*)
+ cpu=mipsisa64sb1el
+ ;;
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ ;;
+ spur-*)
+ cpu=spur
+ ;;
+ strongarm-* | thumb-*)
+ cpu=arm
+ ;;
+ tx39-*)
+ cpu=mipstx39
+ ;;
+ tx39el-*)
+ cpu=mipstx39el
+ ;;
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
+ arm64-* | aarch64le-*)
+ cpu=aarch64
+ ;;
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ basic_os=${basic_os:-elf}
+ ;;
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
+ ;;
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
+ ;;
+ crx-*)
+ basic_os=${basic_os:-elf}
+ ;;
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
+ ;;
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
+ ;;
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
+ ;;
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
+ ;;
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
+ ;;
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
+ ;;
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
+ ;;
+
+ *)
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a \
+ | 580 \
+ | [cjt]90 \
+ | a29k \
+ | aarch64 \
+ | aarch64_be \
+ | aarch64c \
+ | abacus \
+ | alpha \
+ | alpha64 \
+ | alpha64ev56 \
+ | alpha64ev6[78] \
+ | alpha64ev[4-8] \
+ | alpha64pca5[67] \
+ | alphaev56 \
+ | alphaev6[78] \
+ | alphaev[4-8] \
+ | alphapca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc \
+ | arc32 \
+ | arc64 \
+ | arceb \
+ | arm \
+ | arm64e \
+ | arm64ec \
+ | arm[lb]e \
+ | arme[lb] \
+ | armv* \
+ | asmjs \
+ | avr \
+ | avr32 \
+ | ba \
+ | be32 \
+ | be64 \
+ | bfin \
+ | bpf \
+ | bs2000 \
+ | c30 \
+ | c4x \
+ | c8051 \
+ | c[123]* \
+ | clipper \
+ | craynv \
+ | csky \
+ | cydra \
+ | d10v \
+ | d30v \
+ | dlx \
+ | dsp16xx \
+ | e2k \
+ | elxsi \
+ | epiphany \
+ | f30[01] \
+ | f700 \
+ | fido \
+ | fr30 \
+ | frv \
+ | ft32 \
+ | fx80 \
+ | h8300 \
+ | h8500 \
+ | hexagon \
+ | hppa \
+ | hppa1.[01] \
+ | hppa2.0 \
+ | hppa2.0[nw] \
+ | hppa64 \
+ | i*86 \
+ | i370 \
+ | i860 \
+ | i960 \
+ | ia16 \
+ | ia64 \
+ | ip2k \
+ | iq2000 \
+ | javascript \
+ | k1om \
+ | kvx \
+ | le32 \
+ | le64 \
+ | lm32 \
+ | loongarch32 \
+ | loongarch64 \
+ | m32c \
+ | m32r \
+ | m32rle \
+ | m5200 \
+ | m68000 \
+ | m680[012346]0 \
+ | m6811 \
+ | m6812 \
+ | m68360 \
+ | m683?2 \
+ | m68hc11 \
+ | m68hc12 \
+ | m68hcs12x \
+ | m68k \
+ | m88110 \
+ | m88k \
+ | maxq \
+ | mb \
+ | mcore \
+ | mep \
+ | metag \
+ | microblaze \
+ | microblazeel \
+ | mips* \
+ | mmix \
+ | mn10200 \
+ | mn10300 \
+ | moxie \
+ | msp430 \
+ | mt \
+ | nanomips* \
+ | nds32 \
+ | nds32be \
+ | nds32le \
+ | nfp \
+ | nios \
+ | nios2 \
+ | nios2eb \
+ | nios2el \
+ | none \
+ | np1 \
+ | ns16k \
+ | ns32k \
+ | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | pdp10 \
+ | pdp11 \
+ | picochip \
+ | pj \
+ | pjl \
+ | pn \
+ | power \
+ | powerpc \
+ | powerpc64 \
+ | powerpc64le \
+ | powerpcle \
+ | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv \
+ | riscv32 \
+ | riscv32be \
+ | riscv64 \
+ | riscv64be \
+ | rl78 \
+ | romp \
+ | rs6000 \
+ | rx \
+ | s390 \
+ | s390x \
+ | score \
+ | sh \
+ | sh64 \
+ | sh64le \
+ | sh[12345][lb]e \
+ | sh[1234] \
+ | sh[1234]e[lb] \
+ | sh[23]e \
+ | sh[23]ele \
+ | sh[24]a \
+ | sh[24]ae[lb] \
+ | sh[lb]e \
+ | she[lb] \
+ | shl \
+ | sparc \
+ | sparc64 \
+ | sparc64b \
+ | sparc64v \
+ | sparc86x \
+ | sparclet \
+ | sparclite \
+ | sparcv8 \
+ | sparcv9 \
+ | sparcv9b \
+ | sparcv9v \
+ | spu \
+ | sv1 \
+ | sx* \
+ | tahoe \
+ | thumbv7* \
+ | tic30 \
+ | tic4x \
+ | tic54x \
+ | tic55x \
+ | tic6x \
+ | tic80 \
+ | tron \
+ | ubicom32 \
+ | v70 \
+ | v810 \
+ | v850 \
+ | v850e \
+ | v850e1 \
+ | v850e2 \
+ | v850e2v3 \
+ | v850es \
+ | vax \
+ | vc4 \
+ | visium \
+ | w65 \
+ | wasm32 \
+ | wasm64 \
+ | we32k \
+ | x86 \
+ | x86_64 \
+ | xc16x \
+ | xgate \
+ | xps100 \
+ | xstormy16 \
+ | xtensa* \
+ | ymp \
+ | z80 \
+ | z8k)
+ ;;
+
+ *)
+ echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
+ exit 1
+ ;;
+ esac
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $vendor in
+ digital*)
+ vendor=dec
+ ;;
+ commodore*)
+ vendor=cbm
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if test x"$basic_os" != x
+then
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+obj=
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+ ;;
+ os2-emx)
+ kernel=os2
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+ ;;
+ *-*)
+ saved_IFS=$IFS
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+ ;;
+ managarm*)
+ kernel=managarm
+ os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
+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
+ ;;
+ bluegene*)
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+ solaris)
+ os=solaris2
+ ;;
+ unixware*)
+ os=sysv4.2uw
+ ;;
+ # The marketing names for NeXT's operating systems were
+ # NeXTSTEP, NeXTSTEP 2, OpenSTEP 3, OpenSTEP 4. 'openstep' is
+ # mapped to 'openstep3', but 'openstep1' and 'openstep2' are
+ # mapped to 'nextstep' and 'nextstep2', consistent with the
+ # treatment of SunOS/Solaris.
+ ns | ns1 | nextstep | nextstep1 | openstep1)
+ os=nextstep
+ ;;
+ ns2 | nextstep2 | openstep2)
+ os=nextstep2
+ ;;
+ ns3 | nextstep3 | openstep | openstep3)
+ os=openstep3
+ ;;
+ ns4 | nextstep4 | openstep4)
+ os=openstep4
+ ;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco*v* | scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
+ ;;
+ qnx*)
+ os=qnx
+ ;;
+ hiux*)
+ os=hiuxwe2
+ ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
+ lynxos*)
+ # don't get caught up in next wildcard
+ ;;
+ lynx*)
+ os=lynxos
+ ;;
+ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+ opened*)
+ os=openedition
+ ;;
+ os400*)
+ os=os400
+ ;;
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ ;;
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ ;;
+ wince*)
+ os=wince
+ ;;
+ utek*)
+ os=bsd
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'`
+ ;;
+ dynix*)
+ os=bsd
+ ;;
+ acis*)
+ os=aos
+ ;;
+ atheos*)
+ os=atheos
+ ;;
+ syllable*)
+ os=syllable
+ ;;
+ 386bsd)
+ os=bsd
+ ;;
+ ctix*)
+ os=sysv
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'`
+ ;;
+ uts*)
+ os=sysv
+ ;;
+ nova*)
+ kernel=rtmk
+ os=nova
+ ;;
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
+ ;;
+ sinix*)
+ os=sysv4
+ vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
+ ;;
+ tpf*)
+ os=tpf
+ ;;
+ triton*)
+ os=sysv3
+ ;;
+ oss*)
+ os=sysv3
+ ;;
+ svr4*)
+ os=sysv4
+ ;;
+ svr3)
+ os=sysv3
+ ;;
+ sysvr4)
+ os=sysv4
+ ;;
+ ose*)
+ os=ose
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
+ ;;
+ dicos*)
+ os=dicos
+ ;;
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=
+ obj=elf
+ ;;
+ esac
+ ;;
+ aout* | coff* | elf* | pe*)
+ # These are machine code file formats, not OSes
+ obj=$os
+ os=
+ ;;
+ *)
+ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+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.
+
+kernel=
+obj=
+case $cpu-$vendor in
+ score-*)
+ os=
+ obj=elf
+ ;;
+ spu-*)
+ os=
+ obj=elf
+ ;;
+ *-acorn)
+ os=riscix1.2
+ ;;
+ arm*-rebel)
+ kernel=linux
+ os=gnu
+ ;;
+ arm*-semi)
+ os=
+ obj=aout
+ ;;
+ c4x-* | tic4x-*)
+ os=
+ obj=coff
+ ;;
+ c8051-*)
+ os=
+ obj=elf
+ ;;
+ clipper-intergraph)
+ os=clix
+ ;;
+ hexagon-*)
+ os=
+ obj=elf
+ ;;
+ tic54x-*)
+ os=
+ obj=coff
+ ;;
+ tic55x-*)
+ os=
+ obj=coff
+ ;;
+ tic6x-*)
+ os=
+ obj=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=
+ obj=aout
+ ;;
+ mep-*)
+ os=
+ obj=elf
+ ;;
+ # The -sgi and -siemens entries must be before the mips- entry
+ # or we get the wrong os.
+ *-sgi)
+ os=irix
+ ;;
+ *-siemens)
+ os=sysv4
+ ;;
+ mips*-cisco)
+ os=
+ obj=elf
+ ;;
+ mips*-*|nanomips*-*)
+ os=
+ obj=elf
+ ;;
+ or32-*)
+ os=
+ obj=coff
+ ;;
+ # This must be before the sparc-* entry or we get the wrong os.
+ *-tti)
+ os=sysv3
+ ;;
+ sparc-* | *-sun)
+ os=sunos4.1.1
+ ;;
+ pru-*)
+ os=
+ obj=elf
+ ;;
+ *-be)
+ os=beos
+ ;;
+ *-ibm)
+ os=aix
+ ;;
+ *-knuth)
+ os=mmixware
+ ;;
+ *-wec)
+ os=proelf
+ ;;
+ *-winbond)
+ os=proelf
+ ;;
+ *-oki)
+ os=proelf
+ ;;
+ *-hp)
+ os=hpux
+ ;;
+ *-hitachi)
+ os=hiuxwe2
+ ;;
+ 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
+ ;;
+ *-gould)
+ os=sysv
+ ;;
+ *-highlevel)
+ os=bsd
+ ;;
+ *-encore)
+ os=bsd
+ ;;
+ *-masscomp)
+ os=rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=uxpv
+ ;;
+ *-rom68k)
+ os=
+ obj=coff
+ ;;
+ *-*bug)
+ os=
+ obj=coff
+ ;;
+ *-apple)
+ os=macos
+ ;;
+ *-atari*)
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
+ ;;
+ *)
+ os=none
+ ;;
+esac
+
+fi
+
+# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
+
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ llvm* | musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # See `case $cpu-$os` validation below
+ ghcjs)
+ ;;
+ # Now accept the basic system types.
+ # Each alternative MUST end in a * to match a version number.
+ abug \
+ | aix* \
+ | amdhsa* \
+ | amigados* \
+ | amigaos* \
+ | android* \
+ | aof* \
+ | aos* \
+ | aros* \
+ | atheos* \
+ | auroraux* \
+ | aux* \
+ | beos* \
+ | bitrig* \
+ | bme* \
+ | bosx* \
+ | bsd* \
+ | cegcc* \
+ | chorusos* \
+ | chorusrdb* \
+ | clix* \
+ | cloudabi* \
+ | cnk* \
+ | conix* \
+ | cos* \
+ | cxux* \
+ | cygwin* \
+ | darwin* \
+ | dgux* \
+ | dicos* \
+ | dnix* \
+ | domain* \
+ | dragonfly* \
+ | drops* \
+ | ebmon* \
+ | ecoff* \
+ | ekkobsd* \
+ | emscripten* \
+ | emx* \
+ | es* \
+ | fiwix* \
+ | freebsd* \
+ | fuchsia* \
+ | genix* \
+ | genode* \
+ | glidix* \
+ | gnu* \
+ | go32* \
+ | haiku* \
+ | hcos* \
+ | hiux* \
+ | hms* \
+ | hpux* \
+ | ieee* \
+ | interix* \
+ | ios* \
+ | iris* \
+ | irix* \
+ | ironclad* \
+ | isc* \
+ | its* \
+ | l4re* \
+ | libertybsd* \
+ | lites* \
+ | lnews* \
+ | luna* \
+ | lynxos* \
+ | mach* \
+ | macos* \
+ | magic* \
+ | mbr* \
+ | midipix* \
+ | midnightbsd* \
+ | mingw32* \
+ | mingw64* \
+ | minix* \
+ | mint* \
+ | mirbsd* \
+ | mks* \
+ | mlibc* \
+ | mmixware* \
+ | mon960* \
+ | morphos* \
+ | moss* \
+ | moxiebox* \
+ | mpeix* \
+ | mpw* \
+ | msdos* \
+ | msys* \
+ | mvs* \
+ | nacl* \
+ | netbsd* \
+ | netware* \
+ | newsos* \
+ | nextstep* \
+ | nindy* \
+ | nonstopux* \
+ | nova* \
+ | nsk* \
+ | nucleus* \
+ | nx6 \
+ | nx7 \
+ | oabi* \
+ | ohos* \
+ | onefs* \
+ | openbsd* \
+ | openedition* \
+ | openstep* \
+ | os108* \
+ | os2* \
+ | os400* \
+ | os68k* \
+ | os9* \
+ | ose* \
+ | osf* \
+ | oskit* \
+ | osx* \
+ | palmos* \
+ | phoenix* \
+ | plan9* \
+ | powermax* \
+ | powerunix* \
+ | proelf* \
+ | psos* \
+ | psp* \
+ | ptx* \
+ | pw32* \
+ | qnx* \
+ | rdos* \
+ | redox* \
+ | rhapsody* \
+ | riscix* \
+ | riscos* \
+ | rtems* \
+ | rtmk* \
+ | rtu* \
+ | scout* \
+ | secbsd* \
+ | sei* \
+ | serenity* \
+ | sim* \
+ | skyos* \
+ | solaris* \
+ | solidbsd* \
+ | sortix* \
+ | storm-chaos* \
+ | sunos \
+ | sunos[34]* \
+ | superux* \
+ | syllable* \
+ | sym* \
+ | sysv* \
+ | tenex* \
+ | tirtos* \
+ | toppers* \
+ | tops10* \
+ | tops20* \
+ | tpf* \
+ | tvos* \
+ | twizzler* \
+ | uclinux* \
+ | udi* \
+ | udk* \
+ | ultrix* \
+ | unicos* \
+ | uniplus* \
+ | unleashed* \
+ | unos* \
+ | uwin* \
+ | uxpv* \
+ | v88r* \
+ |*vms* \
+ | vos* \
+ | vsta* \
+ | vxsim* \
+ | vxworks* \
+ | wasi* \
+ | watchos* \
+ | wince* \
+ | windiss* \
+ | windows* \
+ | winnt* \
+ | xenix* \
+ | xray* \
+ | zephyr* \
+ | zvmoe* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ # This refers to builds using the UEFI calling convention
+ # (which depends on the architecture) and PE file format.
+ # Note that this is both a different calling convention and
+ # different file format than that of GNU-EFI
+ # (x86_64-w64-mingw32).
+ uefi)
+ ;;
+ none)
+ ;;
+ kernel* | msvc* )
+ # Restricted further below
+ ;;
+ '')
+ if test x"$obj" = x
+ then
+ echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
+ fi
+ ;;
+ *)
+ echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+case $obj in
+ aout* | coff* | elf* | pe*)
+ ;;
+ '')
+ # empty is fine
+ ;;
+ *)
+ echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we handle the constraint that a (synthetic) cpu and os are
+# valid only in combination with each other and nowhere else.
+case $cpu-$os in
+ # The "javascript-unknown-ghcjs" triple is used by GHC; we
+ # accept it here in order to tolerate that, but reject any
+ # variations.
+ javascript-ghcjs)
+ ;;
+ javascript-* | *-ghcjs)
+ echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os-$obj in
+ linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+ | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+ | linux-relibc*- | linux-uclibc*- | linux-ohos*- )
+ ;;
+ uclinux-uclibc*- | uclinux-gnu*- )
+ ;;
+ managarm-mlibc*- | managarm-kernel*- )
+ ;;
+ windows*-msvc*-)
+ ;;
+ -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+ | -uclibc*- )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ -kernel*- )
+ echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ *-kernel*- )
+ echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
+ exit 1
+ ;;
+ *-msvc*- )
+ echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-)
+ ;;
+ vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
+ ;;
+ nto-qnx*-)
+ ;;
+ os2-emx-)
+ ;;
+ rtmk-nova-)
+ ;;
+ *-eabi*- | *-gnueabi*-)
+ ;;
+ none--*)
+ # None (no kernel, i.e. freestanding / bare metal),
+ # can be paired with an machine code file format
+ ;;
+ -*-)
+ # Blank kernel with real OS is always fine.
+ ;;
+ --*)
+ # Blank kernel and OS with real machine code file format is always fine.
+ ;;
+ *-*-*)
+ echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+case $vendor in
+ unknown)
+ case $cpu-$os in
+ *-riscix*)
+ vendor=acorn
+ ;;
+ *-sunos* | *-solaris*)
+ 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
+ ;;
+ *-clix*)
+ vendor=intergraph
+ ;;
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
+ vendor=ibm
+ ;;
+ s390-* | s390x-*)
+ 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
+ ;;
+esac
+
+echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
+exit
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/contrib/depends/description.md b/contrib/depends/description.md
new file mode 100644
index 0000000..74f9ef3
--- /dev/null
+++ b/contrib/depends/description.md
@@ -0,0 +1,53 @@
+This is a system of building and caching dependencies necessary for building Bitcoin.
+There are several features that make it different from most similar systems:
+
+### It is designed to be builder and host agnostic
+
+In theory, binaries for any target OS/architecture can be created, from a
+builder running any OS/architecture. In practice, build-side tools must be
+specified when the defaults don't fit, and packages must be amended to work
+on new hosts. For now, a build architecture of x86_64 is assumed, either on
+Linux or OSX.
+
+### No reliance on timestamps
+
+File presence is used to determine what needs to be built. This makes the
+results distributable and easily digestable by automated builders.
+
+### Each build only has its specified dependencies available at build-time.
+
+For each build, the sysroot is wiped and the (recursive) dependencies are
+installed. This makes each build deterministic, since there will never be any
+unknown files available to cause side-effects.
+
+### Each package is cached and only rebuilt as needed.
+
+Before building, a unique build-id is generated for each package. This id
+consists of a hash of all files used to build the package (Makefiles, packages,
+etc), and as well as a hash of the same data for each recursive dependency. If
+any portion of a package's build recipe changes, it will be rebuilt as well as
+any other package that depends on it. If any of the main makefiles (Makefile,
+funcs.mk, etc) are changed, all packages will be rebuilt. After building, the
+results are cached into a tarball that can be re-used and distributed.
+
+### Package build results are (relatively) deterministic.
+
+Each package is configured and patched so that it will yield the same
+build-results with each consequent build, within a reasonable set of
+constraints. Some things like timestamp insertion are unavoidable, and are
+beyond the scope of this system. Additionally, the toolchain itself must be
+capable of deterministic results. When revisions are properly bumped, a cached
+build should represent an exact single payload.
+
+### Sources are fetched and verified automatically
+
+Each package must define its source location and checksum. The build will fail
+if the fetched source does not match. Sources may be pre-seeded and/or cached
+as desired.
+
+### Self-cleaning
+
+Build and staging dirs are wiped after use, and any previous version of a
+cached result is removed following a successful build. Automated builders
+should be able to build each revision and store the results with no further
+intervention.
diff --git a/contrib/depends/funcs.mk b/contrib/depends/funcs.mk
new file mode 100644
index 0000000..574a8ed
--- /dev/null
+++ b/contrib/depends/funcs.mk
@@ -0,0 +1,272 @@
+define int_vars
+#Set defaults for vars which may be overridden per-package
+$(1)_cc=$($($(1)_type)_CC)
+$(1)_cxx=$($($(1)_type)_CXX)
+$(1)_objc=$($($(1)_type)_OBJC)
+$(1)_objcxx=$($($(1)_type)_OBJCXX)
+$(1)_ar=$($($(1)_type)_AR)
+$(1)_ranlib=$($($(1)_type)_RANLIB)
+$(1)_libtool=$($($(1)_type)_LIBTOOL)
+$(1)_nm=$($($(1)_type)_NM)
+$(1)_cflags=$($($(1)_type)_CFLAGS) $($($(1)_type)_$(release_type)_CFLAGS)
+$(1)_cxxflags=$($($(1)_type)_CXXFLAGS) $($($(1)_type)_$(release_type)_CXXFLAGS)
+$(1)_arflags=$($($(1)_type)_ARFLAGS) $($($(1)_type)_$(release_type)_ARFLAGS)
+$(1)_ldflags=$($($(1)_type)_LDFLAGS) $($($(1)_type)_$(release_type)_LDFLAGS) -L$($($(1)_type)_prefix)/lib
+$(1)_cppflags=$($($(1)_type)_CPPFLAGS) $($($(1)_type)_$(release_type)_CPPFLAGS) -I$($($(1)_type)_prefix)/include
+$(1)_recipe_hash:=
+endef
+
+define int_get_all_dependencies
+$(sort $(foreach dep,$(2),$(2) $(call int_get_all_dependencies,$(1),$($(dep)_dependencies))))
+endef
+
+define fetch_file_inner
+ ( mkdir -p $$($(1)_download_dir) && echo Fetching $(3) from $(2) && \
+ $(build_DOWNLOAD) "$$($(1)_download_dir)/$(4).temp" "$(2)/$(3)" && \
+ echo "$(5) $$($(1)_download_dir)/$(4).temp" > $$($(1)_download_dir)/.$(4).hash && \
+ $(build_SHA256SUM) -c $$($(1)_download_dir)/.$(4).hash && \
+ mv $$($(1)_download_dir)/$(4).temp $$($(1)_source_dir)/$(4) && \
+ rm -rf $$($(1)_download_dir) )
+endef
+
+define fetch_file
+ ( test -f $$($(1)_source_dir)/$(4) || \
+ ( $(call fetch_file_inner,$(1),$(2),$(3),$(4),$(5)) || \
+ $(call fetch_file_inner,$(1),$(FALLBACK_DOWNLOAD_PATH),$(4),$(4),$(5))))
+endef
+
+define int_get_build_recipe_hash
+$(eval $(1)_all_file_checksums:=$(shell $(build_SHA256SUM) $(meta_depends) packages/$(1).mk $(addprefix $(PATCHES_PATH)/$(1)/,$($(1)_patches)) | cut -d" " -f1))
+$(eval $(1)_recipe_hash:=$(shell echo -n "$($(1)_all_file_checksums)" | $(build_SHA256SUM) | cut -d" " -f1))
+endef
+
+define int_get_build_id
+$(eval $(1)_dependencies += $($(1)_$(host_arch)_$(host_os)_dependencies) $($(1)_$(host_os)_dependencies))
+$(eval $(1)_all_dependencies:=$(call int_get_all_dependencies,$(1),$($($(1)_type)_native_toolchain) $($(1)_dependencies)))
+$(foreach dep,$($(1)_all_dependencies),$(eval $(1)_build_id_deps+=$(dep)-$($(dep)_version)-$($(dep)_recipe_hash)))
+$(eval $(1)_build_id_long:=$(1)-$($(1)_version)-$($(1)_recipe_hash)-$(release_type) $($(1)_build_id_deps) $($($(1)_type)_id_string))
+$(eval $(1)_build_id:=$(shell echo -n "$($(1)_build_id_long)" | $(build_SHA256SUM) | cut -c-$(HASH_LENGTH)))
+final_build_id_long+=$($(package)_build_id_long)
+
+#compute package-specific paths
+$(1)_build_subdir?=.
+$(1)_download_file?=$($(1)_file_name)
+$(1)_source_dir:=$(SOURCES_PATH)
+$(1)_source:=$$($(1)_source_dir)/$($(1)_file_name)
+$(1)_staging_dir=$(base_staging_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
+$(1)_staging_prefix_dir:=$$($(1)_staging_dir)$($($(1)_type)_prefix)
+$(1)_extract_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)
+$(1)_download_dir:=$(base_download_dir)/$(1)-$($(1)_version)
+$(1)_build_dir:=$$($(1)_extract_dir)/$$($(1)_build_subdir)
+$(1)_cached_checksum:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz.hash
+$(1)_patch_dir:=$(base_build_dir)/$(host)/$(1)/$($(1)_version)-$($(1)_build_id)/.patches-$($(1)_build_id)
+$(1)_prefixbin:=$($($(1)_type)_prefix)/bin/
+$(1)_cached:=$(BASE_CACHE)/$(host)/$(1)/$(1)-$($(1)_version)-$($(1)_build_id).tar.gz
+$(1)_all_sources=$($(1)_file_name) $($(1)_extra_sources)
+
+#stamps
+$(1)_fetched=$(SOURCES_PATH)/download-stamps/.stamp_fetched-$(1)-$($(1)_file_name).hash
+$(1)_extracted=$$($(1)_extract_dir)/.stamp_extracted
+$(1)_preprocessed=$$($(1)_extract_dir)/.stamp_preprocessed
+$(1)_cleaned=$$($(1)_extract_dir)/.stamp_cleaned
+$(1)_built=$$($(1)_build_dir)/.stamp_built
+$(1)_configured=$$($(1)_build_dir)/.stamp_configured
+$(1)_staged=$$($(1)_staging_dir)/.stamp_staged
+$(1)_postprocessed=$$($(1)_staging_prefix_dir)/.stamp_postprocessed
+$(1)_download_path_fixed=$(subst :,\:,$$($(1)_download_path))
+
+
+#default commands
+$(1)_fetch_cmds ?= $(call fetch_file,$(1),$(subst \:,:,$$($(1)_download_path_fixed)),$$($(1)_download_file),$($(1)_file_name),$($(1)_sha256_hash))
+$(1)_extract_cmds ?= mkdir -p $$($(1)_extract_dir) && echo "$$($(1)_sha256_hash) $$($(1)_source)" > $$($(1)_extract_dir)/.$$($(1)_file_name).hash && $(build_SHA256SUM) -c $$($(1)_extract_dir)/.$$($(1)_file_name).hash && tar --strip-components=1 -xf $$($(1)_source)
+$(1)_preprocess_cmds ?=
+$(1)_build_cmds ?=
+$(1)_config_cmds ?=
+$(1)_stage_cmds ?=
+$(1)_set_vars ?=
+
+
+all_sources+=$$($(1)_fetched)
+endef
+#$(foreach dep_target,$($(1)_all_dependencies),$(eval $(1)_dependency_targets=$($(dep_target)_cached)))
+
+
+define int_config_attach_build_config
+$(eval $(call $(1)_set_vars,$(1)))
+$(1)_cflags+=$($(1)_cflags_$(release_type))
+$(1)_cflags+=$($(1)_cflags_$(host_arch)) $($(1)_cflags_$(host_arch)_$(release_type))
+$(1)_cflags+=$($(1)_cflags_$(host_os)) $($(1)_cflags_$(host_os)_$(release_type))
+$(1)_cflags+=$($(1)_cflags_$(host_arch)_$(host_os)) $($(1)_cflags_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_cxxflags+=$($(1)_cxxflags_$(release_type))
+$(1)_cxxflags+=$($(1)_cxxflags_$(host_arch)) $($(1)_cxxflags_$(host_arch)_$(release_type))
+$(1)_cxxflags+=$($(1)_cxxflags_$(host_os)) $($(1)_cxxflags_$(host_os)_$(release_type))
+$(1)_cxxflags+=$($(1)_cxxflags_$(host_arch)_$(host_os)) $($(1)_cxxflags_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_arflags+=$($(1)_arflags_$(release_type))
+$(1)_arflags+=$($(1)_arflags_$(host_arch)) $($(1)_arflags_$(host_arch)_$(release_type))
+$(1)_arflags+=$($(1)_arflags_$(host_os)) $($(1)_arflags_$(host_os)_$(release_type))
+$(1)_arflags+=$($(1)_arflags_$(host_arch)_$(host_os)) $($(1)_arflags_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_cppflags+=$($(1)_cppflags_$(release_type))
+$(1)_cppflags+=$($(1)_cppflags_$(host_arch)) $($(1)_cppflags_$(host_arch)_$(release_type))
+$(1)_cppflags+=$($(1)_cppflags_$(host_os)) $($(1)_cppflags_$(host_os)_$(release_type))
+$(1)_cppflags+=$($(1)_cppflags_$(host_arch)_$(host_os)) $($(1)_cppflags_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_ldflags+=$($(1)_ldflags_$(release_type))
+$(1)_ldflags+=$($(1)_ldflags_$(host_arch)) $($(1)_ldflags_$(host_arch)_$(release_type))
+$(1)_ldflags+=$($(1)_ldflags_$(host_os)) $($(1)_ldflags_$(host_os)_$(release_type))
+$(1)_ldflags+=$($(1)_ldflags_$(host_arch)_$(host_os)) $($(1)_ldflags_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_build_opts+=$$($(1)_build_opts_$(release_type))
+$(1)_build_opts+=$$($(1)_build_opts_$(host_arch)) $$($(1)_build_opts_$(host_arch)_$(release_type))
+$(1)_build_opts+=$$($(1)_build_opts_$(host_os)) $$($(1)_build_opts_$(host_os)_$(release_type))
+$(1)_build_opts+=$$($(1)_build_opts_$(host_arch)_$(host_os)) $$($(1)_build_opts_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_config_opts+=$$($(1)_config_opts_$(release_type))
+$(1)_config_opts+=$$($(1)_config_opts_$(host_arch)) $$($(1)_config_opts_$(host_arch)_$(release_type))
+$(1)_config_opts+=$$($(1)_config_opts_$(host_os)) $$($(1)_config_opts_$(host_os)_$(release_type))
+$(1)_config_opts+=$$($(1)_config_opts_$(host_arch)_$(host_os)) $$($(1)_config_opts_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_config_env+=$$($(1)_config_env_$(release_type))
+$(1)_config_env+=$($(1)_config_env_$(host_arch)) $($(1)_config_env_$(host_arch)_$(release_type))
+$(1)_config_env+=$($(1)_config_env_$(host_os)) $($(1)_config_env_$(host_os)_$(release_type))
+$(1)_config_env+=$($(1)_config_env_$(host_arch)_$(host_os)) $($(1)_config_env_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_build_env+=$$($(1)_build_env_$(release_type))
+$(1)_build_env+=$($(1)_build_env_$(host_arch)) $($(1)_build_env_$(host_arch)_$(release_type))
+$(1)_build_env+=$($(1)_build_env_$(host_os)) $($(1)_build_env_$(host_os)_$(release_type))
+$(1)_build_env+=$($(1)_build_env_$(host_arch)_$(host_os)) $($(1)_build_env_$(host_arch)_$(host_os)_$(release_type))
+
+$(1)_config_env+=PKG_CONFIG_LIBDIR=$($($(1)_type)_prefix)/lib/pkgconfig
+$(1)_config_env+=PKG_CONFIG_PATH=$($($(1)_type)_prefix)/share/pkgconfig
+$(1)_config_env+=PATH="$(build_prefix)/bin:$(PATH)"
+$(1)_build_env+=PATH="$(build_prefix)/bin:$(PATH)"
+$(1)_stage_env+=PATH="$(build_prefix)/bin:$(PATH)"
+$(1)_autoconf=./configure --host=$($($(1)_type)_host) --prefix=$($($(1)_type)_prefix) $$($(1)_config_opts) CC="$$($(1)_cc)" CXX="$$($(1)_cxx)"
+
+ifeq ($(filter $(1),libusb unbound),)
+$(1)_autoconf += --disable-dependency-tracking
+endif
+ifneq ($($(1)_nm),)
+$(1)_autoconf += NM="$$($(1)_nm)"
+endif
+ifneq ($($(1)_ranlib),)
+$(1)_autoconf += RANLIB="$$($(1)_ranlib)"
+endif
+ifneq ($($(1)_ar),)
+$(1)_autoconf += AR="$$($(1)_ar)"
+endif
+ifneq ($($(1)_arflags),)
+$(1)_autoconf += ARFLAGS="$$($(1)_arflags)"
+endif
+ifneq ($($(1)_cflags),)
+$(1)_autoconf += CFLAGS="$$($(1)_cflags)"
+endif
+ifneq ($($(1)_cxxflags),)
+$(1)_autoconf += CXXFLAGS="$$($(1)_cxxflags)"
+endif
+ifneq ($($(1)_cppflags),)
+$(1)_autoconf += CPPFLAGS="$$($(1)_cppflags)"
+endif
+ifneq ($($(1)_ldflags),)
+$(1)_autoconf += LDFLAGS="$$($(1)_ldflags)"
+endif
+endef
+
+COMPRESS_CMD := $(shell if command -v pigz >/dev/null 2>&1; then echo "pigz"; else echo "gzip"; fi)
+
+define int_add_cmds
+$($(1)_fetched):
+ $(AT)mkdir -p $$(@D) $(SOURCES_PATH)
+ $(AT)rm -f $$@
+ $(AT)touch $$@
+ $(AT)cd $$(@D); $(call $(1)_fetch_cmds,$(1))
+ $(AT)cd $($(1)_source_dir); $(foreach source,$($(1)_all_sources),$(build_SHA256SUM) $(source) >> $$(@);)
+ $(AT)touch $$@
+$($(1)_extracted): | $($(1)_fetched)
+ $(AT)echo Extracting $(1)...
+ $(AT)mkdir -p $$(@D)
+ $(AT)cd $$(@D); $(call $(1)_extract_cmds,$(1))
+ $(AT)touch $$@
+$($(1)_preprocessed): | $($(1)_dependencies) $($(1)_extracted)
+ $(AT)echo Preprocessing $(1)...
+ $(AT)mkdir -p $$(@D) $($(1)_patch_dir)
+ $(AT)$(foreach patch,$($(1)_patches),cd $(PATCHES_PATH)/$(1); cp $(patch) $($(1)_patch_dir) ;)
+ $(AT)cd $$(@D); $(call $(1)_preprocess_cmds, $(1))
+ $(AT)touch $$@
+$($(1)_configured): | $($(1)_preprocessed)
+ $(AT)echo Configuring $(1)...
+ $(AT)rm -rf $(host_prefix); mkdir -p $(host_prefix)/lib; cd $(host_prefix); $(foreach package,$($(1)_all_dependencies), tar xf $($(package)_cached); )
+ $(AT)mkdir -p $$(@D)
+ $(AT)+cd $$(@D); $($(1)_config_env) $(call $(1)_config_cmds, $(1))
+ $(AT)touch $$@
+$($(1)_built): | $($(1)_configured)
+ $(AT)echo Building $(1)...
+ $(AT)mkdir -p $$(@D)
+ $(AT)+cd $$(@D); $($(1)_build_env) $(call $(1)_build_cmds, $(1))
+ $(AT)touch $$@
+$($(1)_staged): | $($(1)_built)
+ $(AT)echo Staging $(1)...
+ $(AT)mkdir -p $($(1)_staging_dir)/$(host_prefix)
+ $(AT)cd $($(1)_build_dir); $($(1)_stage_env) $(call $(1)_stage_cmds, $(1))
+ $(AT)rm -rf $($(1)_extract_dir)
+ $(AT)touch $$@
+$($(1)_postprocessed): | $($(1)_staged)
+ $(AT)echo Postprocessing $(1)...
+ $(AT)cd $($(1)_staging_prefix_dir); $(call $(1)_postprocess_cmds)
+ $(AT)touch $$@
+$($(1)_cached): | $($(1)_dependencies) $($(1)_postprocessed)
+ $(AT)echo Caching $(1)...
+ $(AT)cd $$($(1)_staging_dir)/$(host_prefix); find . | sort | tar --no-recursion -I '$(COMPRESS_CMD)' -cf $$($(1)_staging_dir)/$$(@F) -T -
+ $(AT)mkdir -p $$(@D)
+ $(AT)rm -rf $$(@D) && mkdir -p $$(@D)
+ $(AT)mv $$($(1)_staging_dir)/$$(@F) $$(@)
+ $(AT)rm -rf $($(1)_staging_dir)
+$($(1)_cached_checksum): $($(1)_cached)
+ $(AT)cd $$(@D); $(build_SHA256SUM) $$(<F) > $$(@)
+
+.PHONY: $(1)
+$(1): | $($(1)_cached_checksum)
+.SECONDARY: $($(1)_cached) $($(1)_postprocessed) $($(1)_staged) $($(1)_built) $($(1)_configured) $($(1)_preprocessed) $($(1)_extracted) $($(1)_fetched)
+
+endef
+
+stages = fetched extracted preprocessed configured built staged postprocessed cached cached_checksum
+
+define ext_add_stages
+$(foreach stage,$(stages),
+ $(1)_$(stage): $($(1)_$(stage))
+ .PHONY: $(1)_$(stage))
+endef
+
+# These functions create the build targets for each package. They must be
+# broken down into small steps so that each part is done for all packages
+# before moving on to the next step. Otherwise, a package's info
+# (build-id for example) would only be available to another package if it
+# happened to be computed already.
+
+#set the type for host/build packages.
+$(foreach native_package,$(native_packages),$(eval $(native_package)_type=build))
+$(foreach package,$(packages),$(eval $(package)_type=$(host_arch)_$(host_os)))
+
+#set overridable defaults
+$(foreach package,$(all_packages),$(eval $(call int_vars,$(package))))
+
+#include package files
+$(foreach package,$(all_packages),$(eval include packages/$(package).mk))
+
+#compute a hash of all files that comprise this package's build recipe
+$(foreach package,$(all_packages),$(eval $(call int_get_build_recipe_hash,$(package))))
+
+#generate a unique id for this package, incorporating its dependencies as well
+$(foreach package,$(all_packages),$(eval $(call int_get_build_id,$(package))))
+
+#compute final vars after reading package vars
+$(foreach package,$(all_packages),$(eval $(call int_config_attach_build_config,$(package))))
+
+#create build targets
+$(foreach package,$(all_packages),$(eval $(call int_add_cmds,$(package))))
+
+#special exception: if a toolchain package exists, all non-native packages depend on it
+$(foreach package,$(packages),$(eval $($(package)_unpacked): |$($($(host_arch)_$(host_os)_native_toolchain)_cached) ))
diff --git a/contrib/depends/hosts/android.mk b/contrib/depends/hosts/android.mk
new file mode 100644
index 0000000..827103c
--- /dev/null
+++ b/contrib/depends/hosts/android.mk
@@ -0,0 +1,32 @@
+ANDROID_API=21
+host_toolchain=nonexistent
+ifeq ($(host_arch),armv7a)
+host_toolchain=armv7a-linux-androideabi${ANDROID_API}-
+endif
+ifeq ($(host_arch),x86_64)
+host_toolchain=x86_64-linux-android${ANDROID_API}-
+endif
+ifeq ($(host_arch),i686)
+host_toolchain=i686-linux-android${ANDROID_API}-
+endif
+ifeq ($(host_arch),aarch64)
+host_toolchain=aarch64-linux-android${ANDROID_API}-
+endif
+
+android_CC=$(host_toolchain)clang
+android_CXX=$(host_toolchain)clang++
+android_RANLIB=llvm-ranlib
+android_AR=llvm-ar
+
+android_CFLAGS=-pipe
+android_CXXFLAGS=$(android_CFLAGS)
+android_ARFLAGS=crsD
+
+android_release_CFLAGS=-O2
+android_release_CXXFLAGS=$(android_release_CFLAGS)
+
+android_debug_CFLAGS=-g -O0
+android_debug_CXXFLAGS=$(android_debug_CFLAGS)
+
+android_native_toolchain=android_ndk
+
diff --git a/contrib/depends/hosts/darwin.mk b/contrib/depends/hosts/darwin.mk
new file mode 100644
index 0000000..b14ee5c
--- /dev/null
+++ b/contrib/depends/hosts/darwin.mk
@@ -0,0 +1,23 @@
+OSX_MIN_VERSION=10.14
+LD64_VERSION=609
+ifeq (aarch64, $(host_arch))
+CC_target=arm64-apple-$(host_os)
+else
+CC_target=$(host)
+endif
+darwin_CC=clang -target $(CC_target) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(host_prefix)/native/SDK/ -mlinker-version=$(LD64_VERSION) -B$(host_prefix)/native/bin/$(host)-
+darwin_CXX=clang++ -target $(CC_target) -mmacosx-version-min=$(OSX_MIN_VERSION) --sysroot $(host_prefix)/native/SDK/ -mlinker-version=$(LD64_VERSION) -stdlib=libc++ -B$(host_prefix)/native/bin/$(host)-
+
+darwin_RANLIB=$(host_prefix)/native/bin/$(host)-ranlib
+
+darwin_CFLAGS=-pipe
+darwin_CXXFLAGS=$(darwin_CFLAGS)
+darwin_ARFLAGS=cr
+
+darwin_release_CFLAGS=-O1
+darwin_release_CXXFLAGS=$(darwin_release_CFLAGS)
+
+darwin_debug_CFLAGS=-O1
+darwin_debug_CXXFLAGS=$(darwin_debug_CFLAGS)
+
+darwin_native_toolchain=native_cctools darwin_sdk
diff --git a/contrib/depends/hosts/default.mk b/contrib/depends/hosts/default.mk
new file mode 100644
index 0000000..2e7f9fa
--- /dev/null
+++ b/contrib/depends/hosts/default.mk
@@ -0,0 +1,26 @@
+default_host_CC = $(host_toolchain)gcc
+default_host_CXX = $(host_toolchain)g++
+default_host_AR = $(host_toolchain)ar
+default_host_RANLIB = $(host_toolchain)ranlib
+default_host_STRIP = $(host_toolchain)strip
+default_host_LIBTOOL = $(host_toolchain)libtool
+default_host_INSTALL_NAME_TOOL = $(host_toolchain)install_name_tool
+default_host_OTOOL = $(host_toolchain)otool
+default_host_NM = $(host_toolchain)nm
+
+define add_host_tool_func
+$(host_os)_$1?=$$(default_host_$1)
+$(host_arch)_$(host_os)_$1?=$$($(host_os)_$1)
+$(host_arch)_$(host_os)_$(release_type)_$1?=$$($(host_os)_$1)
+host_$1=$$($(host_arch)_$(host_os)_$1)
+endef
+
+define add_host_flags_func
+$(host_arch)_$(host_os)_$1 += $($(host_os)_$1)
+$(host_arch)_$(host_os)_$(release_type)_$1 += $($(host_os)_$(release_type)_$1)
+host_$1 = $$($(host_arch)_$(host_os)_$1)
+host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
+endef
+
+$(foreach tool,CC CXX AR RANLIB STRIP NM LIBTOOL OTOOL INSTALL_NAME_TOOL,$(eval $(call add_host_tool_func,$(tool))))
+$(foreach flags,CFLAGS CXXFLAGS ARFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
diff --git a/contrib/depends/hosts/freebsd.mk b/contrib/depends/hosts/freebsd.mk
new file mode 100644
index 0000000..2e3b593
--- /dev/null
+++ b/contrib/depends/hosts/freebsd.mk
@@ -0,0 +1,18 @@
+freebsd_CC=clang-8
+freebsd_CXX=clang++-8
+freebsd_AR=ar
+freebsd_RANLIB=ranlib
+freebsd_NM=nm
+
+freebsd_CFLAGS=-pipe
+freebsd_CXXFLAGS=$(freebsd_CFLAGS)
+freebsd_ARFLAGS=cr
+
+freebsd_release_CFLAGS=-O2
+freebsd_release_CXXFLAGS=$(freebsd_release_CFLAGS)
+
+freebsd_debug_CFLAGS=-g -O0
+freebsd_debug_CXXFLAGS=$(freebsd_debug_CFLAGS)
+
+freebsd_native_toolchain=freebsd_base
+
diff --git a/contrib/depends/hosts/linux.mk b/contrib/depends/hosts/linux.mk
new file mode 100644
index 0000000..b79799f
--- /dev/null
+++ b/contrib/depends/hosts/linux.mk
@@ -0,0 +1,32 @@
+linux_CFLAGS=-pipe
+linux_CXXFLAGS=$(linux_CFLAGS)
+linux_ARFLAGS=cr
+
+linux_release_CFLAGS=-O2
+linux_release_CXXFLAGS=$(linux_release_CFLAGS)
+
+linux_debug_CFLAGS=-O1
+linux_debug_CXXFLAGS=$(linux_debug_CFLAGS)
+
+linux_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
+
+ifeq (86,$(findstring 86,$(build_arch)))
+i686_linux_CC=i686-linux-gnu-gcc
+i686_linux_CXX=i686-linux-gnu-g++
+i686_linux_AR=ar
+i686_linux_RANLIB=ranlib
+i686_linux_NM=nm
+i686_linux_STRIP=strip
+
+x86_64_linux_CC=x86_64-linux-gnu-gcc
+x86_64_linux_CXX=x86_64-linux-gnu-g++
+x86_64_linux_AR=ar
+x86_64_linux_RANLIB=ranlib
+x86_64_linux_NM=nm
+x86_64_linux_STRIP=strip
+else
+i686_linux_CC=$(default_host_CC) -m32
+i686_linux_CXX=$(default_host_CXX) -m32
+x86_64_linux_CC=$(default_host_CC) -m64
+x86_64_linux_CXX=$(default_host_CXX) -m64
+endif
diff --git a/contrib/depends/hosts/mingw32.mk b/contrib/depends/hosts/mingw32.mk
new file mode 100644
index 0000000..ccc4c50
--- /dev/null
+++ b/contrib/depends/hosts/mingw32.mk
@@ -0,0 +1,11 @@
+mingw32_CFLAGS=-pipe
+mingw32_CXXFLAGS=$(mingw32_CFLAGS)
+mingw32_ARFLAGS=cr
+
+mingw32_release_CFLAGS=-O2
+mingw32_release_CXXFLAGS=$(mingw32_release_CFLAGS)
+
+mingw32_debug_CFLAGS=-O1
+mingw32_debug_CXXFLAGS=$(mingw32_debug_CFLAGS)
+
+mingw32_debug_CPPFLAGS=-D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC
diff --git a/contrib/depends/packages.md b/contrib/depends/packages.md
new file mode 100644
index 0000000..ae5b473
--- /dev/null
+++ b/contrib/depends/packages.md
@@ -0,0 +1,165 @@
+Each recipe consists of 3 main parts: defining identifiers, setting build
+variables, and defining build commands.
+
+The package "mylib" will be used here as an example
+
+General tips:
+- mylib_foo is written as $(package)_foo in order to make recipes more similar.
+
+## Identifiers
+Each package is required to define at least these variables:
+
+```
+$(package)_version:
+Version of the upstream library or program. If there is no version, a
+placeholder such as 1.0 can be used.
+
+$(package)_download_path:
+Location of the upstream source, without the file-name. Usually http or
+ftp.
+
+$(package)_file_name:
+The upstream source filename available at the download path.
+
+$(package)_sha256_hash:
+The sha256 hash of the upstream file
+```
+
+These variables are optional:
+
+```
+$(package)_build_subdir:
+cd to this dir before running configure/build/stage commands.
+
+$(package)_download_file:
+The file-name of the upstream source if it differs from how it should be
+stored locally. This can be used to avoid storing file-names with strange
+characters.
+
+$(package)_dependencies:
+Names of any other packages that this one depends on.
+
+$(package)_patches:
+Filenames of any patches needed to build the package
+
+$(package)_extra_sources:
+Any extra files that will be fetched via $(package)_fetch_cmds. These are
+specified so that they can be fetched and verified via 'make download'.
+```
+
+
+## Build Variables:
+After defining the main identifiers, build variables may be added or customized
+before running the build commands. They should be added to a function called
+$(package)_set_vars. For example:
+
+```
+define $(package)_set_vars
+...
+endef
+```
+
+Most variables can be prefixed with the host, architecture, or both, to make
+the modifications specific to that case. For example:
+
+```
+Universal: $(package)_cc=gcc
+Linux only: $(package)_linux_cc=gcc
+x86_64 only: $(package)_x86_64_cc = gcc
+x86_64 linux only: $(package)_x86_64_linux_cc = gcc
+```
+
+These variables may be set to override or append their default values.
+
+```
+$(package)_cc
+$(package)_cxx
+$(package)_objc
+$(package)_objcxx
+$(package)_ar
+$(package)_ranlib
+$(package)_libtool
+$(package)_nm
+$(package)_cflags
+$(package)_cxxflags
+$(package)_ldflags
+$(package)_cppflags
+$(package)_config_env
+$(package)_build_env
+$(package)_stage_env
+$(package)_build_opts
+$(package)_config_opts
+```
+
+The `*_env` variables are used to add environment variables to the respective
+commands.
+
+Many variables respect a debug/release suffix as well, in order to use them for
+only the appropriate build config. For example:
+
+```
+$(package)_cflags_release = -O3
+$(package)_cflags_i686_debug = -g
+$(package)_config_opts_release = --disable-debug
+```
+
+These will be used in addition to the options that do not specify
+debug/release. All builds are considered to be release unless DEBUG=1 is set by
+the user. Other variables may be defined as needed.
+
+## Build commands:
+
+For each build, a unique build dir and staging dir are created. For example,
+`work/build/mylib/1.0-1adac830f6e` and `work/staging/mylib/1.0-1adac830f6e`.
+
+The following build commands are available for each recipe:
+
+```
+$(package)_fetch_cmds:
+Runs from: build dir
+Fetch the source file. If undefined, it will be fetched and verified
+against its hash.
+
+$(package)_extract_cmds:
+Runs from: build dir
+Verify the source file against its hash and extract it. If undefined, the
+source is assumed to be a tarball.
+
+$(package)_preprocess_cmds:
+Runs from: build dir/$(package)_build_subdir
+Preprocess the source as necessary. If undefined, does nothing.
+
+$(package)_config_cmds:
+Runs from: build dir/$(package)_build_subdir
+Configure the source. If undefined, does nothing.
+
+$(package)_build_cmds:
+Runs from: build dir/$(package)_build_subdir
+Build the source. If undefined, does nothing.
+
+$(package)_stage_cmds:
+Runs from: build dir/$(package)_build_subdir
+Stage the build results. If undefined, does nothing.
+```
+
+The following variables are available for each recipe:
+
+```
+$(1)_staging_dir: package's destination sysroot path
+$(1)_staging_prefix_dir: prefix path inside of the package's staging dir
+$(1)_extract_dir: path to the package's extracted sources
+$(1)_build_dir: path where configure/build/stage commands will be run
+$(1)_patch_dir: path where the package's patches (if any) are found
+```
+
+Notes on build commands:
+
+For packages built with autotools, `$($(package)_autoconf)` can be used in the
+configure step to (usually) correctly configure automatically. Any
+`$($(package)_config_opts`) will be appended.
+
+Most autotools projects can be properly staged using:
+
+```bash
+$(MAKE) DESTDIR=$($(package)_staging_dir) install
+```
diff --git a/contrib/depends/packages/android_ndk.mk b/contrib/depends/packages/android_ndk.mk
new file mode 100644
index 0000000..2c2914e
--- /dev/null
+++ b/contrib/depends/packages/android_ndk.mk
@@ -0,0 +1,36 @@
+package=android_ndk
+$(package)_version=26d
+$(package)_download_path=https://dl.google.com/android/repository/
+$(package)_file_name=android-ndk-r$($(package)_version)-linux.zip
+$(package)_sha256_hash=eefeafe7ccf177de7cc57158da585e7af119bb7504a63604ad719e4b2a328b54
+
+$(package)_version_apiversion=21
+
+define $(package)_set_vars
+$(package)_config_opts_armv7a=--arch arm
+$(package)_config_opts_aarch64=--arch arm64
+$(package)_config_opts_x86_64=--arch x86_64
+$(package)_config_opts_i686=--arch x86
+endef
+
+define $(package)_extract_cmds
+ echo $($(package)_sha256_hash) $($(1)_source_dir)/$($(package)_file_name) | sha256sum -c &&\
+ unzip -q $($(1)_source_dir)/$($(package)_file_name)
+endef
+
+# arm-linux-androideabi-ar - openssl workaround
+
+define $(package)_stage_cmds
+ mkdir -p $(build_prefix) &&\
+ echo $(build_prefix)/toolchain && \
+ android-ndk-r$($(package)_version)/build/tools/make_standalone_toolchain.py --api $($(package)_version_apiversion) \
+ --install-dir $(build_prefix)/toolchain --stl=libc++ $($(package)_config_opts) &&\
+ mv $(build_prefix)/toolchain $($(package)_staging_dir)/$(host_prefix)/native && \
+ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ar &&\
+ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ar &&\
+ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)$($(package)_version_apiversion)-ranlib &&\
+ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/arm-linux-androideabi-ranlib &&\
+ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ar $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ar &&\
+ cp $($(package)_staging_dir)/$(host_prefix)/native/bin/llvm-ranlib $($(package)_staging_dir)/$(host_prefix)/native/bin/$(host)-ranlib
+endef
+
diff --git a/contrib/depends/packages/boost.mk b/contrib/depends/packages/boost.mk
new file mode 100644
index 0000000..c17e863
--- /dev/null
+++ b/contrib/depends/packages/boost.mk
@@ -0,0 +1,48 @@
+package=boost
+$(package)_version=1_64_0
+$(package)_download_path=https://downloads.sourceforge.net/project/boost/boost/1.64.0/
+$(package)_file_name=$(package)_$($(package)_version).tar.bz2
+$(package)_sha256_hash=7bcc5caace97baa948931d712ea5f37038dbb1c5d89b43ad4def4ed7cb683332
+$(package)_dependencies=libiconv
+$(package)_patches=fix_aroptions.patch fix_arm_arch.patch
+
+define $(package)_set_vars
+$(package)_config_opts_release=variant=release
+$(package)_config_opts_debug=variant=debug
+$(package)_config_opts=--layout=tagged --build-type=complete --user-config=user-config.jam
+$(package)_config_opts+=threading=multi link=static -sNO_BZIP2=1 -sNO_ZLIB=1
+$(package)_config_opts_linux=threadapi=pthread runtime-link=shared
+$(package)_config_opts_android=threadapi=pthread runtime-link=static target-os=android
+$(package)_config_opts_darwin=--toolset=darwin runtime-link=shared
+$(package)_config_opts_mingw32=binary-format=pe target-os=windows threadapi=win32 runtime-link=static
+$(package)_config_opts_x86_64_mingw32=address-model=64
+$(package)_config_opts_i686_mingw32=address-model=32
+$(package)_config_opts_i686_linux=address-model=32 architecture=x86
+$(package)_toolset_$(host_os)=gcc
+$(package)_archiver_$(host_os)=$($(package)_ar)
+$(package)_toolset_darwin=darwin
+$(package)_archiver_darwin=$($(package)_libtool)
+$(package)_config_libraries=chrono,filesystem,program_options,system,thread,test,date_time,regex,serialization,locale
+$(package)_cxxflags=-std=c++11
+$(package)_cxxflags_linux=-fPIC
+$(package)_cxxflags_android=-fPIC
+$(package)_cxxflags_freebsd=-fPIC
+endef
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/fix_aroptions.patch &&\
+ patch -p1 < $($(package)_patch_dir)/fix_arm_arch.patch &&\
+ echo "using $(boost_toolset_$(host_os)) : : $($(package)_cxx) : <cxxflags>\"$($(package)_cxxflags) $($(package)_cppflags)\" <linkflags>\"$($(package)_ldflags)\" <archiver>\"$(boost_archiver_$(host_os))\" <arflags>\"$($(package)_arflags)\" <striper>\"$(host_STRIP)\" <ranlib>\"$(host_RANLIB)\" <rc>\"$(host_WINDRES)\" : ;" > user-config.jam
+endef
+
+define $(package)_config_cmds
+ ./bootstrap.sh --without-icu --with-libraries=$(boost_config_libraries)
+endef
+
+define $(package)_build_cmds
+ ./b2 -d2 -j2 -d1 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) stage
+endef
+
+define $(package)_stage_cmds
+ ./b2 -d0 -j4 --prefix=$($(package)_staging_prefix_dir) $($(package)_config_opts) install
+endef
diff --git a/contrib/depends/packages/darwin_sdk.mk b/contrib/depends/packages/darwin_sdk.mk
new file mode 100644
index 0000000..d639c42
--- /dev/null
+++ b/contrib/depends/packages/darwin_sdk.mk
@@ -0,0 +1,10 @@
+package=darwin_sdk
+$(package)_version=11.1
+$(package)_download_path=https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/
+$(package)_file_name=MacOSX$($(package)_version).sdk.tar.xz
+$(package)_sha256_hash=68797baaacb52f56f713400de306a58a7ca00b05c3dc6d58f0a8283bcac721f8
+
+define $(package)_stage_cmds
+ mkdir -p $($(package)_staging_dir)/$(host_prefix)/native/SDK &&\
+ mv * $($(package)_staging_dir)/$(host_prefix)/native/SDK
+endef
diff --git a/contrib/depends/packages/eudev.mk b/contrib/depends/packages/eudev.mk
new file mode 100644
index 0000000..6b6887e
--- /dev/null
+++ b/contrib/depends/packages/eudev.mk
@@ -0,0 +1,30 @@
+package=eudev
+$(package)_version=v3.2.6
+$(package)_download_path=https://github.com/gentoo/eudev/archive/
+$(package)_download_file=$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=a96ecb8637667897b8bd4dee4c22c7c5f08b327be45186e912ce6bc768385852
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-gudev --disable-introspection --disable-hwdb --disable-manpages --disable-shared
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmd
+ $(MAKE)
+endef
+
+define $(package)_preprocess_cmds
+ cd $($(package)_build_subdir); autoreconf -f -i
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/*.la
+endef
diff --git a/contrib/depends/packages/expat.mk b/contrib/depends/packages/expat.mk
new file mode 100644
index 0000000..5902451
--- /dev/null
+++ b/contrib/depends/packages/expat.mk
@@ -0,0 +1,28 @@
+package=expat
+$(package)_version=2.6.0
+$(package)_download_path=https://github.com/libexpat/libexpat/releases/download/R_$(subst .,_,$($(package)_version))/
+$(package)_file_name=$(package)-$($(package)_version).tar.bz2
+$(package)_sha256_hash=ff60e6a6b6ce570ae012dc7b73169c7fdf4b6bf08c12ed0ec6f55736b78d85ba
+
+define $(package)_set_vars
+$(package)_config_opts=--disable-shared --without-docbook --without-tests --without-examples
+$(package)_config_opts+=--enable-option-checking --without-xmlwf --with-pic
+$(package)_config_opts+=--prefix=$(host_prefix)
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm -rf share lib/cmake lib/*.la
+endef
+
diff --git a/contrib/depends/packages/freebsd_base.mk b/contrib/depends/packages/freebsd_base.mk
new file mode 100644
index 0000000..ad9975f
--- /dev/null
+++ b/contrib/depends/packages/freebsd_base.mk
@@ -0,0 +1,23 @@
+package=freebsd_base
+$(package)_version=11.3
+$(package)_download_path=https://download.freebsd.org/ftp/releases/amd64/$($(package)_version)-RELEASE/
+$(package)_download_file=base.txz
+$(package)_file_name=freebsd-base-$($(package)_version).txz
+$(package)_sha256_hash=4599023ac136325b86f2fddeec64c1624daa83657e40b00b2ef944c81463a4ff
+
+define $(package)_extract_cmds
+ echo $($(package)_sha256_hash) $($(1)_source_dir)/$($(package)_file_name) | sha256sum -c &&\
+ tar xf $($(1)_source_dir)/$($(package)_file_name) ./lib/ ./usr/lib/ ./usr/include/
+endef
+
+define $(package)_build_cmds
+ mkdir bin &&\
+ echo "#!/bin/sh\n\nexec /usr/bin/clang-8 -target x86_64-unknown-freebsd$($(package)_version) --sysroot=$(host_prefix)/native $$$$""@" > bin/clang-8 &&\
+ echo "#!/bin/sh\n\nexec /usr/bin/clang++-8 -target x86_64-unknown-freebsd$($(package)_version) --sysroot=$(host_prefix)/native $$$$""@" > bin/clang++-8 &&\
+ chmod 755 bin/*
+endef
+
+define $(package)_stage_cmds
+ mkdir $($(package)_staging_dir)/$(host_prefix)/native &&\
+ mv bin lib usr $($(package)_staging_dir)/$(host_prefix)/native
+endef
diff --git a/contrib/depends/packages/graphviz.mk b/contrib/depends/packages/graphviz.mk
new file mode 100644
index 0000000..1c4bc1b
--- /dev/null
+++ b/contrib/depends/packages/graphviz.mk
@@ -0,0 +1,30 @@
+package=graphviz
+$(package)_version=2.40.1
+$(package)_download_path=www.graphviz.org/pub/graphviz/stable/SOURCES/
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=ca5218fade0204d59947126c38439f432853543b0818d9d728c589dfe7f3a421
+
+define $(package)_preprocess_cmds
+ ./autogen.sh
+endef
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-shared --enable-multibye --without-purify --without-curses
+ $(package)_config_opts_release=--disable-debug-mode
+ $(package)_config_opts_linux=--with-pic
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+endef
diff --git a/contrib/depends/packages/gtest.mk b/contrib/depends/packages/gtest.mk
new file mode 100644
index 0000000..1208d7c
--- /dev/null
+++ b/contrib/depends/packages/gtest.mk
@@ -0,0 +1,39 @@
+package=gtest
+$(package)_version=1.8.1
+$(package)_download_path=https://github.com/google/googletest/archive/
+$(package)_download_file=release-$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=9bf1fe5182a604b4135edc1a425ae356c9ad15e9b23f9f12a02e80184c3a249c
+$(package)_cxxflags=-std=c++11
+$(package)_cxxflags_linux=-fPIC
+
+define $(package)_config_cmds
+ cd googletest && \
+ CC="$(host_prefix)/native/bin/$($(package)_cc)" \
+ CXX="$(host_prefix)/native/bin/$($(package)_cxx)" \
+ AR="$(host_prefix)/native/bin/$($(package)_ar)" \
+ RANLIB="$(host_prefix)/native/bin/$($(package)_ranlib)" \
+ LIBTOOL="$(host_prefix)/native/bin/$($(package)_libtool)" \
+ CXXFLAGS="$($(package)_cxxflags)" \
+ CCFLAGS="$($(package)_ccflags)" \
+ CPPFLAGS="$($(package)_cppflags)" \
+ CFLAGS="$($(package)_cflags) $($(package)_cppflags)" \
+ LDLAGS="$($(package)_ldflags)" \
+ cmake -DCMAKE_INSTALL_PREFIX=$(build_prefix) \
+ -DTOOLCHAIN_PREFIX=$(host_toolchain) \
+ -DCMAKE_AR="$(host_prefix)/native/bin/$($(package)_ar)" \
+ -DCMAKE_RANLIB="$(host_prefix)/native/bin/$($(package)_ranlib)" \
+ -DCMAKE_CXX_FLAGS_DEBUG=ON
+endef
+# -DCMAKE_TOOLCHAIN_FILE=$(HOST)/share/toolchain.cmake
+
+define $(package)_build_cmds
+ cd googletest && CC="$(host_prefix)/native/bin/$($(package)_cc)" $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ mkdir $($(package)_staging_prefix_dir)/lib $($(package)_staging_prefix_dir)/include &&\
+ cp googletest/libgtest.a $($(package)_staging_prefix_dir)/lib/ &&\
+ cp googletest/libgtest_main.a $($(package)_staging_prefix_dir)/lib/ &&\
+ cp -a googletest/include/* $($(package)_staging_prefix_dir)/include/
+endef
diff --git a/contrib/depends/packages/hidapi.mk b/contrib/depends/packages/hidapi.mk
new file mode 100644
index 0000000..64935a3
--- /dev/null
+++ b/contrib/depends/packages/hidapi.mk
@@ -0,0 +1,38 @@
+package=hidapi
+$(package)_version=0.13.1
+$(package)_download_path=https://github.com/libusb/hidapi/archive/refs/tags
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=476a2c9a4dc7d1fc97dd223b84338dbea3809a84caea2dcd887d9778725490e3
+$(package)_linux_dependencies=libusb eudev
+$(package)_patches=missing_win_include.patch
+
+define $(package)_set_vars
+$(package)_config_opts=--enable-static --disable-shared
+$(package)_config_opts+=--prefix=$(host_prefix)
+$(package)_config_opts_linux+=libudev_LIBS="-L$(host_prefix)/lib -ludev"
+$(package)_config_opts_linux+=libudev_CFLAGS=-I$(host_prefix)/include
+$(package)_config_opts_linux+=libusb_LIBS="-L$(host_prefix)/lib -lusb-1.0"
+$(package)_config_opts_linux+=libusb_CFLAGS=-I$(host_prefix)/include/libusb-1.0
+$(package)_config_opts_linux+=--with-pic
+endef
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/missing_win_include.patch && ./bootstrap
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/*.la
+endef
+
diff --git a/contrib/depends/packages/icu4c.mk b/contrib/depends/packages/icu4c.mk
new file mode 100644
index 0000000..58ae637
--- /dev/null
+++ b/contrib/depends/packages/icu4c.mk
@@ -0,0 +1,27 @@
+package=icu4c
+$(package)_version=55.2
+$(package)_download_path=https://github.com/unicode-org/icu/releases/download/release-55-2/
+$(package)_file_name=$(package)-55_2-src.tgz
+$(package)_sha256_hash=eda2aa9f9c787748a2e2d310590720ca8bcc6252adf6b4cfb03b65bef9d66759
+$(package)_patches=icu-001-dont-build-static-dynamic-twice.patch
+
+define $(package)_set_vars
+ $(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -DU_USING_ICU_NAMESPACE=0 -DU_STATIC_IMPLEMENTATION -DU_COMBINED_IMPLEMENTATION -fPIC -DENABLE_STATIC=YES -DPGKDATA_MODE=static"
+endef
+
+define $(package)_config_cmds
+ patch -p1 < $($(package)_patch_dir)/icu-001-dont-build-static-dynamic-twice.patch &&\
+ mkdir builda &&\
+ mkdir buildb &&\
+ cd builda &&\
+ sh ../source/runConfigureICU Linux &&\
+ make &&\
+ cd ../buildb &&\
+ sh ../source/runConfigureICU MinGW --enable-static=yes --disable-shared --disable-layout --disable-layoutex --disable-tests --disable-samples --prefix=$(host_prefix) --with-cross-build=`pwd`/../builda &&\
+ $(MAKE) $($(package)_build_opts)
+endef
+
+define $(package)_stage_cmds
+ cd buildb &&\
+ $(MAKE) $($(package)_build_opts) DESTDIR=$($(package)_staging_dir) install lib/*
+endef
diff --git a/contrib/depends/packages/libICE.mk b/contrib/depends/packages/libICE.mk
new file mode 100644
index 0000000..a897d9a
--- /dev/null
+++ b/contrib/depends/packages/libICE.mk
@@ -0,0 +1,23 @@
+package=libICE
+$(package)_version=1.0.9
+$(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/
+$(package)_file_name=$(package)-$($(package)_version).tar.bz2
+$(package)_sha256_hash=8f7032f2c1c64352b5423f6b48a8ebdc339cc63064af34d66a6c9aa79759e202
+$(package)_dependencies=xtrans xproto
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-static --disable-docs --disable-specs --without-xsltproc
+ $(package)_config_opts_linux=--with-pic
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/libSM.mk b/contrib/depends/packages/libSM.mk
new file mode 100644
index 0000000..83fcd4c
--- /dev/null
+++ b/contrib/depends/packages/libSM.mk
@@ -0,0 +1,23 @@
+package=libSM
+$(package)_version=1.2.2
+$(package)_download_path=https://xorg.freedesktop.org/releases/individual/lib/
+$(package)_file_name=$(package)-$($(package)_version).tar.bz2
+$(package)_sha256_hash=0baca8c9f5d934450a70896c4ad38d06475521255ca63b717a6510fdb6e287bd
+$(package)_dependencies=xtrans xproto libICE
+
+define $(package)_set_vars
+ $(package)_config_opts=--without-libuuid --without-xsltproc --disable-docs --disable-static
+ $(package)_config_opts_linux=--with-pic
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/libiconv.mk b/contrib/depends/packages/libiconv.mk
new file mode 100644
index 0000000..eac8b43
--- /dev/null
+++ b/contrib/depends/packages/libiconv.mk
@@ -0,0 +1,35 @@
+package=libiconv
+$(package)_version=1.15
+$(package)_download_path=https://ftp.gnu.org/gnu/libiconv
+$(package)_file_name=libiconv-$($(package)_version).tar.gz
+$(package)_sha256_hash=ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178
+$(package)_patches=fix-whitespace.patch
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-nls
+ $(package)_config_opts=--enable-static
+ $(package)_config_opts=--disable-shared
+ $(package)_config_opts_linux=--with-pic
+ $(package)_config_opts_freebsd=--with-pic
+endef
+
+define $(package)_preprocess_cmds
+ cp -f $(BASEDIR)/config.guess $(BASEDIR)/config.sub build-aux/ &&\
+ patch -p1 < $($(package)_patch_dir)/fix-whitespace.patch
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/*.la
+endef
diff --git a/contrib/depends/packages/libusb.mk b/contrib/depends/packages/libusb.mk
new file mode 100644
index 0000000..c1d9fe6
--- /dev/null
+++ b/contrib/depends/packages/libusb.mk
@@ -0,0 +1,39 @@
+package=libusb
+$(package)_version=1.0.26
+$(package)_download_path=https://github.com/libusb/libusb/releases/download/v$($(package)_version)
+$(package)_file_name=$(package)-$($(package)_version).tar.bz2
+$(package)_sha256_hash=12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5
+
+define $(package)_preprocess_cmds
+ autoreconf -i
+endef
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-shared
+ $(package)_config_opts_linux=--with-pic --disable-udev
+ $(package)_config_opts_mingw32=--disable-udev
+ $(package)_config_opts_darwin=--disable-udev
+endef
+
+ifneq ($(host_os),darwin)
+ define $(package)_config_cmds
+ cp -f $(BASEDIR)/config.guess config.guess &&\
+ cp -f $(BASEDIR)/config.sub config.sub &&\
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+ endef
+else
+ define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+ endef
+endif
+
+define $(package)_build_cmd
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds cp -f lib/libusb-1.0.a lib/libusb.a
+endef
diff --git a/contrib/depends/packages/native_biplist.mk b/contrib/depends/packages/native_biplist.mk
new file mode 100644
index 0000000..3c6e890
--- /dev/null
+++ b/contrib/depends/packages/native_biplist.mk
@@ -0,0 +1,20 @@
+package=native_biplist
+$(package)_version=0.9
+$(package)_download_path=https://pypi.python.org/packages/source/b/biplist
+$(package)_file_name=biplist-$($(package)_version).tar.gz
+$(package)_sha256_hash=b57cadfd26e4754efdf89e9e37de87885f9b5c847b2615688ca04adfaf6ca604
+$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
+$(package)_patches=sorted_list.patch
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/sorted_list.patch
+endef
+
+define $(package)_build_cmds
+ python setup.py build
+endef
+
+define $(package)_stage_cmds
+ mkdir -p $($(package)_install_libdir) && \
+ python setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
+endef
diff --git a/contrib/depends/packages/native_ccache.mk b/contrib/depends/packages/native_ccache.mk
new file mode 100644
index 0000000..966804c
--- /dev/null
+++ b/contrib/depends/packages/native_ccache.mk
@@ -0,0 +1,25 @@
+package=native_ccache
+$(package)_version=3.3.4
+$(package)_download_path=https://samba.org/ftp/ccache
+$(package)_file_name=ccache-$($(package)_version).tar.bz2
+$(package)_sha256_hash=fa9d7f38367431bc86b19ad107d709ca7ecf1574fdacca01698bdf0a47cd8567
+
+define $(package)_set_vars
+$(package)_config_opts=
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm -rf lib include
+endef
diff --git a/contrib/depends/packages/native_cctools.mk b/contrib/depends/packages/native_cctools.mk
new file mode 100644
index 0000000..0324f7a
--- /dev/null
+++ b/contrib/depends/packages/native_cctools.mk
@@ -0,0 +1,28 @@
+package=native_cctools
+$(package)_version=04663295d0425abfac90a42440a7ec02d7155fea
+$(package)_download_path=https://github.com/tpoechtrager/cctools-port/archive
+$(package)_download_file=$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=70a7189418c2086d20c299c5d59250cf5940782c778892ccc899c66516ed240e
+$(package)_build_subdir=cctools
+$(package)_dependencies=native_clang native_libtapi
+
+define $(package)_set_vars
+$(package)_config_opts=--target=$(host) --disable-lto-support --with-libtapi=$(host_prefix)
+$(package)_ldflags+=-Wl,-rpath=\\$$$$$$$$\$$$$$$$$ORIGIN/../lib
+$(package)_cc=$(host_prefix)/native/bin/clang
+$(package)_cxx=$(host_prefix)/native/bin/clang++
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install && \
+ cp $($(package)_extract_dir)/cctools/misc/install_name_tool $($(package)_staging_prefix_dir)/bin/
+endef
diff --git a/contrib/depends/packages/native_cdrkit.mk b/contrib/depends/packages/native_cdrkit.mk
new file mode 100644
index 0000000..8243458
--- /dev/null
+++ b/contrib/depends/packages/native_cdrkit.mk
@@ -0,0 +1,26 @@
+package=native_cdrkit
+$(package)_version=1.1.11
+$(package)_download_path=https://distro.ibiblio.org/fatdog/source/600/c
+$(package)_file_name=cdrkit-$($(package)_version).tar.bz2
+$(package)_sha256_hash=b50d64c214a65b1a79afe3a964c691931a4233e2ba605d793eb85d0ac3652564
+$(package)_patches=cdrkit-deterministic.patch
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/cdrkit-deterministic.patch
+endef
+
+define $(package)_config_cmds
+ cmake -DCMAKE_INSTALL_PREFIX=$(build_prefix)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) genisoimage
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) -C genisoimage install
+endef
+
+define $(package)_postprocess_cmds
+ rm bin/isovfy bin/isoinfo bin/isodump bin/isodebug bin/devdump
+endef
diff --git a/contrib/depends/packages/native_clang.mk b/contrib/depends/packages/native_clang.mk
new file mode 100644
index 0000000..115f8f3
--- /dev/null
+++ b/contrib/depends/packages/native_clang.mk
@@ -0,0 +1,29 @@
+package=native_clang
+$(package)_version=9.0.0
+$(package)_download_path=https://releases.llvm.org/$($(package)_version)
+$(package)_download_file=clang+llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
+$(package)_file_name=clang-llvm-$($(package)_version)-x86_64-linux-gnu-ubuntu-18.04.tar.xz
+$(package)_sha256_hash=a23b082b30c128c9831dbdd96edad26b43f56624d0ad0ea9edec506f5385038d
+
+define $(package)_extract_cmds
+ echo $($(package)_sha256_hash) $($(package)_source) | sha256sum -c &&\
+ mkdir -p toolchain/bin toolchain/lib/clang/3.5/include && \
+ tar --strip-components=1 -C toolchain -xf $($(package)_source) && \
+ rm -f toolchain/lib/libc++abi.so* && \
+ echo "#!/bin/sh" > toolchain/bin/$(host)-dsymutil && \
+ echo "exit 0" >> toolchain/bin/$(host)-dsymutil && \
+ chmod +x toolchain/bin/$(host)-dsymutil
+endef
+
+define $(package)_stage_cmds
+ cd $($(package)_extract_dir)/toolchain && \
+ mkdir -p $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include && \
+ mkdir -p $($(package)_staging_prefix_dir)/bin $($(package)_staging_prefix_dir)/include && \
+ cp bin/clang $($(package)_staging_prefix_dir)/bin/ &&\
+ cp -P bin/clang++ $($(package)_staging_prefix_dir)/bin/ &&\
+ cp lib/libLTO.so $($(package)_staging_prefix_dir)/lib/ && \
+ cp -rf lib/clang/$($(package)_version)/include/* $($(package)_staging_prefix_dir)/lib/clang/$($(package)_version)/include/ && \
+ cp bin/dsymutil $($(package)_staging_prefix_dir)/bin/$(host)-dsymutil && \
+ if `test -d include/c++/`; then cp -rf include/c++/ $($(package)_staging_prefix_dir)/include/; fi && \
+ if `test -d lib/c++/`; then cp -rf lib/c++/ $($(package)_staging_prefix_dir)/lib/; fi
+endef
diff --git a/contrib/depends/packages/native_cmake-unused.mk b/contrib/depends/packages/native_cmake-unused.mk
new file mode 100644
index 0000000..c9ab757
--- /dev/null
+++ b/contrib/depends/packages/native_cmake-unused.mk
@@ -0,0 +1,23 @@
+package=native_cmake
+$(package)_version=3.14.0
+$(package)_version_dot=v3.14
+$(package)_download_path=https://cmake.org/files/$($(package)_version_dot)/
+$(package)_file_name=cmake-$($(package)_version).tar.gz
+$(package)_sha256_hash=aa76ba67b3c2af1946701f847073f4652af5cbd9f141f221c97af99127e75502
+
+define $(package)_set_vars
+$(package)_config_opts=
+endef
+
+define $(package)_config_cmds
+ ./bootstrap &&\
+ ./configure $($(package)_config_opts)
+endef
+
+define $(package)_build_cmd
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/native_ds_store.mk b/contrib/depends/packages/native_ds_store.mk
new file mode 100644
index 0000000..f0c6176
--- /dev/null
+++ b/contrib/depends/packages/native_ds_store.mk
@@ -0,0 +1,17 @@
+package=native_ds_store
+$(package)_version=1.1.0
+$(package)_download_path=https://github.com/al45tair/ds_store/archive/
+$(package)_download_file=v$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=a9f4c0755c6be7224ff7029e188dd262e830bb81e801424841db9eb0780ec8ed
+$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
+$(package)_dependencies=native_biplist
+
+define $(package)_build_cmds
+ python setup.py build
+endef
+
+define $(package)_stage_cmds
+ mkdir -p $($(package)_install_libdir) && \
+ python setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
+endef
diff --git a/contrib/depends/packages/native_libdmg-hfsplus.mk b/contrib/depends/packages/native_libdmg-hfsplus.mk
new file mode 100644
index 0000000..a4ffb60
--- /dev/null
+++ b/contrib/depends/packages/native_libdmg-hfsplus.mk
@@ -0,0 +1,22 @@
+package=native_libdmg-hfsplus
+$(package)_version=0.1
+$(package)_download_path=https://github.com/theuni/libdmg-hfsplus/archive
+$(package)_file_name=libdmg-hfsplus-v$($(package)_version).tar.gz
+$(package)_sha256_hash=6569a02eb31c2827080d7d59001869ea14484c281efab0ae7f2b86af5c3120b3
+$(package)_build_subdir=build
+
+define $(package)_preprocess_cmds
+ mkdir build
+endef
+
+define $(package)_config_cmds
+ cmake -DCMAKE_INSTALL_PREFIX:PATH=$(build_prefix)/bin ..
+endef
+
+define $(package)_build_cmds
+ $(MAKE) -C dmg
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) -C dmg install
+endef
diff --git a/contrib/depends/packages/native_libtapi.mk b/contrib/depends/packages/native_libtapi.mk
new file mode 100644
index 0000000..56ee087
--- /dev/null
+++ b/contrib/depends/packages/native_libtapi.mk
@@ -0,0 +1,28 @@
+package=native_libtapi
+$(package)_version=664b8414f89612f2dfd35a9b679c345aa5389026
+$(package)_download_path=https://github.com/tpoechtrager/apple-libtapi/archive
+$(package)_download_file=$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=62e419c12d1c9fad67cc1cd523132bc00db050998337c734c15bc8d73cc02b61
+$(package)_build_subdir=build
+$(package)_dependencies=native_clang
+
+define $(package)_config_cmds
+ echo -n $(build_prefix) > INSTALLPREFIX; \
+ CC=$(host_prefix)/native/bin/clang CXX=$(host_prefix)/native/bin/clang++ \
+ cmake -DCMAKE_INSTALL_PREFIX=$(build_prefix) \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DCMAKE_BUILD_TYPE=RELEASE \
+ -DTAPI_REPOSITORY_STRING="1100.0.11" \
+ -DTAPI_FULL_VERSION="11.0.0" \
+ -DCMAKE_CXX_FLAGS="-I $($(package)_extract_dir)/src/llvm/projects/clang/include -I $($(package)_build_dir)/projects/clang/include" \
+ $($(package)_extract_dir)/src/llvm
+endef
+
+define $(package)_build_cmds
+ $(MAKE) clangBasic && $(MAKE) libtapi
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install-libtapi install-tapi-headers
+endef
diff --git a/contrib/depends/packages/native_mac_alias.mk b/contrib/depends/packages/native_mac_alias.mk
new file mode 100644
index 0000000..48bd90f
--- /dev/null
+++ b/contrib/depends/packages/native_mac_alias.mk
@@ -0,0 +1,21 @@
+package=native_mac_alias
+$(package)_version=1.1.0
+$(package)_download_path=https://github.com/al45tair/mac_alias/archive/
+$(package)_download_file=v$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=b10cb44ecb64fc25283fae7a9cf365d2829377d84e37b9c21100aca8757509be
+$(package)_install_libdir=$(build_prefix)/lib/python/dist-packages
+$(package)_patches=python3.patch
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/python3.patch
+endef
+
+define $(package)_build_cmds
+ python setup.py build
+endef
+
+define $(package)_stage_cmds
+ mkdir -p $($(package)_install_libdir) && \
+ python setup.py install --root=$($(package)_staging_dir) --prefix=$(build_prefix) --install-lib=$($(package)_install_libdir)
+endef
diff --git a/contrib/depends/packages/native_protobuf.mk b/contrib/depends/packages/native_protobuf.mk
new file mode 100644
index 0000000..35f648b
--- /dev/null
+++ b/contrib/depends/packages/native_protobuf.mk
@@ -0,0 +1,27 @@
+package=protobuf3
+$(package)_version=3.6.1
+$(package)_download_path=https://github.com/protocolbuffers/protobuf/releases/download/v$($(package)_version)/
+$(package)_file_name=protobuf-cpp-$($(package)_version).tar.gz
+$(package)_sha256_hash=b3732e471a9bb7950f090fd0457ebd2536a9ba0891b7f3785919c654fe2a2529
+$(package)_cxxflags=-std=c++11
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-shared --prefix=$(build_prefix)
+ $(package)_config_opts_linux=--with-pic
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) -C src
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) -C src install
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/libprotoc.a
+endef
diff --git a/contrib/depends/packages/ncurses.mk b/contrib/depends/packages/ncurses.mk
new file mode 100644
index 0000000..fb1d92c
--- /dev/null
+++ b/contrib/depends/packages/ncurses.mk
@@ -0,0 +1,63 @@
+package=ncurses
+$(package)_version=6.1
+$(package)_download_path=https://ftp.gnu.org/gnu/ncurses
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17
+$(package)_patches=fallback.c
+
+define $(package)_set_vars
+ $(package)_build_opts=CC="$($(package)_cc)"
+ $(package)_config_env=cf_cv_ar_flags=""
+ $(package)_config_opts=--prefix=$(host_prefix)
+ $(package)_config_opts+=--disable-shared
+ $(package)_config_opts+=--with-build-cc=gcc
+ $(package)_config_opts+=--without-debug
+ $(package)_config_opts+=--without-ada
+ $(package)_config_opts+=--without-cxx-binding
+ $(package)_config_opts+=--without-cxx
+ $(package)_config_opts+=--without-ticlib
+ $(package)_config_opts+=--without-tic
+ $(package)_config_opts+=--without-progs
+ $(package)_config_opts+=--without-tests
+ $(package)_config_opts+=--without-tack
+ $(package)_config_opts+=--without-manpages
+ $(package)_config_opts+=--with-termlib=tinfo
+ $(package)_config_opts+=--disable-tic-depends
+ $(package)_config_opts+=--disable-big-strings
+ $(package)_config_opts+=--disable-ext-colors
+ $(package)_config_opts+=--enable-pc-files
+ $(package)_config_opts+=--host=$(HOST)
+ $(pacakge)_config_opts+=--without-shared
+ $(pacakge)_config_opts+=--without-pthread
+ $(pacakge)_config_opts+=--disable-rpath
+ $(pacakge)_config_opts+=--disable-colorfgbg
+ $(pacakge)_config_opts+=--disable-ext-mouse
+ $(pacakge)_config_opts+=--disable-symlinks
+ $(pacakge)_config_opts+=--enable-warnings
+ $(pacakge)_config_opts+=--enable-assertions
+ $(package)_config_opts+=--with-default-terminfo-dir=/etc/_terminfo_
+ $(package)_config_opts+=--with-terminfo-dirs=/etc/_terminfo_
+ $(pacakge)_config_opts+=--enable-database
+ $(pacakge)_config_opts+=--enable-sp-funcs
+ $(pacakge)_config_opts+=--disable-term-driver
+ $(pacakge)_config_opts+=--enable-interop
+ $(pacakge)_config_opts+=--enable-widec
+ $(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -fPIC"
+endef
+
+define $(package)_preprocess_cmds
+ cp $($(package)_patch_dir)/fallback.c ncurses
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) $($(package)_build_opts) V=1
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) install.libs DESTDIR=$($(package)_staging_dir)
+endef
+
diff --git a/contrib/depends/packages/openssl.mk b/contrib/depends/packages/openssl.mk
new file mode 100644
index 0000000..2430f64
--- /dev/null
+++ b/contrib/depends/packages/openssl.mk
@@ -0,0 +1,68 @@
+package=openssl
+$(package)_version=3.0.13
+$(package)_download_path=https://www.openssl.org/source
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=88525753f79d3bec27d2fa7c66aa0b92b3aa9498dafd93d7cfa4b3780cdae313
+
+define $(package)_set_vars
+$(package)_config_env=AR="$($(package)_ar)" ARFLAGS=$($(package)_arflags) RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
+$(package)_config_env_android=ANDROID_NDK_ROOT="$(host_prefix)/native" PATH="$(host_prefix)/native/bin" CC=clang AR=ar RANLIB=ranlib
+$(package)_build_env_android=ANDROID_NDK_ROOT="$(host_prefix)/native"
+$(package)_config_opts=--prefix=$(host_prefix) --openssldir=$(host_prefix)/etc/openssl --libdir=$(host_prefix)/lib
+$(package)_config_opts+=no-capieng
+$(package)_config_opts+=no-dso
+$(package)_config_opts+=no-dtls1
+$(package)_config_opts+=no-ec_nistp_64_gcc_128
+$(package)_config_opts+=no-gost
+$(package)_config_opts+=no-md2
+$(package)_config_opts+=no-rc5
+$(package)_config_opts+=no-rdrand
+$(package)_config_opts+=no-rfc3779
+$(package)_config_opts+=no-sctp
+$(package)_config_opts+=no-shared
+$(package)_config_opts+=no-ssl-trace
+$(package)_config_opts+=no-ssl3
+$(package)_config_opts+=no-tests
+$(package)_config_opts+=no-unit-test
+$(package)_config_opts+=no-weak-ssl-ciphers
+$(package)_config_opts+=no-zlib
+$(package)_config_opts+=no-zlib-dynamic
+$(package)_config_opts+=$($(package)_cflags) $($(package)_cppflags)
+$(package)_config_opts_linux=-fPIC -Wa,--noexecstack
+$(package)_config_opts_freebsd=-fPIC -Wa,--noexecstack
+$(package)_config_opts_x86_64_linux=linux-x86_64
+$(package)_config_opts_i686_linux=linux-generic32
+$(package)_config_opts_arm_linux=linux-generic32
+$(package)_config_opts_aarch64_linux=linux-generic64
+$(package)_config_opts_armv7a_android=--static android-arm
+$(package)_config_opts_aarch64_android=--static android-arm64
+$(package)_config_opts_aarch64_darwin=darwin64-arm64-cc
+$(package)_config_opts_riscv64_linux=linux-generic64
+$(package)_config_opts_mipsel_linux=linux-generic32
+$(package)_config_opts_mips_linux=linux-generic32
+$(package)_config_opts_powerpc_linux=linux-generic32
+$(package)_config_opts_x86_64_darwin=darwin64-x86_64-cc
+$(package)_config_opts_x86_64_mingw32=mingw64
+$(package)_config_opts_i686_mingw32=mingw
+$(package)_config_opts_x86_64_freebsd=BSD-x86_64
+endef
+
+define $(package)_preprocess_cmds
+ sed -i.old 's|crypto ssl apps util tools fuzz providers doc|crypto ssl util tools providers|' build.info
+endef
+
+define $(package)_config_cmds
+ ./Configure $($(package)_config_opts)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) build_libs
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install_sw
+endef
+
+define $(package)_postprocess_cmds
+ rm -rf share bin etc
+endef
diff --git a/contrib/depends/packages/packages.mk b/contrib/depends/packages/packages.mk
new file mode 100644
index 0000000..3d513c5
--- /dev/null
+++ b/contrib/depends/packages/packages.mk
@@ -0,0 +1,38 @@
+packages:=boost openssl zeromq libiconv expat unbound polyseed wownero_seed
+
+# ccache is useless in gitian builds
+ifneq ($(GITIAN),1)
+native_packages := native_ccache
+endif
+
+hardware_packages := hidapi protobuf libusb
+hardware_native_packages := native_protobuf
+
+android_native_packages = android_ndk
+android_packages = ncurses readline sodium
+
+darwin_native_packages = $(hardware_native_packages)
+darwin_packages = ncurses readline sodium $(hardware_packages)
+
+# not really native...
+freebsd_native_packages = freebsd_base
+freebsd_packages = ncurses readline sodium
+
+linux_packages = eudev ncurses readline sodium $(hardware_packages)
+linux_native_packages = $(hardware_native_packages)
+
+ifeq ($(build_tests),ON)
+packages += gtest
+endif
+
+ifneq ($(host_arch),riscv64)
+linux_packages += unwind
+endif
+
+mingw32_packages = icu4c sodium $(hardware_packages)
+mingw32_native_packages = $(hardware_native_packages)
+
+ifneq ($(build_os),darwin)
+darwin_native_packages += darwin_sdk native_clang native_cctools native_libtapi
+endif
+
diff --git a/contrib/depends/packages/polyseed.mk b/contrib/depends/packages/polyseed.mk
new file mode 100644
index 0000000..0071b20
--- /dev/null
+++ b/contrib/depends/packages/polyseed.mk
@@ -0,0 +1,28 @@
+package=polyseed
+$(package)_version=2.0.0
+$(package)_download_path=https://github.com/tevador/$(package)/archive/refs/tags/
+$(package)_download_file=v$($(package)_version).tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=f36282fcbcd68d32461b8230c89e1a40661bd46b91109681cec637433004135a
+$(package)_patches=force-static-mingw.patch 0001-disable-soname.patch
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/force-static-mingw.patch &&\
+ patch -p1 < $($(package)_patch_dir)/0001-disable-soname.patch
+endef
+
+define $(package)_config_cmds
+ CC="$($(package)_cc)" cmake -DCMAKE_INSTALL_PREFIX="$(host_prefix)" .
+endef
+
+define $(package)_set_vars
+ $(package)_build_opts=CC="$($(package)_cc)"
+endef
+
+define $(package)_build_cmds
+ CC="$($(package)_cc)" $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/protobuf.mk b/contrib/depends/packages/protobuf.mk
new file mode 100644
index 0000000..ddec1eb
--- /dev/null
+++ b/contrib/depends/packages/protobuf.mk
@@ -0,0 +1,36 @@
+package=protobuf
+$(package)_version=$(native_$(package)_version)
+$(package)_download_path=$(native_$(package)_download_path)
+$(package)_file_name=$(native_$(package)_file_name)
+$(package)_sha256_hash=$(native_$(package)_sha256_hash)
+$(package)_dependencies=native_$(package)
+$(package)_cxxflags=-std=c++11
+$(package)_patches=visibility.patch
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-shared --with-protoc=$(build_prefix)/bin/protoc
+ $(package)_config_opts_linux=--with-pic
+endef
+
+define $(package)_preprocess_cmds
+ patch -p0 < $($(package)_patch_dir)/visibility.patch
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) -C src libprotobuf.la
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) -C src install-libLTLIBRARIES install-nobase_includeHEADERS &&\
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install-pkgconfigDATA
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/libprotoc.a &&\
+ rm lib/*.la
+endef
+
diff --git a/contrib/depends/packages/readline.mk b/contrib/depends/packages/readline.mk
new file mode 100644
index 0000000..957b645
--- /dev/null
+++ b/contrib/depends/packages/readline.mk
@@ -0,0 +1,29 @@
+package=readline
+$(package)_version=8.0
+$(package)_download_path=https://ftp.gnu.org/gnu/readline
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461
+$(package)_dependencies=ncurses
+
+define $(package)_set_vars
+ $(package)_build_opts=CC="$($(package)_cc)"
+ $(package)_config_opts+=--prefix=$(host_prefix)
+ $(package)_config_opts+=--exec-prefix=$(host_prefix)
+ $(package)_config_opts+=--host=$(HOST)
+ $(package)_config_opts+=--disable-shared --with-curses
+ $(package)_config_opts_release=--disable-debug-mode
+ $(package)_build_opts=CFLAGS="$($(package)_cflags) $($(package)_cppflags) -fPIC"
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) $($(package)_build_opts)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) install DESTDIR=$($(package)_staging_dir) prefix=$(host_prefix) exec-prefix=$(host_prefix)
+endef
+
diff --git a/contrib/depends/packages/sodium.mk b/contrib/depends/packages/sodium.mk
new file mode 100644
index 0000000..68a5b48
--- /dev/null
+++ b/contrib/depends/packages/sodium.mk
@@ -0,0 +1,34 @@
+package=sodium
+$(package)_version=1.0.18
+$(package)_download_path=https://download.libsodium.org/libsodium/releases/
+$(package)_file_name=libsodium-$($(package)_version).tar.gz
+$(package)_sha256_hash=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1
+$(package)_patches=disable-glibc-getrandom-getentropy.patch fix-whitespace.patch
+
+define $(package)_set_vars
+$(package)_config_opts=--enable-static --disable-shared --with-pic
+$(package)_config_opts+=--prefix=$(host_prefix)
+endef
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/disable-glibc-getrandom-getentropy.patch &&\
+ autoconf &&\
+ patch -p1 < $($(package)_patch_dir)/fix-whitespace.patch
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/*.la
+endef
+
diff --git a/contrib/depends/packages/unbound.mk b/contrib/depends/packages/unbound.mk
new file mode 100644
index 0000000..d9ef007
--- /dev/null
+++ b/contrib/depends/packages/unbound.mk
@@ -0,0 +1,36 @@
+package=unbound
+$(package)_version=1.19.1
+$(package)_download_path=https://www.nlnetlabs.nl/downloads/$(package)/
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=bc1d576f3dd846a0739adc41ffaa702404c6767d2b6082deb9f2f97cbb24a3a9
+$(package)_dependencies=openssl expat
+$(package)_patches=disable-glibc-reallocarray.patch
+
+
+define $(package)_set_vars
+ $(package)_config_opts=--disable-shared --enable-static --without-pyunbound --prefix=$(host_prefix)
+ $(package)_config_opts+=--with-libexpat=$(host_prefix) --with-ssl=$(host_prefix) --with-libevent=no
+ $(package)_config_opts+=--without-pythonmodule --disable-flto --with-pthreads --with-libunbound-only
+ $(package)_config_opts_linux=--with-pic
+ $(package)_config_opts_w64=--enable-static-exe --sysconfdir=/etc --prefix=$(host_prefix) --target=$(host_prefix)
+ $(package)_config_opts_x86_64_darwin=ac_cv_func_SHA384_Init=yes
+ $(package)_build_opts_mingw32=LDFLAGS="$($(package)_ldflags) -lpthread"
+ $(package)_cflags_mingw32+="-D_WIN32_WINNT=0x600"
+endef
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/disable-glibc-reallocarray.patch &&\
+ autoconf
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) ac_cv_func_getentropy=no
+endef
+
+define $(package)_build_cmds
+ $(MAKE) $($(package)_build_opts)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/unwind.mk b/contrib/depends/packages/unwind.mk
new file mode 100644
index 0000000..c3d190b
--- /dev/null
+++ b/contrib/depends/packages/unwind.mk
@@ -0,0 +1,29 @@
+package=unwind
+$(package)_version=1.5.0
+$(package)_download_path=https://download.savannah.nongnu.org/releases/libunwind
+$(package)_file_name=lib$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=90337653d92d4a13de590781371c604f9031cdb50520366aa1e3a91e1efb1017
+$(package)_patches=fix_obj_order.patch
+
+define $(package)_preprocess_cmds
+ patch -p0 < $($(package)_patch_dir)/fix_obj_order.patch
+endef
+
+define $(package)_config_cmds
+ cp -f $(BASEDIR)/config.guess config/config.guess &&\
+ cp -f $(BASEDIR)/config.sub config/config.sub &&\
+ $($(package)_autoconf) --disable-shared --enable-static --disable-tests --disable-documentation AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
+
+define $(package)_postprocess_cmds
+ rm lib/*.la
+endef
+
diff --git a/contrib/depends/packages/wownero_seed.mk b/contrib/depends/packages/wownero_seed.mk
new file mode 100644
index 0000000..b376f80
--- /dev/null
+++ b/contrib/depends/packages/wownero_seed.mk
@@ -0,0 +1,35 @@
+package=wownero_seed
+$(package)_version=0.3.0
+$(package)_download_path=https://github.com/MrCyjaneK/wownero-seed/archive/
+$(package)_download_file=d3f68be347facfeebbd8f68fd74982c705cb917b.tar.gz
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=3b59ccde08e0fee204680240af4b270a18a677aa0e6036a3504570193d232406
+$(package)_patches=0001-fix-duplicate-symbol-error.patch
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/0001-fix-duplicate-symbol-error.patch
+endef
+
+
+ifeq ($(host_os),darwin)
+ define $(package)_config_cmds
+ CC="$($(package)_cc)" CXX="$($(package)_cxx)" cmake -DCMAKE_RANLIB="$($(package)_ranlib)" -DCMAKE_AR="$($(package)_ar)" -DCMAKE_INSTALL_PREFIX="$(host_prefix)" -DCMAKE_POSITION_INDEPENDENT_CODE=ON .
+ endef
+else
+ define $(package)_config_cmds
+ CC="$($(package)_cc)" CXX="$($(package)_cxx)" cmake -DCMAKE_INSTALL_PREFIX="$(host_prefix)" -DCMAKE_POSITION_INDEPENDENT_CODE=ON .
+ endef
+endif
+
+define $(package)_set_vars
+ $(package)_build_opts=CC="$($(package)_cc)" CXX="$($(package)_cxx)"
+endef
+
+
+define $(package)_build_cmds
+ CC="$($(package)_cc)" CXX="$($(package)_cxx)" $(MAKE) VERBOSE=1
+endef
+
+define $(package)_stage_cmds
+ CC="$($(package)_cc)" CXX="$($(package)_cxx)" $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/xproto.mk b/contrib/depends/packages/xproto.mk
new file mode 100644
index 0000000..52fe253
--- /dev/null
+++ b/contrib/depends/packages/xproto.mk
@@ -0,0 +1,21 @@
+package=xproto
+$(package)_version=7.0.26
+$(package)_download_path=https://xorg.freedesktop.org/releases/individual/proto
+$(package)_file_name=$(package)-$($(package)_version).tar.bz2
+$(package)_sha256_hash=636162c1759805a5a0114a369dffdeccb8af8c859ef6e1445f26a4e6e046514f
+
+define $(package)_set_vars
+$(package)_config_opts=--disable-shared
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf)
+endef
+
+define $(package)_build_cmds
+ $(MAKE)
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install
+endef
diff --git a/contrib/depends/packages/zeromq.mk b/contrib/depends/packages/zeromq.mk
new file mode 100644
index 0000000..20f2d4b
--- /dev/null
+++ b/contrib/depends/packages/zeromq.mk
@@ -0,0 +1,35 @@
+package=zeromq
+$(package)_version=4.3.4
+$(package)_download_path=https://github.com/zeromq/libzmq/releases/download/v$($(package)_version)/
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=c593001a89f5a85dd2ddf564805deb860e02471171b3f204944857336295c3e5
+$(package)_patches=06aba27b04c5822cb88a69677382a0f053367143.patch
+
+define $(package)_set_vars
+ $(package)_config_opts=--without-documentation --disable-shared --without-libsodium --disable-curve
+ $(package)_config_opts_linux=--with-pic
+ $(package)_config_opts_freebsd=--with-pic
+ $(package)_cxxflags=-std=c++11
+endef
+
+define $(package)_preprocess_cmds
+ patch -p1 < $($(package)_patch_dir)/06aba27b04c5822cb88a69677382a0f053367143.patch
+endef
+
+define $(package)_config_cmds
+ $($(package)_autoconf) AR_FLAGS=$($(package)_arflags)
+endef
+
+define $(package)_build_cmds
+ $(MAKE) src/libzmq.la
+endef
+
+define $(package)_stage_cmds
+ $(MAKE) DESTDIR=$($(package)_staging_dir) install-libLTLIBRARIES install-includeHEADERS install-pkgconfigDATA
+endef
+
+define $(package)_postprocess_cmds
+ rm -rf bin share &&\
+ rm lib/*.la
+endef
+
diff --git a/contrib/depends/patches/boost/fix_arm_arch.patch b/contrib/depends/patches/boost/fix_arm_arch.patch
new file mode 100644
index 0000000..3cf6b6f
--- /dev/null
+++ b/contrib/depends/patches/boost/fix_arm_arch.patch
@@ -0,0 +1,11 @@
+--- boost_1_64_0/tools/build/src/tools/darwin.jam.O 2017-04-17 03:22:26.000000000 +0100
++++ boost_1_64_0/tools/build/src/tools/darwin.jam 2022-05-04 17:26:29.984464447 +0000
+@@ -505,7 +505,7 @@
+ if $(instruction-set) {
+ options = -arch$(_)$(instruction-set) ;
+ } else {
+- options = -arch arm ;
++# options = -arch arm ;
+ }
+ }
+ }
diff --git a/contrib/depends/patches/boost/fix_aroptions.patch b/contrib/depends/patches/boost/fix_aroptions.patch
new file mode 100644
index 0000000..5b2ec10
--- /dev/null
+++ b/contrib/depends/patches/boost/fix_aroptions.patch
@@ -0,0 +1,28 @@
+--- boost_1_64_0/tools/build/src/tools/gcc.jam.O 2017-04-17 03:22:26.000000000 +0100
++++ boost_1_64_0/tools/build/src/tools/gcc.jam 2019-11-15 15:46:16.957937137 +0000
+@@ -243,6 +243,8 @@
+ {
+ ECHO notice: using gcc archiver :: $(condition) :: $(archiver[1]) ;
+ }
++ local arflags = [ feature.get-values <arflags> : $(options) ] ;
++ toolset.flags gcc.archive .ARFLAGS $(condition) : $(arflags) ;
+
+ # - Ranlib.
+ local ranlib = [ common.get-invocation-command gcc
+@@ -970,6 +972,7 @@
+ # logic in intel-linux, but that is hardly worth the trouble as on Linux, 'ar'
+ # is always available.
+ .AR = ar ;
++.ARFLAGS = rc ;
+ .RANLIB = ranlib ;
+
+ toolset.flags gcc.archive AROPTIONS <archiveflags> ;
+@@ -1011,7 +1014,7 @@
+ #
+ actions piecemeal archive
+ {
+- "$(.AR)" $(AROPTIONS) rc "$(<)" "$(>)"
++ "$(.AR)" $(AROPTIONS) $(.ARFLAGS) "$(<)" "$(>)"
+ "$(.RANLIB)" "$(<)"
+ }
+
diff --git a/contrib/depends/patches/cmake/cmake-1-fixes.patch b/contrib/depends/patches/cmake/cmake-1-fixes.patch
new file mode 100644
index 0000000..062c067
--- /dev/null
+++ b/contrib/depends/patches/cmake/cmake-1-fixes.patch
@@ -0,0 +1,67 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Fri, 12 Aug 2016 02:01:20 +1000
+Subject: [PATCH 1/3] fix windres invocation options
+
+windres doesn't recognise various gcc flags like -mms-bitfields,
+-fopenmp, -mthreads etc. (basically not `-D` or `-I`)
+
+diff --git a/Modules/Platform/Windows-windres.cmake b/Modules/Platform/Windows-windres.cmake
+index 1111111..2222222 100644
+--- a/Modules/Platform/Windows-windres.cmake
++++ b/Modules/Platform/Windows-windres.cmake
+@@ -1 +1 @@
+-set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <DEFINES> <INCLUDES> <FLAGS> <SOURCE> <OBJECT>")
++set(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <DEFINES> <INCLUDES> <SOURCE> <OBJECT>")
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Tue, 25 Jul 2017 20:34:56 +1000
+Subject: [PATCH 2/3] add option to disable -isystem
+
+taken from (not accepted):
+https://gitlab.kitware.com/cmake/cmake/merge_requests/895
+
+see also:
+https://gitlab.kitware.com/cmake/cmake/issues/16291
+https://gitlab.kitware.com/cmake/cmake/issues/16919
+
+diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake
+index 1111111..2222222 100644
+--- a/Modules/Compiler/GNU.cmake
++++ b/Modules/Compiler/GNU.cmake
+@@ -42,7 +42,7 @@ macro(__compiler_gnu lang)
+ string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -O2 -g -DNDEBUG")
+ set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -E <SOURCE> > <PREPROCESSED_SOURCE>")
+ set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE "<CMAKE_${lang}_COMPILER> <DEFINES> <INCLUDES> <FLAGS> -S <SOURCE> -o <ASSEMBLY_SOURCE>")
+- if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4) # work around #4462
++ if(NOT APPLE OR NOT CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 4 AND (NOT MXE_DISABLE_INCLUDE_SYSTEM_FLAG)) # work around #4462
+ set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ")
+ endif()
+ endmacro()
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Tue, 15 Aug 2017 15:25:06 +1000
+Subject: [PATCH 3/3] add CPACK_NSIS_EXECUTABLE variable
+
+
+diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx
+index 1111111..2222222 100644
+--- a/Source/CPack/cmCPackNSISGenerator.cxx
++++ b/Source/CPack/cmCPackNSISGenerator.cxx
+@@ -384,7 +384,9 @@ int cmCPackNSISGenerator::InitializeInternal()
+ }
+ #endif
+
+- nsisPath = cmSystemTools::FindProgram("makensis", path, false);
++ this->SetOptionIfNotSet("CPACK_NSIS_EXECUTABLE", "makensis");
++ nsisPath = cmSystemTools::FindProgram(
++ this->GetOption("CPACK_NSIS_EXECUTABLE"), path, false);
+
+ if (nsisPath.empty()) {
+ cmCPackLogger(
diff --git a/contrib/depends/patches/hidapi/missing_win_include.patch b/contrib/depends/patches/hidapi/missing_win_include.patch
new file mode 100644
index 0000000..5bbe82d
--- /dev/null
+++ b/contrib/depends/patches/hidapi/missing_win_include.patch
@@ -0,0 +1,21 @@
+From a77b066311da42ed7654e39c0356a3b951b2e296 Mon Sep 17 00:00:00 2001
+From: selsta <selsta@sent.at>
+Date: Wed, 10 Nov 2021 02:28:54 +0100
+Subject: [PATCH] windows: add missing include for mingw32
+
+---
+ windows/hid.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/windows/hid.c b/windows/hid.c
+index 24756a4..6d8394c 100644
+--- a/windows/hid.c
++++ b/windows/hid.c
+@@ -33,6 +33,7 @@ typedef LONG NTSTATUS;
+ #endif
+
+ #ifdef __MINGW32__
++#include <devpropdef.h>
+ #include <ntdef.h>
+ #include <winbase.h>
+ #endif
diff --git a/contrib/depends/patches/icu4c/icu-001-dont-build-static-dynamic-twice.patch b/contrib/depends/patches/icu4c/icu-001-dont-build-static-dynamic-twice.patch
new file mode 100644
index 0000000..bbd4e99
--- /dev/null
+++ b/contrib/depends/patches/icu4c/icu-001-dont-build-static-dynamic-twice.patch
@@ -0,0 +1,37 @@
+Don't build object files twice
+
+When passed --enable-static and --enable-shared, icu will generate
+both a shared and a static version of its libraries.
+
+However, in order to do so, it builds each and every object file
+twice: once with -fPIC (for the shared library), and once without
+-fPIC (for the static library). While admittedly building -fPIC for a
+static library generates a slightly suboptimal code, this is what all
+the autotools-based project are doing. They build each object file
+once, and they use it for both the static and shared libraries.
+
+icu builds the object files for the shared library as .o files, and
+the object files for static library as .ao files. By simply changing
+the suffix of object files used for static libraries to ".o", we tell
+icu to use the ones built for the shared library (i.e, with -fPIC),
+and avoid the double build of icu.
+
+On a fast build server, this brings the target icu build from
+3m41.302s down to 1m43.926s (approximate numbers: some other builds
+are running on the system at the same time).
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: b/source/config/mh-linux
+===================================================================
+--- a/source/config/mh-linux
++++ b/source/config/mh-linux
+@@ -38,7 +38,7 @@
+ ## Shared object suffix
+ SO = so
+ ## Non-shared intermediate object suffix
+-STATIC_O = ao
++STATIC_O = o
+
+ ## Compilation rules
+ %.$(STATIC_O): $(srcdir)/%.c
diff --git a/contrib/depends/patches/libiconv/fix-whitespace.patch b/contrib/depends/patches/libiconv/fix-whitespace.patch
new file mode 100644
index 0000000..531364b
--- /dev/null
+++ b/contrib/depends/patches/libiconv/fix-whitespace.patch
@@ -0,0 +1,13 @@
+diff --git a/preload/configure b/preload/configure
+index aab5c77..e20b8f0 100755
+--- a/preload/configure
++++ b/preload/configure
+@@ -588,7 +588,7 @@ MAKEFLAGS=
+ PACKAGE_NAME='libiconv'
+ PACKAGE_TARNAME='libiconv'
+ PACKAGE_VERSION='0'
+-PACKAGE_STRING='libiconv 0'
++PACKAGE_STRING='libiconv0'
+ PACKAGE_BUGREPORT=''
+ PACKAGE_URL=''
+
diff --git a/contrib/depends/patches/native_biplist/sorted_list.patch b/contrib/depends/patches/native_biplist/sorted_list.patch
new file mode 100644
index 0000000..89abdb1
--- /dev/null
+++ b/contrib/depends/patches/native_biplist/sorted_list.patch
@@ -0,0 +1,29 @@
+--- a/biplist/__init__.py 2014-10-26 19:03:11.000000000 +0000
++++ b/biplist/__init__.py 2016-07-19 19:30:17.663521999 +0000
+@@ -541,7 +541,7 @@
+ return HashableWrapper(n)
+ elif isinstance(root, dict):
+ n = {}
+- for key, value in iteritems(root):
++ for key, value in sorted(iteritems(root)):
+ n[self.wrapRoot(key)] = self.wrapRoot(value)
+ return HashableWrapper(n)
+ elif isinstance(root, list):
+@@ -616,7 +616,7 @@
+ elif isinstance(obj, dict):
+ size = proc_size(len(obj))
+ self.incrementByteCount('dictBytes', incr=1+size)
+- for key, value in iteritems(obj):
++ for key, value in sorted(iteritems(obj)):
+ check_key(key)
+ self.computeOffsets(key, asReference=True)
+ self.computeOffsets(value, asReference=True)
+@@ -714,7 +714,7 @@
+ keys = []
+ values = []
+ objectsToWrite = []
+- for key, value in iteritems(obj):
++ for key, value in sorted(iteritems(obj)):
+ keys.append(key)
+ values.append(value)
+ for key in keys:
diff --git a/contrib/depends/patches/native_cdrkit/cdrkit-deterministic.patch b/contrib/depends/patches/native_cdrkit/cdrkit-deterministic.patch
new file mode 100644
index 0000000..8ab0993
--- /dev/null
+++ b/contrib/depends/patches/native_cdrkit/cdrkit-deterministic.patch
@@ -0,0 +1,86 @@
+--- cdrkit-1.1.11.old/genisoimage/tree.c 2008-10-21 19:57:47.000000000 -0400
++++ cdrkit-1.1.11/genisoimage/tree.c 2013-12-06 00:23:18.489622668 -0500
+@@ -1139,8 +1139,9 @@
+ scan_directory_tree(struct directory *this_dir, char *path,
+ struct directory_entry *de)
+ {
+- DIR *current_dir;
++ int current_file;
+ char whole_path[PATH_MAX];
++ struct dirent **d_list;
+ struct dirent *d_entry;
+ struct directory *parent;
+ int dflag;
+@@ -1164,7 +1165,8 @@
+ this_dir->dir_flags |= DIR_WAS_SCANNED;
+
+ errno = 0; /* Paranoia */
+- current_dir = opendir(path);
++ //current_dir = opendir(path);
++ current_file = scandir(path, &d_list, NULL, alphasort);
+ d_entry = NULL;
+
+ /*
+@@ -1173,12 +1175,12 @@
+ */
+ old_path = path;
+
+- if (current_dir) {
++ if (current_file >= 0) {
+ errno = 0;
+- d_entry = readdir(current_dir);
++ d_entry = d_list[0];
+ }
+
+- if (!current_dir || !d_entry) {
++ if (current_file < 0 || !d_entry) {
+ int ret = 1;
+
+ #ifdef USE_LIBSCHILY
+@@ -1191,8 +1193,8 @@
+ de->isorec.flags[0] &= ~ISO_DIRECTORY;
+ ret = 0;
+ }
+- if (current_dir)
+- closedir(current_dir);
++ if(d_list)
++ free(d_list);
+ return (ret);
+ }
+ #ifdef ABORT_DEEP_ISO_ONLY
+@@ -1208,7 +1210,7 @@
+ errmsgno(EX_BAD, "use Rock Ridge extensions via -R or -r,\n");
+ errmsgno(EX_BAD, "or allow deep ISO9660 directory nesting via -D.\n");
+ }
+- closedir(current_dir);
++ free(d_list);
+ return (1);
+ }
+ #endif
+@@ -1250,13 +1252,13 @@
+ * The first time through, skip this, since we already asked
+ * for the first entry when we opened the directory.
+ */
+- if (dflag)
+- d_entry = readdir(current_dir);
++ if (dflag && current_file >= 0)
++ d_entry = d_list[current_file];
+ dflag++;
+
+- if (!d_entry)
++ if (current_file < 0)
+ break;
+-
++ current_file--;
+ /* OK, got a valid entry */
+
+ /* If we do not want all files, then pitch the backups. */
+@@ -1348,7 +1350,7 @@
+ insert_file_entry(this_dir, whole_path, d_entry->d_name);
+ #endif /* APPLE_HYB */
+ }
+- closedir(current_dir);
++ free(d_list);
+
+ #ifdef APPLE_HYB
+ /*
diff --git a/contrib/depends/patches/native_mac_alias/python3.patch b/contrib/depends/patches/native_mac_alias/python3.patch
new file mode 100644
index 0000000..1a32340
--- /dev/null
+++ b/contrib/depends/patches/native_mac_alias/python3.patch
@@ -0,0 +1,72 @@
+diff -dur a/mac_alias/alias.py b/mac_alias/alias.py
+--- a/mac_alias/alias.py 2015-10-19 12:12:48.000000000 +0200
++++ b/mac_alias/alias.py 2016-04-03 12:13:12.037159417 +0200
+@@ -243,10 +243,10 @@
+ alias = Alias()
+ alias.appinfo = appinfo
+
+- alias.volume = VolumeInfo (volname.replace('/',':'),
++ alias.volume = VolumeInfo (volname.decode().replace('/',':'),
+ voldate, fstype, disktype,
+ volattrs, volfsid)
+- alias.target = TargetInfo (kind, filename.replace('/',':'),
++ alias.target = TargetInfo (kind, filename.decode().replace('/',':'),
+ folder_cnid, cnid,
+ crdate, creator_code, type_code)
+ alias.target.levels_from = levels_from
+@@ -261,9 +261,9 @@
+ b.read(1)
+
+ if tag == TAG_CARBON_FOLDER_NAME:
+- alias.target.folder_name = value.replace('/',':')
++ alias.target.folder_name = value.decode().replace('/',':')
+ elif tag == TAG_CNID_PATH:
+- alias.target.cnid_path = struct.unpack(b'>%uI' % (length // 4),
++ alias.target.cnid_path = struct.unpack('>%uI' % (length // 4),
+ value)
+ elif tag == TAG_CARBON_PATH:
+ alias.target.carbon_path = value
+@@ -298,9 +298,9 @@
+ alias.target.creation_date \
+ = mac_epoch + datetime.timedelta(seconds=seconds)
+ elif tag == TAG_POSIX_PATH:
+- alias.target.posix_path = value
++ alias.target.posix_path = value.decode()
+ elif tag == TAG_POSIX_PATH_TO_MOUNTPOINT:
+- alias.volume.posix_path = value
++ alias.volume.posix_path = value.decode()
+ elif tag == TAG_RECURSIVE_ALIAS_OF_DISK_IMAGE:
+ alias.volume.disk_image_alias = Alias.from_bytes(value)
+ elif tag == TAG_USER_HOME_LENGTH_PREFIX:
+@@ -422,13 +422,13 @@
+ # (so doing so is ridiculous, and nothing could rely on it).
+ b.write(struct.pack(b'>h28pI2shI64pII4s4shhI2s10s',
+ self.target.kind,
+- carbon_volname, voldate,
++ carbon_volname, int(voldate),
+ self.volume.fs_type,
+ self.volume.disk_type,
+ self.target.folder_cnid,
+ carbon_filename,
+ self.target.cnid,
+- crdate,
++ int(crdate),
+ self.target.creator_code,
+ self.target.type_code,
+ self.target.levels_from,
+@@ -449,12 +449,12 @@
+
+ b.write(struct.pack(b'>hhQhhQ',
+ TAG_HIGH_RES_VOLUME_CREATION_DATE,
+- 8, long(voldate * 65536),
++ 8, int(voldate * 65536),
+ TAG_HIGH_RES_CREATION_DATE,
+- 8, long(crdate * 65536)))
++ 8, int(crdate * 65536)))
+
+ if self.target.cnid_path:
+- cnid_path = struct.pack(b'>%uI' % len(self.target.cnid_path),
++ cnid_path = struct.pack('>%uI' % len(self.target.cnid_path),
+ *self.target.cnid_path)
+ b.write(struct.pack(b'>hh', TAG_CNID_PATH,
+ len(cnid_path)))
diff --git a/contrib/depends/patches/ncurses/fallback.c b/contrib/depends/patches/ncurses/fallback.c
new file mode 100644
index 0000000..fab108c
--- /dev/null
+++ b/contrib/depends/patches/ncurses/fallback.c
@@ -0,0 +1,6621 @@
+/* This file was generated by tinfo/MKfallback.sh */
+
+/*
+ * DO NOT EDIT THIS FILE BY HAND!
+ */
+
+#include <curses.priv.h>
+
+#include <tic.h>
+
+/* fallback entries for: linux rxvt vt100 xterm xterm-256color screen screen.linux screen.rxvt screen.xterm-new screen.xterm-256color */
+/* linux */
+
+static char linux_alias_data[] = "linux|linux console";
+
+static char linux_s_bel [] = "\007";
+static char linux_s_cr [] = "\015";
+static char linux_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char linux_s_tbc [] = "\033[3g";
+static char linux_s_clear [] = "\033[H\033[J";
+static char linux_s_el [] = "\033[K";
+static char linux_s_ed [] = "\033[J";
+static char linux_s_hpa [] = "\033[%i%p1%dG";
+static char linux_s_cup [] = "\033[%i%p1%d;%p2%dH";
+static char linux_s_cud1 [] = "\012";
+static char linux_s_home [] = "\033[H";
+static char linux_s_civis [] = "\033[?25l\033[?1c";
+static char linux_s_cub1 [] = "\010";
+static char linux_s_cnorm [] = "\033[?25h\033[?0c";
+static char linux_s_cuf1 [] = "\033[C";
+static char linux_s_cuu1 [] = "\033[A";
+static char linux_s_cvvis [] = "\033[?25h\033[?8c";
+static char linux_s_dch1 [] = "\033[P";
+static char linux_s_dl1 [] = "\033[M";
+static char linux_s_smacs [] = "\016";
+static char linux_s_blink [] = "\033[5m";
+static char linux_s_bold [] = "\033[1m";
+static char linux_s_dim [] = "\033[2m";
+static char linux_s_smir [] = "\033[4h";
+static char linux_s_rev [] = "\033[7m";
+static char linux_s_smso [] = "\033[7m";
+static char linux_s_smul [] = "\033[4m";
+static char linux_s_ech [] = "\033[%p1%dX";
+static char linux_s_rmacs [] = "\017";
+static char linux_s_sgr0 [] = "\033[m\017";
+static char linux_s_rmir [] = "\033[4l";
+static char linux_s_rmso [] = "\033[27m";
+static char linux_s_rmul [] = "\033[24m";
+static char linux_s_flash [] = "\033[?5h$<200/>\033[?5l";
+static char linux_s_ich1 [] = "\033[@";
+static char linux_s_il1 [] = "\033[L";
+static char linux_s_kbs [] = "\177";
+static char linux_s_kdch1 [] = "\033[3~";
+static char linux_s_kcud1 [] = "\033[B";
+static char linux_s_kf1 [] = "\033[[A";
+static char linux_s_kf10 [] = "\033[21~";
+static char linux_s_kf2 [] = "\033[[B";
+static char linux_s_kf3 [] = "\033[[C";
+static char linux_s_kf4 [] = "\033[[D";
+static char linux_s_kf5 [] = "\033[[E";
+static char linux_s_kf6 [] = "\033[17~";
+static char linux_s_kf7 [] = "\033[18~";
+static char linux_s_kf8 [] = "\033[19~";
+static char linux_s_kf9 [] = "\033[20~";
+static char linux_s_khome [] = "\033[1~";
+static char linux_s_kich1 [] = "\033[2~";
+static char linux_s_kcub1 [] = "\033[D";
+static char linux_s_knp [] = "\033[6~";
+static char linux_s_kpp [] = "\033[5~";
+static char linux_s_kcuf1 [] = "\033[C";
+static char linux_s_kcuu1 [] = "\033[A";
+static char linux_s_nel [] = "\015\012";
+static char linux_s_dch [] = "\033[%p1%dP";
+static char linux_s_dl [] = "\033[%p1%dM";
+static char linux_s_cud [] = "\033[%p1%dB";
+static char linux_s_ich [] = "\033[%p1%d@";
+static char linux_s_il [] = "\033[%p1%dL";
+static char linux_s_cub [] = "\033[%p1%dD";
+static char linux_s_cuf [] = "\033[%p1%dC";
+static char linux_s_cuu [] = "\033[%p1%dA";
+static char linux_s_rs1 [] = "\033c\033]R";
+static char linux_s_rc [] = "\0338";
+static char linux_s_vpa [] = "\033[%i%p1%dd";
+static char linux_s_sc [] = "\0337";
+static char linux_s_ind [] = "\012";
+static char linux_s_ri [] = "\033M";
+static char linux_s_sgr [] = "\033[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;m%?%p9%t\016%e\017%;";
+static char linux_s_hts [] = "\033H";
+static char linux_s_ht [] = "\011";
+static char linux_s_kb2 [] = "\033[G";
+static char linux_s_acsc [] = "++,,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~";
+static char linux_s_kcbt [] = "\033[Z";
+static char linux_s_smam [] = "\033[?7h";
+static char linux_s_rmam [] = "\033[?7l";
+static char linux_s_enacs [] = "\033)0";
+static char linux_s_kend [] = "\033[4~";
+static char linux_s_kspd [] = "\032";
+static char linux_s_kf11 [] = "\033[23~";
+static char linux_s_kf12 [] = "\033[24~";
+static char linux_s_kf13 [] = "\033[25~";
+static char linux_s_kf14 [] = "\033[26~";
+static char linux_s_kf15 [] = "\033[28~";
+static char linux_s_kf16 [] = "\033[29~";
+static char linux_s_kf17 [] = "\033[31~";
+static char linux_s_kf18 [] = "\033[32~";
+static char linux_s_kf19 [] = "\033[33~";
+static char linux_s_kf20 [] = "\033[34~";
+static char linux_s_el1 [] = "\033[1K";
+static char linux_s_u6 [] = "\033[%i%d;%dR";
+static char linux_s_u7 [] = "\033[6n";
+static char linux_s_u8 [] = "\033[?6c";
+static char linux_s_u9 [] = "\033[c";
+static char linux_s_op [] = "\033[39;49m";
+static char linux_s_oc [] = "\033]R";
+static char linux_s_initc [] = "\033]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x";
+static char linux_s_kmous [] = "\033[M";
+static char linux_s_setaf [] = "\033[3%p1%dm";
+static char linux_s_setab [] = "\033[4%p1%dm";
+static char linux_s_smpch [] = "\033[11m";
+static char linux_s_rmpch [] = "\033[10m";
+
+static char linux_bool_data[] = {
+ /* 0: bw */ FALSE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ TRUE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ FALSE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ TRUE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ FALSE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ FALSE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ TRUE,
+ /* 28: bce */ TRUE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ FALSE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 linux_number_data[] = {
+ /* 0: cols */ ABSENT_NUMERIC,
+ /* 1: it */ 8,
+ /* 2: lines */ ABSENT_NUMERIC,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ 18,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * linux_string_data[] = {
+ /* 0: cbt */ ABSENT_STRING,
+ /* 1: bel */ linux_s_bel,
+ /* 2: cr */ linux_s_cr,
+ /* 3: csr */ linux_s_csr,
+ /* 4: tbc */ linux_s_tbc,
+ /* 5: clear */ linux_s_clear,
+ /* 6: el */ linux_s_el,
+ /* 7: ed */ linux_s_ed,
+ /* 8: hpa */ linux_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ linux_s_cup,
+ /* 11: cud1 */ linux_s_cud1,
+ /* 12: home */ linux_s_home,
+ /* 13: civis */ linux_s_civis,
+ /* 14: cub1 */ linux_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ linux_s_cnorm,
+ /* 17: cuf1 */ linux_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ linux_s_cuu1,
+ /* 20: cvvis */ linux_s_cvvis,
+ /* 21: dch1 */ linux_s_dch1,
+ /* 22: dl1 */ linux_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ linux_s_smacs,
+ /* 26: blink */ linux_s_blink,
+ /* 27: bold */ linux_s_bold,
+ /* 28: smcup */ ABSENT_STRING,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ linux_s_dim,
+ /* 31: smir */ linux_s_smir,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ linux_s_rev,
+ /* 35: smso */ linux_s_smso,
+ /* 36: smul */ linux_s_smul,
+ /* 37: ech */ linux_s_ech,
+ /* 38: rmacs */ linux_s_rmacs,
+ /* 39: sgr0 */ linux_s_sgr0,
+ /* 40: rmcup */ ABSENT_STRING,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ linux_s_rmir,
+ /* 43: rmso */ linux_s_rmso,
+ /* 44: rmul */ linux_s_rmul,
+ /* 45: flash */ linux_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ ABSENT_STRING,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ linux_s_ich1,
+ /* 53: il1 */ linux_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ linux_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ linux_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ linux_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ linux_s_kf1,
+ /* 67: kf10 */ linux_s_kf10,
+ /* 68: kf2 */ linux_s_kf2,
+ /* 69: kf3 */ linux_s_kf3,
+ /* 70: kf4 */ linux_s_kf4,
+ /* 71: kf5 */ linux_s_kf5,
+ /* 72: kf6 */ linux_s_kf6,
+ /* 73: kf7 */ linux_s_kf7,
+ /* 74: kf8 */ linux_s_kf8,
+ /* 75: kf9 */ linux_s_kf9,
+ /* 76: khome */ linux_s_khome,
+ /* 77: kich1 */ linux_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ linux_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ linux_s_knp,
+ /* 82: kpp */ linux_s_kpp,
+ /* 83: kcuf1 */ linux_s_kcuf1,
+ /* 84: kind */ ABSENT_STRING,
+ /* 85: kri */ ABSENT_STRING,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ linux_s_kcuu1,
+ /* 88: rmkx */ ABSENT_STRING,
+ /* 89: smkx */ ABSENT_STRING,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ ABSENT_STRING,
+ /* 102: smm */ ABSENT_STRING,
+ /* 103: nel */ linux_s_nel,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ linux_s_dch,
+ /* 106: dl */ linux_s_dl,
+ /* 107: cud */ linux_s_cud,
+ /* 108: ich */ linux_s_ich,
+ /* 109: indn */ ABSENT_STRING,
+ /* 110: il */ linux_s_il,
+ /* 111: cub */ linux_s_cub,
+ /* 112: cuf */ linux_s_cuf,
+ /* 113: rin */ ABSENT_STRING,
+ /* 114: cuu */ linux_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ ABSENT_STRING,
+ /* 119: mc4 */ ABSENT_STRING,
+ /* 120: mc5 */ ABSENT_STRING,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ linux_s_rs1,
+ /* 123: rs2 */ ABSENT_STRING,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ linux_s_rc,
+ /* 127: vpa */ linux_s_vpa,
+ /* 128: sc */ linux_s_sc,
+ /* 129: ind */ linux_s_ind,
+ /* 130: ri */ linux_s_ri,
+ /* 131: sgr */ linux_s_sgr,
+ /* 132: hts */ linux_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ linux_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ linux_s_kb2,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ linux_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ linux_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ linux_s_smam,
+ /* 152: rmam */ linux_s_rmam,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ linux_s_enacs,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ linux_s_kend,
+ /* 165: kent */ ABSENT_STRING,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ linux_s_kspd,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ ABSENT_STRING,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ ABSENT_STRING,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ ABSENT_STRING,
+ /* 200: kIC */ ABSENT_STRING,
+ /* 201: kLFT */ ABSENT_STRING,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ ABSENT_STRING,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ ABSENT_STRING,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ ABSENT_STRING,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ linux_s_kf11,
+ /* 217: kf12 */ linux_s_kf12,
+ /* 218: kf13 */ linux_s_kf13,
+ /* 219: kf14 */ linux_s_kf14,
+ /* 220: kf15 */ linux_s_kf15,
+ /* 221: kf16 */ linux_s_kf16,
+ /* 222: kf17 */ linux_s_kf17,
+ /* 223: kf18 */ linux_s_kf18,
+ /* 224: kf19 */ linux_s_kf19,
+ /* 225: kf20 */ linux_s_kf20,
+ /* 226: kf21 */ ABSENT_STRING,
+ /* 227: kf22 */ ABSENT_STRING,
+ /* 228: kf23 */ ABSENT_STRING,
+ /* 229: kf24 */ ABSENT_STRING,
+ /* 230: kf25 */ ABSENT_STRING,
+ /* 231: kf26 */ ABSENT_STRING,
+ /* 232: kf27 */ ABSENT_STRING,
+ /* 233: kf28 */ ABSENT_STRING,
+ /* 234: kf29 */ ABSENT_STRING,
+ /* 235: kf30 */ ABSENT_STRING,
+ /* 236: kf31 */ ABSENT_STRING,
+ /* 237: kf32 */ ABSENT_STRING,
+ /* 238: kf33 */ ABSENT_STRING,
+ /* 239: kf34 */ ABSENT_STRING,
+ /* 240: kf35 */ ABSENT_STRING,
+ /* 241: kf36 */ ABSENT_STRING,
+ /* 242: kf37 */ ABSENT_STRING,
+ /* 243: kf38 */ ABSENT_STRING,
+ /* 244: kf39 */ ABSENT_STRING,
+ /* 245: kf40 */ ABSENT_STRING,
+ /* 246: kf41 */ ABSENT_STRING,
+ /* 247: kf42 */ ABSENT_STRING,
+ /* 248: kf43 */ ABSENT_STRING,
+ /* 249: kf44 */ ABSENT_STRING,
+ /* 250: kf45 */ ABSENT_STRING,
+ /* 251: kf46 */ ABSENT_STRING,
+ /* 252: kf47 */ ABSENT_STRING,
+ /* 253: kf48 */ ABSENT_STRING,
+ /* 254: kf49 */ ABSENT_STRING,
+ /* 255: kf50 */ ABSENT_STRING,
+ /* 256: kf51 */ ABSENT_STRING,
+ /* 257: kf52 */ ABSENT_STRING,
+ /* 258: kf53 */ ABSENT_STRING,
+ /* 259: kf54 */ ABSENT_STRING,
+ /* 260: kf55 */ ABSENT_STRING,
+ /* 261: kf56 */ ABSENT_STRING,
+ /* 262: kf57 */ ABSENT_STRING,
+ /* 263: kf58 */ ABSENT_STRING,
+ /* 264: kf59 */ ABSENT_STRING,
+ /* 265: kf60 */ ABSENT_STRING,
+ /* 266: kf61 */ ABSENT_STRING,
+ /* 267: kf62 */ ABSENT_STRING,
+ /* 268: kf63 */ ABSENT_STRING,
+ /* 269: el1 */ linux_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ linux_s_u6,
+ /* 294: u7 */ linux_s_u7,
+ /* 295: u8 */ linux_s_u8,
+ /* 296: u9 */ linux_s_u9,
+ /* 297: op */ linux_s_op,
+ /* 298: oc */ linux_s_oc,
+ /* 299: initc */ linux_s_initc,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ linux_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ linux_s_setaf,
+ /* 360: setab */ linux_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ linux_s_smpch,
+ /* 380: rmpch */ linux_s_rmpch,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* rxvt */
+
+static char rxvt_alias_data[] = "rxvt|rxvt terminal emulator (X Window System)";
+
+static char rxvt_s_bel [] = "\007";
+static char rxvt_s_cr [] = "\015";
+static char rxvt_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char rxvt_s_tbc [] = "\033[3g";
+static char rxvt_s_clear [] = "\033[H\033[2J";
+static char rxvt_s_el [] = "\033[K";
+static char rxvt_s_ed [] = "\033[J";
+static char rxvt_s_hpa [] = "\033[%i%p1%dG";
+static char rxvt_s_cup [] = "\033[%i%p1%d;%p2%dH";
+static char rxvt_s_cud1 [] = "\012";
+static char rxvt_s_home [] = "\033[H";
+static char rxvt_s_civis [] = "\033[?25l";
+static char rxvt_s_cub1 [] = "\010";
+static char rxvt_s_cnorm [] = "\033[?25h";
+static char rxvt_s_cuf1 [] = "\033[C";
+static char rxvt_s_cuu1 [] = "\033[A";
+static char rxvt_s_dl1 [] = "\033[M";
+static char rxvt_s_smacs [] = "\016";
+static char rxvt_s_blink [] = "\033[5m";
+static char rxvt_s_bold [] = "\033[1m";
+static char rxvt_s_smcup [] = "\0337\033[?47h";
+static char rxvt_s_smir [] = "\033[4h";
+static char rxvt_s_rev [] = "\033[7m";
+static char rxvt_s_smso [] = "\033[7m";
+static char rxvt_s_smul [] = "\033[4m";
+static char rxvt_s_rmacs [] = "\017";
+static char rxvt_s_sgr0 [] = "\033[m\017";
+static char rxvt_s_rmcup [] = "\033[2J\033[?47l\0338";
+static char rxvt_s_rmir [] = "\033[4l";
+static char rxvt_s_rmso [] = "\033[27m";
+static char rxvt_s_rmul [] = "\033[24m";
+static char rxvt_s_flash [] = "\033[?5h$<100/>\033[?5l";
+static char rxvt_s_is1 [] = "\033[?47l\033=\033[?1l";
+static char rxvt_s_is2 [] = "\033[r\033[m\033[2J\033[H\033[?7h\033[?1;3;4;6l\033[4l";
+static char rxvt_s_ich1 [] = "\033[@";
+static char rxvt_s_il1 [] = "\033[L";
+static char rxvt_s_kbs [] = "\010";
+static char rxvt_s_kdch1 [] = "\033[3~";
+static char rxvt_s_kcud1 [] = "\033[B";
+static char rxvt_s_kel [] = "\033[8^";
+static char rxvt_s_kf0 [] = "\033[21~";
+static char rxvt_s_kf1 [] = "\033[11~";
+static char rxvt_s_kf10 [] = "\033[21~";
+static char rxvt_s_kf2 [] = "\033[12~";
+static char rxvt_s_kf3 [] = "\033[13~";
+static char rxvt_s_kf4 [] = "\033[14~";
+static char rxvt_s_kf5 [] = "\033[15~";
+static char rxvt_s_kf6 [] = "\033[17~";
+static char rxvt_s_kf7 [] = "\033[18~";
+static char rxvt_s_kf8 [] = "\033[19~";
+static char rxvt_s_kf9 [] = "\033[20~";
+static char rxvt_s_khome [] = "\033[7~";
+static char rxvt_s_kich1 [] = "\033[2~";
+static char rxvt_s_kcub1 [] = "\033[D";
+static char rxvt_s_knp [] = "\033[6~";
+static char rxvt_s_kpp [] = "\033[5~";
+static char rxvt_s_kcuf1 [] = "\033[C";
+static char rxvt_s_kind [] = "\033[a";
+static char rxvt_s_kri [] = "\033[b";
+static char rxvt_s_kcuu1 [] = "\033[A";
+static char rxvt_s_rmkx [] = "\033>";
+static char rxvt_s_smkx [] = "\033=";
+static char rxvt_s_dl [] = "\033[%p1%dM";
+static char rxvt_s_cud [] = "\033[%p1%dB";
+static char rxvt_s_ich [] = "\033[%p1%d@";
+static char rxvt_s_il [] = "\033[%p1%dL";
+static char rxvt_s_cub [] = "\033[%p1%dD";
+static char rxvt_s_cuf [] = "\033[%p1%dC";
+static char rxvt_s_cuu [] = "\033[%p1%dA";
+static char rxvt_s_rs1 [] = "\033>\033[1;3;4;5;6l\033[?7h\033[m\033[r\033[2J\033[H";
+static char rxvt_s_rs2 [] = "\033[r\033[m\033[2J\033[H\033[?7h\033[?1;3;4;6l\033[4l\033>\033[?1000l\033[?25h";
+static char rxvt_s_rc [] = "\0338";
+static char rxvt_s_vpa [] = "\033[%i%p1%dd";
+static char rxvt_s_sc [] = "\0337";
+static char rxvt_s_ind [] = "\012";
+static char rxvt_s_ri [] = "\033M";
+static char rxvt_s_sgr [] = "\033[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;";
+static char rxvt_s_hts [] = "\033H";
+static char rxvt_s_ht [] = "\011";
+static char rxvt_s_ka1 [] = "\033Ow";
+static char rxvt_s_ka3 [] = "\033Oy";
+static char rxvt_s_kb2 [] = "\033Ou";
+static char rxvt_s_kc1 [] = "\033Oq";
+static char rxvt_s_kc3 [] = "\033Os";
+static char rxvt_s_acsc [] = "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char rxvt_s_kcbt [] = "\033[Z";
+static char rxvt_s_enacs [] = "\033(B\033)0";
+static char rxvt_s_kend [] = "\033[8~";
+static char rxvt_s_kent [] = "\033OM";
+static char rxvt_s_kfnd [] = "\033[1~";
+static char rxvt_s_kDC [] = "\033[3$";
+static char rxvt_s_kslt [] = "\033[4~";
+static char rxvt_s_kEND [] = "\033[8$";
+static char rxvt_s_kHOM [] = "\033[7$";
+static char rxvt_s_kIC [] = "\033[2$";
+static char rxvt_s_kLFT [] = "\033[d";
+static char rxvt_s_kNXT [] = "\033[6$";
+static char rxvt_s_kPRV [] = "\033[5$";
+static char rxvt_s_kRIT [] = "\033[c";
+static char rxvt_s_kf11 [] = "\033[23~";
+static char rxvt_s_kf12 [] = "\033[24~";
+static char rxvt_s_kf13 [] = "\033[25~";
+static char rxvt_s_kf14 [] = "\033[26~";
+static char rxvt_s_kf15 [] = "\033[28~";
+static char rxvt_s_kf16 [] = "\033[29~";
+static char rxvt_s_kf17 [] = "\033[31~";
+static char rxvt_s_kf18 [] = "\033[32~";
+static char rxvt_s_kf19 [] = "\033[33~";
+static char rxvt_s_kf20 [] = "\033[34~";
+static char rxvt_s_kf21 [] = "\033[23$";
+static char rxvt_s_kf22 [] = "\033[24$";
+static char rxvt_s_kf23 [] = "\033[11^";
+static char rxvt_s_kf24 [] = "\033[12^";
+static char rxvt_s_kf25 [] = "\033[13^";
+static char rxvt_s_kf26 [] = "\033[14^";
+static char rxvt_s_kf27 [] = "\033[15^";
+static char rxvt_s_kf28 [] = "\033[17^";
+static char rxvt_s_kf29 [] = "\033[18^";
+static char rxvt_s_kf30 [] = "\033[19^";
+static char rxvt_s_kf31 [] = "\033[20^";
+static char rxvt_s_kf32 [] = "\033[21^";
+static char rxvt_s_kf33 [] = "\033[23^";
+static char rxvt_s_kf34 [] = "\033[24^";
+static char rxvt_s_kf35 [] = "\033[25^";
+static char rxvt_s_kf36 [] = "\033[26^";
+static char rxvt_s_kf37 [] = "\033[28^";
+static char rxvt_s_kf38 [] = "\033[29^";
+static char rxvt_s_kf39 [] = "\033[31^";
+static char rxvt_s_kf40 [] = "\033[32^";
+static char rxvt_s_kf41 [] = "\033[33^";
+static char rxvt_s_kf42 [] = "\033[34^";
+static char rxvt_s_kf43 [] = "\033[23@";
+static char rxvt_s_kf44 [] = "\033[24@";
+static char rxvt_s_el1 [] = "\033[1K";
+static char rxvt_s_u6 [] = "\033[%i%d;%dR";
+static char rxvt_s_u7 [] = "\033[6n";
+static char rxvt_s_u8 [] = "\033[?1;2c";
+static char rxvt_s_u9 [] = "\033[c";
+static char rxvt_s_op [] = "\033[39;49m";
+static char rxvt_s_kmous [] = "\033[M";
+static char rxvt_s_setaf [] = "\033[3%p1%dm";
+static char rxvt_s_setab [] = "\033[4%p1%dm";
+static char rxvt_s_s0ds [] = "\033(B";
+static char rxvt_s_s1ds [] = "\033(0";
+
+static char rxvt_bool_data[] = {
+ /* 0: bw */ FALSE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ TRUE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ FALSE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ TRUE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ FALSE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ FALSE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ TRUE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 rxvt_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ CANCELLED_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * rxvt_string_data[] = {
+ /* 0: cbt */ ABSENT_STRING,
+ /* 1: bel */ rxvt_s_bel,
+ /* 2: cr */ rxvt_s_cr,
+ /* 3: csr */ rxvt_s_csr,
+ /* 4: tbc */ rxvt_s_tbc,
+ /* 5: clear */ rxvt_s_clear,
+ /* 6: el */ rxvt_s_el,
+ /* 7: ed */ rxvt_s_ed,
+ /* 8: hpa */ rxvt_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ rxvt_s_cup,
+ /* 11: cud1 */ rxvt_s_cud1,
+ /* 12: home */ rxvt_s_home,
+ /* 13: civis */ rxvt_s_civis,
+ /* 14: cub1 */ rxvt_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ rxvt_s_cnorm,
+ /* 17: cuf1 */ rxvt_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ rxvt_s_cuu1,
+ /* 20: cvvis */ ABSENT_STRING,
+ /* 21: dch1 */ ABSENT_STRING,
+ /* 22: dl1 */ rxvt_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ rxvt_s_smacs,
+ /* 26: blink */ rxvt_s_blink,
+ /* 27: bold */ rxvt_s_bold,
+ /* 28: smcup */ rxvt_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ ABSENT_STRING,
+ /* 31: smir */ rxvt_s_smir,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ rxvt_s_rev,
+ /* 35: smso */ rxvt_s_smso,
+ /* 36: smul */ rxvt_s_smul,
+ /* 37: ech */ ABSENT_STRING,
+ /* 38: rmacs */ rxvt_s_rmacs,
+ /* 39: sgr0 */ rxvt_s_sgr0,
+ /* 40: rmcup */ rxvt_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ rxvt_s_rmir,
+ /* 43: rmso */ rxvt_s_rmso,
+ /* 44: rmul */ rxvt_s_rmul,
+ /* 45: flash */ rxvt_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ rxvt_s_is1,
+ /* 49: is2 */ rxvt_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ rxvt_s_ich1,
+ /* 53: il1 */ rxvt_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ rxvt_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ rxvt_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ rxvt_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ rxvt_s_kel,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ rxvt_s_kf0,
+ /* 66: kf1 */ rxvt_s_kf1,
+ /* 67: kf10 */ rxvt_s_kf10,
+ /* 68: kf2 */ rxvt_s_kf2,
+ /* 69: kf3 */ rxvt_s_kf3,
+ /* 70: kf4 */ rxvt_s_kf4,
+ /* 71: kf5 */ rxvt_s_kf5,
+ /* 72: kf6 */ rxvt_s_kf6,
+ /* 73: kf7 */ rxvt_s_kf7,
+ /* 74: kf8 */ rxvt_s_kf8,
+ /* 75: kf9 */ rxvt_s_kf9,
+ /* 76: khome */ rxvt_s_khome,
+ /* 77: kich1 */ rxvt_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ rxvt_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ rxvt_s_knp,
+ /* 82: kpp */ rxvt_s_kpp,
+ /* 83: kcuf1 */ rxvt_s_kcuf1,
+ /* 84: kind */ rxvt_s_kind,
+ /* 85: kri */ rxvt_s_kri,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ rxvt_s_kcuu1,
+ /* 88: rmkx */ rxvt_s_rmkx,
+ /* 89: smkx */ rxvt_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ ABSENT_STRING,
+ /* 102: smm */ ABSENT_STRING,
+ /* 103: nel */ ABSENT_STRING,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ ABSENT_STRING,
+ /* 106: dl */ rxvt_s_dl,
+ /* 107: cud */ rxvt_s_cud,
+ /* 108: ich */ rxvt_s_ich,
+ /* 109: indn */ ABSENT_STRING,
+ /* 110: il */ rxvt_s_il,
+ /* 111: cub */ rxvt_s_cub,
+ /* 112: cuf */ rxvt_s_cuf,
+ /* 113: rin */ ABSENT_STRING,
+ /* 114: cuu */ rxvt_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ ABSENT_STRING,
+ /* 119: mc4 */ ABSENT_STRING,
+ /* 120: mc5 */ ABSENT_STRING,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ rxvt_s_rs1,
+ /* 123: rs2 */ rxvt_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ rxvt_s_rc,
+ /* 127: vpa */ rxvt_s_vpa,
+ /* 128: sc */ rxvt_s_sc,
+ /* 129: ind */ rxvt_s_ind,
+ /* 130: ri */ rxvt_s_ri,
+ /* 131: sgr */ rxvt_s_sgr,
+ /* 132: hts */ rxvt_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ rxvt_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ rxvt_s_ka1,
+ /* 140: ka3 */ rxvt_s_ka3,
+ /* 141: kb2 */ rxvt_s_kb2,
+ /* 142: kc1 */ rxvt_s_kc1,
+ /* 143: kc3 */ rxvt_s_kc3,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ rxvt_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ rxvt_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ ABSENT_STRING,
+ /* 152: rmam */ ABSENT_STRING,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ rxvt_s_enacs,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ rxvt_s_kend,
+ /* 165: kent */ rxvt_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ rxvt_s_kfnd,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ rxvt_s_kDC,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ rxvt_s_kslt,
+ /* 194: kEND */ rxvt_s_kEND,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ rxvt_s_kHOM,
+ /* 200: kIC */ rxvt_s_kIC,
+ /* 201: kLFT */ rxvt_s_kLFT,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ rxvt_s_kNXT,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ rxvt_s_kPRV,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ rxvt_s_kRIT,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ rxvt_s_kf11,
+ /* 217: kf12 */ rxvt_s_kf12,
+ /* 218: kf13 */ rxvt_s_kf13,
+ /* 219: kf14 */ rxvt_s_kf14,
+ /* 220: kf15 */ rxvt_s_kf15,
+ /* 221: kf16 */ rxvt_s_kf16,
+ /* 222: kf17 */ rxvt_s_kf17,
+ /* 223: kf18 */ rxvt_s_kf18,
+ /* 224: kf19 */ rxvt_s_kf19,
+ /* 225: kf20 */ rxvt_s_kf20,
+ /* 226: kf21 */ rxvt_s_kf21,
+ /* 227: kf22 */ rxvt_s_kf22,
+ /* 228: kf23 */ rxvt_s_kf23,
+ /* 229: kf24 */ rxvt_s_kf24,
+ /* 230: kf25 */ rxvt_s_kf25,
+ /* 231: kf26 */ rxvt_s_kf26,
+ /* 232: kf27 */ rxvt_s_kf27,
+ /* 233: kf28 */ rxvt_s_kf28,
+ /* 234: kf29 */ rxvt_s_kf29,
+ /* 235: kf30 */ rxvt_s_kf30,
+ /* 236: kf31 */ rxvt_s_kf31,
+ /* 237: kf32 */ rxvt_s_kf32,
+ /* 238: kf33 */ rxvt_s_kf33,
+ /* 239: kf34 */ rxvt_s_kf34,
+ /* 240: kf35 */ rxvt_s_kf35,
+ /* 241: kf36 */ rxvt_s_kf36,
+ /* 242: kf37 */ rxvt_s_kf37,
+ /* 243: kf38 */ rxvt_s_kf38,
+ /* 244: kf39 */ rxvt_s_kf39,
+ /* 245: kf40 */ rxvt_s_kf40,
+ /* 246: kf41 */ rxvt_s_kf41,
+ /* 247: kf42 */ rxvt_s_kf42,
+ /* 248: kf43 */ rxvt_s_kf43,
+ /* 249: kf44 */ rxvt_s_kf44,
+ /* 250: kf45 */ ABSENT_STRING,
+ /* 251: kf46 */ ABSENT_STRING,
+ /* 252: kf47 */ ABSENT_STRING,
+ /* 253: kf48 */ ABSENT_STRING,
+ /* 254: kf49 */ ABSENT_STRING,
+ /* 255: kf50 */ ABSENT_STRING,
+ /* 256: kf51 */ ABSENT_STRING,
+ /* 257: kf52 */ ABSENT_STRING,
+ /* 258: kf53 */ ABSENT_STRING,
+ /* 259: kf54 */ ABSENT_STRING,
+ /* 260: kf55 */ ABSENT_STRING,
+ /* 261: kf56 */ ABSENT_STRING,
+ /* 262: kf57 */ ABSENT_STRING,
+ /* 263: kf58 */ ABSENT_STRING,
+ /* 264: kf59 */ ABSENT_STRING,
+ /* 265: kf60 */ ABSENT_STRING,
+ /* 266: kf61 */ ABSENT_STRING,
+ /* 267: kf62 */ ABSENT_STRING,
+ /* 268: kf63 */ ABSENT_STRING,
+ /* 269: el1 */ rxvt_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ rxvt_s_u6,
+ /* 294: u7 */ rxvt_s_u7,
+ /* 295: u8 */ rxvt_s_u8,
+ /* 296: u9 */ rxvt_s_u9,
+ /* 297: op */ rxvt_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ rxvt_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ rxvt_s_setaf,
+ /* 360: setab */ rxvt_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ rxvt_s_s0ds,
+ /* 365: s1ds */ rxvt_s_s1ds,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* vt100 */
+
+static char vt100_alias_data[] = "vt100|vt100-am|dec vt100 (w/advanced video)";
+
+static char vt100_s_bel [] = "\007";
+static char vt100_s_cr [] = "\015";
+static char vt100_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char vt100_s_tbc [] = "\033[3g";
+static char vt100_s_clear [] = "\033[H\033[J$<50>";
+static char vt100_s_el [] = "\033[K$<3>";
+static char vt100_s_ed [] = "\033[J$<50>";
+static char vt100_s_cup [] = "\033[%i%p1%d;%p2%dH$<5>";
+static char vt100_s_cud1 [] = "\012";
+static char vt100_s_home [] = "\033[H";
+static char vt100_s_cub1 [] = "\010";
+static char vt100_s_cuf1 [] = "\033[C$<2>";
+static char vt100_s_cuu1 [] = "\033[A$<2>";
+static char vt100_s_smacs [] = "\016";
+static char vt100_s_blink [] = "\033[5m$<2>";
+static char vt100_s_bold [] = "\033[1m$<2>";
+static char vt100_s_rev [] = "\033[7m$<2>";
+static char vt100_s_smso [] = "\033[7m$<2>";
+static char vt100_s_smul [] = "\033[4m$<2>";
+static char vt100_s_rmacs [] = "\017";
+static char vt100_s_sgr0 [] = "\033[m\017$<2>";
+static char vt100_s_rmso [] = "\033[m$<2>";
+static char vt100_s_rmul [] = "\033[m$<2>";
+static char vt100_s_kbs [] = "\010";
+static char vt100_s_kcud1 [] = "\033OB";
+static char vt100_s_kf0 [] = "\033Oy";
+static char vt100_s_kf1 [] = "\033OP";
+static char vt100_s_kf10 [] = "\033Ox";
+static char vt100_s_kf2 [] = "\033OQ";
+static char vt100_s_kf3 [] = "\033OR";
+static char vt100_s_kf4 [] = "\033OS";
+static char vt100_s_kf5 [] = "\033Ot";
+static char vt100_s_kf6 [] = "\033Ou";
+static char vt100_s_kf7 [] = "\033Ov";
+static char vt100_s_kf8 [] = "\033Ol";
+static char vt100_s_kf9 [] = "\033Ow";
+static char vt100_s_kcub1 [] = "\033OD";
+static char vt100_s_kcuf1 [] = "\033OC";
+static char vt100_s_kcuu1 [] = "\033OA";
+static char vt100_s_rmkx [] = "\033[?1l\033>";
+static char vt100_s_smkx [] = "\033[?1h\033=";
+static char vt100_s_lf1 [] = "pf1";
+static char vt100_s_lf2 [] = "pf2";
+static char vt100_s_lf3 [] = "pf3";
+static char vt100_s_lf4 [] = "pf4";
+static char vt100_s_cud [] = "\033[%p1%dB";
+static char vt100_s_cub [] = "\033[%p1%dD";
+static char vt100_s_cuf [] = "\033[%p1%dC";
+static char vt100_s_cuu [] = "\033[%p1%dA";
+static char vt100_s_mc0 [] = "\033[0i";
+static char vt100_s_mc4 [] = "\033[4i";
+static char vt100_s_mc5 [] = "\033[5i";
+static char vt100_s_rs2 [] = "\033<\033>\033[?3;4;5l\033[?7;8h\033[r";
+static char vt100_s_rc [] = "\0338";
+static char vt100_s_sc [] = "\0337";
+static char vt100_s_ind [] = "\012";
+static char vt100_s_ri [] = "\033M$<5>";
+static char vt100_s_sgr [] = "\033[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>";
+static char vt100_s_hts [] = "\033H";
+static char vt100_s_ht [] = "\011";
+static char vt100_s_ka1 [] = "\033Oq";
+static char vt100_s_ka3 [] = "\033Os";
+static char vt100_s_kb2 [] = "\033Or";
+static char vt100_s_kc1 [] = "\033Op";
+static char vt100_s_kc3 [] = "\033On";
+static char vt100_s_acsc [] = "``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char vt100_s_smam [] = "\033[?7h";
+static char vt100_s_rmam [] = "\033[?7l";
+static char vt100_s_enacs [] = "\033(B\033)0";
+static char vt100_s_kent [] = "\033OM";
+static char vt100_s_el1 [] = "\033[1K$<3>";
+
+static char vt100_bool_data[] = {
+ /* 0: bw */ FALSE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ FALSE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ FALSE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ TRUE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ TRUE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ FALSE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ FALSE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 vt100_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ 3,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ ABSENT_NUMERIC,
+ /* 14: pairs */ ABSENT_NUMERIC,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * vt100_string_data[] = {
+ /* 0: cbt */ ABSENT_STRING,
+ /* 1: bel */ vt100_s_bel,
+ /* 2: cr */ vt100_s_cr,
+ /* 3: csr */ vt100_s_csr,
+ /* 4: tbc */ vt100_s_tbc,
+ /* 5: clear */ vt100_s_clear,
+ /* 6: el */ vt100_s_el,
+ /* 7: ed */ vt100_s_ed,
+ /* 8: hpa */ ABSENT_STRING,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ vt100_s_cup,
+ /* 11: cud1 */ vt100_s_cud1,
+ /* 12: home */ vt100_s_home,
+ /* 13: civis */ ABSENT_STRING,
+ /* 14: cub1 */ vt100_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ ABSENT_STRING,
+ /* 17: cuf1 */ vt100_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ vt100_s_cuu1,
+ /* 20: cvvis */ ABSENT_STRING,
+ /* 21: dch1 */ ABSENT_STRING,
+ /* 22: dl1 */ ABSENT_STRING,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ vt100_s_smacs,
+ /* 26: blink */ vt100_s_blink,
+ /* 27: bold */ vt100_s_bold,
+ /* 28: smcup */ ABSENT_STRING,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ ABSENT_STRING,
+ /* 31: smir */ ABSENT_STRING,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ vt100_s_rev,
+ /* 35: smso */ vt100_s_smso,
+ /* 36: smul */ vt100_s_smul,
+ /* 37: ech */ ABSENT_STRING,
+ /* 38: rmacs */ vt100_s_rmacs,
+ /* 39: sgr0 */ vt100_s_sgr0,
+ /* 40: rmcup */ ABSENT_STRING,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ ABSENT_STRING,
+ /* 43: rmso */ vt100_s_rmso,
+ /* 44: rmul */ vt100_s_rmul,
+ /* 45: flash */ ABSENT_STRING,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ ABSENT_STRING,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ ABSENT_STRING,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ vt100_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ ABSENT_STRING,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ vt100_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ vt100_s_kf0,
+ /* 66: kf1 */ vt100_s_kf1,
+ /* 67: kf10 */ vt100_s_kf10,
+ /* 68: kf2 */ vt100_s_kf2,
+ /* 69: kf3 */ vt100_s_kf3,
+ /* 70: kf4 */ vt100_s_kf4,
+ /* 71: kf5 */ vt100_s_kf5,
+ /* 72: kf6 */ vt100_s_kf6,
+ /* 73: kf7 */ vt100_s_kf7,
+ /* 74: kf8 */ vt100_s_kf8,
+ /* 75: kf9 */ vt100_s_kf9,
+ /* 76: khome */ ABSENT_STRING,
+ /* 77: kich1 */ ABSENT_STRING,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ vt100_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ ABSENT_STRING,
+ /* 82: kpp */ ABSENT_STRING,
+ /* 83: kcuf1 */ vt100_s_kcuf1,
+ /* 84: kind */ ABSENT_STRING,
+ /* 85: kri */ ABSENT_STRING,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ vt100_s_kcuu1,
+ /* 88: rmkx */ vt100_s_rmkx,
+ /* 89: smkx */ vt100_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ vt100_s_lf1,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ vt100_s_lf2,
+ /* 94: lf3 */ vt100_s_lf3,
+ /* 95: lf4 */ vt100_s_lf4,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ ABSENT_STRING,
+ /* 102: smm */ ABSENT_STRING,
+ /* 103: nel */ ABSENT_STRING,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ ABSENT_STRING,
+ /* 106: dl */ ABSENT_STRING,
+ /* 107: cud */ vt100_s_cud,
+ /* 108: ich */ ABSENT_STRING,
+ /* 109: indn */ ABSENT_STRING,
+ /* 110: il */ ABSENT_STRING,
+ /* 111: cub */ vt100_s_cub,
+ /* 112: cuf */ vt100_s_cuf,
+ /* 113: rin */ ABSENT_STRING,
+ /* 114: cuu */ vt100_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ vt100_s_mc0,
+ /* 119: mc4 */ vt100_s_mc4,
+ /* 120: mc5 */ vt100_s_mc5,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ ABSENT_STRING,
+ /* 123: rs2 */ vt100_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ vt100_s_rc,
+ /* 127: vpa */ ABSENT_STRING,
+ /* 128: sc */ vt100_s_sc,
+ /* 129: ind */ vt100_s_ind,
+ /* 130: ri */ vt100_s_ri,
+ /* 131: sgr */ vt100_s_sgr,
+ /* 132: hts */ vt100_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ vt100_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ vt100_s_ka1,
+ /* 140: ka3 */ vt100_s_ka3,
+ /* 141: kb2 */ vt100_s_kb2,
+ /* 142: kc1 */ vt100_s_kc1,
+ /* 143: kc3 */ vt100_s_kc3,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ vt100_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ ABSENT_STRING,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ vt100_s_smam,
+ /* 152: rmam */ vt100_s_rmam,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ vt100_s_enacs,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ ABSENT_STRING,
+ /* 165: kent */ vt100_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ ABSENT_STRING,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ ABSENT_STRING,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ ABSENT_STRING,
+ /* 200: kIC */ ABSENT_STRING,
+ /* 201: kLFT */ ABSENT_STRING,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ ABSENT_STRING,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ ABSENT_STRING,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ ABSENT_STRING,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ ABSENT_STRING,
+ /* 217: kf12 */ ABSENT_STRING,
+ /* 218: kf13 */ ABSENT_STRING,
+ /* 219: kf14 */ ABSENT_STRING,
+ /* 220: kf15 */ ABSENT_STRING,
+ /* 221: kf16 */ ABSENT_STRING,
+ /* 222: kf17 */ ABSENT_STRING,
+ /* 223: kf18 */ ABSENT_STRING,
+ /* 224: kf19 */ ABSENT_STRING,
+ /* 225: kf20 */ ABSENT_STRING,
+ /* 226: kf21 */ ABSENT_STRING,
+ /* 227: kf22 */ ABSENT_STRING,
+ /* 228: kf23 */ ABSENT_STRING,
+ /* 229: kf24 */ ABSENT_STRING,
+ /* 230: kf25 */ ABSENT_STRING,
+ /* 231: kf26 */ ABSENT_STRING,
+ /* 232: kf27 */ ABSENT_STRING,
+ /* 233: kf28 */ ABSENT_STRING,
+ /* 234: kf29 */ ABSENT_STRING,
+ /* 235: kf30 */ ABSENT_STRING,
+ /* 236: kf31 */ ABSENT_STRING,
+ /* 237: kf32 */ ABSENT_STRING,
+ /* 238: kf33 */ ABSENT_STRING,
+ /* 239: kf34 */ ABSENT_STRING,
+ /* 240: kf35 */ ABSENT_STRING,
+ /* 241: kf36 */ ABSENT_STRING,
+ /* 242: kf37 */ ABSENT_STRING,
+ /* 243: kf38 */ ABSENT_STRING,
+ /* 244: kf39 */ ABSENT_STRING,
+ /* 245: kf40 */ ABSENT_STRING,
+ /* 246: kf41 */ ABSENT_STRING,
+ /* 247: kf42 */ ABSENT_STRING,
+ /* 248: kf43 */ ABSENT_STRING,
+ /* 249: kf44 */ ABSENT_STRING,
+ /* 250: kf45 */ ABSENT_STRING,
+ /* 251: kf46 */ ABSENT_STRING,
+ /* 252: kf47 */ ABSENT_STRING,
+ /* 253: kf48 */ ABSENT_STRING,
+ /* 254: kf49 */ ABSENT_STRING,
+ /* 255: kf50 */ ABSENT_STRING,
+ /* 256: kf51 */ ABSENT_STRING,
+ /* 257: kf52 */ ABSENT_STRING,
+ /* 258: kf53 */ ABSENT_STRING,
+ /* 259: kf54 */ ABSENT_STRING,
+ /* 260: kf55 */ ABSENT_STRING,
+ /* 261: kf56 */ ABSENT_STRING,
+ /* 262: kf57 */ ABSENT_STRING,
+ /* 263: kf58 */ ABSENT_STRING,
+ /* 264: kf59 */ ABSENT_STRING,
+ /* 265: kf60 */ ABSENT_STRING,
+ /* 266: kf61 */ ABSENT_STRING,
+ /* 267: kf62 */ ABSENT_STRING,
+ /* 268: kf63 */ ABSENT_STRING,
+ /* 269: el1 */ vt100_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ ABSENT_STRING,
+ /* 294: u7 */ ABSENT_STRING,
+ /* 295: u8 */ ABSENT_STRING,
+ /* 296: u9 */ ABSENT_STRING,
+ /* 297: op */ ABSENT_STRING,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ ABSENT_STRING,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ ABSENT_STRING,
+ /* 360: setab */ ABSENT_STRING,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* xterm */
+
+static char xterm_alias_data[] = "xterm|xterm terminal emulator (X Window System)";
+
+static char xterm_s_cbt [] = "\033[Z";
+static char xterm_s_bel [] = "\007";
+static char xterm_s_cr [] = "\015";
+static char xterm_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char xterm_s_tbc [] = "\033[3g";
+static char xterm_s_clear [] = "\033[H\033[2J";
+static char xterm_s_el [] = "\033[K";
+static char xterm_s_ed [] = "\033[J";
+static char xterm_s_hpa [] = "\033[%i%p1%dG";
+static char xterm_s_cup [] = "\033[%i%p1%d;%p2%dH";
+static char xterm_s_cud1 [] = "\012";
+static char xterm_s_home [] = "\033[H";
+static char xterm_s_civis [] = "\033[?25l";
+static char xterm_s_cub1 [] = "\010";
+static char xterm_s_cnorm [] = "\033[?12l\033[?25h";
+static char xterm_s_cuf1 [] = "\033[C";
+static char xterm_s_cuu1 [] = "\033[A";
+static char xterm_s_cvvis [] = "\033[?12;25h";
+static char xterm_s_dch1 [] = "\033[P";
+static char xterm_s_dl1 [] = "\033[M";
+static char xterm_s_smacs [] = "\033(0";
+static char xterm_s_blink [] = "\033[5m";
+static char xterm_s_bold [] = "\033[1m";
+static char xterm_s_smcup [] = "\033[?1049h\033[22;0;0t";
+static char xterm_s_dim [] = "\033[2m";
+static char xterm_s_smir [] = "\033[4h";
+static char xterm_s_invis [] = "\033[8m";
+static char xterm_s_rev [] = "\033[7m";
+static char xterm_s_smso [] = "\033[7m";
+static char xterm_s_smul [] = "\033[4m";
+static char xterm_s_ech [] = "\033[%p1%dX";
+static char xterm_s_rmacs [] = "\033(B";
+static char xterm_s_sgr0 [] = "\033(B\033[m";
+static char xterm_s_rmcup [] = "\033[?1049l\033[23;0;0t";
+static char xterm_s_rmir [] = "\033[4l";
+static char xterm_s_rmso [] = "\033[27m";
+static char xterm_s_rmul [] = "\033[24m";
+static char xterm_s_flash [] = "\033[?5h$<100/>\033[?5l";
+static char xterm_s_is2 [] = "\033[!p\033[?3;4l\033[4l\033>";
+static char xterm_s_il1 [] = "\033[L";
+static char xterm_s_kbs [] = "\010";
+static char xterm_s_kdch1 [] = "\033[3~";
+static char xterm_s_kcud1 [] = "\033OB";
+static char xterm_s_kf1 [] = "\033OP";
+static char xterm_s_kf10 [] = "\033[21~";
+static char xterm_s_kf2 [] = "\033OQ";
+static char xterm_s_kf3 [] = "\033OR";
+static char xterm_s_kf4 [] = "\033OS";
+static char xterm_s_kf5 [] = "\033[15~";
+static char xterm_s_kf6 [] = "\033[17~";
+static char xterm_s_kf7 [] = "\033[18~";
+static char xterm_s_kf8 [] = "\033[19~";
+static char xterm_s_kf9 [] = "\033[20~";
+static char xterm_s_khome [] = "\033OH";
+static char xterm_s_kich1 [] = "\033[2~";
+static char xterm_s_kcub1 [] = "\033OD";
+static char xterm_s_knp [] = "\033[6~";
+static char xterm_s_kpp [] = "\033[5~";
+static char xterm_s_kcuf1 [] = "\033OC";
+static char xterm_s_kind [] = "\033[1;2B";
+static char xterm_s_kri [] = "\033[1;2A";
+static char xterm_s_kcuu1 [] = "\033OA";
+static char xterm_s_rmkx [] = "\033[?1l\033>";
+static char xterm_s_smkx [] = "\033[?1h\033=";
+static char xterm_s_rmm [] = "\033[?1034l";
+static char xterm_s_smm [] = "\033[?1034h";
+static char xterm_s_dch [] = "\033[%p1%dP";
+static char xterm_s_dl [] = "\033[%p1%dM";
+static char xterm_s_cud [] = "\033[%p1%dB";
+static char xterm_s_ich [] = "\033[%p1%d@";
+static char xterm_s_indn [] = "\033[%p1%dS";
+static char xterm_s_il [] = "\033[%p1%dL";
+static char xterm_s_cub [] = "\033[%p1%dD";
+static char xterm_s_cuf [] = "\033[%p1%dC";
+static char xterm_s_rin [] = "\033[%p1%dT";
+static char xterm_s_cuu [] = "\033[%p1%dA";
+static char xterm_s_mc0 [] = "\033[i";
+static char xterm_s_mc4 [] = "\033[4i";
+static char xterm_s_mc5 [] = "\033[5i";
+static char xterm_s_rep [] = "%p1%c\033[%p2%{1}%-%db";
+static char xterm_s_rs1 [] = "\033c";
+static char xterm_s_rs2 [] = "\033[!p\033[?3;4l\033[4l\033>";
+static char xterm_s_rc [] = "\0338";
+static char xterm_s_vpa [] = "\033[%i%p1%dd";
+static char xterm_s_sc [] = "\0337";
+static char xterm_s_ind [] = "\012";
+static char xterm_s_ri [] = "\033M";
+static char xterm_s_sgr [] = "%?%p9%t\033(0%e\033(B%;\033[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m";
+static char xterm_s_hts [] = "\033H";
+static char xterm_s_ht [] = "\011";
+static char xterm_s_kb2 [] = "\033OE";
+static char xterm_s_acsc [] = "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char xterm_s_kcbt [] = "\033[Z";
+static char xterm_s_smam [] = "\033[?7h";
+static char xterm_s_rmam [] = "\033[?7l";
+static char xterm_s_kend [] = "\033OF";
+static char xterm_s_kent [] = "\033OM";
+static char xterm_s_kDC [] = "\033[3;2~";
+static char xterm_s_kEND [] = "\033[1;2F";
+static char xterm_s_kHOM [] = "\033[1;2H";
+static char xterm_s_kIC [] = "\033[2;2~";
+static char xterm_s_kLFT [] = "\033[1;2D";
+static char xterm_s_kNXT [] = "\033[6;2~";
+static char xterm_s_kPRV [] = "\033[5;2~";
+static char xterm_s_kRIT [] = "\033[1;2C";
+static char xterm_s_kf11 [] = "\033[23~";
+static char xterm_s_kf12 [] = "\033[24~";
+static char xterm_s_kf13 [] = "\033[1;2P";
+static char xterm_s_kf14 [] = "\033[1;2Q";
+static char xterm_s_kf15 [] = "\033[1;2R";
+static char xterm_s_kf16 [] = "\033[1;2S";
+static char xterm_s_kf17 [] = "\033[15;2~";
+static char xterm_s_kf18 [] = "\033[17;2~";
+static char xterm_s_kf19 [] = "\033[18;2~";
+static char xterm_s_kf20 [] = "\033[19;2~";
+static char xterm_s_kf21 [] = "\033[20;2~";
+static char xterm_s_kf22 [] = "\033[21;2~";
+static char xterm_s_kf23 [] = "\033[23;2~";
+static char xterm_s_kf24 [] = "\033[24;2~";
+static char xterm_s_kf25 [] = "\033[1;5P";
+static char xterm_s_kf26 [] = "\033[1;5Q";
+static char xterm_s_kf27 [] = "\033[1;5R";
+static char xterm_s_kf28 [] = "\033[1;5S";
+static char xterm_s_kf29 [] = "\033[15;5~";
+static char xterm_s_kf30 [] = "\033[17;5~";
+static char xterm_s_kf31 [] = "\033[18;5~";
+static char xterm_s_kf32 [] = "\033[19;5~";
+static char xterm_s_kf33 [] = "\033[20;5~";
+static char xterm_s_kf34 [] = "\033[21;5~";
+static char xterm_s_kf35 [] = "\033[23;5~";
+static char xterm_s_kf36 [] = "\033[24;5~";
+static char xterm_s_kf37 [] = "\033[1;6P";
+static char xterm_s_kf38 [] = "\033[1;6Q";
+static char xterm_s_kf39 [] = "\033[1;6R";
+static char xterm_s_kf40 [] = "\033[1;6S";
+static char xterm_s_kf41 [] = "\033[15;6~";
+static char xterm_s_kf42 [] = "\033[17;6~";
+static char xterm_s_kf43 [] = "\033[18;6~";
+static char xterm_s_kf44 [] = "\033[19;6~";
+static char xterm_s_kf45 [] = "\033[20;6~";
+static char xterm_s_kf46 [] = "\033[21;6~";
+static char xterm_s_kf47 [] = "\033[23;6~";
+static char xterm_s_kf48 [] = "\033[24;6~";
+static char xterm_s_kf49 [] = "\033[1;3P";
+static char xterm_s_kf50 [] = "\033[1;3Q";
+static char xterm_s_kf51 [] = "\033[1;3R";
+static char xterm_s_kf52 [] = "\033[1;3S";
+static char xterm_s_kf53 [] = "\033[15;3~";
+static char xterm_s_kf54 [] = "\033[17;3~";
+static char xterm_s_kf55 [] = "\033[18;3~";
+static char xterm_s_kf56 [] = "\033[19;3~";
+static char xterm_s_kf57 [] = "\033[20;3~";
+static char xterm_s_kf58 [] = "\033[21;3~";
+static char xterm_s_kf59 [] = "\033[23;3~";
+static char xterm_s_kf60 [] = "\033[24;3~";
+static char xterm_s_kf61 [] = "\033[1;4P";
+static char xterm_s_kf62 [] = "\033[1;4Q";
+static char xterm_s_kf63 [] = "\033[1;4R";
+static char xterm_s_el1 [] = "\033[1K";
+static char xterm_s_u6 [] = "\033[%i%d;%dR";
+static char xterm_s_u7 [] = "\033[6n";
+static char xterm_s_u8 [] = "\033[?%[;0123456789]c";
+static char xterm_s_u9 [] = "\033[c";
+static char xterm_s_op [] = "\033[39;49m";
+static char xterm_s_setf [] = "\033[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m";
+static char xterm_s_setb [] = "\033[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m";
+static char xterm_s_sitm [] = "\033[3m";
+static char xterm_s_ritm [] = "\033[23m";
+static char xterm_s_kmous [] = "\033[<";
+static char xterm_s_setaf [] = "\033[3%p1%dm";
+static char xterm_s_setab [] = "\033[4%p1%dm";
+static char xterm_s_meml [] = "\033l";
+static char xterm_s_memu [] = "\033m";
+
+static char xterm_bool_data[] = {
+ /* 0: bw */ FALSE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ TRUE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ TRUE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ TRUE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 xterm_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * xterm_string_data[] = {
+ /* 0: cbt */ xterm_s_cbt,
+ /* 1: bel */ xterm_s_bel,
+ /* 2: cr */ xterm_s_cr,
+ /* 3: csr */ xterm_s_csr,
+ /* 4: tbc */ xterm_s_tbc,
+ /* 5: clear */ xterm_s_clear,
+ /* 6: el */ xterm_s_el,
+ /* 7: ed */ xterm_s_ed,
+ /* 8: hpa */ xterm_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ xterm_s_cup,
+ /* 11: cud1 */ xterm_s_cud1,
+ /* 12: home */ xterm_s_home,
+ /* 13: civis */ xterm_s_civis,
+ /* 14: cub1 */ xterm_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ xterm_s_cnorm,
+ /* 17: cuf1 */ xterm_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ xterm_s_cuu1,
+ /* 20: cvvis */ xterm_s_cvvis,
+ /* 21: dch1 */ xterm_s_dch1,
+ /* 22: dl1 */ xterm_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ xterm_s_smacs,
+ /* 26: blink */ xterm_s_blink,
+ /* 27: bold */ xterm_s_bold,
+ /* 28: smcup */ xterm_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ xterm_s_dim,
+ /* 31: smir */ xterm_s_smir,
+ /* 32: invis */ xterm_s_invis,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ xterm_s_rev,
+ /* 35: smso */ xterm_s_smso,
+ /* 36: smul */ xterm_s_smul,
+ /* 37: ech */ xterm_s_ech,
+ /* 38: rmacs */ xterm_s_rmacs,
+ /* 39: sgr0 */ xterm_s_sgr0,
+ /* 40: rmcup */ xterm_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ xterm_s_rmir,
+ /* 43: rmso */ xterm_s_rmso,
+ /* 44: rmul */ xterm_s_rmul,
+ /* 45: flash */ xterm_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ xterm_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ xterm_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ xterm_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ xterm_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ xterm_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ xterm_s_kf1,
+ /* 67: kf10 */ xterm_s_kf10,
+ /* 68: kf2 */ xterm_s_kf2,
+ /* 69: kf3 */ xterm_s_kf3,
+ /* 70: kf4 */ xterm_s_kf4,
+ /* 71: kf5 */ xterm_s_kf5,
+ /* 72: kf6 */ xterm_s_kf6,
+ /* 73: kf7 */ xterm_s_kf7,
+ /* 74: kf8 */ xterm_s_kf8,
+ /* 75: kf9 */ xterm_s_kf9,
+ /* 76: khome */ xterm_s_khome,
+ /* 77: kich1 */ xterm_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ xterm_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ xterm_s_knp,
+ /* 82: kpp */ xterm_s_kpp,
+ /* 83: kcuf1 */ xterm_s_kcuf1,
+ /* 84: kind */ xterm_s_kind,
+ /* 85: kri */ xterm_s_kri,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ xterm_s_kcuu1,
+ /* 88: rmkx */ xterm_s_rmkx,
+ /* 89: smkx */ xterm_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ xterm_s_rmm,
+ /* 102: smm */ xterm_s_smm,
+ /* 103: nel */ ABSENT_STRING,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ xterm_s_dch,
+ /* 106: dl */ xterm_s_dl,
+ /* 107: cud */ xterm_s_cud,
+ /* 108: ich */ xterm_s_ich,
+ /* 109: indn */ xterm_s_indn,
+ /* 110: il */ xterm_s_il,
+ /* 111: cub */ xterm_s_cub,
+ /* 112: cuf */ xterm_s_cuf,
+ /* 113: rin */ xterm_s_rin,
+ /* 114: cuu */ xterm_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ xterm_s_mc0,
+ /* 119: mc4 */ xterm_s_mc4,
+ /* 120: mc5 */ xterm_s_mc5,
+ /* 121: rep */ xterm_s_rep,
+ /* 122: rs1 */ xterm_s_rs1,
+ /* 123: rs2 */ xterm_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ xterm_s_rc,
+ /* 127: vpa */ xterm_s_vpa,
+ /* 128: sc */ xterm_s_sc,
+ /* 129: ind */ xterm_s_ind,
+ /* 130: ri */ xterm_s_ri,
+ /* 131: sgr */ xterm_s_sgr,
+ /* 132: hts */ xterm_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ xterm_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ xterm_s_kb2,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ xterm_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ xterm_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ xterm_s_smam,
+ /* 152: rmam */ xterm_s_rmam,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ ABSENT_STRING,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ xterm_s_kend,
+ /* 165: kent */ xterm_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ xterm_s_kDC,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ xterm_s_kEND,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ xterm_s_kHOM,
+ /* 200: kIC */ xterm_s_kIC,
+ /* 201: kLFT */ xterm_s_kLFT,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ xterm_s_kNXT,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ xterm_s_kPRV,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ xterm_s_kRIT,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ xterm_s_kf11,
+ /* 217: kf12 */ xterm_s_kf12,
+ /* 218: kf13 */ xterm_s_kf13,
+ /* 219: kf14 */ xterm_s_kf14,
+ /* 220: kf15 */ xterm_s_kf15,
+ /* 221: kf16 */ xterm_s_kf16,
+ /* 222: kf17 */ xterm_s_kf17,
+ /* 223: kf18 */ xterm_s_kf18,
+ /* 224: kf19 */ xterm_s_kf19,
+ /* 225: kf20 */ xterm_s_kf20,
+ /* 226: kf21 */ xterm_s_kf21,
+ /* 227: kf22 */ xterm_s_kf22,
+ /* 228: kf23 */ xterm_s_kf23,
+ /* 229: kf24 */ xterm_s_kf24,
+ /* 230: kf25 */ xterm_s_kf25,
+ /* 231: kf26 */ xterm_s_kf26,
+ /* 232: kf27 */ xterm_s_kf27,
+ /* 233: kf28 */ xterm_s_kf28,
+ /* 234: kf29 */ xterm_s_kf29,
+ /* 235: kf30 */ xterm_s_kf30,
+ /* 236: kf31 */ xterm_s_kf31,
+ /* 237: kf32 */ xterm_s_kf32,
+ /* 238: kf33 */ xterm_s_kf33,
+ /* 239: kf34 */ xterm_s_kf34,
+ /* 240: kf35 */ xterm_s_kf35,
+ /* 241: kf36 */ xterm_s_kf36,
+ /* 242: kf37 */ xterm_s_kf37,
+ /* 243: kf38 */ xterm_s_kf38,
+ /* 244: kf39 */ xterm_s_kf39,
+ /* 245: kf40 */ xterm_s_kf40,
+ /* 246: kf41 */ xterm_s_kf41,
+ /* 247: kf42 */ xterm_s_kf42,
+ /* 248: kf43 */ xterm_s_kf43,
+ /* 249: kf44 */ xterm_s_kf44,
+ /* 250: kf45 */ xterm_s_kf45,
+ /* 251: kf46 */ xterm_s_kf46,
+ /* 252: kf47 */ xterm_s_kf47,
+ /* 253: kf48 */ xterm_s_kf48,
+ /* 254: kf49 */ xterm_s_kf49,
+ /* 255: kf50 */ xterm_s_kf50,
+ /* 256: kf51 */ xterm_s_kf51,
+ /* 257: kf52 */ xterm_s_kf52,
+ /* 258: kf53 */ xterm_s_kf53,
+ /* 259: kf54 */ xterm_s_kf54,
+ /* 260: kf55 */ xterm_s_kf55,
+ /* 261: kf56 */ xterm_s_kf56,
+ /* 262: kf57 */ xterm_s_kf57,
+ /* 263: kf58 */ xterm_s_kf58,
+ /* 264: kf59 */ xterm_s_kf59,
+ /* 265: kf60 */ xterm_s_kf60,
+ /* 266: kf61 */ xterm_s_kf61,
+ /* 267: kf62 */ xterm_s_kf62,
+ /* 268: kf63 */ xterm_s_kf63,
+ /* 269: el1 */ xterm_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ xterm_s_u6,
+ /* 294: u7 */ xterm_s_u7,
+ /* 295: u8 */ xterm_s_u8,
+ /* 296: u9 */ xterm_s_u9,
+ /* 297: op */ xterm_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ xterm_s_setf,
+ /* 303: setb */ xterm_s_setb,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ xterm_s_sitm,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ xterm_s_ritm,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ xterm_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ xterm_s_setaf,
+ /* 360: setab */ xterm_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ xterm_s_meml,
+ /* 412: memu */ xterm_s_memu,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* xterm-256color */
+
+static char xterm_256color_alias_data[] = "xterm-256color|xterm with 256 colors";
+
+static char xterm_256color_s_cbt[] = "\033[Z";
+static char xterm_256color_s_bel[] = "\007";
+static char xterm_256color_s_cr [] = "\015";
+static char xterm_256color_s_csr[] = "\033[%i%p1%d;%p2%dr";
+static char xterm_256color_s_tbc[] = "\033[3g";
+static char xterm_256color_s_clear[] = "\033[H\033[2J";
+static char xterm_256color_s_el [] = "\033[K";
+static char xterm_256color_s_ed [] = "\033[J";
+static char xterm_256color_s_hpa[] = "\033[%i%p1%dG";
+static char xterm_256color_s_cup[] = "\033[%i%p1%d;%p2%dH";
+static char xterm_256color_s_cud1[] = "\012";
+static char xterm_256color_s_home[] = "\033[H";
+static char xterm_256color_s_civis[] = "\033[?25l";
+static char xterm_256color_s_cub1[] = "\010";
+static char xterm_256color_s_cnorm[] = "\033[?12l\033[?25h";
+static char xterm_256color_s_cuf1[] = "\033[C";
+static char xterm_256color_s_cuu1[] = "\033[A";
+static char xterm_256color_s_cvvis[] = "\033[?12;25h";
+static char xterm_256color_s_dch1[] = "\033[P";
+static char xterm_256color_s_dl1[] = "\033[M";
+static char xterm_256color_s_smacs[] = "\033(0";
+static char xterm_256color_s_blink[] = "\033[5m";
+static char xterm_256color_s_bold[] = "\033[1m";
+static char xterm_256color_s_smcup[] = "\033[?1049h\033[22;0;0t";
+static char xterm_256color_s_dim[] = "\033[2m";
+static char xterm_256color_s_smir[] = "\033[4h";
+static char xterm_256color_s_invis[] = "\033[8m";
+static char xterm_256color_s_rev[] = "\033[7m";
+static char xterm_256color_s_smso[] = "\033[7m";
+static char xterm_256color_s_smul[] = "\033[4m";
+static char xterm_256color_s_ech[] = "\033[%p1%dX";
+static char xterm_256color_s_rmacs[] = "\033(B";
+static char xterm_256color_s_sgr0[] = "\033(B\033[m";
+static char xterm_256color_s_rmcup[] = "\033[?1049l\033[23;0;0t";
+static char xterm_256color_s_rmir[] = "\033[4l";
+static char xterm_256color_s_rmso[] = "\033[27m";
+static char xterm_256color_s_rmul[] = "\033[24m";
+static char xterm_256color_s_flash[] = "\033[?5h$<100/>\033[?5l";
+static char xterm_256color_s_is2[] = "\033[!p\033[?3;4l\033[4l\033>";
+static char xterm_256color_s_il1[] = "\033[L";
+static char xterm_256color_s_kbs[] = "\010";
+static char xterm_256color_s_kdch1[] = "\033[3~";
+static char xterm_256color_s_kcud1[] = "\033OB";
+static char xterm_256color_s_kf1[] = "\033OP";
+static char xterm_256color_s_kf10[] = "\033[21~";
+static char xterm_256color_s_kf2[] = "\033OQ";
+static char xterm_256color_s_kf3[] = "\033OR";
+static char xterm_256color_s_kf4[] = "\033OS";
+static char xterm_256color_s_kf5[] = "\033[15~";
+static char xterm_256color_s_kf6[] = "\033[17~";
+static char xterm_256color_s_kf7[] = "\033[18~";
+static char xterm_256color_s_kf8[] = "\033[19~";
+static char xterm_256color_s_kf9[] = "\033[20~";
+static char xterm_256color_s_khome[] = "\033OH";
+static char xterm_256color_s_kich1[] = "\033[2~";
+static char xterm_256color_s_kcub1[] = "\033OD";
+static char xterm_256color_s_knp[] = "\033[6~";
+static char xterm_256color_s_kpp[] = "\033[5~";
+static char xterm_256color_s_kcuf1[] = "\033OC";
+static char xterm_256color_s_kind[] = "\033[1;2B";
+static char xterm_256color_s_kri[] = "\033[1;2A";
+static char xterm_256color_s_kcuu1[] = "\033OA";
+static char xterm_256color_s_rmkx[] = "\033[?1l\033>";
+static char xterm_256color_s_smkx[] = "\033[?1h\033=";
+static char xterm_256color_s_rmm[] = "\033[?1034l";
+static char xterm_256color_s_smm[] = "\033[?1034h";
+static char xterm_256color_s_dch[] = "\033[%p1%dP";
+static char xterm_256color_s_dl [] = "\033[%p1%dM";
+static char xterm_256color_s_cud[] = "\033[%p1%dB";
+static char xterm_256color_s_ich[] = "\033[%p1%d@";
+static char xterm_256color_s_indn[] = "\033[%p1%dS";
+static char xterm_256color_s_il [] = "\033[%p1%dL";
+static char xterm_256color_s_cub[] = "\033[%p1%dD";
+static char xterm_256color_s_cuf[] = "\033[%p1%dC";
+static char xterm_256color_s_rin[] = "\033[%p1%dT";
+static char xterm_256color_s_cuu[] = "\033[%p1%dA";
+static char xterm_256color_s_mc0[] = "\033[i";
+static char xterm_256color_s_mc4[] = "\033[4i";
+static char xterm_256color_s_mc5[] = "\033[5i";
+static char xterm_256color_s_rep[] = "%p1%c\033[%p2%{1}%-%db";
+static char xterm_256color_s_rs1[] = "\033c\033]104\007";
+static char xterm_256color_s_rs2[] = "\033[!p\033[?3;4l\033[4l\033>";
+static char xterm_256color_s_rc [] = "\0338";
+static char xterm_256color_s_vpa[] = "\033[%i%p1%dd";
+static char xterm_256color_s_sc [] = "\0337";
+static char xterm_256color_s_ind[] = "\012";
+static char xterm_256color_s_ri [] = "\033M";
+static char xterm_256color_s_sgr[] = "%?%p9%t\033(0%e\033(B%;\033[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m";
+static char xterm_256color_s_hts[] = "\033H";
+static char xterm_256color_s_ht [] = "\011";
+static char xterm_256color_s_kb2[] = "\033OE";
+static char xterm_256color_s_acsc[] = "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char xterm_256color_s_kcbt[] = "\033[Z";
+static char xterm_256color_s_smam[] = "\033[?7h";
+static char xterm_256color_s_rmam[] = "\033[?7l";
+static char xterm_256color_s_kend[] = "\033OF";
+static char xterm_256color_s_kent[] = "\033OM";
+static char xterm_256color_s_kDC[] = "\033[3;2~";
+static char xterm_256color_s_kEND[] = "\033[1;2F";
+static char xterm_256color_s_kHOM[] = "\033[1;2H";
+static char xterm_256color_s_kIC[] = "\033[2;2~";
+static char xterm_256color_s_kLFT[] = "\033[1;2D";
+static char xterm_256color_s_kNXT[] = "\033[6;2~";
+static char xterm_256color_s_kPRV[] = "\033[5;2~";
+static char xterm_256color_s_kRIT[] = "\033[1;2C";
+static char xterm_256color_s_kf11[] = "\033[23~";
+static char xterm_256color_s_kf12[] = "\033[24~";
+static char xterm_256color_s_kf13[] = "\033[1;2P";
+static char xterm_256color_s_kf14[] = "\033[1;2Q";
+static char xterm_256color_s_kf15[] = "\033[1;2R";
+static char xterm_256color_s_kf16[] = "\033[1;2S";
+static char xterm_256color_s_kf17[] = "\033[15;2~";
+static char xterm_256color_s_kf18[] = "\033[17;2~";
+static char xterm_256color_s_kf19[] = "\033[18;2~";
+static char xterm_256color_s_kf20[] = "\033[19;2~";
+static char xterm_256color_s_kf21[] = "\033[20;2~";
+static char xterm_256color_s_kf22[] = "\033[21;2~";
+static char xterm_256color_s_kf23[] = "\033[23;2~";
+static char xterm_256color_s_kf24[] = "\033[24;2~";
+static char xterm_256color_s_kf25[] = "\033[1;5P";
+static char xterm_256color_s_kf26[] = "\033[1;5Q";
+static char xterm_256color_s_kf27[] = "\033[1;5R";
+static char xterm_256color_s_kf28[] = "\033[1;5S";
+static char xterm_256color_s_kf29[] = "\033[15;5~";
+static char xterm_256color_s_kf30[] = "\033[17;5~";
+static char xterm_256color_s_kf31[] = "\033[18;5~";
+static char xterm_256color_s_kf32[] = "\033[19;5~";
+static char xterm_256color_s_kf33[] = "\033[20;5~";
+static char xterm_256color_s_kf34[] = "\033[21;5~";
+static char xterm_256color_s_kf35[] = "\033[23;5~";
+static char xterm_256color_s_kf36[] = "\033[24;5~";
+static char xterm_256color_s_kf37[] = "\033[1;6P";
+static char xterm_256color_s_kf38[] = "\033[1;6Q";
+static char xterm_256color_s_kf39[] = "\033[1;6R";
+static char xterm_256color_s_kf40[] = "\033[1;6S";
+static char xterm_256color_s_kf41[] = "\033[15;6~";
+static char xterm_256color_s_kf42[] = "\033[17;6~";
+static char xterm_256color_s_kf43[] = "\033[18;6~";
+static char xterm_256color_s_kf44[] = "\033[19;6~";
+static char xterm_256color_s_kf45[] = "\033[20;6~";
+static char xterm_256color_s_kf46[] = "\033[21;6~";
+static char xterm_256color_s_kf47[] = "\033[23;6~";
+static char xterm_256color_s_kf48[] = "\033[24;6~";
+static char xterm_256color_s_kf49[] = "\033[1;3P";
+static char xterm_256color_s_kf50[] = "\033[1;3Q";
+static char xterm_256color_s_kf51[] = "\033[1;3R";
+static char xterm_256color_s_kf52[] = "\033[1;3S";
+static char xterm_256color_s_kf53[] = "\033[15;3~";
+static char xterm_256color_s_kf54[] = "\033[17;3~";
+static char xterm_256color_s_kf55[] = "\033[18;3~";
+static char xterm_256color_s_kf56[] = "\033[19;3~";
+static char xterm_256color_s_kf57[] = "\033[20;3~";
+static char xterm_256color_s_kf58[] = "\033[21;3~";
+static char xterm_256color_s_kf59[] = "\033[23;3~";
+static char xterm_256color_s_kf60[] = "\033[24;3~";
+static char xterm_256color_s_kf61[] = "\033[1;4P";
+static char xterm_256color_s_kf62[] = "\033[1;4Q";
+static char xterm_256color_s_kf63[] = "\033[1;4R";
+static char xterm_256color_s_el1[] = "\033[1K";
+static char xterm_256color_s_u6 [] = "\033[%i%d;%dR";
+static char xterm_256color_s_u7 [] = "\033[6n";
+static char xterm_256color_s_u8 [] = "\033[?%[;0123456789]c";
+static char xterm_256color_s_u9 [] = "\033[c";
+static char xterm_256color_s_op [] = "\033[39;49m";
+static char xterm_256color_s_oc [] = "\033]104\007";
+static char xterm_256color_s_initc[] = "\033]4;%p1%d;rgb:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\033\134";
+static char xterm_256color_s_sitm[] = "\033[3m";
+static char xterm_256color_s_ritm[] = "\033[23m";
+static char xterm_256color_s_kmous[] = "\033[<";
+static char xterm_256color_s_setaf[] = "\033[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m";
+static char xterm_256color_s_setab[] = "\033[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m";
+static char xterm_256color_s_meml[] = "\033l";
+static char xterm_256color_s_memu[] = "\033m";
+
+static char xterm_256color_bool_data[] = {
+ /* 0: bw */ FALSE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ TRUE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ TRUE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ TRUE,
+ /* 28: bce */ TRUE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 xterm_256color_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 256,
+ /* 14: pairs */ 32767,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * xterm_256color_string_data[] = {
+ /* 0: cbt */ xterm_256color_s_cbt,
+ /* 1: bel */ xterm_256color_s_bel,
+ /* 2: cr */ xterm_256color_s_cr,
+ /* 3: csr */ xterm_256color_s_csr,
+ /* 4: tbc */ xterm_256color_s_tbc,
+ /* 5: clear */ xterm_256color_s_clear,
+ /* 6: el */ xterm_256color_s_el,
+ /* 7: ed */ xterm_256color_s_ed,
+ /* 8: hpa */ xterm_256color_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ xterm_256color_s_cup,
+ /* 11: cud1 */ xterm_256color_s_cud1,
+ /* 12: home */ xterm_256color_s_home,
+ /* 13: civis */ xterm_256color_s_civis,
+ /* 14: cub1 */ xterm_256color_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ xterm_256color_s_cnorm,
+ /* 17: cuf1 */ xterm_256color_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ xterm_256color_s_cuu1,
+ /* 20: cvvis */ xterm_256color_s_cvvis,
+ /* 21: dch1 */ xterm_256color_s_dch1,
+ /* 22: dl1 */ xterm_256color_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ xterm_256color_s_smacs,
+ /* 26: blink */ xterm_256color_s_blink,
+ /* 27: bold */ xterm_256color_s_bold,
+ /* 28: smcup */ xterm_256color_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ xterm_256color_s_dim,
+ /* 31: smir */ xterm_256color_s_smir,
+ /* 32: invis */ xterm_256color_s_invis,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ xterm_256color_s_rev,
+ /* 35: smso */ xterm_256color_s_smso,
+ /* 36: smul */ xterm_256color_s_smul,
+ /* 37: ech */ xterm_256color_s_ech,
+ /* 38: rmacs */ xterm_256color_s_rmacs,
+ /* 39: sgr0 */ xterm_256color_s_sgr0,
+ /* 40: rmcup */ xterm_256color_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ xterm_256color_s_rmir,
+ /* 43: rmso */ xterm_256color_s_rmso,
+ /* 44: rmul */ xterm_256color_s_rmul,
+ /* 45: flash */ xterm_256color_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ xterm_256color_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ xterm_256color_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ xterm_256color_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ xterm_256color_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ xterm_256color_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ xterm_256color_s_kf1,
+ /* 67: kf10 */ xterm_256color_s_kf10,
+ /* 68: kf2 */ xterm_256color_s_kf2,
+ /* 69: kf3 */ xterm_256color_s_kf3,
+ /* 70: kf4 */ xterm_256color_s_kf4,
+ /* 71: kf5 */ xterm_256color_s_kf5,
+ /* 72: kf6 */ xterm_256color_s_kf6,
+ /* 73: kf7 */ xterm_256color_s_kf7,
+ /* 74: kf8 */ xterm_256color_s_kf8,
+ /* 75: kf9 */ xterm_256color_s_kf9,
+ /* 76: khome */ xterm_256color_s_khome,
+ /* 77: kich1 */ xterm_256color_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ xterm_256color_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ xterm_256color_s_knp,
+ /* 82: kpp */ xterm_256color_s_kpp,
+ /* 83: kcuf1 */ xterm_256color_s_kcuf1,
+ /* 84: kind */ xterm_256color_s_kind,
+ /* 85: kri */ xterm_256color_s_kri,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ xterm_256color_s_kcuu1,
+ /* 88: rmkx */ xterm_256color_s_rmkx,
+ /* 89: smkx */ xterm_256color_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ xterm_256color_s_rmm,
+ /* 102: smm */ xterm_256color_s_smm,
+ /* 103: nel */ ABSENT_STRING,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ xterm_256color_s_dch,
+ /* 106: dl */ xterm_256color_s_dl,
+ /* 107: cud */ xterm_256color_s_cud,
+ /* 108: ich */ xterm_256color_s_ich,
+ /* 109: indn */ xterm_256color_s_indn,
+ /* 110: il */ xterm_256color_s_il,
+ /* 111: cub */ xterm_256color_s_cub,
+ /* 112: cuf */ xterm_256color_s_cuf,
+ /* 113: rin */ xterm_256color_s_rin,
+ /* 114: cuu */ xterm_256color_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ xterm_256color_s_mc0,
+ /* 119: mc4 */ xterm_256color_s_mc4,
+ /* 120: mc5 */ xterm_256color_s_mc5,
+ /* 121: rep */ xterm_256color_s_rep,
+ /* 122: rs1 */ xterm_256color_s_rs1,
+ /* 123: rs2 */ xterm_256color_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ xterm_256color_s_rc,
+ /* 127: vpa */ xterm_256color_s_vpa,
+ /* 128: sc */ xterm_256color_s_sc,
+ /* 129: ind */ xterm_256color_s_ind,
+ /* 130: ri */ xterm_256color_s_ri,
+ /* 131: sgr */ xterm_256color_s_sgr,
+ /* 132: hts */ xterm_256color_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ xterm_256color_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ xterm_256color_s_kb2,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ xterm_256color_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ xterm_256color_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ xterm_256color_s_smam,
+ /* 152: rmam */ xterm_256color_s_rmam,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ ABSENT_STRING,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ xterm_256color_s_kend,
+ /* 165: kent */ xterm_256color_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ xterm_256color_s_kDC,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ xterm_256color_s_kEND,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ xterm_256color_s_kHOM,
+ /* 200: kIC */ xterm_256color_s_kIC,
+ /* 201: kLFT */ xterm_256color_s_kLFT,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ xterm_256color_s_kNXT,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ xterm_256color_s_kPRV,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ xterm_256color_s_kRIT,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ xterm_256color_s_kf11,
+ /* 217: kf12 */ xterm_256color_s_kf12,
+ /* 218: kf13 */ xterm_256color_s_kf13,
+ /* 219: kf14 */ xterm_256color_s_kf14,
+ /* 220: kf15 */ xterm_256color_s_kf15,
+ /* 221: kf16 */ xterm_256color_s_kf16,
+ /* 222: kf17 */ xterm_256color_s_kf17,
+ /* 223: kf18 */ xterm_256color_s_kf18,
+ /* 224: kf19 */ xterm_256color_s_kf19,
+ /* 225: kf20 */ xterm_256color_s_kf20,
+ /* 226: kf21 */ xterm_256color_s_kf21,
+ /* 227: kf22 */ xterm_256color_s_kf22,
+ /* 228: kf23 */ xterm_256color_s_kf23,
+ /* 229: kf24 */ xterm_256color_s_kf24,
+ /* 230: kf25 */ xterm_256color_s_kf25,
+ /* 231: kf26 */ xterm_256color_s_kf26,
+ /* 232: kf27 */ xterm_256color_s_kf27,
+ /* 233: kf28 */ xterm_256color_s_kf28,
+ /* 234: kf29 */ xterm_256color_s_kf29,
+ /* 235: kf30 */ xterm_256color_s_kf30,
+ /* 236: kf31 */ xterm_256color_s_kf31,
+ /* 237: kf32 */ xterm_256color_s_kf32,
+ /* 238: kf33 */ xterm_256color_s_kf33,
+ /* 239: kf34 */ xterm_256color_s_kf34,
+ /* 240: kf35 */ xterm_256color_s_kf35,
+ /* 241: kf36 */ xterm_256color_s_kf36,
+ /* 242: kf37 */ xterm_256color_s_kf37,
+ /* 243: kf38 */ xterm_256color_s_kf38,
+ /* 244: kf39 */ xterm_256color_s_kf39,
+ /* 245: kf40 */ xterm_256color_s_kf40,
+ /* 246: kf41 */ xterm_256color_s_kf41,
+ /* 247: kf42 */ xterm_256color_s_kf42,
+ /* 248: kf43 */ xterm_256color_s_kf43,
+ /* 249: kf44 */ xterm_256color_s_kf44,
+ /* 250: kf45 */ xterm_256color_s_kf45,
+ /* 251: kf46 */ xterm_256color_s_kf46,
+ /* 252: kf47 */ xterm_256color_s_kf47,
+ /* 253: kf48 */ xterm_256color_s_kf48,
+ /* 254: kf49 */ xterm_256color_s_kf49,
+ /* 255: kf50 */ xterm_256color_s_kf50,
+ /* 256: kf51 */ xterm_256color_s_kf51,
+ /* 257: kf52 */ xterm_256color_s_kf52,
+ /* 258: kf53 */ xterm_256color_s_kf53,
+ /* 259: kf54 */ xterm_256color_s_kf54,
+ /* 260: kf55 */ xterm_256color_s_kf55,
+ /* 261: kf56 */ xterm_256color_s_kf56,
+ /* 262: kf57 */ xterm_256color_s_kf57,
+ /* 263: kf58 */ xterm_256color_s_kf58,
+ /* 264: kf59 */ xterm_256color_s_kf59,
+ /* 265: kf60 */ xterm_256color_s_kf60,
+ /* 266: kf61 */ xterm_256color_s_kf61,
+ /* 267: kf62 */ xterm_256color_s_kf62,
+ /* 268: kf63 */ xterm_256color_s_kf63,
+ /* 269: el1 */ xterm_256color_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ xterm_256color_s_u6,
+ /* 294: u7 */ xterm_256color_s_u7,
+ /* 295: u8 */ xterm_256color_s_u8,
+ /* 296: u9 */ xterm_256color_s_u9,
+ /* 297: op */ xterm_256color_s_op,
+ /* 298: oc */ xterm_256color_s_oc,
+ /* 299: initc */ xterm_256color_s_initc,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ xterm_256color_s_sitm,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ xterm_256color_s_ritm,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ xterm_256color_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ xterm_256color_s_setaf,
+ /* 360: setab */ xterm_256color_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ xterm_256color_s_meml,
+ /* 412: memu */ xterm_256color_s_memu,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* screen */
+
+static char screen_alias_data[] = "screen|VT 100/ANSI X3.64 virtual terminal";
+
+static char screen_s_cbt [] = "\033[Z";
+static char screen_s_bel [] = "\007";
+static char screen_s_cr [] = "\015";
+static char screen_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char screen_s_tbc [] = "\033[3g";
+static char screen_s_clear [] = "\033[H\033[J";
+static char screen_s_el [] = "\033[K";
+static char screen_s_ed [] = "\033[J";
+static char screen_s_hpa [] = "\033[%i%p1%dG";
+static char screen_s_cup [] = "\033[%i%p1%d;%p2%dH";
+static char screen_s_cud1 [] = "\012";
+static char screen_s_home [] = "\033[H";
+static char screen_s_civis [] = "\033[?25l";
+static char screen_s_cub1 [] = "\010";
+static char screen_s_cnorm [] = "\033[34h\033[?25h";
+static char screen_s_cuf1 [] = "\033[C";
+static char screen_s_cuu1 [] = "\033M";
+static char screen_s_cvvis [] = "\033[34l";
+static char screen_s_dch1 [] = "\033[P";
+static char screen_s_dl1 [] = "\033[M";
+static char screen_s_smacs [] = "\016";
+static char screen_s_blink [] = "\033[5m";
+static char screen_s_bold [] = "\033[1m";
+static char screen_s_smcup [] = "\033[?1049h";
+static char screen_s_dim [] = "\033[2m";
+static char screen_s_smir [] = "\033[4h";
+static char screen_s_rev [] = "\033[7m";
+static char screen_s_smso [] = "\033[3m";
+static char screen_s_smul [] = "\033[4m";
+static char screen_s_rmacs [] = "\017";
+static char screen_s_sgr0 [] = "\033[m\017";
+static char screen_s_rmcup [] = "\033[?1049l";
+static char screen_s_rmir [] = "\033[4l";
+static char screen_s_rmso [] = "\033[23m";
+static char screen_s_rmul [] = "\033[24m";
+static char screen_s_flash [] = "\033g";
+static char screen_s_is2 [] = "\033)0";
+static char screen_s_il1 [] = "\033[L";
+static char screen_s_kbs [] = "\010";
+static char screen_s_kdch1 [] = "\033[3~";
+static char screen_s_kcud1 [] = "\033OB";
+static char screen_s_kf1 [] = "\033OP";
+static char screen_s_kf10 [] = "\033[21~";
+static char screen_s_kf2 [] = "\033OQ";
+static char screen_s_kf3 [] = "\033OR";
+static char screen_s_kf4 [] = "\033OS";
+static char screen_s_kf5 [] = "\033[15~";
+static char screen_s_kf6 [] = "\033[17~";
+static char screen_s_kf7 [] = "\033[18~";
+static char screen_s_kf8 [] = "\033[19~";
+static char screen_s_kf9 [] = "\033[20~";
+static char screen_s_khome [] = "\033[1~";
+static char screen_s_kich1 [] = "\033[2~";
+static char screen_s_kcub1 [] = "\033OD";
+static char screen_s_knp [] = "\033[6~";
+static char screen_s_kpp [] = "\033[5~";
+static char screen_s_kcuf1 [] = "\033OC";
+static char screen_s_kcuu1 [] = "\033OA";
+static char screen_s_rmkx [] = "\033[?1l\033>";
+static char screen_s_smkx [] = "\033[?1h\033=";
+static char screen_s_nel [] = "\033E";
+static char screen_s_dch [] = "\033[%p1%dP";
+static char screen_s_dl [] = "\033[%p1%dM";
+static char screen_s_cud [] = "\033[%p1%dB";
+static char screen_s_ich [] = "\033[%p1%d@";
+static char screen_s_indn [] = "\033[%p1%dS";
+static char screen_s_il [] = "\033[%p1%dL";
+static char screen_s_cub [] = "\033[%p1%dD";
+static char screen_s_cuf [] = "\033[%p1%dC";
+static char screen_s_cuu [] = "\033[%p1%dA";
+static char screen_s_rs2 [] = "\033c\033[?1000l\033[?25h";
+static char screen_s_rc [] = "\0338";
+static char screen_s_vpa [] = "\033[%i%p1%dd";
+static char screen_s_sc [] = "\0337";
+static char screen_s_ind [] = "\012";
+static char screen_s_ri [] = "\033M";
+static char screen_s_sgr [] = "\033[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;";
+static char screen_s_hts [] = "\033H";
+static char screen_s_ht [] = "\011";
+static char screen_s_acsc [] = "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char screen_s_kcbt [] = "\033[Z";
+static char screen_s_enacs [] = "\033(B\033)0";
+static char screen_s_kend [] = "\033[4~";
+static char screen_s_kf11 [] = "\033[23~";
+static char screen_s_kf12 [] = "\033[24~";
+static char screen_s_el1 [] = "\033[1K";
+static char screen_s_op [] = "\033[39;49m";
+static char screen_s_kmous [] = "\033[M";
+static char screen_s_setaf [] = "\033[3%p1%dm";
+static char screen_s_setab [] = "\033[4%p1%dm";
+
+static char screen_bool_data[] = {
+ /* 0: bw */ FALSE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ FALSE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ FALSE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ FALSE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ TRUE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 screen_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ CANCELLED_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * screen_string_data[] = {
+ /* 0: cbt */ screen_s_cbt,
+ /* 1: bel */ screen_s_bel,
+ /* 2: cr */ screen_s_cr,
+ /* 3: csr */ screen_s_csr,
+ /* 4: tbc */ screen_s_tbc,
+ /* 5: clear */ screen_s_clear,
+ /* 6: el */ screen_s_el,
+ /* 7: ed */ screen_s_ed,
+ /* 8: hpa */ screen_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ screen_s_cup,
+ /* 11: cud1 */ screen_s_cud1,
+ /* 12: home */ screen_s_home,
+ /* 13: civis */ screen_s_civis,
+ /* 14: cub1 */ screen_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ screen_s_cnorm,
+ /* 17: cuf1 */ screen_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ screen_s_cuu1,
+ /* 20: cvvis */ screen_s_cvvis,
+ /* 21: dch1 */ screen_s_dch1,
+ /* 22: dl1 */ screen_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ screen_s_smacs,
+ /* 26: blink */ screen_s_blink,
+ /* 27: bold */ screen_s_bold,
+ /* 28: smcup */ screen_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ screen_s_dim,
+ /* 31: smir */ screen_s_smir,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ screen_s_rev,
+ /* 35: smso */ screen_s_smso,
+ /* 36: smul */ screen_s_smul,
+ /* 37: ech */ ABSENT_STRING,
+ /* 38: rmacs */ screen_s_rmacs,
+ /* 39: sgr0 */ screen_s_sgr0,
+ /* 40: rmcup */ screen_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ screen_s_rmir,
+ /* 43: rmso */ screen_s_rmso,
+ /* 44: rmul */ screen_s_rmul,
+ /* 45: flash */ screen_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ screen_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ screen_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ screen_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ screen_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ screen_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ screen_s_kf1,
+ /* 67: kf10 */ screen_s_kf10,
+ /* 68: kf2 */ screen_s_kf2,
+ /* 69: kf3 */ screen_s_kf3,
+ /* 70: kf4 */ screen_s_kf4,
+ /* 71: kf5 */ screen_s_kf5,
+ /* 72: kf6 */ screen_s_kf6,
+ /* 73: kf7 */ screen_s_kf7,
+ /* 74: kf8 */ screen_s_kf8,
+ /* 75: kf9 */ screen_s_kf9,
+ /* 76: khome */ screen_s_khome,
+ /* 77: kich1 */ screen_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ screen_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ screen_s_knp,
+ /* 82: kpp */ screen_s_kpp,
+ /* 83: kcuf1 */ screen_s_kcuf1,
+ /* 84: kind */ ABSENT_STRING,
+ /* 85: kri */ ABSENT_STRING,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ screen_s_kcuu1,
+ /* 88: rmkx */ screen_s_rmkx,
+ /* 89: smkx */ screen_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ ABSENT_STRING,
+ /* 102: smm */ ABSENT_STRING,
+ /* 103: nel */ screen_s_nel,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ screen_s_dch,
+ /* 106: dl */ screen_s_dl,
+ /* 107: cud */ screen_s_cud,
+ /* 108: ich */ screen_s_ich,
+ /* 109: indn */ screen_s_indn,
+ /* 110: il */ screen_s_il,
+ /* 111: cub */ screen_s_cub,
+ /* 112: cuf */ screen_s_cuf,
+ /* 113: rin */ ABSENT_STRING,
+ /* 114: cuu */ screen_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ ABSENT_STRING,
+ /* 119: mc4 */ ABSENT_STRING,
+ /* 120: mc5 */ ABSENT_STRING,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ ABSENT_STRING,
+ /* 123: rs2 */ screen_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ screen_s_rc,
+ /* 127: vpa */ screen_s_vpa,
+ /* 128: sc */ screen_s_sc,
+ /* 129: ind */ screen_s_ind,
+ /* 130: ri */ screen_s_ri,
+ /* 131: sgr */ screen_s_sgr,
+ /* 132: hts */ screen_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ screen_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ ABSENT_STRING,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ screen_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ screen_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ ABSENT_STRING,
+ /* 152: rmam */ ABSENT_STRING,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ screen_s_enacs,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ screen_s_kend,
+ /* 165: kent */ ABSENT_STRING,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ ABSENT_STRING,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ ABSENT_STRING,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ ABSENT_STRING,
+ /* 200: kIC */ ABSENT_STRING,
+ /* 201: kLFT */ ABSENT_STRING,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ ABSENT_STRING,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ ABSENT_STRING,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ ABSENT_STRING,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ screen_s_kf11,
+ /* 217: kf12 */ screen_s_kf12,
+ /* 218: kf13 */ ABSENT_STRING,
+ /* 219: kf14 */ ABSENT_STRING,
+ /* 220: kf15 */ ABSENT_STRING,
+ /* 221: kf16 */ ABSENT_STRING,
+ /* 222: kf17 */ ABSENT_STRING,
+ /* 223: kf18 */ ABSENT_STRING,
+ /* 224: kf19 */ ABSENT_STRING,
+ /* 225: kf20 */ ABSENT_STRING,
+ /* 226: kf21 */ ABSENT_STRING,
+ /* 227: kf22 */ ABSENT_STRING,
+ /* 228: kf23 */ ABSENT_STRING,
+ /* 229: kf24 */ ABSENT_STRING,
+ /* 230: kf25 */ ABSENT_STRING,
+ /* 231: kf26 */ ABSENT_STRING,
+ /* 232: kf27 */ ABSENT_STRING,
+ /* 233: kf28 */ ABSENT_STRING,
+ /* 234: kf29 */ ABSENT_STRING,
+ /* 235: kf30 */ ABSENT_STRING,
+ /* 236: kf31 */ ABSENT_STRING,
+ /* 237: kf32 */ ABSENT_STRING,
+ /* 238: kf33 */ ABSENT_STRING,
+ /* 239: kf34 */ ABSENT_STRING,
+ /* 240: kf35 */ ABSENT_STRING,
+ /* 241: kf36 */ ABSENT_STRING,
+ /* 242: kf37 */ ABSENT_STRING,
+ /* 243: kf38 */ ABSENT_STRING,
+ /* 244: kf39 */ ABSENT_STRING,
+ /* 245: kf40 */ ABSENT_STRING,
+ /* 246: kf41 */ ABSENT_STRING,
+ /* 247: kf42 */ ABSENT_STRING,
+ /* 248: kf43 */ ABSENT_STRING,
+ /* 249: kf44 */ ABSENT_STRING,
+ /* 250: kf45 */ ABSENT_STRING,
+ /* 251: kf46 */ ABSENT_STRING,
+ /* 252: kf47 */ ABSENT_STRING,
+ /* 253: kf48 */ ABSENT_STRING,
+ /* 254: kf49 */ ABSENT_STRING,
+ /* 255: kf50 */ ABSENT_STRING,
+ /* 256: kf51 */ ABSENT_STRING,
+ /* 257: kf52 */ ABSENT_STRING,
+ /* 258: kf53 */ ABSENT_STRING,
+ /* 259: kf54 */ ABSENT_STRING,
+ /* 260: kf55 */ ABSENT_STRING,
+ /* 261: kf56 */ ABSENT_STRING,
+ /* 262: kf57 */ ABSENT_STRING,
+ /* 263: kf58 */ ABSENT_STRING,
+ /* 264: kf59 */ ABSENT_STRING,
+ /* 265: kf60 */ ABSENT_STRING,
+ /* 266: kf61 */ ABSENT_STRING,
+ /* 267: kf62 */ ABSENT_STRING,
+ /* 268: kf63 */ ABSENT_STRING,
+ /* 269: el1 */ screen_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ ABSENT_STRING,
+ /* 294: u7 */ ABSENT_STRING,
+ /* 295: u8 */ ABSENT_STRING,
+ /* 296: u9 */ ABSENT_STRING,
+ /* 297: op */ screen_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ screen_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ screen_s_setaf,
+ /* 360: setab */ screen_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* screen.linux */
+
+static char screen_linux_alias_data[] = "screen.linux|screen in linux console";
+
+static char screen_linux_s_cbt [] = "\033[Z";
+static char screen_linux_s_bel [] = "\007";
+static char screen_linux_s_cr [] = "\015";
+static char screen_linux_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char screen_linux_s_tbc [] = "\033[3g";
+static char screen_linux_s_clear[] = "\033[H\033[J";
+static char screen_linux_s_el [] = "\033[K";
+static char screen_linux_s_ed [] = "\033[J";
+static char screen_linux_s_hpa [] = "\033[%i%p1%dG";
+static char screen_linux_s_cup [] = "\033[%i%p1%d;%p2%dH";
+static char screen_linux_s_cud1 [] = "\012";
+static char screen_linux_s_home [] = "\033[H";
+static char screen_linux_s_civis[] = "\033[?25l";
+static char screen_linux_s_cub1 [] = "\010";
+static char screen_linux_s_cnorm[] = "\033[34h\033[?25h";
+static char screen_linux_s_cuf1 [] = "\033[C";
+static char screen_linux_s_cuu1 [] = "\033M";
+static char screen_linux_s_cvvis[] = "\033[34l";
+static char screen_linux_s_dch1 [] = "\033[P";
+static char screen_linux_s_dl1 [] = "\033[M";
+static char screen_linux_s_smacs[] = "\016";
+static char screen_linux_s_blink[] = "\033[5m";
+static char screen_linux_s_bold [] = "\033[1m";
+static char screen_linux_s_smcup[] = "\033[?1049h";
+static char screen_linux_s_dim [] = "\033[2m";
+static char screen_linux_s_smir [] = "\033[4h";
+static char screen_linux_s_rev [] = "\033[7m";
+static char screen_linux_s_smso [] = "\033[3m";
+static char screen_linux_s_smul [] = "\033[4m";
+static char screen_linux_s_rmacs[] = "\017";
+static char screen_linux_s_sgr0 [] = "\033[m\017";
+static char screen_linux_s_rmcup[] = "\033[?1049l";
+static char screen_linux_s_rmir [] = "\033[4l";
+static char screen_linux_s_rmso [] = "\033[23m";
+static char screen_linux_s_rmul [] = "\033[24m";
+static char screen_linux_s_flash[] = "\033g";
+static char screen_linux_s_is2 [] = "\033)0";
+static char screen_linux_s_il1 [] = "\033[L";
+static char screen_linux_s_kbs [] = "\177";
+static char screen_linux_s_kdch1[] = "\033[3~";
+static char screen_linux_s_kcud1[] = "\033OB";
+static char screen_linux_s_kf1 [] = "\033OP";
+static char screen_linux_s_kf10 [] = "\033[21~";
+static char screen_linux_s_kf2 [] = "\033OQ";
+static char screen_linux_s_kf3 [] = "\033OR";
+static char screen_linux_s_kf4 [] = "\033OS";
+static char screen_linux_s_kf5 [] = "\033[15~";
+static char screen_linux_s_kf6 [] = "\033[17~";
+static char screen_linux_s_kf7 [] = "\033[18~";
+static char screen_linux_s_kf8 [] = "\033[19~";
+static char screen_linux_s_kf9 [] = "\033[20~";
+static char screen_linux_s_khome[] = "\033[1~";
+static char screen_linux_s_kich1[] = "\033[2~";
+static char screen_linux_s_kcub1[] = "\033OD";
+static char screen_linux_s_knp [] = "\033[6~";
+static char screen_linux_s_kpp [] = "\033[5~";
+static char screen_linux_s_kcuf1[] = "\033OC";
+static char screen_linux_s_kcuu1[] = "\033OA";
+static char screen_linux_s_rmkx [] = "\033[?1l\033>";
+static char screen_linux_s_smkx [] = "\033[?1h\033=";
+static char screen_linux_s_nel [] = "\033E";
+static char screen_linux_s_dch [] = "\033[%p1%dP";
+static char screen_linux_s_dl [] = "\033[%p1%dM";
+static char screen_linux_s_cud [] = "\033[%p1%dB";
+static char screen_linux_s_ich [] = "\033[%p1%d@";
+static char screen_linux_s_indn [] = "\033[%p1%dS";
+static char screen_linux_s_il [] = "\033[%p1%dL";
+static char screen_linux_s_cub [] = "\033[%p1%dD";
+static char screen_linux_s_cuf [] = "\033[%p1%dC";
+static char screen_linux_s_cuu [] = "\033[%p1%dA";
+static char screen_linux_s_rs2 [] = "\033c\033[?1000l\033[?25h";
+static char screen_linux_s_rc [] = "\0338";
+static char screen_linux_s_vpa [] = "\033[%i%p1%dd";
+static char screen_linux_s_sc [] = "\0337";
+static char screen_linux_s_ind [] = "\012";
+static char screen_linux_s_ri [] = "\033M";
+static char screen_linux_s_sgr [] = "\033[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;";
+static char screen_linux_s_hts [] = "\033H";
+static char screen_linux_s_ht [] = "\011";
+static char screen_linux_s_acsc [] = "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char screen_linux_s_enacs[] = "\033(B\033)0";
+static char screen_linux_s_kend [] = "\033[4~";
+static char screen_linux_s_kf11 [] = "\033[23~";
+static char screen_linux_s_kf12 [] = "\033[24~";
+static char screen_linux_s_el1 [] = "\033[1K";
+static char screen_linux_s_op [] = "\033[39;49m";
+static char screen_linux_s_kmous[] = "\033[M";
+static char screen_linux_s_setaf[] = "\033[3%p1%dm";
+static char screen_linux_s_setab[] = "\033[4%p1%dm";
+
+static char screen_linux_bool_data[] = {
+ /* 0: bw */ TRUE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ FALSE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ FALSE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ FALSE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ TRUE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 screen_linux_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * screen_linux_string_data[] = {
+ /* 0: cbt */ screen_linux_s_cbt,
+ /* 1: bel */ screen_linux_s_bel,
+ /* 2: cr */ screen_linux_s_cr,
+ /* 3: csr */ screen_linux_s_csr,
+ /* 4: tbc */ screen_linux_s_tbc,
+ /* 5: clear */ screen_linux_s_clear,
+ /* 6: el */ screen_linux_s_el,
+ /* 7: ed */ screen_linux_s_ed,
+ /* 8: hpa */ screen_linux_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ screen_linux_s_cup,
+ /* 11: cud1 */ screen_linux_s_cud1,
+ /* 12: home */ screen_linux_s_home,
+ /* 13: civis */ screen_linux_s_civis,
+ /* 14: cub1 */ screen_linux_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ screen_linux_s_cnorm,
+ /* 17: cuf1 */ screen_linux_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ screen_linux_s_cuu1,
+ /* 20: cvvis */ screen_linux_s_cvvis,
+ /* 21: dch1 */ screen_linux_s_dch1,
+ /* 22: dl1 */ screen_linux_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ screen_linux_s_smacs,
+ /* 26: blink */ screen_linux_s_blink,
+ /* 27: bold */ screen_linux_s_bold,
+ /* 28: smcup */ screen_linux_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ screen_linux_s_dim,
+ /* 31: smir */ screen_linux_s_smir,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ screen_linux_s_rev,
+ /* 35: smso */ screen_linux_s_smso,
+ /* 36: smul */ screen_linux_s_smul,
+ /* 37: ech */ ABSENT_STRING,
+ /* 38: rmacs */ screen_linux_s_rmacs,
+ /* 39: sgr0 */ screen_linux_s_sgr0,
+ /* 40: rmcup */ screen_linux_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ screen_linux_s_rmir,
+ /* 43: rmso */ screen_linux_s_rmso,
+ /* 44: rmul */ screen_linux_s_rmul,
+ /* 45: flash */ screen_linux_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ screen_linux_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ screen_linux_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ screen_linux_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ screen_linux_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ screen_linux_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ screen_linux_s_kf1,
+ /* 67: kf10 */ screen_linux_s_kf10,
+ /* 68: kf2 */ screen_linux_s_kf2,
+ /* 69: kf3 */ screen_linux_s_kf3,
+ /* 70: kf4 */ screen_linux_s_kf4,
+ /* 71: kf5 */ screen_linux_s_kf5,
+ /* 72: kf6 */ screen_linux_s_kf6,
+ /* 73: kf7 */ screen_linux_s_kf7,
+ /* 74: kf8 */ screen_linux_s_kf8,
+ /* 75: kf9 */ screen_linux_s_kf9,
+ /* 76: khome */ screen_linux_s_khome,
+ /* 77: kich1 */ screen_linux_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ screen_linux_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ screen_linux_s_knp,
+ /* 82: kpp */ screen_linux_s_kpp,
+ /* 83: kcuf1 */ screen_linux_s_kcuf1,
+ /* 84: kind */ ABSENT_STRING,
+ /* 85: kri */ ABSENT_STRING,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ screen_linux_s_kcuu1,
+ /* 88: rmkx */ screen_linux_s_rmkx,
+ /* 89: smkx */ screen_linux_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ ABSENT_STRING,
+ /* 102: smm */ ABSENT_STRING,
+ /* 103: nel */ screen_linux_s_nel,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ screen_linux_s_dch,
+ /* 106: dl */ screen_linux_s_dl,
+ /* 107: cud */ screen_linux_s_cud,
+ /* 108: ich */ screen_linux_s_ich,
+ /* 109: indn */ screen_linux_s_indn,
+ /* 110: il */ screen_linux_s_il,
+ /* 111: cub */ screen_linux_s_cub,
+ /* 112: cuf */ screen_linux_s_cuf,
+ /* 113: rin */ ABSENT_STRING,
+ /* 114: cuu */ screen_linux_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ ABSENT_STRING,
+ /* 119: mc4 */ ABSENT_STRING,
+ /* 120: mc5 */ ABSENT_STRING,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ ABSENT_STRING,
+ /* 123: rs2 */ screen_linux_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ screen_linux_s_rc,
+ /* 127: vpa */ screen_linux_s_vpa,
+ /* 128: sc */ screen_linux_s_sc,
+ /* 129: ind */ screen_linux_s_ind,
+ /* 130: ri */ screen_linux_s_ri,
+ /* 131: sgr */ screen_linux_s_sgr,
+ /* 132: hts */ screen_linux_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ screen_linux_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ ABSENT_STRING,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ screen_linux_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ CANCELLED_STRING,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ ABSENT_STRING,
+ /* 152: rmam */ ABSENT_STRING,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ screen_linux_s_enacs,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ screen_linux_s_kend,
+ /* 165: kent */ ABSENT_STRING,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ ABSENT_STRING,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ ABSENT_STRING,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ ABSENT_STRING,
+ /* 200: kIC */ ABSENT_STRING,
+ /* 201: kLFT */ ABSENT_STRING,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ ABSENT_STRING,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ ABSENT_STRING,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ ABSENT_STRING,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ screen_linux_s_kf11,
+ /* 217: kf12 */ screen_linux_s_kf12,
+ /* 218: kf13 */ ABSENT_STRING,
+ /* 219: kf14 */ ABSENT_STRING,
+ /* 220: kf15 */ ABSENT_STRING,
+ /* 221: kf16 */ ABSENT_STRING,
+ /* 222: kf17 */ ABSENT_STRING,
+ /* 223: kf18 */ ABSENT_STRING,
+ /* 224: kf19 */ ABSENT_STRING,
+ /* 225: kf20 */ ABSENT_STRING,
+ /* 226: kf21 */ ABSENT_STRING,
+ /* 227: kf22 */ ABSENT_STRING,
+ /* 228: kf23 */ ABSENT_STRING,
+ /* 229: kf24 */ ABSENT_STRING,
+ /* 230: kf25 */ ABSENT_STRING,
+ /* 231: kf26 */ ABSENT_STRING,
+ /* 232: kf27 */ ABSENT_STRING,
+ /* 233: kf28 */ ABSENT_STRING,
+ /* 234: kf29 */ ABSENT_STRING,
+ /* 235: kf30 */ ABSENT_STRING,
+ /* 236: kf31 */ ABSENT_STRING,
+ /* 237: kf32 */ ABSENT_STRING,
+ /* 238: kf33 */ ABSENT_STRING,
+ /* 239: kf34 */ ABSENT_STRING,
+ /* 240: kf35 */ ABSENT_STRING,
+ /* 241: kf36 */ ABSENT_STRING,
+ /* 242: kf37 */ ABSENT_STRING,
+ /* 243: kf38 */ ABSENT_STRING,
+ /* 244: kf39 */ ABSENT_STRING,
+ /* 245: kf40 */ ABSENT_STRING,
+ /* 246: kf41 */ ABSENT_STRING,
+ /* 247: kf42 */ ABSENT_STRING,
+ /* 248: kf43 */ ABSENT_STRING,
+ /* 249: kf44 */ ABSENT_STRING,
+ /* 250: kf45 */ ABSENT_STRING,
+ /* 251: kf46 */ ABSENT_STRING,
+ /* 252: kf47 */ ABSENT_STRING,
+ /* 253: kf48 */ ABSENT_STRING,
+ /* 254: kf49 */ ABSENT_STRING,
+ /* 255: kf50 */ ABSENT_STRING,
+ /* 256: kf51 */ ABSENT_STRING,
+ /* 257: kf52 */ ABSENT_STRING,
+ /* 258: kf53 */ ABSENT_STRING,
+ /* 259: kf54 */ ABSENT_STRING,
+ /* 260: kf55 */ ABSENT_STRING,
+ /* 261: kf56 */ ABSENT_STRING,
+ /* 262: kf57 */ ABSENT_STRING,
+ /* 263: kf58 */ ABSENT_STRING,
+ /* 264: kf59 */ ABSENT_STRING,
+ /* 265: kf60 */ ABSENT_STRING,
+ /* 266: kf61 */ ABSENT_STRING,
+ /* 267: kf62 */ ABSENT_STRING,
+ /* 268: kf63 */ ABSENT_STRING,
+ /* 269: el1 */ screen_linux_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ ABSENT_STRING,
+ /* 294: u7 */ ABSENT_STRING,
+ /* 295: u8 */ ABSENT_STRING,
+ /* 296: u9 */ ABSENT_STRING,
+ /* 297: op */ screen_linux_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ screen_linux_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ screen_linux_s_setaf,
+ /* 360: setab */ screen_linux_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* screen.rxvt */
+
+static char screen_rxvt_alias_data[] = "screen.rxvt|screen in rxvt";
+
+static char screen_rxvt_s_cbt [] = "\033[Z";
+static char screen_rxvt_s_bel [] = "\007";
+static char screen_rxvt_s_cr [] = "\015";
+static char screen_rxvt_s_csr [] = "\033[%i%p1%d;%p2%dr";
+static char screen_rxvt_s_tbc [] = "\033[3g";
+static char screen_rxvt_s_clear [] = "\033[H\033[J";
+static char screen_rxvt_s_el [] = "\033[K";
+static char screen_rxvt_s_ed [] = "\033[J";
+static char screen_rxvt_s_hpa [] = "\033[%i%p1%dG";
+static char screen_rxvt_s_cup [] = "\033[%i%p1%d;%p2%dH";
+static char screen_rxvt_s_cud1 [] = "\012";
+static char screen_rxvt_s_home [] = "\033[H";
+static char screen_rxvt_s_civis [] = "\033[?25l";
+static char screen_rxvt_s_cub1 [] = "\010";
+static char screen_rxvt_s_cnorm [] = "\033[34h\033[?25h";
+static char screen_rxvt_s_cuf1 [] = "\033[C";
+static char screen_rxvt_s_cuu1 [] = "\033M";
+static char screen_rxvt_s_dch1 [] = "\033[P";
+static char screen_rxvt_s_dl1 [] = "\033[M";
+static char screen_rxvt_s_smacs [] = "\016";
+static char screen_rxvt_s_blink [] = "\033[5m";
+static char screen_rxvt_s_bold [] = "\033[1m";
+static char screen_rxvt_s_smcup [] = "\033[?1049h";
+static char screen_rxvt_s_dim [] = "\033[2m";
+static char screen_rxvt_s_smir [] = "\033[4h";
+static char screen_rxvt_s_rev [] = "\033[7m";
+static char screen_rxvt_s_smso [] = "\033[3m";
+static char screen_rxvt_s_smul [] = "\033[4m";
+static char screen_rxvt_s_rmacs [] = "\017";
+static char screen_rxvt_s_sgr0 [] = "\033[m\017";
+static char screen_rxvt_s_rmcup [] = "\033[?1049l";
+static char screen_rxvt_s_rmir [] = "\033[4l";
+static char screen_rxvt_s_rmso [] = "\033[23m";
+static char screen_rxvt_s_rmul [] = "\033[24m";
+static char screen_rxvt_s_is2 [] = "\033)0";
+static char screen_rxvt_s_il1 [] = "\033[L";
+static char screen_rxvt_s_kbs [] = "\010";
+static char screen_rxvt_s_kdch1 [] = "\033[3~";
+static char screen_rxvt_s_kcud1 [] = "\033OB";
+static char screen_rxvt_s_kel [] = "\033[8^";
+static char screen_rxvt_s_kf1 [] = "\033OP";
+static char screen_rxvt_s_kf10 [] = "\033[21~";
+static char screen_rxvt_s_kf2 [] = "\033OQ";
+static char screen_rxvt_s_kf3 [] = "\033OR";
+static char screen_rxvt_s_kf4 [] = "\033OS";
+static char screen_rxvt_s_kf5 [] = "\033[15~";
+static char screen_rxvt_s_kf6 [] = "\033[17~";
+static char screen_rxvt_s_kf7 [] = "\033[18~";
+static char screen_rxvt_s_kf8 [] = "\033[19~";
+static char screen_rxvt_s_kf9 [] = "\033[20~";
+static char screen_rxvt_s_khome [] = "\033[1~";
+static char screen_rxvt_s_kich1 [] = "\033[2~";
+static char screen_rxvt_s_kcub1 [] = "\033OD";
+static char screen_rxvt_s_knp [] = "\033[6~";
+static char screen_rxvt_s_kpp [] = "\033[5~";
+static char screen_rxvt_s_kcuf1 [] = "\033OC";
+static char screen_rxvt_s_kind [] = "\033[a";
+static char screen_rxvt_s_kri [] = "\033[b";
+static char screen_rxvt_s_kcuu1 [] = "\033OA";
+static char screen_rxvt_s_rmkx [] = "\033[?1l\033>";
+static char screen_rxvt_s_smkx [] = "\033[?1h\033=";
+static char screen_rxvt_s_nel [] = "\033E";
+static char screen_rxvt_s_dch [] = "\033[%p1%dP";
+static char screen_rxvt_s_dl [] = "\033[%p1%dM";
+static char screen_rxvt_s_cud [] = "\033[%p1%dB";
+static char screen_rxvt_s_ich [] = "\033[%p1%d@";
+static char screen_rxvt_s_indn [] = "\033[%p1%dS";
+static char screen_rxvt_s_il [] = "\033[%p1%dL";
+static char screen_rxvt_s_cub [] = "\033[%p1%dD";
+static char screen_rxvt_s_cuf [] = "\033[%p1%dC";
+static char screen_rxvt_s_cuu [] = "\033[%p1%dA";
+static char screen_rxvt_s_rs2 [] = "\033c\033[?1000l\033[?25h";
+static char screen_rxvt_s_rc [] = "\0338";
+static char screen_rxvt_s_vpa [] = "\033[%i%p1%dd";
+static char screen_rxvt_s_sc [] = "\0337";
+static char screen_rxvt_s_ind [] = "\012";
+static char screen_rxvt_s_ri [] = "\033M";
+static char screen_rxvt_s_sgr [] = "\033[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;";
+static char screen_rxvt_s_hts [] = "\033H";
+static char screen_rxvt_s_ht [] = "\011";
+static char screen_rxvt_s_ka1 [] = "\033Ow";
+static char screen_rxvt_s_ka3 [] = "\033Oy";
+static char screen_rxvt_s_kb2 [] = "\033Ou";
+static char screen_rxvt_s_kc1 [] = "\033Oq";
+static char screen_rxvt_s_kc3 [] = "\033Os";
+static char screen_rxvt_s_acsc [] = "++,,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char screen_rxvt_s_kcbt [] = "\033[Z";
+static char screen_rxvt_s_enacs [] = "\033(B\033)0";
+static char screen_rxvt_s_kend [] = "\033[4~";
+static char screen_rxvt_s_kent [] = "\033OM";
+static char screen_rxvt_s_kDC [] = "\033[3$";
+static char screen_rxvt_s_kEND [] = "\033[8$";
+static char screen_rxvt_s_kHOM [] = "\033[7$";
+static char screen_rxvt_s_kIC [] = "\033[2$";
+static char screen_rxvt_s_kLFT [] = "\033[d";
+static char screen_rxvt_s_kNXT [] = "\033[6$";
+static char screen_rxvt_s_kPRV [] = "\033[5$";
+static char screen_rxvt_s_kRIT [] = "\033[c";
+static char screen_rxvt_s_kf11 [] = "\033[23~";
+static char screen_rxvt_s_kf12 [] = "\033[24~";
+static char screen_rxvt_s_kf13 [] = "\033[25~";
+static char screen_rxvt_s_kf14 [] = "\033[26~";
+static char screen_rxvt_s_kf15 [] = "\033[28~";
+static char screen_rxvt_s_kf16 [] = "\033[29~";
+static char screen_rxvt_s_kf17 [] = "\033[31~";
+static char screen_rxvt_s_kf18 [] = "\033[32~";
+static char screen_rxvt_s_kf19 [] = "\033[33~";
+static char screen_rxvt_s_kf20 [] = "\033[34~";
+static char screen_rxvt_s_kf21 [] = "\033[23$";
+static char screen_rxvt_s_kf22 [] = "\033[24$";
+static char screen_rxvt_s_kf23 [] = "\033[11^";
+static char screen_rxvt_s_kf24 [] = "\033[12^";
+static char screen_rxvt_s_kf25 [] = "\033[13^";
+static char screen_rxvt_s_kf26 [] = "\033[14^";
+static char screen_rxvt_s_kf27 [] = "\033[15^";
+static char screen_rxvt_s_kf28 [] = "\033[17^";
+static char screen_rxvt_s_kf29 [] = "\033[18^";
+static char screen_rxvt_s_kf30 [] = "\033[19^";
+static char screen_rxvt_s_kf31 [] = "\033[20^";
+static char screen_rxvt_s_kf32 [] = "\033[21^";
+static char screen_rxvt_s_kf33 [] = "\033[23^";
+static char screen_rxvt_s_kf34 [] = "\033[24^";
+static char screen_rxvt_s_kf35 [] = "\033[25^";
+static char screen_rxvt_s_kf36 [] = "\033[26^";
+static char screen_rxvt_s_kf37 [] = "\033[28^";
+static char screen_rxvt_s_kf38 [] = "\033[29^";
+static char screen_rxvt_s_kf39 [] = "\033[31^";
+static char screen_rxvt_s_kf40 [] = "\033[32^";
+static char screen_rxvt_s_kf41 [] = "\033[33^";
+static char screen_rxvt_s_kf42 [] = "\033[34^";
+static char screen_rxvt_s_kf43 [] = "\033[23@";
+static char screen_rxvt_s_kf44 [] = "\033[24@";
+static char screen_rxvt_s_el1 [] = "\033[1K";
+static char screen_rxvt_s_u6 [] = "\033[%i%d;%dR";
+static char screen_rxvt_s_u7 [] = "\033[6n";
+static char screen_rxvt_s_u8 [] = "\033[?1;2c";
+static char screen_rxvt_s_u9 [] = "\033[c";
+static char screen_rxvt_s_op [] = "\033[39;49m";
+static char screen_rxvt_s_kmous [] = "\033[M";
+static char screen_rxvt_s_setaf [] = "\033[3%p1%dm";
+static char screen_rxvt_s_setab [] = "\033[4%p1%dm";
+
+static char screen_rxvt_bool_data[] = {
+ /* 0: bw */ TRUE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ FALSE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ FALSE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ FALSE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ TRUE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 screen_rxvt_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * screen_rxvt_string_data[] = {
+ /* 0: cbt */ screen_rxvt_s_cbt,
+ /* 1: bel */ screen_rxvt_s_bel,
+ /* 2: cr */ screen_rxvt_s_cr,
+ /* 3: csr */ screen_rxvt_s_csr,
+ /* 4: tbc */ screen_rxvt_s_tbc,
+ /* 5: clear */ screen_rxvt_s_clear,
+ /* 6: el */ screen_rxvt_s_el,
+ /* 7: ed */ screen_rxvt_s_ed,
+ /* 8: hpa */ screen_rxvt_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ screen_rxvt_s_cup,
+ /* 11: cud1 */ screen_rxvt_s_cud1,
+ /* 12: home */ screen_rxvt_s_home,
+ /* 13: civis */ screen_rxvt_s_civis,
+ /* 14: cub1 */ screen_rxvt_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ screen_rxvt_s_cnorm,
+ /* 17: cuf1 */ screen_rxvt_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ screen_rxvt_s_cuu1,
+ /* 20: cvvis */ CANCELLED_STRING,
+ /* 21: dch1 */ screen_rxvt_s_dch1,
+ /* 22: dl1 */ screen_rxvt_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ screen_rxvt_s_smacs,
+ /* 26: blink */ screen_rxvt_s_blink,
+ /* 27: bold */ screen_rxvt_s_bold,
+ /* 28: smcup */ screen_rxvt_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ screen_rxvt_s_dim,
+ /* 31: smir */ screen_rxvt_s_smir,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ screen_rxvt_s_rev,
+ /* 35: smso */ screen_rxvt_s_smso,
+ /* 36: smul */ screen_rxvt_s_smul,
+ /* 37: ech */ ABSENT_STRING,
+ /* 38: rmacs */ screen_rxvt_s_rmacs,
+ /* 39: sgr0 */ screen_rxvt_s_sgr0,
+ /* 40: rmcup */ screen_rxvt_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ screen_rxvt_s_rmir,
+ /* 43: rmso */ screen_rxvt_s_rmso,
+ /* 44: rmul */ screen_rxvt_s_rmul,
+ /* 45: flash */ CANCELLED_STRING,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ screen_rxvt_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ screen_rxvt_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ screen_rxvt_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ screen_rxvt_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ screen_rxvt_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ screen_rxvt_s_kel,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ screen_rxvt_s_kf1,
+ /* 67: kf10 */ screen_rxvt_s_kf10,
+ /* 68: kf2 */ screen_rxvt_s_kf2,
+ /* 69: kf3 */ screen_rxvt_s_kf3,
+ /* 70: kf4 */ screen_rxvt_s_kf4,
+ /* 71: kf5 */ screen_rxvt_s_kf5,
+ /* 72: kf6 */ screen_rxvt_s_kf6,
+ /* 73: kf7 */ screen_rxvt_s_kf7,
+ /* 74: kf8 */ screen_rxvt_s_kf8,
+ /* 75: kf9 */ screen_rxvt_s_kf9,
+ /* 76: khome */ screen_rxvt_s_khome,
+ /* 77: kich1 */ screen_rxvt_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ screen_rxvt_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ screen_rxvt_s_knp,
+ /* 82: kpp */ screen_rxvt_s_kpp,
+ /* 83: kcuf1 */ screen_rxvt_s_kcuf1,
+ /* 84: kind */ screen_rxvt_s_kind,
+ /* 85: kri */ screen_rxvt_s_kri,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ screen_rxvt_s_kcuu1,
+ /* 88: rmkx */ screen_rxvt_s_rmkx,
+ /* 89: smkx */ screen_rxvt_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ ABSENT_STRING,
+ /* 102: smm */ ABSENT_STRING,
+ /* 103: nel */ screen_rxvt_s_nel,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ screen_rxvt_s_dch,
+ /* 106: dl */ screen_rxvt_s_dl,
+ /* 107: cud */ screen_rxvt_s_cud,
+ /* 108: ich */ screen_rxvt_s_ich,
+ /* 109: indn */ screen_rxvt_s_indn,
+ /* 110: il */ screen_rxvt_s_il,
+ /* 111: cub */ screen_rxvt_s_cub,
+ /* 112: cuf */ screen_rxvt_s_cuf,
+ /* 113: rin */ ABSENT_STRING,
+ /* 114: cuu */ screen_rxvt_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ ABSENT_STRING,
+ /* 119: mc4 */ ABSENT_STRING,
+ /* 120: mc5 */ ABSENT_STRING,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ ABSENT_STRING,
+ /* 123: rs2 */ screen_rxvt_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ screen_rxvt_s_rc,
+ /* 127: vpa */ screen_rxvt_s_vpa,
+ /* 128: sc */ screen_rxvt_s_sc,
+ /* 129: ind */ screen_rxvt_s_ind,
+ /* 130: ri */ screen_rxvt_s_ri,
+ /* 131: sgr */ screen_rxvt_s_sgr,
+ /* 132: hts */ screen_rxvt_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ screen_rxvt_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ screen_rxvt_s_ka1,
+ /* 140: ka3 */ screen_rxvt_s_ka3,
+ /* 141: kb2 */ screen_rxvt_s_kb2,
+ /* 142: kc1 */ screen_rxvt_s_kc1,
+ /* 143: kc3 */ screen_rxvt_s_kc3,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ screen_rxvt_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ screen_rxvt_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ ABSENT_STRING,
+ /* 152: rmam */ ABSENT_STRING,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ screen_rxvt_s_enacs,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ screen_rxvt_s_kend,
+ /* 165: kent */ screen_rxvt_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ screen_rxvt_s_kDC,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ screen_rxvt_s_kEND,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ screen_rxvt_s_kHOM,
+ /* 200: kIC */ screen_rxvt_s_kIC,
+ /* 201: kLFT */ screen_rxvt_s_kLFT,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ screen_rxvt_s_kNXT,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ screen_rxvt_s_kPRV,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ screen_rxvt_s_kRIT,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ screen_rxvt_s_kf11,
+ /* 217: kf12 */ screen_rxvt_s_kf12,
+ /* 218: kf13 */ screen_rxvt_s_kf13,
+ /* 219: kf14 */ screen_rxvt_s_kf14,
+ /* 220: kf15 */ screen_rxvt_s_kf15,
+ /* 221: kf16 */ screen_rxvt_s_kf16,
+ /* 222: kf17 */ screen_rxvt_s_kf17,
+ /* 223: kf18 */ screen_rxvt_s_kf18,
+ /* 224: kf19 */ screen_rxvt_s_kf19,
+ /* 225: kf20 */ screen_rxvt_s_kf20,
+ /* 226: kf21 */ screen_rxvt_s_kf21,
+ /* 227: kf22 */ screen_rxvt_s_kf22,
+ /* 228: kf23 */ screen_rxvt_s_kf23,
+ /* 229: kf24 */ screen_rxvt_s_kf24,
+ /* 230: kf25 */ screen_rxvt_s_kf25,
+ /* 231: kf26 */ screen_rxvt_s_kf26,
+ /* 232: kf27 */ screen_rxvt_s_kf27,
+ /* 233: kf28 */ screen_rxvt_s_kf28,
+ /* 234: kf29 */ screen_rxvt_s_kf29,
+ /* 235: kf30 */ screen_rxvt_s_kf30,
+ /* 236: kf31 */ screen_rxvt_s_kf31,
+ /* 237: kf32 */ screen_rxvt_s_kf32,
+ /* 238: kf33 */ screen_rxvt_s_kf33,
+ /* 239: kf34 */ screen_rxvt_s_kf34,
+ /* 240: kf35 */ screen_rxvt_s_kf35,
+ /* 241: kf36 */ screen_rxvt_s_kf36,
+ /* 242: kf37 */ screen_rxvt_s_kf37,
+ /* 243: kf38 */ screen_rxvt_s_kf38,
+ /* 244: kf39 */ screen_rxvt_s_kf39,
+ /* 245: kf40 */ screen_rxvt_s_kf40,
+ /* 246: kf41 */ screen_rxvt_s_kf41,
+ /* 247: kf42 */ screen_rxvt_s_kf42,
+ /* 248: kf43 */ screen_rxvt_s_kf43,
+ /* 249: kf44 */ screen_rxvt_s_kf44,
+ /* 250: kf45 */ ABSENT_STRING,
+ /* 251: kf46 */ ABSENT_STRING,
+ /* 252: kf47 */ ABSENT_STRING,
+ /* 253: kf48 */ ABSENT_STRING,
+ /* 254: kf49 */ ABSENT_STRING,
+ /* 255: kf50 */ ABSENT_STRING,
+ /* 256: kf51 */ ABSENT_STRING,
+ /* 257: kf52 */ ABSENT_STRING,
+ /* 258: kf53 */ ABSENT_STRING,
+ /* 259: kf54 */ ABSENT_STRING,
+ /* 260: kf55 */ ABSENT_STRING,
+ /* 261: kf56 */ ABSENT_STRING,
+ /* 262: kf57 */ ABSENT_STRING,
+ /* 263: kf58 */ ABSENT_STRING,
+ /* 264: kf59 */ ABSENT_STRING,
+ /* 265: kf60 */ ABSENT_STRING,
+ /* 266: kf61 */ ABSENT_STRING,
+ /* 267: kf62 */ ABSENT_STRING,
+ /* 268: kf63 */ ABSENT_STRING,
+ /* 269: el1 */ screen_rxvt_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ screen_rxvt_s_u6,
+ /* 294: u7 */ screen_rxvt_s_u7,
+ /* 295: u8 */ screen_rxvt_s_u8,
+ /* 296: u9 */ screen_rxvt_s_u9,
+ /* 297: op */ screen_rxvt_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ screen_rxvt_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ screen_rxvt_s_setaf,
+ /* 360: setab */ screen_rxvt_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* screen.xterm-new */
+
+static char screen_xterm_xfree86_alias_data[] = "screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm";
+
+static char screen_xterm_xfree86_s_cbt[] = "\033[Z";
+static char screen_xterm_xfree86_s_bel[] = "\007";
+static char screen_xterm_xfree86_s_cr[] = "\015";
+static char screen_xterm_xfree86_s_csr[] = "\033[%i%p1%d;%p2%dr";
+static char screen_xterm_xfree86_s_tbc[] = "\033[3g";
+static char screen_xterm_xfree86_s_clear[] = "\033[H\033[2J";
+static char screen_xterm_xfree86_s_el[] = "\033[K";
+static char screen_xterm_xfree86_s_ed[] = "\033[J";
+static char screen_xterm_xfree86_s_hpa[] = "\033[%i%p1%dG";
+static char screen_xterm_xfree86_s_cup[] = "\033[%i%p1%d;%p2%dH";
+static char screen_xterm_xfree86_s_cud1[] = "\012";
+static char screen_xterm_xfree86_s_home[] = "\033[H";
+static char screen_xterm_xfree86_s_civis[] = "\033[?25l";
+static char screen_xterm_xfree86_s_cub1[] = "\010";
+static char screen_xterm_xfree86_s_cnorm[] = "\033[?12l\033[?25h";
+static char screen_xterm_xfree86_s_cuf1[] = "\033[C";
+static char screen_xterm_xfree86_s_cuu1[] = "\033[A";
+static char screen_xterm_xfree86_s_cvvis[] = "\033[?12;25h";
+static char screen_xterm_xfree86_s_dch1[] = "\033[P";
+static char screen_xterm_xfree86_s_dl1[] = "\033[M";
+static char screen_xterm_xfree86_s_smacs[] = "\033(0";
+static char screen_xterm_xfree86_s_blink[] = "\033[5m";
+static char screen_xterm_xfree86_s_bold[] = "\033[1m";
+static char screen_xterm_xfree86_s_smcup[] = "\033[?1049h\033[22;0;0t";
+static char screen_xterm_xfree86_s_dim[] = "\033[2m";
+static char screen_xterm_xfree86_s_smir[] = "\033[4h";
+static char screen_xterm_xfree86_s_rev[] = "\033[7m";
+static char screen_xterm_xfree86_s_smso[] = "\033[7m";
+static char screen_xterm_xfree86_s_smul[] = "\033[4m";
+static char screen_xterm_xfree86_s_ech[] = "\033[%p1%dX";
+static char screen_xterm_xfree86_s_rmacs[] = "\033(B";
+static char screen_xterm_xfree86_s_sgr0[] = "\033(B\033[m";
+static char screen_xterm_xfree86_s_rmcup[] = "\033[?1049l\033[23;0;0t";
+static char screen_xterm_xfree86_s_rmir[] = "\033[4l";
+static char screen_xterm_xfree86_s_rmso[] = "\033[27m";
+static char screen_xterm_xfree86_s_rmul[] = "\033[24m";
+static char screen_xterm_xfree86_s_flash[] = "\033[?5h$<100/>\033[?5l";
+static char screen_xterm_xfree86_s_is2[] = "\033[!p\033[?3;4l\033[4l\033>";
+static char screen_xterm_xfree86_s_il1[] = "\033[L";
+static char screen_xterm_xfree86_s_kbs[] = "\010";
+static char screen_xterm_xfree86_s_kdch1[] = "\033[3~";
+static char screen_xterm_xfree86_s_kcud1[] = "\033OB";
+static char screen_xterm_xfree86_s_kf1[] = "\033OP";
+static char screen_xterm_xfree86_s_kf10[] = "\033[21~";
+static char screen_xterm_xfree86_s_kf2[] = "\033OQ";
+static char screen_xterm_xfree86_s_kf3[] = "\033OR";
+static char screen_xterm_xfree86_s_kf4[] = "\033OS";
+static char screen_xterm_xfree86_s_kf5[] = "\033[15~";
+static char screen_xterm_xfree86_s_kf6[] = "\033[17~";
+static char screen_xterm_xfree86_s_kf7[] = "\033[18~";
+static char screen_xterm_xfree86_s_kf8[] = "\033[19~";
+static char screen_xterm_xfree86_s_kf9[] = "\033[20~";
+static char screen_xterm_xfree86_s_khome[] = "\033[1~";
+static char screen_xterm_xfree86_s_kich1[] = "\033[2~";
+static char screen_xterm_xfree86_s_kcub1[] = "\033OD";
+static char screen_xterm_xfree86_s_knp[] = "\033[6~";
+static char screen_xterm_xfree86_s_kpp[] = "\033[5~";
+static char screen_xterm_xfree86_s_kcuf1[] = "\033OC";
+static char screen_xterm_xfree86_s_kind[] = "\033[1;2B";
+static char screen_xterm_xfree86_s_kri[] = "\033[1;2A";
+static char screen_xterm_xfree86_s_kcuu1[] = "\033OA";
+static char screen_xterm_xfree86_s_rmkx[] = "\033[?1l\033>";
+static char screen_xterm_xfree86_s_smkx[] = "\033[?1h\033=";
+static char screen_xterm_xfree86_s_rmm[] = "\033[?1034l";
+static char screen_xterm_xfree86_s_smm[] = "\033[?1034h";
+static char screen_xterm_xfree86_s_dch[] = "\033[%p1%dP";
+static char screen_xterm_xfree86_s_dl[] = "\033[%p1%dM";
+static char screen_xterm_xfree86_s_cud[] = "\033[%p1%dB";
+static char screen_xterm_xfree86_s_ich[] = "\033[%p1%d@";
+static char screen_xterm_xfree86_s_indn[] = "\033[%p1%dS";
+static char screen_xterm_xfree86_s_il[] = "\033[%p1%dL";
+static char screen_xterm_xfree86_s_cub[] = "\033[%p1%dD";
+static char screen_xterm_xfree86_s_cuf[] = "\033[%p1%dC";
+static char screen_xterm_xfree86_s_rin[] = "\033[%p1%dT";
+static char screen_xterm_xfree86_s_cuu[] = "\033[%p1%dA";
+static char screen_xterm_xfree86_s_mc0[] = "\033[i";
+static char screen_xterm_xfree86_s_mc4[] = "\033[4i";
+static char screen_xterm_xfree86_s_mc5[] = "\033[5i";
+static char screen_xterm_xfree86_s_rs1[] = "\033c";
+static char screen_xterm_xfree86_s_rs2[] = "\033[!p\033[?3;4l\033[4l\033>";
+static char screen_xterm_xfree86_s_rc[] = "\0338";
+static char screen_xterm_xfree86_s_vpa[] = "\033[%i%p1%dd";
+static char screen_xterm_xfree86_s_sc[] = "\0337";
+static char screen_xterm_xfree86_s_ind[] = "\012";
+static char screen_xterm_xfree86_s_ri[] = "\033M";
+static char screen_xterm_xfree86_s_sgr[] = "%?%p9%t\033(0%e\033(B%;\033[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;m";
+static char screen_xterm_xfree86_s_hts[] = "\033H";
+static char screen_xterm_xfree86_s_ht[] = "\011";
+static char screen_xterm_xfree86_s_kb2[] = "\033OE";
+static char screen_xterm_xfree86_s_acsc[] = "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char screen_xterm_xfree86_s_kcbt[] = "\033[Z";
+static char screen_xterm_xfree86_s_smam[] = "\033[?7h";
+static char screen_xterm_xfree86_s_rmam[] = "\033[?7l";
+static char screen_xterm_xfree86_s_kend[] = "\033[4~";
+static char screen_xterm_xfree86_s_kent[] = "\033OM";
+static char screen_xterm_xfree86_s_kDC[] = "\033[3;2~";
+static char screen_xterm_xfree86_s_kEND[] = "\033[1;2F";
+static char screen_xterm_xfree86_s_kHOM[] = "\033[1;2H";
+static char screen_xterm_xfree86_s_kLFT[] = "\033[1;2D";
+static char screen_xterm_xfree86_s_kRIT[] = "\033[1;2C";
+static char screen_xterm_xfree86_s_kf11[] = "\033[23~";
+static char screen_xterm_xfree86_s_kf12[] = "\033[24~";
+static char screen_xterm_xfree86_s_kf13[] = "\033[1;2P";
+static char screen_xterm_xfree86_s_kf14[] = "\033[1;2Q";
+static char screen_xterm_xfree86_s_kf15[] = "\033[1;2R";
+static char screen_xterm_xfree86_s_kf16[] = "\033[1;2S";
+static char screen_xterm_xfree86_s_kf17[] = "\033[15;2~";
+static char screen_xterm_xfree86_s_kf18[] = "\033[17;2~";
+static char screen_xterm_xfree86_s_kf19[] = "\033[18;2~";
+static char screen_xterm_xfree86_s_kf20[] = "\033[19;2~";
+static char screen_xterm_xfree86_s_kf21[] = "\033[20;2~";
+static char screen_xterm_xfree86_s_kf22[] = "\033[21;2~";
+static char screen_xterm_xfree86_s_kf23[] = "\033[23;2~";
+static char screen_xterm_xfree86_s_kf24[] = "\033[24;2~";
+static char screen_xterm_xfree86_s_kf25[] = "\033[1;5P";
+static char screen_xterm_xfree86_s_kf26[] = "\033[1;5Q";
+static char screen_xterm_xfree86_s_kf27[] = "\033[1;5R";
+static char screen_xterm_xfree86_s_kf28[] = "\033[1;5S";
+static char screen_xterm_xfree86_s_kf29[] = "\033[15;5~";
+static char screen_xterm_xfree86_s_kf30[] = "\033[17;5~";
+static char screen_xterm_xfree86_s_kf31[] = "\033[18;5~";
+static char screen_xterm_xfree86_s_kf32[] = "\033[19;5~";
+static char screen_xterm_xfree86_s_kf33[] = "\033[20;5~";
+static char screen_xterm_xfree86_s_kf34[] = "\033[21;5~";
+static char screen_xterm_xfree86_s_kf35[] = "\033[23;5~";
+static char screen_xterm_xfree86_s_kf36[] = "\033[24;5~";
+static char screen_xterm_xfree86_s_kf37[] = "\033[1;6P";
+static char screen_xterm_xfree86_s_kf38[] = "\033[1;6Q";
+static char screen_xterm_xfree86_s_kf39[] = "\033[1;6R";
+static char screen_xterm_xfree86_s_kf40[] = "\033[1;6S";
+static char screen_xterm_xfree86_s_kf41[] = "\033[15;6~";
+static char screen_xterm_xfree86_s_kf42[] = "\033[17;6~";
+static char screen_xterm_xfree86_s_kf43[] = "\033[18;6~";
+static char screen_xterm_xfree86_s_kf44[] = "\033[19;6~";
+static char screen_xterm_xfree86_s_kf45[] = "\033[20;6~";
+static char screen_xterm_xfree86_s_kf46[] = "\033[21;6~";
+static char screen_xterm_xfree86_s_kf47[] = "\033[23;6~";
+static char screen_xterm_xfree86_s_kf48[] = "\033[24;6~";
+static char screen_xterm_xfree86_s_kf49[] = "\033[1;3P";
+static char screen_xterm_xfree86_s_kf50[] = "\033[1;3Q";
+static char screen_xterm_xfree86_s_kf51[] = "\033[1;3R";
+static char screen_xterm_xfree86_s_kf52[] = "\033[1;3S";
+static char screen_xterm_xfree86_s_kf53[] = "\033[15;3~";
+static char screen_xterm_xfree86_s_kf54[] = "\033[17;3~";
+static char screen_xterm_xfree86_s_kf55[] = "\033[18;3~";
+static char screen_xterm_xfree86_s_kf56[] = "\033[19;3~";
+static char screen_xterm_xfree86_s_kf57[] = "\033[20;3~";
+static char screen_xterm_xfree86_s_kf58[] = "\033[21;3~";
+static char screen_xterm_xfree86_s_kf59[] = "\033[23;3~";
+static char screen_xterm_xfree86_s_kf60[] = "\033[24;3~";
+static char screen_xterm_xfree86_s_kf61[] = "\033[1;4P";
+static char screen_xterm_xfree86_s_kf62[] = "\033[1;4Q";
+static char screen_xterm_xfree86_s_kf63[] = "\033[1;4R";
+static char screen_xterm_xfree86_s_el1[] = "\033[1K";
+static char screen_xterm_xfree86_s_u6[] = "\033[%i%d;%dR";
+static char screen_xterm_xfree86_s_u7[] = "\033[6n";
+static char screen_xterm_xfree86_s_u8[] = "\033[?%[;0123456789]c";
+static char screen_xterm_xfree86_s_u9[] = "\033[c";
+static char screen_xterm_xfree86_s_op[] = "\033[39;49m";
+static char screen_xterm_xfree86_s_setf[] = "\033[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m";
+static char screen_xterm_xfree86_s_setb[] = "\033[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m";
+static char screen_xterm_xfree86_s_kmous[] = "\033[M";
+static char screen_xterm_xfree86_s_setaf[] = "\033[3%p1%dm";
+static char screen_xterm_xfree86_s_setab[] = "\033[4%p1%dm";
+
+static char screen_xterm_xfree86_bool_data[] = {
+ /* 0: bw */ TRUE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ TRUE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ TRUE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ FALSE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 screen_xterm_xfree86_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 8,
+ /* 14: pairs */ 64,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * screen_xterm_xfree86_string_data[] = {
+ /* 0: cbt */ screen_xterm_xfree86_s_cbt,
+ /* 1: bel */ screen_xterm_xfree86_s_bel,
+ /* 2: cr */ screen_xterm_xfree86_s_cr,
+ /* 3: csr */ screen_xterm_xfree86_s_csr,
+ /* 4: tbc */ screen_xterm_xfree86_s_tbc,
+ /* 5: clear */ screen_xterm_xfree86_s_clear,
+ /* 6: el */ screen_xterm_xfree86_s_el,
+ /* 7: ed */ screen_xterm_xfree86_s_ed,
+ /* 8: hpa */ screen_xterm_xfree86_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ screen_xterm_xfree86_s_cup,
+ /* 11: cud1 */ screen_xterm_xfree86_s_cud1,
+ /* 12: home */ screen_xterm_xfree86_s_home,
+ /* 13: civis */ screen_xterm_xfree86_s_civis,
+ /* 14: cub1 */ screen_xterm_xfree86_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ screen_xterm_xfree86_s_cnorm,
+ /* 17: cuf1 */ screen_xterm_xfree86_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ screen_xterm_xfree86_s_cuu1,
+ /* 20: cvvis */ screen_xterm_xfree86_s_cvvis,
+ /* 21: dch1 */ screen_xterm_xfree86_s_dch1,
+ /* 22: dl1 */ screen_xterm_xfree86_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ screen_xterm_xfree86_s_smacs,
+ /* 26: blink */ screen_xterm_xfree86_s_blink,
+ /* 27: bold */ screen_xterm_xfree86_s_bold,
+ /* 28: smcup */ screen_xterm_xfree86_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ screen_xterm_xfree86_s_dim,
+ /* 31: smir */ screen_xterm_xfree86_s_smir,
+ /* 32: invis */ CANCELLED_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ screen_xterm_xfree86_s_rev,
+ /* 35: smso */ screen_xterm_xfree86_s_smso,
+ /* 36: smul */ screen_xterm_xfree86_s_smul,
+ /* 37: ech */ screen_xterm_xfree86_s_ech,
+ /* 38: rmacs */ screen_xterm_xfree86_s_rmacs,
+ /* 39: sgr0 */ screen_xterm_xfree86_s_sgr0,
+ /* 40: rmcup */ screen_xterm_xfree86_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ screen_xterm_xfree86_s_rmir,
+ /* 43: rmso */ screen_xterm_xfree86_s_rmso,
+ /* 44: rmul */ screen_xterm_xfree86_s_rmul,
+ /* 45: flash */ screen_xterm_xfree86_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ screen_xterm_xfree86_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ screen_xterm_xfree86_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ screen_xterm_xfree86_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ screen_xterm_xfree86_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ screen_xterm_xfree86_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ screen_xterm_xfree86_s_kf1,
+ /* 67: kf10 */ screen_xterm_xfree86_s_kf10,
+ /* 68: kf2 */ screen_xterm_xfree86_s_kf2,
+ /* 69: kf3 */ screen_xterm_xfree86_s_kf3,
+ /* 70: kf4 */ screen_xterm_xfree86_s_kf4,
+ /* 71: kf5 */ screen_xterm_xfree86_s_kf5,
+ /* 72: kf6 */ screen_xterm_xfree86_s_kf6,
+ /* 73: kf7 */ screen_xterm_xfree86_s_kf7,
+ /* 74: kf8 */ screen_xterm_xfree86_s_kf8,
+ /* 75: kf9 */ screen_xterm_xfree86_s_kf9,
+ /* 76: khome */ screen_xterm_xfree86_s_khome,
+ /* 77: kich1 */ screen_xterm_xfree86_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ screen_xterm_xfree86_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ screen_xterm_xfree86_s_knp,
+ /* 82: kpp */ screen_xterm_xfree86_s_kpp,
+ /* 83: kcuf1 */ screen_xterm_xfree86_s_kcuf1,
+ /* 84: kind */ screen_xterm_xfree86_s_kind,
+ /* 85: kri */ screen_xterm_xfree86_s_kri,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ screen_xterm_xfree86_s_kcuu1,
+ /* 88: rmkx */ screen_xterm_xfree86_s_rmkx,
+ /* 89: smkx */ screen_xterm_xfree86_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ screen_xterm_xfree86_s_rmm,
+ /* 102: smm */ screen_xterm_xfree86_s_smm,
+ /* 103: nel */ ABSENT_STRING,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ screen_xterm_xfree86_s_dch,
+ /* 106: dl */ screen_xterm_xfree86_s_dl,
+ /* 107: cud */ screen_xterm_xfree86_s_cud,
+ /* 108: ich */ screen_xterm_xfree86_s_ich,
+ /* 109: indn */ screen_xterm_xfree86_s_indn,
+ /* 110: il */ screen_xterm_xfree86_s_il,
+ /* 111: cub */ screen_xterm_xfree86_s_cub,
+ /* 112: cuf */ screen_xterm_xfree86_s_cuf,
+ /* 113: rin */ screen_xterm_xfree86_s_rin,
+ /* 114: cuu */ screen_xterm_xfree86_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ screen_xterm_xfree86_s_mc0,
+ /* 119: mc4 */ screen_xterm_xfree86_s_mc4,
+ /* 120: mc5 */ screen_xterm_xfree86_s_mc5,
+ /* 121: rep */ CANCELLED_STRING,
+ /* 122: rs1 */ screen_xterm_xfree86_s_rs1,
+ /* 123: rs2 */ screen_xterm_xfree86_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ screen_xterm_xfree86_s_rc,
+ /* 127: vpa */ screen_xterm_xfree86_s_vpa,
+ /* 128: sc */ screen_xterm_xfree86_s_sc,
+ /* 129: ind */ screen_xterm_xfree86_s_ind,
+ /* 130: ri */ screen_xterm_xfree86_s_ri,
+ /* 131: sgr */ screen_xterm_xfree86_s_sgr,
+ /* 132: hts */ screen_xterm_xfree86_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ screen_xterm_xfree86_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ screen_xterm_xfree86_s_kb2,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ screen_xterm_xfree86_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ screen_xterm_xfree86_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ screen_xterm_xfree86_s_smam,
+ /* 152: rmam */ screen_xterm_xfree86_s_rmam,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ ABSENT_STRING,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ screen_xterm_xfree86_s_kend,
+ /* 165: kent */ screen_xterm_xfree86_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ screen_xterm_xfree86_s_kDC,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ screen_xterm_xfree86_s_kEND,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ screen_xterm_xfree86_s_kHOM,
+ /* 200: kIC */ CANCELLED_STRING,
+ /* 201: kLFT */ screen_xterm_xfree86_s_kLFT,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ CANCELLED_STRING,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ CANCELLED_STRING,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ screen_xterm_xfree86_s_kRIT,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ screen_xterm_xfree86_s_kf11,
+ /* 217: kf12 */ screen_xterm_xfree86_s_kf12,
+ /* 218: kf13 */ screen_xterm_xfree86_s_kf13,
+ /* 219: kf14 */ screen_xterm_xfree86_s_kf14,
+ /* 220: kf15 */ screen_xterm_xfree86_s_kf15,
+ /* 221: kf16 */ screen_xterm_xfree86_s_kf16,
+ /* 222: kf17 */ screen_xterm_xfree86_s_kf17,
+ /* 223: kf18 */ screen_xterm_xfree86_s_kf18,
+ /* 224: kf19 */ screen_xterm_xfree86_s_kf19,
+ /* 225: kf20 */ screen_xterm_xfree86_s_kf20,
+ /* 226: kf21 */ screen_xterm_xfree86_s_kf21,
+ /* 227: kf22 */ screen_xterm_xfree86_s_kf22,
+ /* 228: kf23 */ screen_xterm_xfree86_s_kf23,
+ /* 229: kf24 */ screen_xterm_xfree86_s_kf24,
+ /* 230: kf25 */ screen_xterm_xfree86_s_kf25,
+ /* 231: kf26 */ screen_xterm_xfree86_s_kf26,
+ /* 232: kf27 */ screen_xterm_xfree86_s_kf27,
+ /* 233: kf28 */ screen_xterm_xfree86_s_kf28,
+ /* 234: kf29 */ screen_xterm_xfree86_s_kf29,
+ /* 235: kf30 */ screen_xterm_xfree86_s_kf30,
+ /* 236: kf31 */ screen_xterm_xfree86_s_kf31,
+ /* 237: kf32 */ screen_xterm_xfree86_s_kf32,
+ /* 238: kf33 */ screen_xterm_xfree86_s_kf33,
+ /* 239: kf34 */ screen_xterm_xfree86_s_kf34,
+ /* 240: kf35 */ screen_xterm_xfree86_s_kf35,
+ /* 241: kf36 */ screen_xterm_xfree86_s_kf36,
+ /* 242: kf37 */ screen_xterm_xfree86_s_kf37,
+ /* 243: kf38 */ screen_xterm_xfree86_s_kf38,
+ /* 244: kf39 */ screen_xterm_xfree86_s_kf39,
+ /* 245: kf40 */ screen_xterm_xfree86_s_kf40,
+ /* 246: kf41 */ screen_xterm_xfree86_s_kf41,
+ /* 247: kf42 */ screen_xterm_xfree86_s_kf42,
+ /* 248: kf43 */ screen_xterm_xfree86_s_kf43,
+ /* 249: kf44 */ screen_xterm_xfree86_s_kf44,
+ /* 250: kf45 */ screen_xterm_xfree86_s_kf45,
+ /* 251: kf46 */ screen_xterm_xfree86_s_kf46,
+ /* 252: kf47 */ screen_xterm_xfree86_s_kf47,
+ /* 253: kf48 */ screen_xterm_xfree86_s_kf48,
+ /* 254: kf49 */ screen_xterm_xfree86_s_kf49,
+ /* 255: kf50 */ screen_xterm_xfree86_s_kf50,
+ /* 256: kf51 */ screen_xterm_xfree86_s_kf51,
+ /* 257: kf52 */ screen_xterm_xfree86_s_kf52,
+ /* 258: kf53 */ screen_xterm_xfree86_s_kf53,
+ /* 259: kf54 */ screen_xterm_xfree86_s_kf54,
+ /* 260: kf55 */ screen_xterm_xfree86_s_kf55,
+ /* 261: kf56 */ screen_xterm_xfree86_s_kf56,
+ /* 262: kf57 */ screen_xterm_xfree86_s_kf57,
+ /* 263: kf58 */ screen_xterm_xfree86_s_kf58,
+ /* 264: kf59 */ screen_xterm_xfree86_s_kf59,
+ /* 265: kf60 */ screen_xterm_xfree86_s_kf60,
+ /* 266: kf61 */ screen_xterm_xfree86_s_kf61,
+ /* 267: kf62 */ screen_xterm_xfree86_s_kf62,
+ /* 268: kf63 */ screen_xterm_xfree86_s_kf63,
+ /* 269: el1 */ screen_xterm_xfree86_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ screen_xterm_xfree86_s_u6,
+ /* 294: u7 */ screen_xterm_xfree86_s_u7,
+ /* 295: u8 */ screen_xterm_xfree86_s_u8,
+ /* 296: u9 */ screen_xterm_xfree86_s_u9,
+ /* 297: op */ screen_xterm_xfree86_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ screen_xterm_xfree86_s_setf,
+ /* 303: setb */ screen_xterm_xfree86_s_setb,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ screen_xterm_xfree86_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ screen_xterm_xfree86_s_setaf,
+ /* 360: setab */ screen_xterm_xfree86_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ CANCELLED_STRING,
+ /* 412: memu */ CANCELLED_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+/* screen.xterm-256color */
+
+static char screen_xterm_256color_alias_data[] = "screen.xterm-256color|GNU Screen with xterm using 256 colors";
+
+static char screen_xterm_256color_s_cbt[] = "\033[Z";
+static char screen_xterm_256color_s_bel[] = "\007";
+static char screen_xterm_256color_s_cr[] = "\015";
+static char screen_xterm_256color_s_csr[] = "\033[%i%p1%d;%p2%dr";
+static char screen_xterm_256color_s_tbc[] = "\033[3g";
+static char screen_xterm_256color_s_clear[] = "\033[H\033[2J";
+static char screen_xterm_256color_s_el[] = "\033[K";
+static char screen_xterm_256color_s_ed[] = "\033[J";
+static char screen_xterm_256color_s_hpa[] = "\033[%i%p1%dG";
+static char screen_xterm_256color_s_cup[] = "\033[%i%p1%d;%p2%dH";
+static char screen_xterm_256color_s_cud1[] = "\012";
+static char screen_xterm_256color_s_home[] = "\033[H";
+static char screen_xterm_256color_s_civis[] = "\033[?25l";
+static char screen_xterm_256color_s_cub1[] = "\010";
+static char screen_xterm_256color_s_cnorm[] = "\033[?12l\033[?25h";
+static char screen_xterm_256color_s_cuf1[] = "\033[C";
+static char screen_xterm_256color_s_cuu1[] = "\033[A";
+static char screen_xterm_256color_s_cvvis[] = "\033[?12;25h";
+static char screen_xterm_256color_s_dch1[] = "\033[P";
+static char screen_xterm_256color_s_dl1[] = "\033[M";
+static char screen_xterm_256color_s_smacs[] = "\033(0";
+static char screen_xterm_256color_s_blink[] = "\033[5m";
+static char screen_xterm_256color_s_bold[] = "\033[1m";
+static char screen_xterm_256color_s_smcup[] = "\033[?1049h\033[22;0;0t";
+static char screen_xterm_256color_s_dim[] = "\033[2m";
+static char screen_xterm_256color_s_smir[] = "\033[4h";
+static char screen_xterm_256color_s_rev[] = "\033[7m";
+static char screen_xterm_256color_s_smso[] = "\033[7m";
+static char screen_xterm_256color_s_smul[] = "\033[4m";
+static char screen_xterm_256color_s_ech[] = "\033[%p1%dX";
+static char screen_xterm_256color_s_rmacs[] = "\033(B";
+static char screen_xterm_256color_s_sgr0[] = "\033(B\033[m";
+static char screen_xterm_256color_s_rmcup[] = "\033[?1049l\033[23;0;0t";
+static char screen_xterm_256color_s_rmir[] = "\033[4l";
+static char screen_xterm_256color_s_rmso[] = "\033[27m";
+static char screen_xterm_256color_s_rmul[] = "\033[24m";
+static char screen_xterm_256color_s_flash[] = "\033[?5h$<100/>\033[?5l";
+static char screen_xterm_256color_s_is2[] = "\033[!p\033[?3;4l\033[4l\033>";
+static char screen_xterm_256color_s_il1[] = "\033[L";
+static char screen_xterm_256color_s_kbs[] = "\010";
+static char screen_xterm_256color_s_kdch1[] = "\033[3~";
+static char screen_xterm_256color_s_kcud1[] = "\033OB";
+static char screen_xterm_256color_s_kf1[] = "\033OP";
+static char screen_xterm_256color_s_kf10[] = "\033[21~";
+static char screen_xterm_256color_s_kf2[] = "\033OQ";
+static char screen_xterm_256color_s_kf3[] = "\033OR";
+static char screen_xterm_256color_s_kf4[] = "\033OS";
+static char screen_xterm_256color_s_kf5[] = "\033[15~";
+static char screen_xterm_256color_s_kf6[] = "\033[17~";
+static char screen_xterm_256color_s_kf7[] = "\033[18~";
+static char screen_xterm_256color_s_kf8[] = "\033[19~";
+static char screen_xterm_256color_s_kf9[] = "\033[20~";
+static char screen_xterm_256color_s_khome[] = "\033[1~";
+static char screen_xterm_256color_s_kich1[] = "\033[2~";
+static char screen_xterm_256color_s_kcub1[] = "\033OD";
+static char screen_xterm_256color_s_knp[] = "\033[6~";
+static char screen_xterm_256color_s_kpp[] = "\033[5~";
+static char screen_xterm_256color_s_kcuf1[] = "\033OC";
+static char screen_xterm_256color_s_kind[] = "\033[1;2B";
+static char screen_xterm_256color_s_kri[] = "\033[1;2A";
+static char screen_xterm_256color_s_kcuu1[] = "\033OA";
+static char screen_xterm_256color_s_rmkx[] = "\033[?1l\033>";
+static char screen_xterm_256color_s_smkx[] = "\033[?1h\033=";
+static char screen_xterm_256color_s_rmm[] = "\033[?1034l";
+static char screen_xterm_256color_s_smm[] = "\033[?1034h";
+static char screen_xterm_256color_s_dch[] = "\033[%p1%dP";
+static char screen_xterm_256color_s_dl[] = "\033[%p1%dM";
+static char screen_xterm_256color_s_cud[] = "\033[%p1%dB";
+static char screen_xterm_256color_s_ich[] = "\033[%p1%d@";
+static char screen_xterm_256color_s_indn[] = "\033[%p1%dS";
+static char screen_xterm_256color_s_il[] = "\033[%p1%dL";
+static char screen_xterm_256color_s_cub[] = "\033[%p1%dD";
+static char screen_xterm_256color_s_cuf[] = "\033[%p1%dC";
+static char screen_xterm_256color_s_rin[] = "\033[%p1%dT";
+static char screen_xterm_256color_s_cuu[] = "\033[%p1%dA";
+static char screen_xterm_256color_s_mc0[] = "\033[i";
+static char screen_xterm_256color_s_mc4[] = "\033[4i";
+static char screen_xterm_256color_s_mc5[] = "\033[5i";
+static char screen_xterm_256color_s_rs1[] = "\033c";
+static char screen_xterm_256color_s_rs2[] = "\033[!p\033[?3;4l\033[4l\033>";
+static char screen_xterm_256color_s_rc[] = "\0338";
+static char screen_xterm_256color_s_vpa[] = "\033[%i%p1%dd";
+static char screen_xterm_256color_s_sc[] = "\0337";
+static char screen_xterm_256color_s_ind[] = "\012";
+static char screen_xterm_256color_s_ri[] = "\033M";
+static char screen_xterm_256color_s_sgr[] = "%?%p9%t\033(0%e\033(B%;\033[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;m";
+static char screen_xterm_256color_s_hts[] = "\033H";
+static char screen_xterm_256color_s_ht[] = "\011";
+static char screen_xterm_256color_s_kb2[] = "\033OE";
+static char screen_xterm_256color_s_acsc[] = "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~";
+static char screen_xterm_256color_s_kcbt[] = "\033[Z";
+static char screen_xterm_256color_s_smam[] = "\033[?7h";
+static char screen_xterm_256color_s_rmam[] = "\033[?7l";
+static char screen_xterm_256color_s_kend[] = "\033[4~";
+static char screen_xterm_256color_s_kent[] = "\033OM";
+static char screen_xterm_256color_s_kDC[] = "\033[3;2~";
+static char screen_xterm_256color_s_kEND[] = "\033[1;2F";
+static char screen_xterm_256color_s_kHOM[] = "\033[1;2H";
+static char screen_xterm_256color_s_kLFT[] = "\033[1;2D";
+static char screen_xterm_256color_s_kRIT[] = "\033[1;2C";
+static char screen_xterm_256color_s_kf11[] = "\033[23~";
+static char screen_xterm_256color_s_kf12[] = "\033[24~";
+static char screen_xterm_256color_s_kf13[] = "\033[1;2P";
+static char screen_xterm_256color_s_kf14[] = "\033[1;2Q";
+static char screen_xterm_256color_s_kf15[] = "\033[1;2R";
+static char screen_xterm_256color_s_kf16[] = "\033[1;2S";
+static char screen_xterm_256color_s_kf17[] = "\033[15;2~";
+static char screen_xterm_256color_s_kf18[] = "\033[17;2~";
+static char screen_xterm_256color_s_kf19[] = "\033[18;2~";
+static char screen_xterm_256color_s_kf20[] = "\033[19;2~";
+static char screen_xterm_256color_s_kf21[] = "\033[20;2~";
+static char screen_xterm_256color_s_kf22[] = "\033[21;2~";
+static char screen_xterm_256color_s_kf23[] = "\033[23;2~";
+static char screen_xterm_256color_s_kf24[] = "\033[24;2~";
+static char screen_xterm_256color_s_kf25[] = "\033[1;5P";
+static char screen_xterm_256color_s_kf26[] = "\033[1;5Q";
+static char screen_xterm_256color_s_kf27[] = "\033[1;5R";
+static char screen_xterm_256color_s_kf28[] = "\033[1;5S";
+static char screen_xterm_256color_s_kf29[] = "\033[15;5~";
+static char screen_xterm_256color_s_kf30[] = "\033[17;5~";
+static char screen_xterm_256color_s_kf31[] = "\033[18;5~";
+static char screen_xterm_256color_s_kf32[] = "\033[19;5~";
+static char screen_xterm_256color_s_kf33[] = "\033[20;5~";
+static char screen_xterm_256color_s_kf34[] = "\033[21;5~";
+static char screen_xterm_256color_s_kf35[] = "\033[23;5~";
+static char screen_xterm_256color_s_kf36[] = "\033[24;5~";
+static char screen_xterm_256color_s_kf37[] = "\033[1;6P";
+static char screen_xterm_256color_s_kf38[] = "\033[1;6Q";
+static char screen_xterm_256color_s_kf39[] = "\033[1;6R";
+static char screen_xterm_256color_s_kf40[] = "\033[1;6S";
+static char screen_xterm_256color_s_kf41[] = "\033[15;6~";
+static char screen_xterm_256color_s_kf42[] = "\033[17;6~";
+static char screen_xterm_256color_s_kf43[] = "\033[18;6~";
+static char screen_xterm_256color_s_kf44[] = "\033[19;6~";
+static char screen_xterm_256color_s_kf45[] = "\033[20;6~";
+static char screen_xterm_256color_s_kf46[] = "\033[21;6~";
+static char screen_xterm_256color_s_kf47[] = "\033[23;6~";
+static char screen_xterm_256color_s_kf48[] = "\033[24;6~";
+static char screen_xterm_256color_s_kf49[] = "\033[1;3P";
+static char screen_xterm_256color_s_kf50[] = "\033[1;3Q";
+static char screen_xterm_256color_s_kf51[] = "\033[1;3R";
+static char screen_xterm_256color_s_kf52[] = "\033[1;3S";
+static char screen_xterm_256color_s_kf53[] = "\033[15;3~";
+static char screen_xterm_256color_s_kf54[] = "\033[17;3~";
+static char screen_xterm_256color_s_kf55[] = "\033[18;3~";
+static char screen_xterm_256color_s_kf56[] = "\033[19;3~";
+static char screen_xterm_256color_s_kf57[] = "\033[20;3~";
+static char screen_xterm_256color_s_kf58[] = "\033[21;3~";
+static char screen_xterm_256color_s_kf59[] = "\033[23;3~";
+static char screen_xterm_256color_s_kf60[] = "\033[24;3~";
+static char screen_xterm_256color_s_kf61[] = "\033[1;4P";
+static char screen_xterm_256color_s_kf62[] = "\033[1;4Q";
+static char screen_xterm_256color_s_kf63[] = "\033[1;4R";
+static char screen_xterm_256color_s_el1[] = "\033[1K";
+static char screen_xterm_256color_s_u6[] = "\033[%i%d;%dR";
+static char screen_xterm_256color_s_u7[] = "\033[6n";
+static char screen_xterm_256color_s_u8[] = "\033[?%[;0123456789]c";
+static char screen_xterm_256color_s_u9[] = "\033[c";
+static char screen_xterm_256color_s_op[] = "\033[39;49m";
+static char screen_xterm_256color_s_kmous[] = "\033[M";
+static char screen_xterm_256color_s_setaf[] = "\033[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m";
+static char screen_xterm_256color_s_setab[] = "\033[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m";
+
+static char screen_xterm_256color_bool_data[] = {
+ /* 0: bw */ TRUE,
+ /* 1: am */ TRUE,
+ /* 2: xsb */ FALSE,
+ /* 3: xhp */ FALSE,
+ /* 4: xenl */ TRUE,
+ /* 5: eo */ FALSE,
+ /* 6: gn */ FALSE,
+ /* 7: hc */ FALSE,
+ /* 8: km */ TRUE,
+ /* 9: hs */ FALSE,
+ /* 10: in */ FALSE,
+ /* 11: da */ FALSE,
+ /* 12: db */ FALSE,
+ /* 13: mir */ TRUE,
+ /* 14: msgr */ TRUE,
+ /* 15: os */ FALSE,
+ /* 16: eslok */ FALSE,
+ /* 17: xt */ FALSE,
+ /* 18: hz */ FALSE,
+ /* 19: ul */ FALSE,
+ /* 20: xon */ FALSE,
+ /* 21: nxon */ FALSE,
+ /* 22: mc5i */ TRUE,
+ /* 23: chts */ FALSE,
+ /* 24: nrrmc */ FALSE,
+ /* 25: npc */ TRUE,
+ /* 26: ndscr */ FALSE,
+ /* 27: ccc */ FALSE,
+ /* 28: bce */ FALSE,
+ /* 29: hls */ FALSE,
+ /* 30: xhpa */ FALSE,
+ /* 31: crxm */ FALSE,
+ /* 32: daisy */ FALSE,
+ /* 33: xvpa */ FALSE,
+ /* 34: sam */ FALSE,
+ /* 35: cpix */ FALSE,
+ /* 36: lpix */ FALSE,
+ /* 37: OTbs */ TRUE,
+ /* 38: OTns */ FALSE,
+ /* 39: OTnc */ FALSE,
+ /* 40: OTMT */ FALSE,
+ /* 41: OTNL */ FALSE,
+ /* 42: OTpt */ FALSE,
+ /* 43: OTxr */ FALSE,
+};
+static NCURSES_INT2 screen_xterm_256color_number_data[] = {
+ /* 0: cols */ 80,
+ /* 1: it */ 8,
+ /* 2: lines */ 24,
+ /* 3: lm */ ABSENT_NUMERIC,
+ /* 4: xmc */ ABSENT_NUMERIC,
+ /* 5: pb */ ABSENT_NUMERIC,
+ /* 6: vt */ ABSENT_NUMERIC,
+ /* 7: wsl */ ABSENT_NUMERIC,
+ /* 8: nlab */ ABSENT_NUMERIC,
+ /* 9: lh */ ABSENT_NUMERIC,
+ /* 10: lw */ ABSENT_NUMERIC,
+ /* 11: ma */ ABSENT_NUMERIC,
+ /* 12: wnum */ ABSENT_NUMERIC,
+ /* 13: colors */ 256,
+ /* 14: pairs */ 32767,
+ /* 15: ncv */ ABSENT_NUMERIC,
+ /* 16: bufsz */ ABSENT_NUMERIC,
+ /* 17: spinv */ ABSENT_NUMERIC,
+ /* 18: spinh */ ABSENT_NUMERIC,
+ /* 19: maddr */ ABSENT_NUMERIC,
+ /* 20: mjump */ ABSENT_NUMERIC,
+ /* 21: mcs */ ABSENT_NUMERIC,
+ /* 22: mls */ ABSENT_NUMERIC,
+ /* 23: npins */ ABSENT_NUMERIC,
+ /* 24: orc */ ABSENT_NUMERIC,
+ /* 25: orl */ ABSENT_NUMERIC,
+ /* 26: orhi */ ABSENT_NUMERIC,
+ /* 27: orvi */ ABSENT_NUMERIC,
+ /* 28: cps */ ABSENT_NUMERIC,
+ /* 29: widcs */ ABSENT_NUMERIC,
+ /* 30: btns */ ABSENT_NUMERIC,
+ /* 31: bitwin */ ABSENT_NUMERIC,
+ /* 32: bitype */ ABSENT_NUMERIC,
+ /* 33: OTug */ ABSENT_NUMERIC,
+ /* 34: OTdC */ ABSENT_NUMERIC,
+ /* 35: OTdN */ ABSENT_NUMERIC,
+ /* 36: OTdB */ ABSENT_NUMERIC,
+ /* 37: OTdT */ ABSENT_NUMERIC,
+ /* 38: OTkn */ ABSENT_NUMERIC,
+};
+static char * screen_xterm_256color_string_data[] = {
+ /* 0: cbt */ screen_xterm_256color_s_cbt,
+ /* 1: bel */ screen_xterm_256color_s_bel,
+ /* 2: cr */ screen_xterm_256color_s_cr,
+ /* 3: csr */ screen_xterm_256color_s_csr,
+ /* 4: tbc */ screen_xterm_256color_s_tbc,
+ /* 5: clear */ screen_xterm_256color_s_clear,
+ /* 6: el */ screen_xterm_256color_s_el,
+ /* 7: ed */ screen_xterm_256color_s_ed,
+ /* 8: hpa */ screen_xterm_256color_s_hpa,
+ /* 9: cmdch */ ABSENT_STRING,
+ /* 10: cup */ screen_xterm_256color_s_cup,
+ /* 11: cud1 */ screen_xterm_256color_s_cud1,
+ /* 12: home */ screen_xterm_256color_s_home,
+ /* 13: civis */ screen_xterm_256color_s_civis,
+ /* 14: cub1 */ screen_xterm_256color_s_cub1,
+ /* 15: mrcup */ ABSENT_STRING,
+ /* 16: cnorm */ screen_xterm_256color_s_cnorm,
+ /* 17: cuf1 */ screen_xterm_256color_s_cuf1,
+ /* 18: ll */ ABSENT_STRING,
+ /* 19: cuu1 */ screen_xterm_256color_s_cuu1,
+ /* 20: cvvis */ screen_xterm_256color_s_cvvis,
+ /* 21: dch1 */ screen_xterm_256color_s_dch1,
+ /* 22: dl1 */ screen_xterm_256color_s_dl1,
+ /* 23: dsl */ ABSENT_STRING,
+ /* 24: hd */ ABSENT_STRING,
+ /* 25: smacs */ screen_xterm_256color_s_smacs,
+ /* 26: blink */ screen_xterm_256color_s_blink,
+ /* 27: bold */ screen_xterm_256color_s_bold,
+ /* 28: smcup */ screen_xterm_256color_s_smcup,
+ /* 29: smdc */ ABSENT_STRING,
+ /* 30: dim */ screen_xterm_256color_s_dim,
+ /* 31: smir */ screen_xterm_256color_s_smir,
+ /* 32: invis */ ABSENT_STRING,
+ /* 33: prot */ ABSENT_STRING,
+ /* 34: rev */ screen_xterm_256color_s_rev,
+ /* 35: smso */ screen_xterm_256color_s_smso,
+ /* 36: smul */ screen_xterm_256color_s_smul,
+ /* 37: ech */ screen_xterm_256color_s_ech,
+ /* 38: rmacs */ screen_xterm_256color_s_rmacs,
+ /* 39: sgr0 */ screen_xterm_256color_s_sgr0,
+ /* 40: rmcup */ screen_xterm_256color_s_rmcup,
+ /* 41: rmdc */ ABSENT_STRING,
+ /* 42: rmir */ screen_xterm_256color_s_rmir,
+ /* 43: rmso */ screen_xterm_256color_s_rmso,
+ /* 44: rmul */ screen_xterm_256color_s_rmul,
+ /* 45: flash */ screen_xterm_256color_s_flash,
+ /* 46: ff */ ABSENT_STRING,
+ /* 47: fsl */ ABSENT_STRING,
+ /* 48: is1 */ ABSENT_STRING,
+ /* 49: is2 */ screen_xterm_256color_s_is2,
+ /* 50: is3 */ ABSENT_STRING,
+ /* 51: if */ ABSENT_STRING,
+ /* 52: ich1 */ ABSENT_STRING,
+ /* 53: il1 */ screen_xterm_256color_s_il1,
+ /* 54: ip */ ABSENT_STRING,
+ /* 55: kbs */ screen_xterm_256color_s_kbs,
+ /* 56: ktbc */ ABSENT_STRING,
+ /* 57: kclr */ ABSENT_STRING,
+ /* 58: kctab */ ABSENT_STRING,
+ /* 59: kdch1 */ screen_xterm_256color_s_kdch1,
+ /* 60: kdl1 */ ABSENT_STRING,
+ /* 61: kcud1 */ screen_xterm_256color_s_kcud1,
+ /* 62: krmir */ ABSENT_STRING,
+ /* 63: kel */ ABSENT_STRING,
+ /* 64: ked */ ABSENT_STRING,
+ /* 65: kf0 */ ABSENT_STRING,
+ /* 66: kf1 */ screen_xterm_256color_s_kf1,
+ /* 67: kf10 */ screen_xterm_256color_s_kf10,
+ /* 68: kf2 */ screen_xterm_256color_s_kf2,
+ /* 69: kf3 */ screen_xterm_256color_s_kf3,
+ /* 70: kf4 */ screen_xterm_256color_s_kf4,
+ /* 71: kf5 */ screen_xterm_256color_s_kf5,
+ /* 72: kf6 */ screen_xterm_256color_s_kf6,
+ /* 73: kf7 */ screen_xterm_256color_s_kf7,
+ /* 74: kf8 */ screen_xterm_256color_s_kf8,
+ /* 75: kf9 */ screen_xterm_256color_s_kf9,
+ /* 76: khome */ screen_xterm_256color_s_khome,
+ /* 77: kich1 */ screen_xterm_256color_s_kich1,
+ /* 78: kil1 */ ABSENT_STRING,
+ /* 79: kcub1 */ screen_xterm_256color_s_kcub1,
+ /* 80: kll */ ABSENT_STRING,
+ /* 81: knp */ screen_xterm_256color_s_knp,
+ /* 82: kpp */ screen_xterm_256color_s_kpp,
+ /* 83: kcuf1 */ screen_xterm_256color_s_kcuf1,
+ /* 84: kind */ screen_xterm_256color_s_kind,
+ /* 85: kri */ screen_xterm_256color_s_kri,
+ /* 86: khts */ ABSENT_STRING,
+ /* 87: kcuu1 */ screen_xterm_256color_s_kcuu1,
+ /* 88: rmkx */ screen_xterm_256color_s_rmkx,
+ /* 89: smkx */ screen_xterm_256color_s_smkx,
+ /* 90: lf0 */ ABSENT_STRING,
+ /* 91: lf1 */ ABSENT_STRING,
+ /* 92: lf10 */ ABSENT_STRING,
+ /* 93: lf2 */ ABSENT_STRING,
+ /* 94: lf3 */ ABSENT_STRING,
+ /* 95: lf4 */ ABSENT_STRING,
+ /* 96: lf5 */ ABSENT_STRING,
+ /* 97: lf6 */ ABSENT_STRING,
+ /* 98: lf7 */ ABSENT_STRING,
+ /* 99: lf8 */ ABSENT_STRING,
+ /* 100: lf9 */ ABSENT_STRING,
+ /* 101: rmm */ screen_xterm_256color_s_rmm,
+ /* 102: smm */ screen_xterm_256color_s_smm,
+ /* 103: nel */ ABSENT_STRING,
+ /* 104: pad */ ABSENT_STRING,
+ /* 105: dch */ screen_xterm_256color_s_dch,
+ /* 106: dl */ screen_xterm_256color_s_dl,
+ /* 107: cud */ screen_xterm_256color_s_cud,
+ /* 108: ich */ screen_xterm_256color_s_ich,
+ /* 109: indn */ screen_xterm_256color_s_indn,
+ /* 110: il */ screen_xterm_256color_s_il,
+ /* 111: cub */ screen_xterm_256color_s_cub,
+ /* 112: cuf */ screen_xterm_256color_s_cuf,
+ /* 113: rin */ screen_xterm_256color_s_rin,
+ /* 114: cuu */ screen_xterm_256color_s_cuu,
+ /* 115: pfkey */ ABSENT_STRING,
+ /* 116: pfloc */ ABSENT_STRING,
+ /* 117: pfx */ ABSENT_STRING,
+ /* 118: mc0 */ screen_xterm_256color_s_mc0,
+ /* 119: mc4 */ screen_xterm_256color_s_mc4,
+ /* 120: mc5 */ screen_xterm_256color_s_mc5,
+ /* 121: rep */ ABSENT_STRING,
+ /* 122: rs1 */ screen_xterm_256color_s_rs1,
+ /* 123: rs2 */ screen_xterm_256color_s_rs2,
+ /* 124: rs3 */ ABSENT_STRING,
+ /* 125: rf */ ABSENT_STRING,
+ /* 126: rc */ screen_xterm_256color_s_rc,
+ /* 127: vpa */ screen_xterm_256color_s_vpa,
+ /* 128: sc */ screen_xterm_256color_s_sc,
+ /* 129: ind */ screen_xterm_256color_s_ind,
+ /* 130: ri */ screen_xterm_256color_s_ri,
+ /* 131: sgr */ screen_xterm_256color_s_sgr,
+ /* 132: hts */ screen_xterm_256color_s_hts,
+ /* 133: wind */ ABSENT_STRING,
+ /* 134: ht */ screen_xterm_256color_s_ht,
+ /* 135: tsl */ ABSENT_STRING,
+ /* 136: uc */ ABSENT_STRING,
+ /* 137: hu */ ABSENT_STRING,
+ /* 138: iprog */ ABSENT_STRING,
+ /* 139: ka1 */ ABSENT_STRING,
+ /* 140: ka3 */ ABSENT_STRING,
+ /* 141: kb2 */ screen_xterm_256color_s_kb2,
+ /* 142: kc1 */ ABSENT_STRING,
+ /* 143: kc3 */ ABSENT_STRING,
+ /* 144: mc5p */ ABSENT_STRING,
+ /* 145: rmp */ ABSENT_STRING,
+ /* 146: acsc */ screen_xterm_256color_s_acsc,
+ /* 147: pln */ ABSENT_STRING,
+ /* 148: kcbt */ screen_xterm_256color_s_kcbt,
+ /* 149: smxon */ ABSENT_STRING,
+ /* 150: rmxon */ ABSENT_STRING,
+ /* 151: smam */ screen_xterm_256color_s_smam,
+ /* 152: rmam */ screen_xterm_256color_s_rmam,
+ /* 153: xonc */ ABSENT_STRING,
+ /* 154: xoffc */ ABSENT_STRING,
+ /* 155: enacs */ ABSENT_STRING,
+ /* 156: smln */ ABSENT_STRING,
+ /* 157: rmln */ ABSENT_STRING,
+ /* 158: kbeg */ ABSENT_STRING,
+ /* 159: kcan */ ABSENT_STRING,
+ /* 160: kclo */ ABSENT_STRING,
+ /* 161: kcmd */ ABSENT_STRING,
+ /* 162: kcpy */ ABSENT_STRING,
+ /* 163: kcrt */ ABSENT_STRING,
+ /* 164: kend */ screen_xterm_256color_s_kend,
+ /* 165: kent */ screen_xterm_256color_s_kent,
+ /* 166: kext */ ABSENT_STRING,
+ /* 167: kfnd */ ABSENT_STRING,
+ /* 168: khlp */ ABSENT_STRING,
+ /* 169: kmrk */ ABSENT_STRING,
+ /* 170: kmsg */ ABSENT_STRING,
+ /* 171: kmov */ ABSENT_STRING,
+ /* 172: knxt */ ABSENT_STRING,
+ /* 173: kopn */ ABSENT_STRING,
+ /* 174: kopt */ ABSENT_STRING,
+ /* 175: kprv */ ABSENT_STRING,
+ /* 176: kprt */ ABSENT_STRING,
+ /* 177: krdo */ ABSENT_STRING,
+ /* 178: kref */ ABSENT_STRING,
+ /* 179: krfr */ ABSENT_STRING,
+ /* 180: krpl */ ABSENT_STRING,
+ /* 181: krst */ ABSENT_STRING,
+ /* 182: kres */ ABSENT_STRING,
+ /* 183: ksav */ ABSENT_STRING,
+ /* 184: kspd */ ABSENT_STRING,
+ /* 185: kund */ ABSENT_STRING,
+ /* 186: kBEG */ ABSENT_STRING,
+ /* 187: kCAN */ ABSENT_STRING,
+ /* 188: kCMD */ ABSENT_STRING,
+ /* 189: kCPY */ ABSENT_STRING,
+ /* 190: kCRT */ ABSENT_STRING,
+ /* 191: kDC */ screen_xterm_256color_s_kDC,
+ /* 192: kDL */ ABSENT_STRING,
+ /* 193: kslt */ ABSENT_STRING,
+ /* 194: kEND */ screen_xterm_256color_s_kEND,
+ /* 195: kEOL */ ABSENT_STRING,
+ /* 196: kEXT */ ABSENT_STRING,
+ /* 197: kFND */ ABSENT_STRING,
+ /* 198: kHLP */ ABSENT_STRING,
+ /* 199: kHOM */ screen_xterm_256color_s_kHOM,
+ /* 200: kIC */ ABSENT_STRING,
+ /* 201: kLFT */ screen_xterm_256color_s_kLFT,
+ /* 202: kMSG */ ABSENT_STRING,
+ /* 203: kMOV */ ABSENT_STRING,
+ /* 204: kNXT */ ABSENT_STRING,
+ /* 205: kOPT */ ABSENT_STRING,
+ /* 206: kPRV */ ABSENT_STRING,
+ /* 207: kPRT */ ABSENT_STRING,
+ /* 208: kRDO */ ABSENT_STRING,
+ /* 209: kRPL */ ABSENT_STRING,
+ /* 210: kRIT */ screen_xterm_256color_s_kRIT,
+ /* 211: kRES */ ABSENT_STRING,
+ /* 212: kSAV */ ABSENT_STRING,
+ /* 213: kSPD */ ABSENT_STRING,
+ /* 214: kUND */ ABSENT_STRING,
+ /* 215: rfi */ ABSENT_STRING,
+ /* 216: kf11 */ screen_xterm_256color_s_kf11,
+ /* 217: kf12 */ screen_xterm_256color_s_kf12,
+ /* 218: kf13 */ screen_xterm_256color_s_kf13,
+ /* 219: kf14 */ screen_xterm_256color_s_kf14,
+ /* 220: kf15 */ screen_xterm_256color_s_kf15,
+ /* 221: kf16 */ screen_xterm_256color_s_kf16,
+ /* 222: kf17 */ screen_xterm_256color_s_kf17,
+ /* 223: kf18 */ screen_xterm_256color_s_kf18,
+ /* 224: kf19 */ screen_xterm_256color_s_kf19,
+ /* 225: kf20 */ screen_xterm_256color_s_kf20,
+ /* 226: kf21 */ screen_xterm_256color_s_kf21,
+ /* 227: kf22 */ screen_xterm_256color_s_kf22,
+ /* 228: kf23 */ screen_xterm_256color_s_kf23,
+ /* 229: kf24 */ screen_xterm_256color_s_kf24,
+ /* 230: kf25 */ screen_xterm_256color_s_kf25,
+ /* 231: kf26 */ screen_xterm_256color_s_kf26,
+ /* 232: kf27 */ screen_xterm_256color_s_kf27,
+ /* 233: kf28 */ screen_xterm_256color_s_kf28,
+ /* 234: kf29 */ screen_xterm_256color_s_kf29,
+ /* 235: kf30 */ screen_xterm_256color_s_kf30,
+ /* 236: kf31 */ screen_xterm_256color_s_kf31,
+ /* 237: kf32 */ screen_xterm_256color_s_kf32,
+ /* 238: kf33 */ screen_xterm_256color_s_kf33,
+ /* 239: kf34 */ screen_xterm_256color_s_kf34,
+ /* 240: kf35 */ screen_xterm_256color_s_kf35,
+ /* 241: kf36 */ screen_xterm_256color_s_kf36,
+ /* 242: kf37 */ screen_xterm_256color_s_kf37,
+ /* 243: kf38 */ screen_xterm_256color_s_kf38,
+ /* 244: kf39 */ screen_xterm_256color_s_kf39,
+ /* 245: kf40 */ screen_xterm_256color_s_kf40,
+ /* 246: kf41 */ screen_xterm_256color_s_kf41,
+ /* 247: kf42 */ screen_xterm_256color_s_kf42,
+ /* 248: kf43 */ screen_xterm_256color_s_kf43,
+ /* 249: kf44 */ screen_xterm_256color_s_kf44,
+ /* 250: kf45 */ screen_xterm_256color_s_kf45,
+ /* 251: kf46 */ screen_xterm_256color_s_kf46,
+ /* 252: kf47 */ screen_xterm_256color_s_kf47,
+ /* 253: kf48 */ screen_xterm_256color_s_kf48,
+ /* 254: kf49 */ screen_xterm_256color_s_kf49,
+ /* 255: kf50 */ screen_xterm_256color_s_kf50,
+ /* 256: kf51 */ screen_xterm_256color_s_kf51,
+ /* 257: kf52 */ screen_xterm_256color_s_kf52,
+ /* 258: kf53 */ screen_xterm_256color_s_kf53,
+ /* 259: kf54 */ screen_xterm_256color_s_kf54,
+ /* 260: kf55 */ screen_xterm_256color_s_kf55,
+ /* 261: kf56 */ screen_xterm_256color_s_kf56,
+ /* 262: kf57 */ screen_xterm_256color_s_kf57,
+ /* 263: kf58 */ screen_xterm_256color_s_kf58,
+ /* 264: kf59 */ screen_xterm_256color_s_kf59,
+ /* 265: kf60 */ screen_xterm_256color_s_kf60,
+ /* 266: kf61 */ screen_xterm_256color_s_kf61,
+ /* 267: kf62 */ screen_xterm_256color_s_kf62,
+ /* 268: kf63 */ screen_xterm_256color_s_kf63,
+ /* 269: el1 */ screen_xterm_256color_s_el1,
+ /* 270: mgc */ ABSENT_STRING,
+ /* 271: smgl */ ABSENT_STRING,
+ /* 272: smgr */ ABSENT_STRING,
+ /* 273: fln */ ABSENT_STRING,
+ /* 274: sclk */ ABSENT_STRING,
+ /* 275: dclk */ ABSENT_STRING,
+ /* 276: rmclk */ ABSENT_STRING,
+ /* 277: cwin */ ABSENT_STRING,
+ /* 278: wingo */ ABSENT_STRING,
+ /* 279: hup */ ABSENT_STRING,
+ /* 280: dial */ ABSENT_STRING,
+ /* 281: qdial */ ABSENT_STRING,
+ /* 282: tone */ ABSENT_STRING,
+ /* 283: pulse */ ABSENT_STRING,
+ /* 284: hook */ ABSENT_STRING,
+ /* 285: pause */ ABSENT_STRING,
+ /* 286: wait */ ABSENT_STRING,
+ /* 287: u0 */ ABSENT_STRING,
+ /* 288: u1 */ ABSENT_STRING,
+ /* 289: u2 */ ABSENT_STRING,
+ /* 290: u3 */ ABSENT_STRING,
+ /* 291: u4 */ ABSENT_STRING,
+ /* 292: u5 */ ABSENT_STRING,
+ /* 293: u6 */ screen_xterm_256color_s_u6,
+ /* 294: u7 */ screen_xterm_256color_s_u7,
+ /* 295: u8 */ screen_xterm_256color_s_u8,
+ /* 296: u9 */ screen_xterm_256color_s_u9,
+ /* 297: op */ screen_xterm_256color_s_op,
+ /* 298: oc */ ABSENT_STRING,
+ /* 299: initc */ ABSENT_STRING,
+ /* 300: initp */ ABSENT_STRING,
+ /* 301: scp */ ABSENT_STRING,
+ /* 302: setf */ ABSENT_STRING,
+ /* 303: setb */ ABSENT_STRING,
+ /* 304: cpi */ ABSENT_STRING,
+ /* 305: lpi */ ABSENT_STRING,
+ /* 306: chr */ ABSENT_STRING,
+ /* 307: cvr */ ABSENT_STRING,
+ /* 308: defc */ ABSENT_STRING,
+ /* 309: swidm */ ABSENT_STRING,
+ /* 310: sdrfq */ ABSENT_STRING,
+ /* 311: sitm */ ABSENT_STRING,
+ /* 312: slm */ ABSENT_STRING,
+ /* 313: smicm */ ABSENT_STRING,
+ /* 314: snlq */ ABSENT_STRING,
+ /* 315: snrmq */ ABSENT_STRING,
+ /* 316: sshm */ ABSENT_STRING,
+ /* 317: ssubm */ ABSENT_STRING,
+ /* 318: ssupm */ ABSENT_STRING,
+ /* 319: sum */ ABSENT_STRING,
+ /* 320: rwidm */ ABSENT_STRING,
+ /* 321: ritm */ ABSENT_STRING,
+ /* 322: rlm */ ABSENT_STRING,
+ /* 323: rmicm */ ABSENT_STRING,
+ /* 324: rshm */ ABSENT_STRING,
+ /* 325: rsubm */ ABSENT_STRING,
+ /* 326: rsupm */ ABSENT_STRING,
+ /* 327: rum */ ABSENT_STRING,
+ /* 328: mhpa */ ABSENT_STRING,
+ /* 329: mcud1 */ ABSENT_STRING,
+ /* 330: mcub1 */ ABSENT_STRING,
+ /* 331: mcuf1 */ ABSENT_STRING,
+ /* 332: mvpa */ ABSENT_STRING,
+ /* 333: mcuu1 */ ABSENT_STRING,
+ /* 334: porder */ ABSENT_STRING,
+ /* 335: mcud */ ABSENT_STRING,
+ /* 336: mcub */ ABSENT_STRING,
+ /* 337: mcuf */ ABSENT_STRING,
+ /* 338: mcuu */ ABSENT_STRING,
+ /* 339: scs */ ABSENT_STRING,
+ /* 340: smgb */ ABSENT_STRING,
+ /* 341: smgbp */ ABSENT_STRING,
+ /* 342: smglp */ ABSENT_STRING,
+ /* 343: smgrp */ ABSENT_STRING,
+ /* 344: smgt */ ABSENT_STRING,
+ /* 345: smgtp */ ABSENT_STRING,
+ /* 346: sbim */ ABSENT_STRING,
+ /* 347: scsd */ ABSENT_STRING,
+ /* 348: rbim */ ABSENT_STRING,
+ /* 349: rcsd */ ABSENT_STRING,
+ /* 350: subcs */ ABSENT_STRING,
+ /* 351: supcs */ ABSENT_STRING,
+ /* 352: docr */ ABSENT_STRING,
+ /* 353: zerom */ ABSENT_STRING,
+ /* 354: csnm */ ABSENT_STRING,
+ /* 355: kmous */ screen_xterm_256color_s_kmous,
+ /* 356: minfo */ ABSENT_STRING,
+ /* 357: reqmp */ ABSENT_STRING,
+ /* 358: getm */ ABSENT_STRING,
+ /* 359: setaf */ screen_xterm_256color_s_setaf,
+ /* 360: setab */ screen_xterm_256color_s_setab,
+ /* 361: pfxl */ ABSENT_STRING,
+ /* 362: devt */ ABSENT_STRING,
+ /* 363: csin */ ABSENT_STRING,
+ /* 364: s0ds */ ABSENT_STRING,
+ /* 365: s1ds */ ABSENT_STRING,
+ /* 366: s2ds */ ABSENT_STRING,
+ /* 367: s3ds */ ABSENT_STRING,
+ /* 368: smglr */ ABSENT_STRING,
+ /* 369: smgtb */ ABSENT_STRING,
+ /* 370: birep */ ABSENT_STRING,
+ /* 371: binel */ ABSENT_STRING,
+ /* 372: bicr */ ABSENT_STRING,
+ /* 373: colornm */ ABSENT_STRING,
+ /* 374: defbi */ ABSENT_STRING,
+ /* 375: endbi */ ABSENT_STRING,
+ /* 376: setcolor */ ABSENT_STRING,
+ /* 377: slines */ ABSENT_STRING,
+ /* 378: dispc */ ABSENT_STRING,
+ /* 379: smpch */ ABSENT_STRING,
+ /* 380: rmpch */ ABSENT_STRING,
+ /* 381: smsc */ ABSENT_STRING,
+ /* 382: rmsc */ ABSENT_STRING,
+ /* 383: pctrm */ ABSENT_STRING,
+ /* 384: scesc */ ABSENT_STRING,
+ /* 385: scesa */ ABSENT_STRING,
+ /* 386: ehhlm */ ABSENT_STRING,
+ /* 387: elhlm */ ABSENT_STRING,
+ /* 388: elohlm */ ABSENT_STRING,
+ /* 389: erhlm */ ABSENT_STRING,
+ /* 390: ethlm */ ABSENT_STRING,
+ /* 391: evhlm */ ABSENT_STRING,
+ /* 392: sgr1 */ ABSENT_STRING,
+ /* 393: slength */ ABSENT_STRING,
+ /* 394: OTi2 */ ABSENT_STRING,
+ /* 395: OTrs */ ABSENT_STRING,
+ /* 396: OTnl */ ABSENT_STRING,
+ /* 397: OTbc */ ABSENT_STRING,
+ /* 398: OTko */ ABSENT_STRING,
+ /* 399: OTma */ ABSENT_STRING,
+ /* 400: OTG2 */ ABSENT_STRING,
+ /* 401: OTG3 */ ABSENT_STRING,
+ /* 402: OTG1 */ ABSENT_STRING,
+ /* 403: OTG4 */ ABSENT_STRING,
+ /* 404: OTGR */ ABSENT_STRING,
+ /* 405: OTGL */ ABSENT_STRING,
+ /* 406: OTGU */ ABSENT_STRING,
+ /* 407: OTGD */ ABSENT_STRING,
+ /* 408: OTGH */ ABSENT_STRING,
+ /* 409: OTGV */ ABSENT_STRING,
+ /* 410: OTGC */ ABSENT_STRING,
+ /* 411: meml */ ABSENT_STRING,
+ /* 412: memu */ ABSENT_STRING,
+ /* 413: box1 */ ABSENT_STRING,
+};
+static const TERMTYPE2 fallbacks[10] =
+{
+ /* linux */
+ {
+ linux_alias_data,
+ (char *)0, /* pointer to string table */
+ linux_bool_data,
+ linux_number_data,
+ linux_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* rxvt */
+ {
+ rxvt_alias_data,
+ (char *)0, /* pointer to string table */
+ rxvt_bool_data,
+ rxvt_number_data,
+ rxvt_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* vt100 */
+ {
+ vt100_alias_data,
+ (char *)0, /* pointer to string table */
+ vt100_bool_data,
+ vt100_number_data,
+ vt100_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* xterm */
+ {
+ xterm_alias_data,
+ (char *)0, /* pointer to string table */
+ xterm_bool_data,
+ xterm_number_data,
+ xterm_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* xterm-256color */
+ {
+ xterm_256color_alias_data,
+ (char *)0, /* pointer to string table */
+ xterm_256color_bool_data,
+ xterm_256color_number_data,
+ xterm_256color_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* screen */
+ {
+ screen_alias_data,
+ (char *)0, /* pointer to string table */
+ screen_bool_data,
+ screen_number_data,
+ screen_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* screen.linux */
+ {
+ screen_linux_alias_data,
+ (char *)0, /* pointer to string table */
+ screen_linux_bool_data,
+ screen_linux_number_data,
+ screen_linux_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* screen.rxvt */
+ {
+ screen_rxvt_alias_data,
+ (char *)0, /* pointer to string table */
+ screen_rxvt_bool_data,
+ screen_rxvt_number_data,
+ screen_rxvt_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* screen.xterm-new */
+ {
+ screen_xterm_xfree86_alias_data,
+ (char *)0, /* pointer to string table */
+ screen_xterm_xfree86_bool_data,
+ screen_xterm_xfree86_number_data,
+ screen_xterm_xfree86_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+, /* screen.xterm-256color */
+ {
+ screen_xterm_256color_alias_data,
+ (char *)0, /* pointer to string table */
+ screen_xterm_256color_bool_data,
+ screen_xterm_256color_number_data,
+ screen_xterm_256color_string_data,
+#if NCURSES_XNAMES
+ (char *)0, /* pointer to extended string table */
+ (char **)0, /* ...corresponding names */
+ 44, /* count total Booleans */
+ 39, /* count total Numbers */
+ 414, /* count total Strings */
+ 0, /* count extensions to Booleans */
+ 0, /* count extensions to Numbers */
+ 0, /* count extensions to Strings */
+#endif /* NCURSES_XNAMES */
+ }
+};
+
+NCURSES_EXPORT(const TERMTYPE2 *)
+_nc_fallback2 (const char *name GCC_UNUSED)
+{
+ const TERMTYPE2 *tp;
+
+ for (tp = fallbacks;
+ tp < fallbacks + sizeof(fallbacks)/sizeof(TERMTYPE2);
+ tp++) {
+ if (_nc_name_match(tp->term_names, name, "|")) {
+ return(tp);
+ }
+ }
+ return((const TERMTYPE2 *)0);
+}
+
+#if NCURSES_EXT_NUMBERS
+#undef _nc_fallback
+
+/*
+ * This entrypoint is used by tack.
+ */
+NCURSES_EXPORT(const TERMTYPE *)
+_nc_fallback (const char *name)
+{
+ const TERMTYPE2 *tp = _nc_fallback2(name);
+ const TERMTYPE *result = 0;
+ if (tp != 0) {
+ static TERMTYPE temp;
+ _nc_export_termtype2(&temp, tp);
+ result = &temp;
+ }
+ return result;
+}
+#endif
diff --git a/contrib/depends/patches/polyseed/0001-disable-soname.patch b/contrib/depends/patches/polyseed/0001-disable-soname.patch
new file mode 100644
index 0000000..bd97dd3
--- /dev/null
+++ b/contrib/depends/patches/polyseed/0001-disable-soname.patch
@@ -0,0 +1,48 @@
+From aabafcfc0572651436d024a635483c49042fad7f Mon Sep 17 00:00:00 2001
+From: Czarek Nakamoto <cyjan@mrcyjanek.net>
+Date: Thu, 28 Mar 2024 00:32:51 +0100
+Subject: [PATCH] disable soname
+
+---
+ CMakeLists.txt | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8a8e7c2..5301353 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -36,6 +36,7 @@ include_directories(polyseed
+ target_compile_definitions(polyseed PRIVATE POLYSEED_SHARED)
+ set_target_properties(polyseed PROPERTIES VERSION 2.0.0
+ SOVERSION 2
++ NO_SONAME 1
+ C_STANDARD 11
+ C_STANDARD_REQUIRED ON)
+
+@@ -45,16 +46,17 @@ include_directories(polyseed_static
+ include/)
+ target_compile_definitions(polyseed_static PRIVATE POLYSEED_STATIC)
+ set_target_properties(polyseed_static PROPERTIES OUTPUT_NAME polyseed
++ NO_SONAME 1
+ C_STANDARD 11
+ C_STANDARD_REQUIRED ON)
+
+-add_executable(polyseed-tests
+- tests/tests.c)
+-include_directories(polyseed-tests
+- include/)
+-target_compile_definitions(polyseed-tests PRIVATE POLYSEED_STATIC)
+-target_link_libraries(polyseed-tests
+- PRIVATE polyseed_static)
++# add_executable(polyseed-tests
++# tests/tests.c)
++# include_directories(polyseed-tests
++# include/)
++# target_compile_definitions(polyseed-tests PRIVATE POLYSEED_STATIC)
++# target_link_libraries(polyseed-tests
++# PRIVATE polyseed_static)
+
+ include(GNUInstallDirs)
+ install(TARGETS polyseed polyseed_static
+--
+2.39.2
diff --git a/contrib/depends/patches/polyseed/force-static-mingw.patch b/contrib/depends/patches/polyseed/force-static-mingw.patch
new file mode 100644
index 0000000..f05cb2b
--- /dev/null
+++ b/contrib/depends/patches/polyseed/force-static-mingw.patch
@@ -0,0 +1,23 @@
+--- a/include/polyseed.h
++++ b/include/polyseed.h
+@@ -93,13 +93,13 @@ Shared/static library definitions
+ - define POLYSEED_STATIC when linking to the static library
+ */
+ #if defined(_WIN32) || defined(__CYGWIN__)
+- #ifdef POLYSEED_SHARED
+- #define POLYSEED_API __declspec(dllexport)
+- #elif !defined(POLYSEED_STATIC)
+- #define POLYSEED_API __declspec(dllimport)
+- #else
+- #define POLYSEED_API
+- #endif
++// #ifdef POLYSEED_SHARED
++// #define POLYSEED_API __declspec(dllexport)
++// #elif !defined(POLYSEED_STATIC)
++// #define POLYSEED_API __declspec(dllimport)
++// #else
++ #define POLYSEED_API
++// #endif
+ #define POLYSEED_PRIVATE
+ #else
+ #ifdef POLYSEED_SHARED
diff --git a/contrib/depends/patches/protobuf/visibility.patch b/contrib/depends/patches/protobuf/visibility.patch
new file mode 100644
index 0000000..e66d596
--- /dev/null
+++ b/contrib/depends/patches/protobuf/visibility.patch
@@ -0,0 +1,159 @@
+--- src/google/protobuf/descriptor.cc.O 2018-07-30 22:16:10.000000000 +0000
++++ src/google/protobuf/descriptor.cc 2022-05-06 13:38:14.827309092 +0000
+@@ -32,6 +32,9 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
+ #include <algorithm>
+ #include <functional>
+ #include <google/protobuf/stubs/hash.h>
+@@ -7274,3 +7277,6 @@
+
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/extension_set.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/extension_set.cc 2022-05-06 14:48:55.369877050 +0000
+@@ -32,6 +32,9 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
+ #include <google/protobuf/stubs/hash.h>
+ #include <tuple>
+ #include <utility>
+@@ -1914,3 +1917,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/extension_set_heavy.cc.O 2018-07-30 22:16:10.000000000 +0000
++++ src/google/protobuf/extension_set_heavy.cc 2022-05-06 14:14:27.847320946 +0000
+@@ -35,6 +35,10 @@
+ // Contains methods defined in extension_set.h which cannot be part of the
+ // lite library because they use descriptors or reflection.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <google/protobuf/stubs/casts.h>
+ #include <google/protobuf/descriptor.pb.h>
+ #include <google/protobuf/io/coded_stream.h>
+@@ -814,3 +818,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/generated_message_reflection.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/generated_message_reflection.cc 2022-05-06 13:38:49.655540772 +0000
+@@ -32,6 +32,9 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
+ #include <algorithm>
+ #include <set>
+
+@@ -2420,3 +2423,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/map_field.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/map_field.cc 2022-05-06 13:34:44.913905697 +0000
+@@ -28,6 +28,10 @@
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <google/protobuf/map_field.h>
+ #include <google/protobuf/map_field_inl.h>
+
+@@ -462,3 +466,6 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/text_format.cc.O 2018-07-30 22:16:11.000000000 +0000
++++ src/google/protobuf/text_format.cc 2022-05-06 13:34:58.881999517 +0000
+@@ -32,6 +32,10 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <algorithm>
+ #include <float.h>
+ #include <math.h>
+@@ -2258,3 +2262,6 @@
+
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/wire_format.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/wire_format.cc 2022-05-06 13:06:23.294219228 +0000
+@@ -32,6 +32,10 @@
+ // Based on original Protocol Buffers design by
+ // Sanjay Ghemawat, Jeff Dean, and others.
+
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <stack>
+ #include <string>
+ #include <vector>
+@@ -1445,3 +1449,7 @@
+ } // namespace internal
+ } // namespace protobuf
+ } // namespace google
++
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
+--- src/google/protobuf/stubs/status.cc.O 2018-07-23 20:56:42.000000000 +0000
++++ src/google/protobuf/stubs/status.cc 2022-05-06 15:18:53.393208814 +0000
+@@ -27,6 +27,11 @@
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility push(hidden)
++#endif
++
+ #include <google/protobuf/stubs/status.h>
+
+ #include <ostream>
+@@ -132,3 +137,6 @@
+ } // namespace util
+ } // namespace protobuf
+ } // namespace google
++#if defined(__APPLE__) && defined(__arm64__)
++#pragma GCC visibility pop
++#endif
diff --git a/contrib/depends/patches/sodium/disable-glibc-getrandom-getentropy.patch b/contrib/depends/patches/sodium/disable-glibc-getrandom-getentropy.patch
new file mode 100644
index 0000000..2f07c10
--- /dev/null
+++ b/contrib/depends/patches/sodium/disable-glibc-getrandom-getentropy.patch
@@ -0,0 +1,25 @@
+diff --git a/configure.ac b/configure.ac
+index 9e2de27c..0fa85c2d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -807,6 +807,10 @@ AS_IF([test "x$EMSCRIPTEN" = "x"],[
+ # include <sys/random.h>
+ #endif
+ ]], [[
++#ifdef __linux__
++# error getrandom() is currently disabled on Linux to support glibc < 2.25
++#endif
++
+ unsigned char buf;
+ (void) getrandom((void *) &buf, 1U, 0U);
+ ]])],
+@@ -825,6 +829,9 @@ unsigned char buf;
+ # include <sys/random.h>
+ #endif
+ ]], [[
++#ifdef __linux__
++# error getentropy() is currently disabled on Linux to support glibc < 2.25
++#endif
+ #ifdef __APPLE__
+ # error getentropy() is currently disabled on Apple operating systems
+ #endif
diff --git a/contrib/depends/patches/sodium/fix-whitespace.patch b/contrib/depends/patches/sodium/fix-whitespace.patch
new file mode 100644
index 0000000..c3d3af0
--- /dev/null
+++ b/contrib/depends/patches/sodium/fix-whitespace.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index b29f769..ca008ae 100755
+--- a/configure
++++ b/configure
+@@ -591,7 +591,7 @@ MAKEFLAGS=
+ PACKAGE_NAME='libsodium'
+ PACKAGE_TARNAME='libsodium'
+ PACKAGE_VERSION='1.0.18'
+-PACKAGE_STRING='libsodium 1.0.18'
++PACKAGE_STRING='libsodium'
+ PACKAGE_BUGREPORT='https://github.com/jedisct1/libsodium/issues'
+ PACKAGE_URL='https://github.com/jedisct1/libsodium'
+
diff --git a/contrib/depends/patches/unbound/disable-glibc-reallocarray.patch b/contrib/depends/patches/unbound/disable-glibc-reallocarray.patch
new file mode 100644
index 0000000..d66a821
--- /dev/null
+++ b/contrib/depends/patches/unbound/disable-glibc-reallocarray.patch
@@ -0,0 +1,14 @@
+diff --git a/configure.ac b/configure.ac
+index 5c7da197..e2b25288 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1702,6 +1702,9 @@ AC_LINK_IFELSE([AC_LANG_SOURCE(AC_INCLUDES_DEFAULT
+ #ifndef _OPENBSD_SOURCE
+ #define _OPENBSD_SOURCE 1
+ #endif
++#ifdef __linux__
++# error reallocarray() is currently disabled on Linux to support glibc < 2.26
++#endif
+ #include <stdlib.h>
+ int main(void) {
+ void* p = reallocarray(NULL, 10, 100);
diff --git a/contrib/depends/patches/unwind/fix_obj_order.patch b/contrib/depends/patches/unwind/fix_obj_order.patch
new file mode 100644
index 0000000..e764f0f
--- /dev/null
+++ b/contrib/depends/patches/unwind/fix_obj_order.patch
@@ -0,0 +1,11 @@
+--- config/ltmain.sh.0 2020-11-10 17:25:26.000000000 +0100
++++ config/ltmain.sh 2021-09-11 19:39:36.000000000 +0200
+@@ -10768,6 +10768,8 @@
+ fi
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
++ oldobjs=`for obj in $oldobjs; do echo $obj; done | sort`
++ oldobjs=" `echo $oldobjs`"
+ eval cmds=\"$old_archive_cmds\"
+
+ func_len " $cmds"
diff --git a/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch
new file mode 100644
index 0000000..a8f8fe0
--- /dev/null
+++ b/contrib/depends/patches/wownero_seed/0001-fix-duplicate-symbol-error.patch
@@ -0,0 +1,497 @@
+From 4be93209afb80b11834a0849391ee6eeb68aec4a Mon Sep 17 00:00:00 2001
+From: Czarek Nakamoto <cyjan@mrcyjanek.net>
+Date: Thu, 25 Apr 2024 09:37:37 +0200
+Subject: [PATCH] fix duplicate symbol error
+
+---
+ src/argon2/argon2.c | 8 +++---
+ src/argon2/argon2.h | 4 +--
+ src/argon2/blake2/blake2.h | 12 ++++-----
+ src/argon2/blake2/blake2b.c | 46 ++++++++++++++++----------------
+ src/argon2/core.c | 52 ++++++++++++++++++-------------------
+ src/argon2/core.h | 17 ++++++------
+ src/argon2/ref.c | 2 +-
+ 7 files changed, 70 insertions(+), 71 deletions(-)
+
+diff --git a/src/argon2/argon2.c b/src/argon2/argon2.c
+index e9882b7..470dc26 100644
+--- a/src/argon2/argon2.c
++++ b/src/argon2/argon2.c
+@@ -37,7 +37,7 @@ const char *argon2_type2string(argon2_type type, int uppercase) {
+
+ int argon2_ctx(argon2_context *context, argon2_type type) {
+ /* 1. Validate all inputs */
+- int result = validate_inputs(context);
++ int result = validate_inputs_wowseed(context);
+ uint32_t memory_blocks, segment_length;
+ argon2_instance_t instance;
+
+@@ -78,20 +78,20 @@ int argon2_ctx(argon2_context *context, argon2_type type) {
+ /* 3. Initialization: Hashing inputs, allocating memory, filling first
+ * blocks
+ */
+- result = initialize(&instance, context);
++ result = initialize_wowseed(&instance, context);
+
+ if (ARGON2_OK != result) {
+ return result;
+ }
+
+ /* 4. Filling memory */
+- result = fill_memory_blocks(&instance);
++ result = _fill_memory_blocks_wowseed(&instance);
+
+ if (ARGON2_OK != result) {
+ return result;
+ }
+ /* 5. Finalization */
+- finalize(context, &instance);
++ finalize_wowseed(context, &instance);
+
+ return ARGON2_OK;
+ }
+diff --git a/src/argon2/argon2.h b/src/argon2/argon2.h
+index 1b471f6..f60e269 100644
+--- a/src/argon2/argon2.h
++++ b/src/argon2/argon2.h
+@@ -185,7 +185,7 @@ typedef void (*deallocate_fptr)(uint8_t *memory, size_t bytes_to_allocate);
+ * 4 parallel lanes.
+ * You want to erase the password, but you're OK with last pass not being
+ * erased. You want to use the default memory allocator.
+- * Then you initialize:
++ * Then you initialize_wowseed:
+ Argon2_Context(out,8,pwd,32,salt,16,NULL,0,NULL,0,5,1<<20,4,4,NULL,NULL,true,false,false,false)
+ */
+ typedef struct Argon2_Context {
+@@ -329,7 +329,7 @@ ARGON2_PUBLIC int argon2_hash(const uint32_t t_cost, const uint32_t m_cost,
+
+ /**
+ * Verifies a password against an encoded string
+- * Encoded string is restricted as in validate_inputs()
++ * Encoded string is restricted as in validate_inputs_wowseed()
+ * @param encoded String encoding parameters, salt, hash
+ * @param pwd Pointer to password
+ * @pre Returns ARGON2_OK if successful
+diff --git a/src/argon2/blake2/blake2.h b/src/argon2/blake2/blake2.h
+index 9f97e1c..25b445d 100644
+--- a/src/argon2/blake2/blake2.h
++++ b/src/argon2/blake2/blake2.h
+@@ -67,15 +67,15 @@ enum {
+ };
+
+ /* Streaming API */
+-ARGON2_LOCAL int blake2b_init(blake2b_state *S, size_t outlen);
+-ARGON2_LOCAL int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key,
++ARGON2_LOCAL int blake2b_init_wowseed(blake2b_state *S, size_t outlen);
++ARGON2_LOCAL int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key,
+ size_t keylen);
+-ARGON2_LOCAL int blake2b_init_param(blake2b_state *S, const blake2b_param *P);
+-ARGON2_LOCAL int blake2b_update(blake2b_state *S, const void *in, size_t inlen);
+-ARGON2_LOCAL int blake2b_final(blake2b_state *S, void *out, size_t outlen);
++ARGON2_LOCAL int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P);
++ARGON2_LOCAL int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen);
++ARGON2_LOCAL int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen);
+
+ /* Simple API */
+-ARGON2_LOCAL int blake2b(void *out, size_t outlen, const void *in, size_t inlen,
++ARGON2_LOCAL int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen,
+ const void *key, size_t keylen);
+
+ /* Argon2 Team - Begin Code */
+diff --git a/src/argon2/blake2/blake2b.c b/src/argon2/blake2/blake2b.c
+index ca05df5..8138b86 100644
+--- a/src/argon2/blake2/blake2b.c
++++ b/src/argon2/blake2/blake2b.c
+@@ -70,7 +70,7 @@ static BLAKE2_INLINE void blake2b_init0(blake2b_state *S) {
+ memcpy(S->h, blake2b_IV, sizeof(S->h));
+ }
+
+-int blake2b_init_param(blake2b_state *S, const blake2b_param *P) {
++int blake2b_init_param_wowseed(blake2b_state *S, const blake2b_param *P) {
+ const unsigned char *p = (const unsigned char *)P;
+ unsigned int i;
+
+@@ -88,7 +88,7 @@ int blake2b_init_param(blake2b_state *S, const blake2b_param *P) {
+ }
+
+ /* Sequential blake2b initialization */
+-int blake2b_init(blake2b_state *S, size_t outlen) {
++int blake2b_init_wowseed(blake2b_state *S, size_t outlen) {
+ blake2b_param P;
+
+ if (S == NULL) {
+@@ -113,10 +113,10 @@ int blake2b_init(blake2b_state *S, size_t outlen) {
+ memset(P.salt, 0, sizeof(P.salt));
+ memset(P.personal, 0, sizeof(P.personal));
+
+- return blake2b_init_param(S, &P);
++ return blake2b_init_param_wowseed(S, &P);
+ }
+
+-int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key,
++int blake2b_init_key_wowseed(blake2b_state *S, size_t outlen, const void *key,
+ size_t keylen) {
+ blake2b_param P;
+
+@@ -147,7 +147,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key,
+ memset(P.salt, 0, sizeof(P.salt));
+ memset(P.personal, 0, sizeof(P.personal));
+
+- if (blake2b_init_param(S, &P) < 0) {
++ if (blake2b_init_param_wowseed(S, &P) < 0) {
+ blake2b_invalidate_state(S);
+ return -1;
+ }
+@@ -156,7 +156,7 @@ int blake2b_init_key(blake2b_state *S, size_t outlen, const void *key,
+ uint8_t block[BLAKE2B_BLOCKBYTES];
+ memset(block, 0, BLAKE2B_BLOCKBYTES);
+ memcpy(block, key, keylen);
+- blake2b_update(S, block, BLAKE2B_BLOCKBYTES);
++ blake2b_update_wowseed(S, block, BLAKE2B_BLOCKBYTES);
+ /* Burn the key from stack */
+ clear_internal_memory(block, BLAKE2B_BLOCKBYTES);
+ }
+@@ -221,7 +221,7 @@ static void blake2b_compress(blake2b_state *S, const uint8_t *block) {
+ #undef ROUND
+ }
+
+-int blake2b_update(blake2b_state *S, const void *in, size_t inlen) {
++int blake2b_update_wowseed(blake2b_state *S, const void *in, size_t inlen) {
+ const uint8_t *pin = (const uint8_t *)in;
+
+ if (inlen == 0) {
+@@ -261,7 +261,7 @@ int blake2b_update(blake2b_state *S, const void *in, size_t inlen) {
+ return 0;
+ }
+
+-int blake2b_final(blake2b_state *S, void *out, size_t outlen) {
++int blake2b_final_wowseed(blake2b_state *S, void *out, size_t outlen) {
+ uint8_t buffer[BLAKE2B_OUTBYTES] = {0};
+ unsigned int i;
+
+@@ -291,7 +291,7 @@ int blake2b_final(blake2b_state *S, void *out, size_t outlen) {
+ return 0;
+ }
+
+-int blake2b(void *out, size_t outlen, const void *in, size_t inlen,
++int blake2b_wowseed(void *out, size_t outlen, const void *in, size_t inlen,
+ const void *key, size_t keylen) {
+ blake2b_state S;
+ int ret = -1;
+@@ -310,19 +310,19 @@ int blake2b(void *out, size_t outlen, const void *in, size_t inlen,
+ }
+
+ if (keylen > 0) {
+- if (blake2b_init_key(&S, outlen, key, keylen) < 0) {
++ if (blake2b_init_key_wowseed(&S, outlen, key, keylen) < 0) {
+ goto fail;
+ }
+ } else {
+- if (blake2b_init(&S, outlen) < 0) {
++ if (blake2b_init_wowseed(&S, outlen) < 0) {
+ goto fail;
+ }
+ }
+
+- if (blake2b_update(&S, in, inlen) < 0) {
++ if (blake2b_update_wowseed(&S, in, inlen) < 0) {
+ goto fail;
+ }
+- ret = blake2b_final(&S, out, outlen);
++ ret = blake2b_final_wowseed(&S, out, outlen);
+
+ fail:
+ clear_internal_memory(&S, sizeof(S));
+@@ -352,25 +352,25 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) {
+ } while ((void)0, 0)
+
+ if (outlen <= BLAKE2B_OUTBYTES) {
+- TRY(blake2b_init(&blake_state, outlen));
+- TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes)));
+- TRY(blake2b_update(&blake_state, in, inlen));
+- TRY(blake2b_final(&blake_state, out, outlen));
++ TRY(blake2b_init_wowseed(&blake_state, outlen));
++ TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes)));
++ TRY(blake2b_update_wowseed(&blake_state, in, inlen));
++ TRY(blake2b_final_wowseed(&blake_state, out, outlen));
+ } else {
+ uint32_t toproduce;
+ uint8_t out_buffer[BLAKE2B_OUTBYTES];
+ uint8_t in_buffer[BLAKE2B_OUTBYTES];
+- TRY(blake2b_init(&blake_state, BLAKE2B_OUTBYTES));
+- TRY(blake2b_update(&blake_state, outlen_bytes, sizeof(outlen_bytes)));
+- TRY(blake2b_update(&blake_state, in, inlen));
+- TRY(blake2b_final(&blake_state, out_buffer, BLAKE2B_OUTBYTES));
++ TRY(blake2b_init_wowseed(&blake_state, BLAKE2B_OUTBYTES));
++ TRY(blake2b_update_wowseed(&blake_state, outlen_bytes, sizeof(outlen_bytes)));
++ TRY(blake2b_update_wowseed(&blake_state, in, inlen));
++ TRY(blake2b_final_wowseed(&blake_state, out_buffer, BLAKE2B_OUTBYTES));
+ memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2);
+ out += BLAKE2B_OUTBYTES / 2;
+ toproduce = (uint32_t)outlen - BLAKE2B_OUTBYTES / 2;
+
+ while (toproduce > BLAKE2B_OUTBYTES) {
+ memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES);
+- TRY(blake2b(out_buffer, BLAKE2B_OUTBYTES, in_buffer,
++ TRY(blake2b_wowseed(out_buffer, BLAKE2B_OUTBYTES, in_buffer,
+ BLAKE2B_OUTBYTES, NULL, 0));
+ memcpy(out, out_buffer, BLAKE2B_OUTBYTES / 2);
+ out += BLAKE2B_OUTBYTES / 2;
+@@ -378,7 +378,7 @@ int blake2b_long(void *pout, size_t outlen, const void *in, size_t inlen) {
+ }
+
+ memcpy(in_buffer, out_buffer, BLAKE2B_OUTBYTES);
+- TRY(blake2b(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL,
++ TRY(blake2b_wowseed(out_buffer, toproduce, in_buffer, BLAKE2B_OUTBYTES, NULL,
+ 0));
+ memcpy(out, out_buffer, toproduce);
+ }
+diff --git a/src/argon2/core.c b/src/argon2/core.c
+index 5eafe08..c25eb53 100644
+--- a/src/argon2/core.c
++++ b/src/argon2/core.c
+@@ -151,7 +151,7 @@ void clear_internal_memory(void *v, size_t n) {
+ }
+ }
+
+-void finalize(const argon2_context *context, argon2_instance_t *instance) {
++void finalize_wowseed(const argon2_context *context, argon2_instance_t *instance) {
+ if (context != NULL && instance != NULL) {
+ block blockhash;
+ uint32_t l;
+@@ -256,7 +256,7 @@ uint32_t index_alpha(const argon2_instance_t *instance,
+ }
+
+ /* Single-threaded version for p=1 case */
+-static int fill_memory_blocks_st(argon2_instance_t *instance) {
++static int _fill_memory_blocks_wowseed_st(argon2_instance_t *instance) {
+ uint32_t r, s, l;
+
+ for (r = 0; r < instance->passes; ++r) {
+@@ -273,14 +273,14 @@ static int fill_memory_blocks_st(argon2_instance_t *instance) {
+ return ARGON2_OK;
+ }
+
+-int fill_memory_blocks(argon2_instance_t *instance) {
++int _fill_memory_blocks_wowseed(argon2_instance_t *instance) {
+ if (instance == NULL || instance->lanes == 0) {
+ return ARGON2_INCORRECT_PARAMETER;
+ }
+- return fill_memory_blocks_st(instance);
++ return _fill_memory_blocks_wowseed_st(instance);
+ }
+
+-int validate_inputs(const argon2_context *context) {
++int validate_inputs_wowseed(const argon2_context *context) {
+ if (NULL == context) {
+ return ARGON2_INCORRECT_PARAMETER;
+ }
+@@ -407,7 +407,7 @@ int validate_inputs(const argon2_context *context) {
+ return ARGON2_OK;
+ }
+
+-void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) {
++void fill_first_blocks_wowseed(uint8_t *blockhash, const argon2_instance_t *instance) {
+ uint32_t l;
+ /* Make the first and second block in each lane as G(H0||0||i) or
+ G(H0||1||i) */
+@@ -430,7 +430,7 @@ void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance) {
+ clear_internal_memory(blockhash_bytes, ARGON2_BLOCK_SIZE);
+ }
+
+-void initial_hash(uint8_t *blockhash, argon2_context *context,
++void initial_hash_wowseed(uint8_t *blockhash, argon2_context *context,
+ argon2_type type) {
+ blake2b_state BlakeHash;
+ uint8_t value[sizeof(uint32_t)];
+@@ -439,31 +439,31 @@ void initial_hash(uint8_t *blockhash, argon2_context *context,
+ return;
+ }
+
+- blake2b_init(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH);
++ blake2b_init_wowseed(&BlakeHash, ARGON2_PREHASH_DIGEST_LENGTH);
+
+ store32(&value, context->lanes);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ store32(&value, context->outlen);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ store32(&value, context->m_cost);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ store32(&value, context->t_cost);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ store32(&value, context->version);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ store32(&value, (uint32_t)type);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ store32(&value, context->pwdlen);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ if (context->pwd != NULL) {
+- blake2b_update(&BlakeHash, (const uint8_t *)context->pwd,
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->pwd,
+ context->pwdlen);
+
+ if (context->flags & ARGON2_FLAG_CLEAR_PASSWORD) {
+@@ -473,18 +473,18 @@ void initial_hash(uint8_t *blockhash, argon2_context *context,
+ }
+
+ store32(&value, context->saltlen);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ if (context->salt != NULL) {
+- blake2b_update(&BlakeHash, (const uint8_t *)context->salt,
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->salt,
+ context->saltlen);
+ }
+
+ store32(&value, context->secretlen);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ if (context->secret != NULL) {
+- blake2b_update(&BlakeHash, (const uint8_t *)context->secret,
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->secret,
+ context->secretlen);
+
+ if (context->flags & ARGON2_FLAG_CLEAR_SECRET) {
+@@ -494,17 +494,17 @@ void initial_hash(uint8_t *blockhash, argon2_context *context,
+ }
+
+ store32(&value, context->adlen);
+- blake2b_update(&BlakeHash, (const uint8_t *)&value, sizeof(value));
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)&value, sizeof(value));
+
+ if (context->ad != NULL) {
+- blake2b_update(&BlakeHash, (const uint8_t *)context->ad,
++ blake2b_update_wowseed(&BlakeHash, (const uint8_t *)context->ad,
+ context->adlen);
+ }
+
+- blake2b_final(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH);
++ blake2b_final_wowseed(&BlakeHash, blockhash, ARGON2_PREHASH_DIGEST_LENGTH);
+ }
+
+-int initialize(argon2_instance_t *instance, argon2_context *context) {
++int initialize_wowseed(argon2_instance_t *instance, argon2_context *context) {
+ uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH];
+ int result = ARGON2_OK;
+
+@@ -523,7 +523,7 @@ int initialize(argon2_instance_t *instance, argon2_context *context) {
+ /* H_0 + 8 extra bytes to produce the first blocks */
+ /* uint8_t blockhash[ARGON2_PREHASH_SEED_LENGTH]; */
+ /* Hashing all inputs */
+- initial_hash(blockhash, context, instance->type);
++ initial_hash_wowseed(blockhash, context, instance->type);
+ /* Zeroing 8 extra bytes */
+ clear_internal_memory(blockhash + ARGON2_PREHASH_DIGEST_LENGTH,
+ ARGON2_PREHASH_SEED_LENGTH -
+@@ -535,7 +535,7 @@ int initialize(argon2_instance_t *instance, argon2_context *context) {
+
+ /* 3. Creating first blocks, we always have at least two blocks in a slice
+ */
+- fill_first_blocks(blockhash, instance);
++ fill_first_blocks_wowseed(blockhash, instance);
+ /* Clearing the hash */
+ clear_internal_memory(blockhash, ARGON2_PREHASH_SEED_LENGTH);
+
+diff --git a/src/argon2/core.h b/src/argon2/core.h
+index 78000ba..6b0154c 100644
+--- a/src/argon2/core.h
++++ b/src/argon2/core.h
+@@ -53,7 +53,7 @@ typedef struct block_ { uint64_t v[ARGON2_QWORDS_IN_BLOCK]; } block;
+
+ /*****************Functions that work with the block******************/
+
+-/* Initialize each byte of the block with @in */
++/* initialize_wowseed each byte of the block with @in */
+ void init_block_value(block *b, uint8_t in);
+
+ /* Copy block @src to block @dst */
+@@ -158,7 +158,7 @@ uint32_t index_alpha(const argon2_instance_t *instance,
+ * @return ARGON2_OK if everything is all right, otherwise one of error codes
+ * (all defined in <argon2.h>
+ */
+-int validate_inputs(const argon2_context *context);
++int validate_inputs_wowseed(const argon2_context *context);
+
+ /*
+ * Hashes all the inputs into @a blockhash[PREHASH_DIGEST_LENGTH], clears
+@@ -170,28 +170,27 @@ int validate_inputs(const argon2_context *context);
+ * @pre @a blockhash must have at least @a PREHASH_DIGEST_LENGTH bytes
+ * allocated
+ */
+-void initial_hash(uint8_t *blockhash, argon2_context *context,
++void initial_hash_wowseed(uint8_t *blockhash, argon2_context *context,
+ argon2_type type);
+-
+ /*
+ * Function creates first 2 blocks per lane
+ * @param instance Pointer to the current instance
+ * @param blockhash Pointer to the pre-hashing digest
+ * @pre blockhash must point to @a PREHASH_SEED_LENGTH allocated values
+ */
+-void fill_first_blocks(uint8_t *blockhash, const argon2_instance_t *instance);
++void fill_first_blocks_wowseed(uint8_t *blockhash, const argon2_instance_t *instance);
+
+ /*
+ * Function allocates memory, hashes the inputs with Blake, and creates first
+ * two blocks. Returns the pointer to the main memory with 2 blocks per lane
+- * initialized
++ * initialize_wowseedd
+ * @param context Pointer to the Argon2 internal structure containing memory
+ * pointer, and parameters for time and space requirements.
+ * @param instance Current Argon2 instance
+ * @return Zero if successful, -1 if memory failed to allocate. @context->state
+ * will be modified if successful.
+ */
+-int initialize(argon2_instance_t *instance, argon2_context *context);
++int initialize_wowseed(argon2_instance_t *instance, argon2_context *context);
+
+ /*
+ * XORing the last block of each lane, hashing it, making the tag. Deallocates
+@@ -204,7 +203,7 @@ int initialize(argon2_instance_t *instance, argon2_context *context);
+ * @pre if context->free_cbk is not NULL, it should point to a function that
+ * deallocates memory
+ */
+-void finalize(const argon2_context *context, argon2_instance_t *instance);
++void finalize_wowseed(const argon2_context *context, argon2_instance_t *instance);
+
+ /*
+ * Function that fills the segment using previous segments also from other
+@@ -223,6 +222,6 @@ void fill_segment(const argon2_instance_t *instance,
+ * @param instance Pointer to the current instance
+ * @return ARGON2_OK if successful, @context->state
+ */
+-int fill_memory_blocks(argon2_instance_t *instance);
++int _fill_memory_blocks_wowseed(argon2_instance_t *instance);
+
+ #endif
+diff --git a/src/argon2/ref.c b/src/argon2/ref.c
+index ad1cf46..7edbd6e 100644
+--- a/src/argon2/ref.c
++++ b/src/argon2/ref.c
+@@ -29,7 +29,7 @@
+
+ /*
+ * Function fills a new memory block and optionally XORs the old block over the new one.
+- * @next_block must be initialized.
++ * @next_block must be initialize_wowseedd.
+ * @param prev_block Pointer to the previous block
+ * @param ref_block Pointer to the reference block
+ * @param next_block Pointer to the block to be constructed
+--
+2.39.2
diff --git a/contrib/depends/patches/zeromq/06aba27b04c5822cb88a69677382a0f053367143.patch b/contrib/depends/patches/zeromq/06aba27b04c5822cb88a69677382a0f053367143.patch
new file mode 100644
index 0000000..53e18a4
--- /dev/null
+++ b/contrib/depends/patches/zeromq/06aba27b04c5822cb88a69677382a0f053367143.patch
@@ -0,0 +1,22 @@
+From 06aba27b04c5822cb88a69677382a0f053367143 Mon Sep 17 00:00:00 2001
+From: sabotagebeats <27985126+sabotagebeats@users.noreply.github.com>
+Date: Thu, 22 Jul 2021 21:53:19 -0700
+Subject: [PATCH] fix: building libzmq fails with error src/clock.cpp:131:16:
+ error: unused variable 'nsecs_per_usec'
+
+---
+ src/clock.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/clock.cpp b/src/clock.cpp
+index 93da90a8e..63c0100a5 100644
+--- a/src/clock.cpp
++++ b/src/clock.cpp
+@@ -195,6 +195,7 @@ uint64_t zmq::clock_t::now_us ()
+
+ #else
+
++ LIBZMQ_UNUSED (nsecs_per_usec);
+ // Use POSIX gettimeofday function to get precise time.
+ struct timeval tv;
+ int rc = gettimeofday (&tv, NULL);
diff --git a/contrib/depends/toolchain.cmake.in b/contrib/depends/toolchain.cmake.in
new file mode 100644
index 0000000..7dd73ac
--- /dev/null
+++ b/contrib/depends/toolchain.cmake.in
@@ -0,0 +1,177 @@
+# Set the system name to one of Android, Darwin, iOS, FreeBSD, Linux, or Windows
+SET(CMAKE_SYSTEM_NAME @depends@)
+SET(CMAKE_SYSTEM_PROCESSOR @arch@)
+SET(CMAKE_BUILD_TYPE @release_type@)
+
+OPTION(STATIC "Link libraries statically" ON)
+OPTION(TREZOR_DEBUG "Main trezor debugging switch" OFF)
+OPTION(BUILD_TESTS "Build tests." OFF)
+
+SET(STATIC ON)
+SET(UNBOUND_STATIC ON)
+SET(ARCH "default")
+
+SET(BUILD_TESTS @build_tests@)
+SET(TREZOR_DEBUG @build_tests@)
+
+# where is the target environment
+SET(CMAKE_FIND_ROOT_PATH @prefix@ /usr)
+
+SET(ENV{PKG_CONFIG_PATH} @prefix@/lib/pkgconfig)
+
+SET(Readline_ROOT_DIR @prefix@)
+SET(Readline_INCLUDE_DIR @prefix@/include)
+SET(Readline_LIBRARY @prefix@/lib/libreadline.a)
+SET(Terminfo_LIBRARY @prefix@/lib/libtinfo.a)
+
+SET(UNBOUND_INCLUDE_DIR @prefix@/include)
+SET(UNBOUND_LIBRARIES @prefix@/lib/libunbound.a)
+
+if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android")
+SET(LIBUNWIND_INCLUDE_DIR @prefix@/include)
+SET(LIBUNWIND_LIBRARIES @prefix@/lib/libunwind.a)
+SET(LIBUNWIND_LIBRARY_DIRS @prefix@/lib)
+
+if(NOT CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+SET(LIBUSB-1.0_LIBRARY @prefix@/lib/libusb-1.0.a)
+SET(LIBUDEV_LIBRARY @prefix@/lib/libudev.a)
+
+SET(Protobuf_FOUND 1)
+SET(Protobuf_PROTOC_EXECUTABLE @prefix@/native/bin/protoc CACHE FILEPATH "Path to the native protoc")
+SET(Protobuf_INCLUDE_DIR @prefix@/include CACHE PATH "Protobuf include dir")
+SET(Protobuf_INCLUDE_DIRS @prefix@/include CACHE PATH "Protobuf include dir")
+SET(Protobuf_LIBRARY @prefix@/lib/libprotobuf.a CACHE FILEPATH "Protobuf library")
+endif()
+
+endif()
+
+SET(ZMQ_INCLUDE_PATH @prefix@/include)
+SET(ZMQ_LIB @prefix@/lib/libzmq.a)
+
+SET(Boost_IGNORE_SYSTEM_PATH ON)
+SET(BOOST_ROOT @prefix@)
+SET(BOOST_INCLUDEDIR @prefix@/include)
+SET(BOOST_LIBRARYDIR @prefix@/lib)
+SET(Boost_IGNORE_SYSTEM_PATHS_DEFAULT OFF)
+SET(Boost_NO_SYSTEM_PATHS ON)
+SET(Boost_USE_STATIC_LIBS ON)
+SET(Boost_USE_STATIC_RUNTIME ON)
+
+SET(OPENSSL_ROOT_DIR @prefix@)
+SET(ARCHITECTURE @arch@)
+
+# for libraries and headers in the target directories
+set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) # Find programs on host
+set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) # Find libs in target
+set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) # Find includes in target
+
+# specify the cross compiler to be used. Darwin uses clang provided by the SDK.
+if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ if(ARCHITECTURE STREQUAL "aarch64")
+ SET(CLANG_TARGET "arm64-apple-darwin11")
+ SET(CONF_TRIPLE "aarch64-apple-darwin11")
+ SET(BUILD_TAG "mac-armv8")
+ SET(CMAKE_OSX_ARCHITECTURES "arm64")
+ set(ARM ON)
+ set(ARM_ID "armv8-a")
+ else()
+ SET(CLANG_TARGET "x86_64-apple-darwin11")
+ SET(CONF_TRIPLE "x86_64-apple-darwin11")
+ SET(BUILD_TAG "mac-x64")
+ SET(CMAKE_OSX_ARCHITECTURES "x86_64")
+ endif()
+ SET(_CMAKE_TOOLCHAIN_PREFIX @prefix@/native/bin/${CONF_TRIPLE}-)
+ SET(CMAKE_C_COMPILER @prefix@/native/bin/clang)
+ SET(CMAKE_C_COMPILER_TARGET ${CLANG_TARGET})
+ SET(CMAKE_C_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX})
+ SET(CMAKE_CXX_COMPILER @prefix@/native/bin/clang++ -stdlib=libc++)
+ SET(CMAKE_CXX_COMPILER_TARGET ${CLANG_TARGET})
+ SET(CMAKE_CXX_FLAGS_INIT -B${_CMAKE_TOOLCHAIN_PREFIX})
+ SET(CMAKE_ASM_COMPILER_TARGET ${CLANG_TARGET})
+ SET(CMAKE_ASM-ATT_COMPILER_TARGET ${CLANG_TARGET})
+ SET(APPLE True)
+ SET(BUILD_64 ON)
+ SET(BREW OFF)
+ SET(PORT OFF)
+ SET(CMAKE_OSX_SYSROOT "@prefix@/native/SDK/")
+ SET(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
+ SET(CMAKE_CXX_STANDARD 14)
+ SET(LLVM_ENABLE_PIC OFF)
+ SET(LLVM_ENABLE_PIE OFF)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Android")
+ SET(ANDROID TRUE)
+ if(ARCHITECTURE STREQUAL "armv7a")
+ SET(CMAKE_ANDROID_ARCH_ABI "armeabi-v7a")
+ SET(CMAKE_SYSTEM_PROCESSOR "armv7-a")
+ SET(CMAKE_ANDROID_ARM_MODE ON)
+ SET(CMAKE_C_COMPILER_TARGET armv7a-linux-androideabi21)
+ SET(CMAKE_CXX_COMPILER_TARGET armv7a-linux-androideabi21)
+ SET(_CMAKE_TOOLCHAIN_PREFIX armv7a-linux-androideabi21-)
+ elseif(ARCHITECTURE STREQUAL "aarch64")
+ SET(CMAKE_ANDROID_ARCH_ABI "arm64-v8a")
+ SET(CMAKE_SYSTEM_PROCESSOR "aarch64")
+ endif()
+ SET(CMAKE_ANDROID_STANDALONE_TOOLCHAIN @prefix@/native)
+ SET(_ANDROID_STANDALONE_TOOLCHAIN_API 21)
+ SET(CMAKE_C_COMPILER @CC@)
+ SET(CMAKE_CXX_COMPILER @CXX@)
+else()
+ SET(CMAKE_C_COMPILER @CC@)
+ SET(CMAKE_CXX_COMPILER @CXX@)
+endif()
+
+if(ARCHITECTURE STREQUAL "arm")
+ set(ARCH "armv7-a")
+ set(ARM ON)
+ set(ARM_ID "armv7-a")
+ set(BUILD_64 OFF)
+ set(CMAKE_BUILD_TYPE release)
+ if(ANDROID)
+ set(BUILD_TAG "android-armv7")
+ else()
+ set(BUILD_TAG "linux-armv7")
+ endif()
+ set(ARM7)
+elseif(ARCHITECTURE STREQUAL "aarch64")
+ set(ARCH "armv8-a")
+ set(ARM ON)
+ set(ARM_ID "armv8-a")
+ if(ANDROID)
+ set(BUILD_TAG "android-armv8")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(BUILD_TAG "linux-armv8")
+ endif()
+ set(BUILD_64 ON)
+endif()
+
+if(ARCHITECTURE STREQUAL "riscv64")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(BUILD_TAG "linux-riscv64")
+ endif()
+ set(ARCH_ID "riscv64")
+ set(ARCH "rv64gc")
+endif()
+
+if(ARCHITECTURE STREQUAL "i686")
+ SET(ARCH_ID "i386")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(BUILD_TAG "linux-x86")
+ SET(LINUX_32 ON)
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ set(BUILD_TAG "win-x32")
+ endif()
+endif()
+
+if(ARCHITECTURE STREQUAL "x86_64")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+ set(BUILD_TAG "linux-x64")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+ set(BUILD_TAG "freebsd-x64")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ set(BUILD_TAG "win-x64")
+ endif()
+ SET(ARCH_ID "x86_64")
+endif()
+
+#Create a new global cmake flag that indicates building with depends
+set (DEPENDS true)
diff --git a/monero_libwallet2_api_c/CMakeLists.txt b/monero_libwallet2_api_c/CMakeLists.txt
index 790070a..37c739d 100644
--- a/monero_libwallet2_api_c/CMakeLists.txt
+++ b/monero_libwallet2_api_c/CMakeLists.txt
@@ -44,118 +44,12 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
set(MONERO_DIR ${CMAKE_SOURCE_DIR}/../${MONERO_FLAVOR})
-set(EXTERNAL_LIBS_DIR ${MONERO_DIR}/contrib/depends/${HOST_ABI})
-
-############
-# libsodium
-############
-
-add_library(sodium STATIC IMPORTED)
-set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libsodium.a)
-
-############
-# OpenSSL
-############
-
-add_library(crypto STATIC IMPORTED)
-set_target_properties(crypto PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libcrypto.a)
-
-add_library(ssl STATIC IMPORTED)
-set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libssl.a)
-
-############
-# Boost
-############
-
-if(${HOST_ABI} STREQUAL "x86_64-linux-android" OR ${HOST_ABI} STREQUAL "aarch64-linux-android" OR ${HOST_ABI} STREQUAL "armv7a-linux-androideabi" OR ${HOST_ABI} STREQUAL "i686-linux-android")
- set(CMAKE_LINKER ${HOST_ABI}-ld)
- set(BOOST_WTF "-mt-s")
- set(BOOST_WTF_PART "")
-elseif(${HOST_ABI} STREQUAL "x86_64-w64-mingw32" OR ${HOST_ABI} STREQUAL "i686-w64-mingw32")
- set(BOOST_WTF "-mt-s")
- set(BOOST_WTF_PART "_win32")
-elseif(${HOST_ABI} STREQUAL "host-apple-ios")
- set(BOOST_WTF "")
- set(BOOST_WTF_PART "")
-else()
- set(BOOST_WTF "-mt")
- set(BOOST_WTF_PART "")
-endif()
-
-
-add_library(boost_chrono STATIC IMPORTED)
-set_target_properties(boost_chrono PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_chrono${BOOST_WTF}.a)
-
-# win extra
-add_library(boost_locale STATIC IMPORTED)
-set_target_properties(boost_locale PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_locale${BOOST_WTF}.a)
-
-# win extra
-add_library(iconv-win STATIC IMPORTED)
-set_target_properties(iconv-win PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libiconv.a)
-
-add_library(boost_date_time STATIC IMPORTED)
-set_target_properties(boost_date_time PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_date_time${BOOST_WTF}.a)
-
-add_library(boost_filesystem STATIC IMPORTED)
-set_target_properties(boost_filesystem PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_filesystem${BOOST_WTF}.a)
+set(EXTERNAL_LIBS_DIR ${CMAKE_SOURCE_DIR}/../contrib/depends/${HOST_ABI})
-add_library(boost_program_options STATIC IMPORTED)
-set_target_properties(boost_program_options PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_program_options${BOOST_WTF}.a)
+find_package(PkgConfig REQUIRED)
-add_library(boost_regex STATIC IMPORTED)
-set_target_properties(boost_regex PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_regex${BOOST_WTF}.a)
+find_package(Boost REQUIRED COMPONENTS chrono filesystem program_options system thread date_time regex serialization locale)
-add_library(boost_serialization STATIC IMPORTED)
-set_target_properties(boost_serialization PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_serialization${BOOST_WTF}.a)
-
-add_library(boost_system STATIC IMPORTED)
-set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_system${BOOST_WTF}.a)
-
-add_library(boost_thread STATIC IMPORTED)
-set_target_properties(boost_thread PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_thread${BOOST_WTF_PART}${BOOST_WTF}.a)
-
-add_library(boost_wserialization STATIC IMPORTED)
-set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libboost_wserialization${BOOST_WTF}.a)
-
-#############
-# Polyseed
-#############
-
-if(${HOST_ABI} STREQUAL "aarch64-meego-linux-gnu")
- add_library(polyseed STATIC IMPORTED)
- set_target_properties(polyseed PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib64/libpolyseed.a)
-else()
- add_library(polyseed STATIC IMPORTED)
- set_target_properties(polyseed PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libpolyseed.a)
-endif()
-
-add_library(polyseed-wrapper STATIC IMPORTED)
-set_target_properties(polyseed-wrapper PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/polyseed/libpolyseed_wrapper.a)
-
-if(${HOST_ABI} STREQUAL "x86_64-w64-mingw32" OR ${HOST_ABI} STREQUAL "i686-w64-mingw32")
- set(EXTRA_LIBS_POLYSEED polyseed-win)
- add_library(polyseed-win STATIC IMPORTED)
- set_target_properties(polyseed-win PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/polyseed/libpolyseed.dll.a)
-endif()
#############
# Wownero Seed
@@ -174,141 +68,11 @@ if (${MONERO_FLAVOR} STREQUAL "wownero")
endif()
endif()
-#############
-# Utf8proc
-#############
-
-add_library(utf8proc STATIC IMPORTED)
-set_target_properties(utf8proc PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/utf8proc/libutf8proc.a)
-
-#############
-# bc-ur
-#############
-
-add_library(bc-ur STATIC IMPORTED)
-set_target_properties(bc-ur PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/bc-ur/libbc-ur.a)
-
-
-#############
-# Monero
-#############
-
-add_library(wallet_api STATIC IMPORTED)
-set_target_properties(wallet_api PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/lib/libwallet_api.a)
-
-add_library(wallet STATIC IMPORTED)
-set_target_properties(wallet PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/lib/libwallet.a)
-
-add_library(cryptonote_core STATIC IMPORTED)
-set_target_properties(cryptonote_core PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/cryptonote_core/libcryptonote_core.a)
-
-add_library(cryptonote_basic STATIC IMPORTED)
-set_target_properties(cryptonote_basic PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/cryptonote_basic/libcryptonote_basic.a)
-
-add_library(mnemonics STATIC IMPORTED)
-set_target_properties(mnemonics PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/mnemonics/libmnemonics.a)
-
-add_library(common STATIC IMPORTED)
-set_target_properties(common PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/common/libcommon.a)
-
-add_library(cncrypto STATIC IMPORTED)
-set_target_properties(cncrypto PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/crypto/libcncrypto.a)
-
-add_library(ringct STATIC IMPORTED)
-set_target_properties(ringct PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/ringct/libringct.a)
-
-add_library(ringct_basic STATIC IMPORTED)
-set_target_properties(ringct_basic PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/ringct/libringct_basic.a)
-
-add_library(blockchain_db STATIC IMPORTED)
-set_target_properties(blockchain_db PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/blockchain_db/libblockchain_db.a)
-
-add_library(lmdb STATIC IMPORTED)
-set_target_properties(lmdb PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/db_drivers/liblmdb/liblmdb.a)
-
-add_library(easylogging STATIC IMPORTED)
-set_target_properties(easylogging PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/easylogging++/libeasylogging.a)
-
-add_library(unbound STATIC IMPORTED)
-set_target_properties(unbound PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libunbound.a)
-
-add_library(epee STATIC IMPORTED)
-set_target_properties(epee PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/contrib/epee/src/libepee.a)
-
-add_library(blocks STATIC IMPORTED)
-set_target_properties(blocks PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/blocks/libblocks.a)
-
-add_library(checkpoints STATIC IMPORTED)
-set_target_properties(checkpoints PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/checkpoints/libcheckpoints.a)
-
-add_library(device STATIC IMPORTED)
-set_target_properties(device PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/device/libdevice.a)
-
-add_library(device_trezor STATIC IMPORTED)
-set_target_properties(device_trezor PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/device_trezor/libdevice_trezor.a)
-
-add_library(multisig STATIC IMPORTED)
-set_target_properties(multisig PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/multisig/libmultisig.a)
-
-add_library(version STATIC IMPORTED)
-set_target_properties(version PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/libversion.a)
-
-add_library(net STATIC IMPORTED)
-set_target_properties(net PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/net/libnet.a)
-
-add_library(hardforks STATIC IMPORTED)
-set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/hardforks/libhardforks.a)
-
-if (${MONERO_FLAVOR} STREQUAL "monero")
- set(RANDOMX_FLAVOR "randomx")
-elseif(${MONERO_FLAVOR} STREQUAL "wownero")
- set(RANDOMX_FLAVOR "randomwow")
-endif()
-
-add_library(randomx STATIC IMPORTED)
-set_target_properties(randomx PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/external/${RANDOMX_FLAVOR}/librandomx.a)
+# add_subdirectory("${CMAKE_SOURCE_DIR}/../external/utf8proc" ${CMAKE_BINARY_DIR}/utf8proc_build)
-add_library(rpc_base STATIC IMPORTED)
-set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/rpc/librpc_base.a)
-# TODO(mrcyjanek): fix (x86_64 maybe?)
-add_library(wallet-crypto STATIC IMPORTED)
-set_target_properties(wallet-crypto PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/crypto/wallet/libwallet-crypto.a)
+add_subdirectory("${CMAKE_SOURCE_DIR}/../${MONERO_FLAVOR}" ${CMAKE_BINARY_DIR}/${MONERO_FLAVOR}_build)
-add_library(cryptonote_format_utils_basic STATIC IMPORTED)
-set_target_properties(cryptonote_format_utils_basic PROPERTIES IMPORTED_LOCATION
- ${MONERO_DIR}/build/${HOST_ABI}/src/cryptonote_basic/libcryptonote_format_utils_basic.a)
-
-add_library(hidapi STATIC IMPORTED)
-set_target_properties(hidapi PROPERTIES IMPORTED_LOCATION
- ${EXTERNAL_LIBS_DIR}/lib/libhidapi.a)
#############
# System
@@ -381,6 +145,17 @@ if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64
set_target_properties(${TARGET} PROPERTIES LINK_DEPENDS ${EXPORTED_SYMBOLS_FILE})
endif()
+find_package(OpenSSL REQUIRED)
+message(STATUS "Using OpenSSL include dir at ${OPENSSL_INCLUDE_DIR}")
+include_directories(${OPENSSL_INCLUDE_DIR})
+
+pkg_check_modules(SODIUM REQUIRED libsodium)
+message(STATUS "Using libsodium include dir at ${SODIUM_LIBRARIES}")
+get_cmake_property(_variableNames VARIABLES)
+#list (SORT _variableNames)
+#foreach (_variableName ${_variableNames})
+# message(STATUS "${_variableName}=${${_variableName}}")
+#endforeach()
target_link_libraries( wallet2_api_c
wallet_api
@@ -397,7 +172,7 @@ target_link_libraries( wallet2_api_c
blockchain_db
lmdb
easylogging
- unbound
+ # unbound
epee
blocks
checkpoints
@@ -410,31 +185,20 @@ target_link_libraries( wallet2_api_c
rpc_base
${EXTRA_LIBS}
- boost_chrono
- boost_locale
- boost_date_time
- boost_filesystem
- boost_program_options
- boost_regex
- boost_serialization
- boost_system
- boost_thread
- boost_wserialization
+ ${Boost_LIBRARIES}
polyseed
- polyseed-wrapper
+ polyseed_static
${EXTRA_LIBS_POLYSEED}
${EXTRA_LIBS_WOWNEROSEED}
- utf8proc
bc-ur
+ utf8proc
- ssl
- crypto
-
- sodium
-
+ ${SODIUM_LINK_LIBRARIES}
+ ${OPENSSL_LIBRARIES}
+
${EXTRA_LIBS_WINDOWS}
${EXTRA_LIBS_APPLE}
${EXTRA_LIBS_ANDROID}
- )
+ ) \ No newline at end of file
diff --git a/patches/monero/0013-add-monero-submodule-support.patch b/patches/monero/0013-add-monero-submodule-support.patch
new file mode 100644
index 0000000..97dcc90
--- /dev/null
+++ b/patches/monero/0013-add-monero-submodule-support.patch
@@ -0,0 +1,65 @@
+From c7a565ce333b11e4eaa25a1cf6035837146273d7 Mon Sep 17 00:00:00 2001
+From: cyan <cyjan@mrcyjanek.net>
+Date: Thu, 7 Nov 2024 16:46:24 +0000
+Subject: [PATCH] add monero submodule support
+
+---
+ CMakeLists.txt | 6 +++---
+ cmake/CheckLinkerFlag.cmake | 2 +-
+ src/wallet/wallet_rpc_server.cpp | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e7fa90abb..b995a68b2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -223,9 +223,9 @@ function(forbid_undefined_symbols)
+ cmake_minimum_required(VERSION 3.1)
+ project(test)
+ option(EXPECT_SUCCESS "" ON)
+-file(WRITE "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }")
++file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }")
+ if (EXPECT_SUCCESS)
+- file(APPEND "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" " void undefined_symbol() {}; ")
++ file(APPEND "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" " void undefined_symbol() {}; ")
+ endif()
+ add_library(l0 SHARED incorrect_source.cpp)
+ add_library(l1 MODULE incorrect_source.cpp)
+@@ -390,7 +390,7 @@ else()
+ endif()
+
+ list(INSERT CMAKE_MODULE_PATH 0
+- "${CMAKE_SOURCE_DIR}/cmake")
++ "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+ if (NOT DEFINED ENV{DEVELOPER_LOCAL_TOOLS})
+ message(STATUS "Could not find DEVELOPER_LOCAL_TOOLS in env (not required)")
+diff --git a/cmake/CheckLinkerFlag.cmake b/cmake/CheckLinkerFlag.cmake
+index 7ecf5f610..89fb9d167 100644
+--- a/cmake/CheckLinkerFlag.cmake
++++ b/cmake/CheckLinkerFlag.cmake
+@@ -6,7 +6,7 @@ macro(CHECK_LINKER_FLAG flag VARIABLE)
+ message(STATUS "Looking for ${flag} linker flag")
+ endif()
+
+- set(_cle_source ${CMAKE_SOURCE_DIR}/cmake/CheckLinkerFlag.c)
++ set(_cle_source ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CheckLinkerFlag.c)
+
+ set(saved_CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
+ set(CMAKE_C_FLAGS "${flag}")
+diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
+index d24b4c563..91f692599 100644
+--- a/src/wallet/wallet_rpc_server.cpp
++++ b/src/wallet/wallet_rpc_server.cpp
+@@ -1163,7 +1163,7 @@ namespace tools
+ {
+ uint64_t mixin = m_wallet->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0);
+ uint32_t priority = m_wallet->adjust_priority(req.priority);
+- std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, priority, extra, req.account_index, req.subaddr_indices, req.subtract_fee_from_outputs);
++ std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, priority, extra, req.account_index, req.subaddr_indices, {}, req.subtract_fee_from_outputs);
+
+ if (ptx_vector.empty())
+ {
+--
+2.43.0
+
diff --git a/patches/wownero/0015-add-monero-submodule-support.patch b/patches/wownero/0015-add-monero-submodule-support.patch
new file mode 100644
index 0000000..97dcc90
--- /dev/null
+++ b/patches/wownero/0015-add-monero-submodule-support.patch
@@ -0,0 +1,65 @@
+From c7a565ce333b11e4eaa25a1cf6035837146273d7 Mon Sep 17 00:00:00 2001
+From: cyan <cyjan@mrcyjanek.net>
+Date: Thu, 7 Nov 2024 16:46:24 +0000
+Subject: [PATCH] add monero submodule support
+
+---
+ CMakeLists.txt | 6 +++---
+ cmake/CheckLinkerFlag.cmake | 2 +-
+ src/wallet/wallet_rpc_server.cpp | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e7fa90abb..b995a68b2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -223,9 +223,9 @@ function(forbid_undefined_symbols)
+ cmake_minimum_required(VERSION 3.1)
+ project(test)
+ option(EXPECT_SUCCESS "" ON)
+-file(WRITE "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }")
++file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" "void undefined_symbol(); void symbol() { undefined_symbol(); }")
+ if (EXPECT_SUCCESS)
+- file(APPEND "${CMAKE_SOURCE_DIR}/incorrect_source.cpp" " void undefined_symbol() {}; ")
++ file(APPEND "${CMAKE_CURRENT_SOURCE_DIR}/incorrect_source.cpp" " void undefined_symbol() {}; ")
+ endif()
+ add_library(l0 SHARED incorrect_source.cpp)
+ add_library(l1 MODULE incorrect_source.cpp)
+@@ -390,7 +390,7 @@ else()
+ endif()
+
+ list(INSERT CMAKE_MODULE_PATH 0
+- "${CMAKE_SOURCE_DIR}/cmake")
++ "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+
+ if (NOT DEFINED ENV{DEVELOPER_LOCAL_TOOLS})
+ message(STATUS "Could not find DEVELOPER_LOCAL_TOOLS in env (not required)")
+diff --git a/cmake/CheckLinkerFlag.cmake b/cmake/CheckLinkerFlag.cmake
+index 7ecf5f610..89fb9d167 100644
+--- a/cmake/CheckLinkerFlag.cmake
++++ b/cmake/CheckLinkerFlag.cmake
+@@ -6,7 +6,7 @@ macro(CHECK_LINKER_FLAG flag VARIABLE)
+ message(STATUS "Looking for ${flag} linker flag")
+ endif()
+
+- set(_cle_source ${CMAKE_SOURCE_DIR}/cmake/CheckLinkerFlag.c)
++ set(_cle_source ${CMAKE_CURRENT_SOURCE_DIR}/cmake/CheckLinkerFlag.c)
+
+ set(saved_CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
+ set(CMAKE_C_FLAGS "${flag}")
+diff --git a/src/wallet/wallet_rpc_server.cpp b/src/wallet/wallet_rpc_server.cpp
+index d24b4c563..91f692599 100644
+--- a/src/wallet/wallet_rpc_server.cpp
++++ b/src/wallet/wallet_rpc_server.cpp
+@@ -1163,7 +1163,7 @@ namespace tools
+ {
+ uint64_t mixin = m_wallet->adjust_mixin(req.ring_size ? req.ring_size - 1 : 0);
+ uint32_t priority = m_wallet->adjust_priority(req.priority);
+- std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, priority, extra, req.account_index, req.subaddr_indices, req.subtract_fee_from_outputs);
++ std::vector<wallet2::pending_tx> ptx_vector = m_wallet->create_transactions_2(dsts, mixin, priority, extra, req.account_index, req.subaddr_indices, {}, req.subtract_fee_from_outputs);
+
+ if (ptx_vector.empty())
+ {
+--
+2.43.0
+