diff --git a/config.log b/config.log
new file mode 100644
index 0000000..b1f0c3b
--- /dev/null
+++ b/config.log
@@ -0,0 +1,2797 @@
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by configure, which was
+generated by GNU Autoconf 2.52.20231210.  Invocation command line was
+
+  $ ./configure --enable-tcap-names --with-terminfo-dirs=/system_ext/etc/terminfo --with-default-terminfo-dir=/system_ext/etc/terminfo
+
+## ---------- ##
+## Platform.  ##
+## ---------- ##
+
+hostname = micky387-MS-7D75
+uname -m = x86_64
+uname -r = 6.8.0-62-generic
+uname -s = Linux
+uname -v = #65-Ubuntu SMP PREEMPT_DYNAMIC Mon May 19 17:15:03 UTC 2025
+
+/usr/bin/uname -p = x86_64
+/bin/uname -X     = unknown
+
+/bin/arch              = x86_64
+/usr/bin/arch -k       = unknown
+/usr/convex/getsysinfo = unknown
+hostinfo               = unknown
+/bin/machine           = unknown
+/usr/bin/oslevel       = unknown
+/bin/universe          = unknown
+
+PATH = /usr/local/android-studio/bin:/home/micky387/.local/bin:/home/micky387/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
+
+## ------------ ##
+## Core tests.  ##
+## ------------ ##
+
+configure:1175: PATH=".;."; conftest.sh
+./configure: 1176: conftest.sh: not found
+configure:1178: $? = 127
+configure:1195: checking for ggrep
+configure:1221: result: no
+configure:1195: checking for grep
+configure:1210: found /usr/bin/grep
+configure:1218: result: grep
+configure:1229: checking for egrep
+configure:1285: result: grep -E
+configure:1296: result: Configuring NCURSES 6.5 ABI 6 (Tue Jul  8 18:05:41 EDT 2025)
+configure:1300: checking for package version
+configure:1321: result: 6.5
+configure:1324: checking for package patch date
+configure:1341: result: 20240427
+configure:1352: testing ABI VERSION 5:0:10 ...
+configure:1356: testing VERSION_MAJOR 6 ...
+configure:1360: testing VERSION_MINOR 5 ...
+configure:1364: testing VERSION_PATCH 20240427 ...
+configure:1509: checking build system type
+configure:1527: result: x86_64-pc-linux-gnu
+configure:1534: checking host system type
+configure:1548: result: x86_64-pc-linux-gnu
+configure:1556: checking target system type
+configure:1570: result: x86_64-pc-linux-gnu
+configure:1602: result: Configuring for linux-gnu
+configure:1627: checking for fgrep
+configure:1683: result: grep -F
+configure:1687: checking for prefix
+configure:1699: result: /usr
+configure:1878: checking for gnatgcc
+configure:1904: result: no
+configure:1878: checking for gcc
+configure:1893: found /usr/bin/gcc
+configure:1901: result: gcc
+configure:1919: checking for C compiler version
+configure:1922: gcc --version </dev/null >&5
+gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
+Copyright (C) 2023 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.
+
+configure:1925: $? = 0
+configure:1927: gcc -v </dev/null >&5
+Using built-in specs.
+COLLECT_GCC=gcc
+COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) 
+configure:1930: $? = 0
+configure:1932: gcc -V </dev/null >&5
+gcc: error: unrecognized command-line option '-V'
+gcc: fatal error: no input files
+compilation terminated.
+configure:1935: $? = 1
+configure:1955: checking for C compiler default output
+configure:1958: gcc    conftest.c  >&5
+configure:1961: $? = 0
+configure:1990: result: a.out
+configure:1995: checking whether the C compiler works
+configure:2001: ./a.out
+configure:2004: $? = 0
+configure:2019: result: yes
+configure:2026: checking whether we are cross compiling
+configure:2028: result: no
+configure:2031: checking for executable suffix
+configure:2033: gcc -o conftest    conftest.c  >&5
+configure:2036: $? = 0
+configure:2058: result: 
+configure:2064: checking for object suffix
+configure:2082: gcc -c   conftest.c >&5
+configure:2085: $? = 0
+configure:2104: result: o
+configure:2108: checking whether we are using the GNU C compiler
+configure:2129: gcc -c   conftest.c >&5
+configure:2132: $? = 0
+configure:2135: test -s conftest.o
+configure:2138: $? = 0
+configure:2150: result: yes
+configure:2156: checking whether gcc accepts -g
+configure:2174: gcc -c -g  conftest.c >&5
+configure:2177: $? = 0
+configure:2180: test -s conftest.o
+configure:2183: $? = 0
+configure:2193: result: yes
+configure:2220: gcc -c -g -O2  conftest.c >&5
+conftest.c:2:3: error: unknown type name 'choke'
+    2 |   choke me
+      |   ^~~~~
+conftest.c:2:3: error: expected '=', ',', ';', 'asm' or '__attribute__' at end of input
+configure:2223: $? = 1
+configure: failed program was:
+#ifndef __cplusplus
+  choke me
+#endif
+configure:2324: checking version of gcc
+configure:2328: result: 13.3.0
+configure:2337: checking if this is really Intel C compiler
+configure:2359: gcc -c -g -O2 -no-gcc  conftest.c >&5
+gcc: error: unrecognized command-line option '-no-gcc'
+configure:2362: $? = 1
+configure: failed program was:
+#line 2342 "configure"
+#include "confdefs.h"
+
+int
+main (void)
+{
+
+#ifdef __INTEL_COMPILER
+#else
+#error __INTEL_COMPILER is not defined
+#endif
+
+  ;
+  return 0;
+}
+configure:2379: result: no
+configure:2388: checking if this is really Clang C compiler
+configure:2409: gcc -c -g -O2  conftest.c >&5
+configure: In function 'main':
+configure:2400:2: error: #error __clang__ is not defined
+ 2400 | #else
+      |  ^~~~ 
+configure:2412: $? = 1
+configure: failed program was:
+#line 2392 "configure"
+#include "confdefs.h"
+
+int
+main (void)
+{
+
+#ifdef __clang__
+#else
+#error __clang__ is not defined
+#endif
+
+  ;
+  return 0;
+}
+configure:2428: result: no
+configure:2509: checking for gcc option to accept ANSI C
+configure:2564: gcc  -c -g -O2  conftest.c >&5
+configure:2567: $? = 0
+configure:2570: test -s conftest.o
+configure:2573: $? = 0
+configure:2590: result: none needed
+configure:2601: checking $CFLAGS variable
+configure:2715: result: ok
+configure:2720: checking $CC variable
+configure:2855: result: ok
+configure:2866: checking how to run the C preprocessor
+configure:2892: gcc -E  conftest.c
+configure:2898: $? = 0
+configure:2925: gcc -E  conftest.c
+configure:2922:10: fatal error: ac_nonexistent.h: No such file or directory
+ 2922 | #include "confdefs.h"
+      |          ^~~~~~~~~~~~      
+compilation terminated.
+configure:2931: $? = 1
+configure: failed program was:
+#line 2921 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+configure:2968: result: gcc -E
+configure:2983: gcc -E  conftest.c
+configure:2989: $? = 0
+configure:3016: gcc -E  conftest.c
+configure:3013:10: fatal error: ac_nonexistent.h: No such file or directory
+ 3013 | #include "confdefs.h"
+      |          ^~~~~~~~~~~~      
+compilation terminated.
+configure:3022: $? = 1
+configure: failed program was:
+#line 3012 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+configure:3063: checking whether gcc needs -traditional
+configure:3098: result: no
+configure:3105: checking whether gcc understands -c and -o together
+configure:3120: gcc -g -O2  -c conftest.c -o conftest2.o >&5
+configure:3123: $? = 0
+configure:3125: gcc -g -O2  -c conftest.c -o conftest2.o >&5
+configure:3128: $? = 0
+configure:3139: result: yes
+configure:3156: checking for ldconfig
+configure:3173: found /usr/sbin/ldconfig
+configure:3184: result: /usr/sbin/ldconfig
+configure:3195: checking if you want to ensure bool is consistent with C++
+configure:3205: result: yes
+configure:3262: checking for g++
+configure:3277: found /usr/bin/g++
+configure:3285: result: g++
+configure:3300: checking for C++ compiler version
+configure:3303: g++ --version </dev/null >&5
+g++ (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
+Copyright (C) 2023 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.
+
+configure:3306: $? = 0
+configure:3308: g++ -v </dev/null >&5
+Using built-in specs.
+COLLECT_GCC=g++
+COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper
+OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
+OFFLOAD_TARGET_DEFAULT=1
+Target: x86_64-linux-gnu
+Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2
+Thread model: posix
+Supported LTO compression algorithms: zlib zstd
+gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) 
+configure:3311: $? = 0
+configure:3313: g++ -V </dev/null >&5
+g++: error: unrecognized command-line option '-V'
+g++: fatal error: no input files
+compilation terminated.
+configure:3316: $? = 1
+configure:3319: checking whether we are using the GNU C++ compiler
+configure:3340: g++ -c   conftest.cc >&5
+configure:3343: $? = 0
+configure:3346: test -s conftest.o
+configure:3349: $? = 0
+configure:3361: result: yes
+configure:3367: checking whether g++ accepts -g
+configure:3385: g++ -c -g  conftest.cc >&5
+configure:3388: $? = 0
+configure:3391: test -s conftest.o
+configure:3394: $? = 0
+configure:3404: result: yes
+configure:3444: g++ -c -g -O2  conftest.cc >&5
+configure:3447: $? = 0
+configure:3450: test -s conftest.o
+configure:3453: $? = 0
+configure:3475: g++ -c -g -O2  conftest.cc >&5
+configure: In function 'int main()':
+configure:3468:1: error: 'exit' was not declared in this scope
+ 3468 | {
+      | ^   
+configure:3464:1: note: 'exit' is defined in header '<cstdlib>'; did you forget to '#include <cstdlib>'?
+ 3463 | #line 3463 "configure"
+  +++ |+#include <cstdlib>
+ 3464 | #include "confdefs.h"
+configure:3478: $? = 1
+configure: failed program was:
+#line 3463 "configure"
+#include "confdefs.h"
+
+int
+main (void)
+{
+exit (42);
+  ;
+  return 0;
+}
+configure:3444: g++ -c -g -O2  conftest.cc >&5
+configure:3447: $? = 0
+configure:3450: test -s conftest.o
+configure:3453: $? = 0
+configure:3475: g++ -c -g -O2  conftest.cc >&5
+configure:3478: $? = 0
+configure:3481: test -s conftest.o
+configure:3484: $? = 0
+configure:3518: checking if g++ works
+configure:3543: g++ -c -g -O2  -I/usr/include conftest.cc >&5
+configure:3546: $? = 0
+configure:3549: test -s conftest.o
+configure:3552: $? = 0
+configure:3563: result: yes
+configure:3583: checking for g++
+configure:3600: found /usr/bin/g++
+configure:3611: result: /usr/bin/g++
+configure:3630: checking version of /usr/bin/g++
+configure:3638: result: 13.3.0
+configure:3651: checking if you want to build C++ binding and demo
+configure:3661: result: yes
+configure:3664: checking if you want to build with Ada
+configure:3666: result: yes
+configure:3669: checking if you want to install terminal database
+configure:3679: result: yes
+configure:3682: checking if you want to install manpages
+configure:3692: result: yes
+configure:3695: checking if you want to build programs such as tic
+configure:3705: result: yes
+configure:3708: checking if you want to build test-programs
+configure:3718: result: yes
+configure:3721: checking if you wish to install curses.h
+configure:3731: result: yes
+configure:3755: checking for mawk
+configure:3770: found /usr/bin/mawk
+configure:3778: result: mawk
+configure:3804: checking for a BSD compatible install
+configure:3853: result: /usr/bin/install -c
+configure:3878: checking for lint
+configure:3904: result: no
+configure:3878: checking for cppcheck
+configure:3904: result: no
+configure:3878: checking for splint
+configure:3904: result: no
+configure:3917: checking whether ln -s works
+configure:3921: result: yes
+configure:3928: checking if ln -s -f options work
+configure:3940: result: yes
+configure:3945: checking for long file names
+configure:3984: result: yes
+configure:4013: checking if you want to use pkg-config
+configure:4023: result: yes
+configure:4075: checking for pkg-config
+configure:4092: found /usr/bin/pkg-config
+configure:4104: result: /usr/bin/pkg-config
+configure:4167: checking for /usr/bin/pkg-config library directory
+configure:4210: result: auto
+configure:4214: checking for search-list
+configure:4241: result: /usr/local/lib/x86_64-linux-gnu/pkgconfig /usr/local/lib/pkgconfig /usr/local/share/pkgconfig /usr/lib/x86_64-linux-gnu/pkgconfig /usr/lib/pkgconfig /usr/share/pkgconfig
+configure:4253: checking for first directory
+configure:4264: result: /usr/local/lib/pkgconfig
+configure:4304: checking if we should install .pc files for /usr/bin/pkg-config
+configure:4318: result: no
+configure:4392: checking if we should assume mixed-case filenames
+configure:4402: result: auto
+configure:4406: checking if filesystem supports mixed-case filenames
+configure:4433: result: yes
+configure:4452: checking whether make sets ${MAKE}
+configure:4472: result: yes
+configure:4481: checking for ".PHONY" make-support
+** making always.out 1
+echo 1 > always.out
+** making always 1
+** making once.out 1
+echo 1 > once.out
+** making once 1
+make: Nothing to be done for 'always'.
+touch once
+** making always.out 2
+echo 2 > always.out
+** making always 2
+** making once.out 2
+echo 2 > once.out
+** making once 2
+make: Nothing to be done for 'always'.
+touch once
+** making always.out 3
+echo 3 > always.out
+** making always 3
+** making once.out 3
+echo 3 > once.out
+** making once 3
+make: Nothing to be done for 'always'.
+touch once
+configure:4536: result: yes
+configure:4547: checking for exctags
+configure:4573: result: no
+configure:4547: checking for ctags
+configure:4562: found /usr/bin/ctags
+configure:4570: result: ctags
+configure:4584: checking for exetags
+configure:4610: result: no
+configure:4584: checking for etags
+configure:4599: found /usr/bin/etags
+configure:4607: result: etags
+configure:4619: checking for ctags
+configure:4634: found /usr/bin/ctags
+configure:4643: result: yes
+configure:4653: checking for etags
+configure:4668: found /usr/bin/etags
+configure:4677: result: yes
+configure:4700: checking for makeflags variable
+configure:4738: result: 
+configure:4779: checking for ranlib
+configure:4794: found /usr/bin/ranlib
+configure:4803: result: ranlib
+configure:4853: checking for ld
+configure:4868: found /usr/bin/ld
+configure:4877: result: ld
+configure:4927: checking for ar
+configure:4942: found /usr/bin/ar
+configure:4951: result: ar
+configure:5001: checking for nm
+configure:5016: found /usr/bin/nm
+configure:5025: result: nm
+configure:5075: checking for ar
+configure:5099: result: ar
+configure:5111: checking for options to update archives
+configure:5151: gcc -c -g -O2  conftest.c >&5
+configure:5154: $? = 0
+ar  -curvU conftest.a conftest.o
+configure:5175: result: -curvU
+configure:5186: checking for an installation directory prefix
+configure:5199: result: (none)
+configure:5414: checking if libtool -version-number should be used
+configure:5431: result: yes
+configure:5480: checking if you want to build libraries with libtool
+configure:5490: result: no
+configure:5800: checking if you want to build shared libraries
+configure:5810: result: no
+configure:5814: checking if you want to build static libraries
+configure:5824: result: yes
+configure:5828: checking if you want to build debug libraries
+configure:5838: result: yes
+configure:5842: checking if you want to build profiling libraries
+configure:5852: result: no
+configure:5877: checking for specified models
+configure:5881: result:  normal debug
+configure:5886: checking for default model
+configure:5889: result: normal
+configure:5903: checking if you want to have a library-prefix
+configure:5913: result: auto
+configure:5944: checking for PATH separator
+configure:5951: result: :
+configure:5955: checking for ANSI C header files
+configure:5969: gcc -E  conftest.c
+configure:5975: $? = 0
+configure:6062: gcc -o conftest -g -O2   conftest.c  >&5
+configure:6065: $? = 0
+configure:6067: ./conftest
+configure:6070: $? = 0
+configure:6083: result: yes
+configure:6099: checking for sys/types.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for sys/stat.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for stdlib.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for string.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for memory.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for strings.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for inttypes.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for stdint.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6099: checking for unistd.h
+configure:6111: gcc -c -g -O2  conftest.c >&5
+configure:6114: $? = 0
+configure:6117: test -s conftest.o
+configure:6120: $? = 0
+configure:6130: result: yes
+configure:6140: checking whether exit is declared
+configure:6161: gcc -c -g -O2  conftest.c >&5
+configure:6164: $? = 0
+configure:6167: test -s conftest.o
+configure:6170: $? = 0
+configure:6180: result: yes
+configure:6186: checking for dirent.h that defines DIR
+configure:6207: gcc -c -g -O2  conftest.c >&5
+configure:6210: $? = 0
+configure:6213: test -s conftest.o
+configure:6216: $? = 0
+configure:6226: result: yes
+configure:6239: checking for opendir in -ldir
+configure:6266: gcc -o conftest -g -O2   conftest.c -ldir   >&5
+/usr/bin/ld: cannot find -ldir: No such file or directory
+collect2: error: ld returned 1 exit status
+configure:6269: $? = 1
+configure: failed program was:
+#line 6247 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char opendir (void);
+int
+main (void)
+{
+opendir ();
+  ;
+  return 0;
+}
+configure:6286: result: no
+configure:6350: checking if you want to build a separate terminfo library
+configure:6360: result: no
+configure:6363: checking if you want to build a separate tic library
+configure:6373: result: no
+configure:6386: checking for default loader flags
+configure:6395: result: (none)
+configure:6435: checking for an rpath option
+configure:6466: result: -Wl,-rpath,
+configure:6545: checking whether to use release or ABI version in shared library file names
+configure:6571: result: auto
+configure:6594: checking which gcc option to use
+configure:6613: gcc -c -g -O2 -fPIC  conftest.c >&5
+configure:6616: $? = 0
+configure:6619: test -s conftest.o
+configure:6622: $? = 0
+configure:6631: result: -fPIC
+configure:7199: testing CC_SHARED_OPTS: -fPIC ...
+configure:7203: testing MK_SHARED_LIB:  ${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,`basename $@ .${REL_VERSION}`.${ABI_VERSION},-stats,-lc -o $@ ...
+configure:7455: checking if you want to link with the GPM mouse library
+configure:7465: result: maybe
+configure:7469: checking for gpm.h
+configure:7479: gcc -E  conftest.c
+configure:7476:10: fatal error: gpm.h: No such file or directory
+ 7476 | #include "confdefs.h"
+      |          ^~~~~~~
+compilation terminated.
+configure:7485: $? = 1
+configure: failed program was:
+#line 7475 "configure"
+#include "confdefs.h"
+#include <gpm.h>
+configure:7504: result: no
+configure:8045: checking if you want to use PCRE2 for regular-expressions
+configure:8054: result: no
+configure:8545: checking if you want to disable library suffixes
+configure:8562: result: no
+configure:8831: checking if you want to disable extra LDFLAGS for package-scripts
+configure:8848: result: no
+configure:8856: checking for extra suffix to append to header/library paths
+configure:8875: result: (none)
+configure:8879: checking if you wish to install ncurses overwriting curses
+configure:8889: result: yes
+configure:8892: checking if external terminfo-database is used
+configure:8902: result: yes
+configure:8918: checking which terminfo source-file will be installed
+configure:8926: result: ${top_srcdir}/misc/terminfo.src
+configure:8929: checking whether to use hashed database instead of directory/tree
+configure:8939: result: no
+configure:8945: checking for list of fallback terminal descriptions
+configure:8955: result: (none)
+configure:9014: checking for tic
+configure:9029: found /usr/bin/tic
+configure:9037: result: tic
+configure:9087: checking for infocmp
+configure:9102: found /usr/bin/infocmp
+configure:9110: result: infocmp
+configure:9453: checking if you want modern xterm or antique
+configure:9467: result: xterm-new
+configure:9480: checking if xterm backspace sends BS or DEL
+configure:9504: result: DEL
+configure:9520: checking for list of terminfo directories
+configure:9583: result: /system_ext/etc/terminfo
+configure:9598: checking for default terminfo directory
+configure:9643: result: /system_ext/etc/terminfo
+configure:9654: checking if big-core option selected
+configure:9680: gcc -o conftest -g -O2   conftest.c  >&5
+configure:9683: $? = 0
+configure:9685: ./conftest
+configure:9688: $? = 0
+configure:9700: result: yes
+configure:9710: checking if big-strings option selected
+configure:9734: result: yes
+configure:9741: checking if you want termcap-fallback support
+configure:9751: result: no
+configure:9885: checking if ~/.terminfo is wanted
+configure:9895: result: yes
+configure:9902: checking if you want to permit root to use ncurses environment variables
+configure:9912: result: yes
+configure:9919: checking if you want to permit setuid programs to access all files
+configure:9929: result: yes
+configure:9936: checking if you want to permit setuid use of ncurses environment variables
+configure:9946: result: yes
+configure:9961: checking for unistd.h
+configure:9996: result: yes
+configure:10011: checking for remove
+configure:10048: gcc -o conftest -g -O2   conftest.c  >&5
+configure:10051: $? = 0
+configure:10054: test -s conftest
+configure:10057: $? = 0
+configure:10067: result: yes
+configure:10011: checking for unlink
+configure:10048: gcc -o conftest -g -O2   conftest.c  >&5
+configure:10051: $? = 0
+configure:10054: test -s conftest
+configure:10057: $? = 0
+configure:10067: result: yes
+configure:10151: checking if link/symlink functions work
+configure:10198: gcc -o conftest -g -O2   conftest.c  >&5
+configure:10201: $? = 0
+configure:10203: ./conftest
+configure:10206: $? = 0
+configure:10198: gcc -o conftest -g -O2   conftest.c  >&5
+configure:10201: $? = 0
+configure:10203: ./conftest
+configure:10206: $? = 0
+configure:10224: result:  link symlink
+configure:10244: checking if tic should use symbolic links
+configure:10254: result: no
+configure:10261: checking if tic should use hard links
+configure:10268: result: yes
+configure:10284: checking if you want broken-linker support code
+configure:10294: result: no
+configure:10308: checking if tputs should process BSD-style prefix padding
+configure:10318: result: no
+configure:10337: checking if the POSIX test-macros are already defined
+configure:10363: gcc -c -g -O2  conftest.c >&5
+configure:10366: $? = 0
+configure:10369: test -s conftest.o
+configure:10372: $? = 0
+configure:10383: result: no
+configure:10425: checking if this is the GNU C library
+configure:10451: gcc -c -g -O2  conftest.c >&5
+configure:10454: $? = 0
+configure:10457: test -s conftest.o
+configure:10460: $? = 0
+configure:10471: result: yes
+configure:10479: checking if _DEFAULT_SOURCE can be used as a basis
+configure:10510: gcc -c -g -O2 -D_DEFAULT_SOURCE conftest.c >&5
+configure:10513: $? = 0
+configure:10516: test -s conftest.o
+configure:10519: $? = 0
+configure:10531: result: yes
+configure:10536: checking if _XOPEN_SOURCE=600 works with _DEFAULT_SOURCE
+configure:10661: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:10664: $? = 0
+configure:10667: test -s conftest.o
+configure:10670: $? = 0
+configure:10681: result: yes
+configure:11936: checking if _XOPEN_SOURCE really is set
+configure:11954: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:11957: $? = 0
+configure:11960: test -s conftest.o
+configure:11963: $? = 0
+configure:11972: result: yes
+configure:11992: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:11995: $? = 0
+configure:11998: test -s conftest.o
+configure:12001: $? = 0
+configure:12256: checking if SIGWINCH is defined
+configure:12278: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:12281: $? = 0
+configure:12284: test -s conftest.o
+configure:12287: $? = 0
+configure:12335: result: yes
+configure:12405: checking for nl_langinfo and CODESET
+configure:12425: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12428: $? = 0
+configure:12431: test -s conftest
+configure:12434: $? = 0
+configure:12445: result: yes
+configure:12459: checking if you want wide-character code
+configure:12469: result: yes
+configure:12504: checking for wchar.h
+configure:12514: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c
+configure:12520: $? = 0
+configure:12539: result: yes
+configure:12504: checking for wctype.h
+configure:12514: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c
+configure:12520: $? = 0
+configure:12539: result: yes
+configure:12549: checking if wchar.h can be used as is
+configure:12578: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:12581: $? = 0
+configure:12584: test -s conftest.o
+configure:12587: $? = 0
+configure:12597: result: yes
+configure:12693: checking if wcwidth agrees graphics are single-width
+configure:12809: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12812: $? = 0
+configure:12814: ./conftest
+	-	VT100 symbols
+1	0x250c	upper left corner
+1	0x2514	lower left corner
+1	0x2510	upper right corner
+1	0x2518	lower right corner
+1	0x251c	tee pointing left
+1	0x2524	tee pointing right
+1	0x2534	tee pointing up
+1	0x252c	tee pointing down
+1	0x2500	horizontal line
+1	0x2502	vertical line
+1	0x253c	large plus or crossover
+1	0x23ba	scan line 1
+1	0x23bd	scan line 9
+1	0x25c6	diamond
+1	0x2592	checker board (stipple)
+1	0x00b0	degree symbol
+1	0x00b1	plus/minus
+1	0x00b7	bullet
+	-	Teletype 5410v1 symbols
+1	0x2190	arrow pointing left
+1	0x2192	arrow pointing right
+1	0x2193	arrow pointing down
+1	0x2191	arrow pointing up
+1	0x2592	board of squares
+1	0x2603	lantern symbol
+1	0x25ae	solid square block
+	-	these defaults were invented for ncurses
+1	0x23bb	scan line 3
+1	0x23bc	scan line 7
+1	0x2264	less-than-or-equal-to
+1	0x2265	greater-than-or-equal-to
+1	0x03c0	greek pi
+1	0x2260	not-equal
+1	0x00a3	pound-sterling symbol
+	-	thick-line-drawing
+1	0x250f	upper left corner
+1	0x2517	lower left corner
+1	0x2513	upper right corner
+1	0x251b	lower right corner
+1	0x2523	tee pointing left
+1	0x252b	tee pointing right
+1	0x253b	tee pointing up
+1	0x2533	tee pointing down
+1	0x2501	horizontal line
+1	0x2503	vertical line
+1	0x254b	large plus or crossover
+	-	double-line-drawing
+1	0x2554	upper left corner
+1	0x255a	lower left corner
+1	0x2557	upper right corner
+1	0x255d	lower right corner
+1	0x2563	tee pointing left
+1	0x2560	tee pointing right
+1	0x2569	tee pointing up
+1	0x2566	tee pointing down
+1	0x2550	horizontal line
+1	0x2551	vertical line
+1	0x256c	large plus or crossover
+54/54 passed wcwidth/graphics check
+configure:12817: $? = 0
+configure:12830: result: yes
+configure:12841: checking for putwc
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for btowc
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for wctob
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for wmemchr
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for mbtowc
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for wctomb
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for mblen
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for mbrlen
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for mbrtowc
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for wcsrtombs
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for mbsrtowcs
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for wcstombs
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:12841: checking for mbstowcs
+configure:12878: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:12881: $? = 0
+configure:12884: test -s conftest
+configure:12887: $? = 0
+configure:12897: result: yes
+configure:13523: checking if we must include wchar.h to declare mbstate_t
+configure:13548: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure: In function 'main':
+configure:13541:1: error: unknown type name 'mbstate_t'
+13541 | {
+      | ^        
+configure:13551: $? = 1
+configure: failed program was:
+#line 13530 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
+int
+main (void)
+{
+mbstate_t state; (void)state
+  ;
+  return 0;
+}
+configure:13583: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:13586: $? = 0
+configure:13589: test -s conftest.o
+configure:13592: $? = 0
+configure:13604: result: yes
+configure:13622: checking if we must include wchar.h to declare wchar_t
+configure:13647: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:13650: $? = 0
+configure:13653: test -s conftest.o
+configure:13656: $? = 0
+configure:13703: result: no
+configure:13726: checking if we must include wchar.h to declare wint_t
+configure:13751: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure: In function 'main':
+configure:13744:1: error: unknown type name 'wint_t'; did you mean 'int8_t'?
+13744 | {
+      | ^     
+      | int8_t
+configure:13754: $? = 1
+configure: failed program was:
+#line 13733 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
+int
+main (void)
+{
+wint_t state; (void)state
+  ;
+  return 0;
+}
+configure:13786: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:13789: $? = 0
+configure:13792: test -s conftest.o
+configure:13795: $? = 0
+configure:13807: result: yes
+configure:13839: checking whether to enable _LP64 definition in curses.h
+configure:13849: result: yes
+configure:13865: checking for special C compiler options needed for large files
+configure:13939: result: no
+configure:13945: checking for _FILE_OFFSET_BITS value needed for large files
+configure:13973: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:13976: $? = 0
+configure:13979: test -s conftest.o
+configure:13982: $? = 0
+configure:14032: result: no
+configure:14042: checking for _LARGE_FILES value needed for large files
+configure:14070: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:14073: $? = 0
+configure:14076: test -s conftest.o
+configure:14079: $? = 0
+configure:14129: result: no
+configure:14142: checking for _LARGEFILE_SOURCE value needed for large files
+configure:14165: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:14168: $? = 0
+configure:14171: test -s conftest.o
+configure:14174: $? = 0
+configure:14219: result: no
+configure:14233: checking for fseeko
+configure:14253: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:14256: $? = 0
+configure:14259: test -s conftest
+configure:14262: $? = 0
+configure:14272: result: yes
+configure:14311: checking whether to use struct dirent64
+configure:14345: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure: In function 'main':
+configure:14334:38: error: initialization of 'struct dirent64 *' from incompatible pointer type 'struct dirent *' [-Werror=incompatible-pointer-types]
+14334 |                 DIR *dp = opendir(".");
+      |                                      ^~     
+configure:14336:27: error: invalid operands to binary - (have 'struct dirent64 *' and 'struct dirent *')
+14336 |                 struct dirent *y = readdir(dp);
+      |                           ^
+cc1: some warnings being treated as errors
+configure:14348: $? = 1
+configure: failed program was:
+#line 14318 "configure"
+#include "confdefs.h"
+
+#pragma GCC diagnostic error "-Wincompatible-pointer-types"
+#include <sys/types.h>
+#include <dirent.h>
+
+#ifndef __REDIRECT
+/* if transitional largefile support is setup, this is true */
+extern struct dirent64 * readdir(DIR *);
+#endif
+
+int
+main (void)
+{
+
+		DIR *dp = opendir(".");
+		struct dirent64 *x = readdir(dp);
+		struct dirent *y = readdir(dp);
+		int z = x - y;
+		(void)z;
+
+  ;
+  return 0;
+}
+configure:14365: result: no
+configure:14375: checking if you want tparm not to use X/Open fixed-parameter list
+configure:14385: result: yes
+configure:14409: checking if you want to enable wattr* macros
+configure:14421: result: no
+configure:14429: checking for X11 rgb file
+configure:14501: result: /usr/share/X11/rgb.txt
+configure:14516: checking for type of bool
+configure:14526: result: auto
+configure:14536: checking for alternate terminal capabilities file
+configure:14552: result: Caps
+configure:14557: checking for type of chtype
+configure:14567: result: uint32_t
+configure:14579: checking for type of ospeed
+configure:14589: result: short
+configure:14601: checking for type of mmask-t
+configure:14611: result: uint32_t
+configure:14622: checking for size CCHARW_MAX
+configure:14632: result: 5
+configure:14635: checking for signed char
+configure:14656: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:14659: $? = 0
+configure:14662: test -s conftest.o
+configure:14665: $? = 0
+configure:14675: result: yes
+configure:14678: checking size of signed char
+configure:14842: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600  conftest.c  >&5
+configure:14845: $? = 0
+configure:14847: ./conftest
+configure:14850: $? = 0
+configure:14866: result: 1
+configure:14877: checking whether to use signed chars for Boolean array in term.h
+configure:14887: result: no
+configure:14893: checking for type of tparm-arg
+configure:14903: result: intptr_t
+configure:14914: checking if RCS identifiers should be compiled-in
+configure:14924: result: no
+configure:14933: checking format of man-pages
+configure:15024: result:  gzip
+configure:15068: checking for manpage renaming
+configure:15102: result: /home/micky387/Omni/external/libncurses/man/man_db.renames
+configure:15105: checking if manpage aliases will be installed
+configure:15116: result: yes
+configure:15130: checking if manpage symlinks should be used
+configure:15149: result: yes
+configure:15153: checking for manpage tbl
+configure:15164: result: no
+configure:15482: checking if you want to build with function extensions
+configure:15492: result: yes
+configure:15548: checking if you want to build with SCREEN extensions
+configure:15558: result: yes
+configure:15577: checking if you want to build with terminal-driver
+configure:15587: result: no
+configure:15608: checking for extended use of const keyword
+configure:15618: result: yes
+configure:15626: checking if you want to use extended colors
+configure:15636: result: yes
+configure:15680: checking if you want to use extended mouse encoding
+configure:15690: result: yes
+configure:15717: checking if you want to use extended putwin/screendump
+configure:15727: result: yes
+configure:15737: checking if you want $NCURSES_NO_PADDING code
+configure:15747: result: yes
+configure:15755: checking if you want SIGWINCH handler
+configure:15765: result: yes
+configure:15780: checking if you want user-definable terminal capabilities like termcap
+configure:15790: result: yes
+configure:15804: checking if you want to link with the pthread library
+configure:15814: result: no
+configure:16156: checking if you want reentrant code
+configure:16166: result: no
+configure:16267: checking whether curses library structures should be opaque
+configure:16289: result: yes
+configure:16298: checking whether form library structures should be opaque
+configure:16315: result: yes
+configure:16318: checking whether menu library structures should be opaque
+configure:16335: result: yes
+configure:16338: checking whether panel library structures should be opaque
+configure:16355: result: yes
+configure:16388: checking if you want all development code
+configure:16398: result: no
+configure:16402: checking if you want to check screensize of serial terminals
+configure:16412: result: no
+configure:16420: checking if you want hard-tabs code
+configure:16430: result: no
+configure:16438: checking if you want limited support for xmc
+configure:16448: result: no
+configure:16458: checking if you do not want to assume colors are white-on-black
+configure:16468: result: yes
+configure:16476: checking if you want hashmap scrolling-optimization code
+configure:16486: result: yes
+configure:16494: checking if you want colorfgbg code
+configure:16504: result: no
+configure:16512: checking if you want to use gcc -fvisibility option
+configure:16522: result: no
+configure:16859: checking if you want interop bindings
+configure:16869: result: yes
+configure:16875: checking if you want experimental safe-sprintf code
+configure:16885: result: no
+configure:16910: checking if you want wgetch-events code
+configure:16920: result: no
+configure:16971: checking if you want to see long compiling messages
+configure:17005: result: yes
+configure:17018: checking if you want to install stripped executables
+configure:17035: result: yes
+configure:17046: checking if install accepts -p option
+configure:17077: result: yes
+configure:17080: checking if install needs to be told about ownership
+configure:17091: result: no
+configure:17102: checking if you want to specify strip-program
+configure:17112: result: no
+configure:17182: checking if you want to use C11 _Noreturn feature
+configure:17199: result: no
+configure:17413: checking if you want to turn on gcc warnings
+configure:17430: result: no
+configure:17683: checking for gcc __attribute__ directives...
+checking for gcc __attribute__((scanf))
+configure:17736: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:17739: $? = 0
+checking for gcc __attribute__((printf))
+configure:17736: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:17739: $? = 0
+checking for gcc __attribute__((unused))
+configure:17736: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:17739: $? = 0
+checking for gcc __attribute__((noreturn))
+configure:17736: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 conftest.c >&5
+configure:17739: $? = 0
+configure:18099: checking if you want to work around bogus compiler/loader warnings
+configure:18109: result: no
+configure:18381: checking if you want to enable runtime assertions
+configure:18391: result: no
+configure:18407: checking if you want to use dmalloc for testing
+configure:18429: result: no
+configure:18644: checking if you want to use dbmalloc for testing
+configure:18666: result: no
+configure:18881: checking if you want to use valgrind for testing
+configure:18903: result: no
+configure:19016: checking if you want to perform memory-leak testing
+configure:19027: result: no
+configure:19079: checking whether to add trace feature to all models
+configure:19089: result: no
+configure:19203: checking if we want to use GNAT projects
+configure:19220: result: yes
+configure:19345: checking if -lm needed for math functions
+configure:19368: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+/usr/bin/ld: /tmp/ccKNgTab.o: in function `main':
+/home/micky387/Omni/external/libncurses/conftest.c:19361:(.text.startup+0x20): undefined reference to `sin'
+/usr/bin/ld: /home/micky387/Omni/external/libncurses/conftest.c:19361:(.text.startup+0x2b): undefined reference to `pow'
+collect2: error: ld returned 1 exit status
+configure:19371: $? = 1
+configure: failed program was:
+#line 19352 "configure"
+#include "confdefs.h"
+
+		#include <stdio.h>
+		#include <stdlib.h>
+		#include <math.h>
+
+int
+main (void)
+{
+double x = rand(); printf("result = %g\n", pow(sin(x),x))
+  ;
+  return 0;
+}
+configure:19387: result: yes
+configure:19395: checking if -lm is available for math functions
+configure:19418: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  -lm >&5
+configure:19421: $? = 0
+configure:19424: test -s conftest
+configure:19427: $? = 0
+configure:19437: result: yes
+configure:19459: checking whether time.h and sys/time.h may both be included
+configure:19481: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:19484: $? = 0
+configure:19487: test -s conftest.o
+configure:19490: $? = 0
+configure:19500: result: yes
+configure:19868: checking for regcomp
+configure:19905: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:19908: $? = 0
+configure:19911: test -s conftest
+configure:19914: $? = 0
+configure:19924: result: yes
+configure:20153: checking for regular-expression headers
+configure:20228: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20231: $? = 0
+configure:20234: test -s conftest
+configure:20237: $? = 0
+configure:20253: result: regex.h
+configure:20295: checking for fcntl.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for getopt.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for limits.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for locale.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for math.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for poll.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/auxv.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/ioctl.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/param.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/poll.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/select.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/time.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for sys/times.h
+configure:20305: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:20311: $? = 0
+configure:20330: result: yes
+configure:20295: checking for unistd.h
+configure:20330: result: yes
+configure:20295: checking for wctype.h
+configure:20330: result: yes
+configure:20343: checking for unistd.h
+configure:20378: result: yes
+configure:20343: checking for getopt.h
+configure:20378: result: yes
+configure:20388: checking for header declaring getopt variables
+configure:20411: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure: In function 'main':
+configure:20404:9: error: 'optind' undeclared (first use in this function)
+20404 | {
+      |         ^     
+configure:20404:9: note: each undeclared identifier is reported only once for each function it appears in
+configure:20404:27: error: 'optarg' undeclared (first use in this function)
+20404 | {
+      |                           ^     
+configure:20414: $? = 1
+configure: failed program was:
+#line 20398 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+int
+main (void)
+{
+int x = optind; char *y = optarg; (void)x; (void)y
+  ;
+  return 0;
+}
+configure:20411: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure: In function 'main':
+configure:20404:9: error: 'optind' undeclared (first use in this function)
+20404 | {
+      |         ^     
+configure:20404:9: note: each undeclared identifier is reported only once for each function it appears in
+configure:20404:27: error: 'optarg' undeclared (first use in this function)
+20404 | {
+      |                           ^     
+configure:20414: $? = 1
+configure: failed program was:
+#line 20398 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+int
+main (void)
+{
+int x = optind; char *y = optarg; (void)x; (void)y
+  ;
+  return 0;
+}
+configure:20411: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:20414: $? = 0
+configure:20417: test -s conftest.o
+configure:20420: $? = 0
+configure:20432: result: unistd.h
+configure:20449: checking if external environ is declared
+configure:20469: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure: In function 'main':
+configure:20495:19: error: 'environ' undeclared (first use in this function)
+20495 | 
+      |                   ^      
+configure:20495:19: note: each undeclared identifier is reported only once for each function it appears in
+configure:20472: $? = 1
+configure: failed program was:
+#line 20456 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int
+main (void)
+{
+void* x = (void*) environ; (void)x
+  ;
+  return 0;
+}
+configure:20489: result: no
+configure:20504: checking if external environ exists
+configure:20526: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20529: $? = 0
+configure:20532: test -s conftest
+configure:20535: $? = 0
+configure:20546: result: yes
+configure:20559: checking for getenv
+configure:20596: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20599: $? = 0
+configure:20602: test -s conftest
+configure:20605: $? = 0
+configure:20615: result: yes
+configure:20621: checking for putenv
+configure:20658: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20661: $? = 0
+configure:20664: test -s conftest
+configure:20667: $? = 0
+configure:20677: result: yes
+configure:20621: checking for setenv
+configure:20658: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20661: $? = 0
+configure:20664: test -s conftest
+configure:20667: $? = 0
+configure:20677: result: yes
+configure:20621: checking for strdup
+configure:20658: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20638:6: warning: conflicting types for built-in function 'strdup'; expected 'char *(const char *)' [-Wbuiltin-declaration-mismatch]
+20638 |    builtin and then its argument prototype would still apply.  */
+      |      ^~~~~~
+configure:20661: $? = 0
+configure:20664: test -s conftest
+configure:20667: $? = 0
+configure:20677: result: yes
+configure:20687: checking if getenv returns consistent values
+configure:20802: gcc -o conftest -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:20805: $? = 0
+configure:20807: ./conftest
+configure:20810: $? = 0
+configure:20823: result: yes
+configure:20842: checking if sys/time.h works with sys/select.h
+configure:20869: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:20872: $? = 0
+configure:20875: test -s conftest.o
+configure:20878: $? = 0
+configure:20890: result: yes
+configure:20905: checking for an ANSI C-conforming const
+configure:20973: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:20976: $? = 0
+configure:20979: test -s conftest.o
+configure:20982: $? = 0
+configure:20992: result: yes
+configure:21002: checking for inline
+configure:21019: gcc -c -g -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21022: $? = 0
+configure:21025: test -s conftest.o
+configure:21028: $? = 0
+configure:21039: result: inline
+configure:21065: checking if gcc supports options to tune inlining
+configure:21086: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21089: $? = 0
+configure:21092: test -s conftest.o
+configure:21095: $? = 0
+configure:21107: result: yes
+configure:21213: checking for signal global datatype
+configure:21249: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21252: $? = 0
+configure:21255: test -s conftest.o
+configure:21258: $? = 0
+configure:21272: result: volatile sig_atomic_t
+configure:21361: checking if unsigned literals are legal
+configure:21380: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21383: $? = 0
+configure:21386: test -s conftest.o
+configure:21389: $? = 0
+configure:21401: result: yes
+configure:21417: checking if external errno is declared
+configure:21438: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21441: $? = 0
+configure:21444: test -s conftest.o
+configure:21447: $? = 0
+configure:21458: result: yes
+configure:21473: checking if external errno exists
+configure:21495: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+/usr/bin/ld: errno: TLS definition in /lib/x86_64-linux-gnu/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccj8FcXO.o
+/usr/bin/ld: /lib/x86_64-linux-gnu/libc.so.6: error adding symbols: bad value
+collect2: error: ld returned 1 exit status
+configure:21498: $? = 1
+configure: failed program was:
+#line 21480 "configure"
+#include "confdefs.h"
+
+#undef errno
+extern int errno;
+
+int
+main (void)
+{
+errno = 2
+  ;
+  return 0;
+}
+configure:21515: result: no
+configure:21528: checking if data-only library module links
+configure:21539: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21542: $? = 0
+configure:21566: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21569: $? = 0
+configure:21593: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c conftest.a  >&5
+configure:21596: $? = 0
+configure:21598: ./conftest
+configure:21601: $? = 0
+configure:21616: result: yes
+configure:21630: checking for clock_gettime
+configure:21650: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21653: $? = 0
+configure:21656: test -s conftest
+configure:21659: $? = 0
+configure:21670: result: yes
+configure:21853: checking for fpathconf
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for getcwd
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for getauxval
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for getegid
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for geteuid
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for getopt
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for getuid
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for issetugid
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+/usr/bin/ld: /tmp/ccLeGIXO.o: in function `main':
+/home/micky387/Omni/external/libncurses/conftest.c:21883:(.text.startup+0x9): undefined reference to `issetugid'
+collect2: error: ld returned 1 exit status
+configure:21893: $? = 1
+configure: failed program was:
+#line 21859 "configure"
+#include "confdefs.h"
+#define issetugid autoconf_temporary
+#include <limits.h>	/* least-intrusive standard header which defines gcc2 __stub macros */
+#undef issetugid
+
+#ifdef __cplusplus
+extern "C"
+#endif
+
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char issetugid (void);
+
+int
+main (void)
+{
+
+/* The GNU C library defines stubs for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_issetugid) || defined (__stub___issetugid)
+#error found stub for issetugid
+#endif
+
+	return issetugid ();
+  ;
+  return 0;
+}
+configure:21909: result: no
+configure:21853: checking for localeconv
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for poll
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for remove
+configure:21909: result: yes
+configure:21853: checking for select
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for setbuf
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for setbuffer
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for setfsuid
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for setvbuf
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for sigaction
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for sigvec
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+/usr/bin/ld: /tmp/cc4AvGeS.o: in function `main':
+/home/micky387/Omni/external/libncurses/conftest.c:21883:(.text.startup+0x9): undefined reference to `sigvec'
+collect2: error: ld returned 1 exit status
+configure:21893: $? = 1
+configure: failed program was:
+#line 21859 "configure"
+#include "confdefs.h"
+#define sigvec autoconf_temporary
+#include <limits.h>	/* least-intrusive standard header which defines gcc2 __stub macros */
+#undef sigvec
+
+#ifdef __cplusplus
+extern "C"
+#endif
+
+/* We use char because int might match the return type of a gcc2
+   builtin and then its argument prototype would still apply.  */
+char sigvec (void);
+
+int
+main (void)
+{
+
+/* The GNU C library defines stubs for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_sigvec) || defined (__stub___sigvec)
+#error found stub for sigvec
+#endif
+
+	return sigvec ();
+  ;
+  return 0;
+}
+configure:21909: result: no
+configure:21853: checking for snprintf
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21870:6: warning: conflicting types for built-in function 'snprintf'; expected 'int(char *, long unsigned int,  const char *, ...)' [-Wbuiltin-declaration-mismatch]
+21870 |    builtin and then its argument prototype would still apply.  */
+      |      ^~~~~~~~
+configure:21862:1: note: 'snprintf' is declared in header '<stdio.h>'
+21861 | #define $ac_func autoconf_temporary
+  +++ |+#include <stdio.h>
+21862 | #include <limits.h>     /* least-intrusive standard header which defines gcc2 __stub macros */
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for strdup
+configure:21909: result: yes
+configure:21853: checking for strstr
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21870:6: warning: conflicting types for built-in function 'strstr'; expected 'char *(const char *, const char *)' [-Wbuiltin-declaration-mismatch]
+21870 |    builtin and then its argument prototype would still apply.  */
+      |      ^~~~~~
+configure:21862:1: note: 'strstr' is declared in header '<string.h>'
+21861 | #define $ac_func autoconf_temporary
+  +++ |+#include <string.h>
+21862 | #include <limits.h>     /* least-intrusive standard header which defines gcc2 __stub macros */
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for sysconf
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for tcgetpgrp
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for times
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for tsearch
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21853: checking for vsnprintf
+configure:21890: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:21870:6: warning: conflicting types for built-in function 'vsnprintf'; expected 'int(char *, long unsigned int,  const char *, __va_list_tag *)' [-Wbuiltin-declaration-mismatch]
+21870 |    builtin and then its argument prototype would still apply.  */
+      |      ^~~~~~~~~
+configure:21862:1: note: 'vsnprintf' is declared in header '<stdio.h>'
+21861 | #define $ac_func autoconf_temporary
+  +++ |+#include <stdio.h>
+21862 | #include <limits.h>     /* least-intrusive standard header which defines gcc2 __stub macros */
+configure:21893: $? = 0
+configure:21896: test -s conftest
+configure:21899: $? = 0
+configure:21909: result: yes
+configure:21919: checking if _PATH_TTYS is defined in ttyent.h
+configure:21941: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:21944: $? = 0
+configure:21947: test -s conftest.o
+configure:21950: $? = 0
+configure:21960: result: yes
+configure:21982: checking if _PATH_TTYS file exists
+configure:22005: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:22008: $? = 0
+configure:22010: ./conftest
+configure:22013: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+#line 21992 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#if HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#if HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#if STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# if HAVE_STDLIB_H
+#  include <stdlib.h>
+# endif
+#endif
+#if HAVE_STRING_H
+# if !STDC_HEADERS && HAVE_MEMORY_H
+#  include <memory.h>
+# endif
+# include <string.h>
+#endif
+#if HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+#  include <stdint.h>
+# endif
+#endif
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#include <ttyent.h>
+
+int main(void) {
+	FILE *fp = fopen(_PATH_TTYS, "r");
+	return (fp == 0);
+}
+configure:22025: result: no
+configure:22228: checking for isascii
+configure:22247: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:22250: $? = 0
+configure:22253: test -s conftest
+configure:22256: $? = 0
+configure:22267: result: yes
+configure:22275: checking whether sigaction needs _POSIX_SOURCE
+configure:22292: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:22295: $? = 0
+configure:22298: test -s conftest.o
+configure:22301: $? = 0
+configure:22349: result: no
+configure:22353: checking if nanosleep really works
+configure:22389: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:22392: $? = 0
+configure:22394: ./conftest
+configure:22397: $? = 0
+configure:22409: result: yes
+configure:22426: checking for termio.h
+configure:22436: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:22442: $? = 0
+configure:22461: result: yes
+configure:22426: checking for termios.h
+configure:22436: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:22442: $? = 0
+configure:22461: result: yes
+configure:22426: checking for unistd.h
+configure:22461: result: yes
+configure:22426: checking for sys/ioctl.h
+configure:22461: result: yes
+configure:22426: checking for sys/termio.h
+configure:22436: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:22433:10: fatal error: sys/termio.h: No such file or directory
+22433 | #include "confdefs.h"
+      |          ^~~~~~~~~~~~  
+compilation terminated.
+configure:22442: $? = 1
+configure: failed program was:
+#line 22432 "configure"
+#include "confdefs.h"
+#include <sys/termio.h>
+configure:22461: result: no
+configure:22478: checking whether termios.h needs _POSIX_SOURCE
+configure:22493: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:22496: $? = 0
+configure:22499: test -s conftest.o
+configure:22502: $? = 0
+configure:22549: result: no
+configure:22554: checking for tcgetattr
+configure:22589: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:22592: $? = 0
+configure:22595: test -s conftest
+configure:22598: $? = 0
+configure:22608: result: yes
+configure:22615: checking for vsscanf function or workaround
+configure:22648: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:22651: $? = 0
+configure:22654: test -s conftest
+configure:22657: $? = 0
+configure:22750: result: vsscanf
+configure:22776: checking for unistd.h
+configure:22811: result: yes
+configure:22821: checking for working mkstemp
+configure:22867: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:22870: $? = 0
+configure:22872: ./conftest
+configure:22875: $? = 0
+configure:22890: result: yes
+configure:22973: checking whether setvbuf arguments are reversed
+configure:23001: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure: In function 'main':
+configure:22993:23: warning: passing argument 2 of 'setvbuf' makes pointer from integer without a cast [-Wint-conversion]
+22993 |      is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
+      |                       ^~~~~~
+      |                       |
+      |                       int
+In file included from configure:22985:
+/usr/include/stdio.h:339:65: note: expected 'char * restrict' but argument is of type 'int'
+  339 | extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
+      |                                                ~~~~~~~~~~~~~~~~~^~~~~
+configure:22993:31: warning: passing argument 3 of 'setvbuf' makes integer from pointer without a cast [-Wint-conversion]
+22993 |      is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
+      |                               ^~~~~~~~~~~~~
+      |                               |
+      |                               char *
+/usr/include/stdio.h:340:25: note: expected 'int' but argument is of type 'char *'
+  340 |                     int __modes, size_t __n) __THROW __nonnull ((1));
+      |                     ~~~~^~~~~~~
+configure:23004: $? = 0
+configure:23006: ./conftest
+configure:23009: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+#line 22984 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+/* If setvbuf has the reversed format, exit 0. */
+int
+main (void)
+{
+  /* This call has the arguments reversed.
+     A reversed system may check and see that the address of main
+     is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
+  if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
+    return(1);
+  putc('\r', stdout);
+  return(0);                   /* Non-reversed systems segv here.  */
+}
+configure:23022: result: no
+configure:23033: checking for intptr_t
+configure:23054: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:23057: $? = 0
+configure:23060: test -s conftest.o
+configure:23063: $? = 0
+configure:23073: result: yes
+configure:23085: checking for ssize_t
+configure:23106: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:23109: $? = 0
+configure:23112: test -s conftest.o
+configure:23115: $? = 0
+configure:23125: result: yes
+configure:23137: checking for type sigaction_t
+configure:23157: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure: In function 'main':
+configure:23150:1: error: unknown type name 'sigaction_t'
+23150 | {
+      | ^          
+configure:23160: $? = 1
+configure: failed program was:
+#line 23144 "configure"
+#include "confdefs.h"
+
+#include <signal.h>
+int
+main (void)
+{
+sigaction_t x; (void)x
+  ;
+  return 0;
+}
+configure:23177: result: no
+configure:23184: checking declaration of size-change
+configure:23255: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:23258: $? = 0
+configure:23261: test -s conftest.o
+configure:23264: $? = 0
+size-change succeeded ()
+configure:23283: result: yes
+configure:23301: checking for memmove
+configure:23338: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:23318:6: warning: conflicting types for built-in function 'memmove'; expected 'void *(void *, const void *, long unsigned int)' [-Wbuiltin-declaration-mismatch]
+23318 |    builtin and then its argument prototype would still apply.  */
+      |      ^~~~~~~
+configure:23310:1: note: 'memmove' is declared in header '<string.h>'
+23309 | #define memmove autoconf_temporary
+  +++ |+#include <string.h>
+23310 | #include <limits.h>     /* least-intrusive standard header which defines gcc2 __stub macros */
+configure:23341: $? = 0
+configure:23344: test -s conftest
+configure:23347: $? = 0
+configure:23357: result: yes
+configure:23563: checking if poll really works
+configure:23626: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:23629: $? = 0
+configure:23631: ./conftest
+configure:23634: $? = 0
+configure:23646: result: yes
+configure:23653: checking if MB_LEN_MAX is usable
+configure:23680: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:23683: $? = 0
+configure:23686: test -s conftest.o
+configure:23689: $? = 0
+configure:23699: result: yes
+configure:23713: checking for va_copy
+configure:23737: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:23740: $? = 0
+configure:23743: test -s conftest
+configure:23746: $? = 0
+configure:23756: result: yes
+configure:23986: checking for pid_t
+configure:24007: gcc -c -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:24010: $? = 0
+configure:24013: test -s conftest.o
+configure:24016: $? = 0
+configure:24026: result: yes
+configure:24041: checking for unistd.h
+configure:24076: result: yes
+configure:24041: checking for vfork.h
+configure:24051: gcc -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c
+configure:24048:10: fatal error: vfork.h: No such file or directory
+24048 | #include "confdefs.h"
+      |          ^~~~~~~~~
+compilation terminated.
+configure:24057: $? = 1
+configure: failed program was:
+#line 24047 "configure"
+#include "confdefs.h"
+#include <vfork.h>
+configure:24076: result: no
+configure:24089: checking for fork
+configure:24126: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:24106:6: warning: conflicting types for built-in function 'fork'; expected 'int(void)' [-Wbuiltin-declaration-mismatch]
+24106 |    builtin and then its argument prototype would still apply.  */
+      |      ^~~~
+configure:24129: $? = 0
+configure:24132: test -s conftest
+configure:24135: $? = 0
+configure:24145: result: yes
+configure:24089: checking for vfork
+configure:24126: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:24129: $? = 0
+configure:24132: test -s conftest
+configure:24135: $? = 0
+configure:24145: result: yes
+configure:24157: checking for working fork
+configure:24200: result: yes
+configure:24219: checking for working vfork
+configure:24341: result: yes
+configure:24372: checking if fopen accepts explicit binary mode
+configure:24417: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c  >&5
+configure:24420: $? = 0
+configure:24422: ./conftest
+configure:24425: $? = 0
+configure:24438: result: yes
+configure:24447: checking for openpty in -lutil
+configure:24474: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c -lutil   >&5
+configure:24477: $? = 0
+configure:24480: test -s conftest
+configure:24483: $? = 0
+configure:24494: result: yes
+configure:24502: checking for openpty header
+configure:24547: gcc -o conftest -g -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.c -lutil  >&5
+configure:24550: $? = 0
+configure:24553: test -s conftest
+configure:24556: $? = 0
+configure:24574: result: pty.h
+configure:25216: checking if we should include stdbool.h
+configure:25236: gcc -c -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure: In function 'main':
+configure:25229:1: error: unknown type name 'bool'
+25229 | {
+      | ^   
+configure:25225:1: note: 'bool' is defined in header '<stdbool.h>'; did you forget to '#include <stdbool.h>'?
+25224 | #line 25224 "configure"
+  +++ |+#include <stdbool.h>
+25225 | #include "confdefs.h"
+configure:25229:12: error: 'false' undeclared (first use in this function)
+25229 | {
+      |            ^    
+configure:25229:12: note: 'false' is defined in header '<stdbool.h>'; did you forget to '#include <stdbool.h>'?
+configure:25229:12: note: each undeclared identifier is reported only once for each function it appears in
+configure:25239: $? = 1
+configure: failed program was:
+#line 25224 "configure"
+#include "confdefs.h"
+
+int
+main (void)
+{
+bool foo = false; (void)foo
+  ;
+  return 0;
+}
+configure:25268: gcc -c -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure:25271: $? = 0
+configure:25274: test -s conftest.o
+configure:25277: $? = 0
+configure:25291: result: yes
+configure:25297: checking for builtin bool type
+configure:25320: gcc -c -O2 --param max-inline-insns-single=1200 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.c >&5
+configure: In function 'main':
+configure:25313:1: error: unknown type name 'bool'
+25313 | {
+      | ^   
+configure:25309:1: note: 'bool' is defined in header '<stdbool.h>'; did you forget to '#include <stdbool.h>'?
+25308 | #include <stdio.h>
+  +++ |+#include <stdbool.h>
+25309 | #include <sys/types.h>
+configure:25313:10: error: 'false' undeclared (first use in this function)
+25313 | {
+      |          ^    
+configure:25313:10: note: 'false' is defined in header '<stdbool.h>'; did you forget to '#include <stdbool.h>'?
+configure:25313:10: note: each undeclared identifier is reported only once for each function it appears in
+configure:25323: $? = 1
+configure: failed program was:
+#line 25305 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <sys/types.h>
+
+int
+main (void)
+{
+bool x = false; (void)x
+  ;
+  return 0;
+}
+configure:25344: result: no
+configure:25361: checking if we already have C++ library
+configure:25378: /usr/bin/g++ -o conftest -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc   >&5
+configure:25381: $? = 0
+configure:25384: test -s conftest
+configure:25387: $? = 0
+configure:25396: result: yes
+configure:25498: checking whether /usr/bin/g++ understands -c and -o together
+configure:25513: /usr/bin/g++ -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG -c conftest.cc -o conftest2.o >&5
+configure:25516: $? = 0
+configure:25518: /usr/bin/g++ -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG -c conftest.cc -o conftest2.o >&5
+configure:25521: $? = 0
+configure:25532: result: yes
+configure:25708: checking how to run the C++ preprocessor
+configure:25730: /usr/bin/g++ -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc
+configure:25736: $? = 0
+configure:25763: /usr/bin/g++ -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc
+configure:25760:10: fatal error: ac_nonexistent.h: No such file or directory
+25760 | #include "confdefs.h"
+      |          ^~~~~~~~~~~~      
+compilation terminated.
+configure:25769: $? = 1
+configure: failed program was:
+#line 25759 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+configure:25806: result: /usr/bin/g++ -E
+configure:25821: /usr/bin/g++ -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc
+configure:25827: $? = 0
+configure:25854: /usr/bin/g++ -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc
+configure:25851:10: fatal error: ac_nonexistent.h: No such file or directory
+25851 | #include "confdefs.h"
+      |          ^~~~~~~~~~~~      
+compilation terminated.
+configure:25860: $? = 1
+configure: failed program was:
+#line 25850 "configure"
+#include "confdefs.h"
+#include <ac_nonexistent.h>
+configure:25903: checking for typeinfo
+configure:25913: /usr/bin/g++ -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc
+configure:25919: $? = 0
+configure:25938: result: yes
+configure:25951: checking for iostream
+configure:25961: /usr/bin/g++ -E -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc
+configure:25967: $? = 0
+configure:25986: result: yes
+configure:25997: checking if iostream uses std-namespace
+configure:26017: /usr/bin/g++ -c -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+configure:26020: $? = 0
+configure:26023: test -s conftest.o
+configure:26026: $? = 0
+configure:26035: result: yes
+configure:26046: checking if we should include stdbool.h
+configure:26121: result: yes
+configure:26127: checking for builtin bool type
+configure:26150: /usr/bin/g++ -c -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+configure:26153: $? = 0
+configure:26156: test -s conftest.o
+configure:26159: $? = 0
+configure:26172: result: yes
+configure:26178: checking for bool
+configure:26219: /usr/bin/g++ -c -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+configure:26222: $? = 0
+configure:26225: test -s conftest.o
+configure:26228: $? = 0
+configure:26238: result: yes
+configure:26241: checking size of bool
+configure:26505: /usr/bin/g++ -o conftest -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc  >&5
+configure:26508: $? = 0
+configure:26510: ./conftest
+configure:26513: $? = 0
+configure:26529: result: 1
+configure:26535: checking for type of bool
+configure:26595: /usr/bin/g++ -o conftest -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc  >&5
+configure:26598: $? = 0
+configure:26600: ./conftest
+configure:26603: $? = 0
+configure:26620: result: unsigned char
+configure:26632: checking for special defines needed for etip.h
+configure:26664: /usr/bin/g++ -c -O2 -I./c++ -I./menu -Iinclude -I./include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+In file included from configure:26652:
+./c++/etip.h.in:121:10: fatal error: curses.h: No such file or directory
+  121 | #include <curses.h>
+      |          ^~~~~~~~~~
+compilation terminated.
+configure:26667: $? = 1
+configure: failed program was:
+#line 26650 "configure"
+#include "confdefs.h"
+
+#include <etip.h.in>
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+configure:26664: /usr/bin/g++ -c -O2 -I./c++ -I./menu -Iinclude -I./include -DETIP_NEEDS_MATH_EXCEPTION -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+In file included from configure:26652:
+./c++/etip.h.in:121:10: fatal error: curses.h: No such file or directory
+  121 | #include <curses.h>
+      |          ^~~~~~~~~~
+compilation terminated.
+configure:26667: $? = 1
+configure: failed program was:
+#line 26650 "configure"
+#include "confdefs.h"
+
+#include <etip.h.in>
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+configure:26664: /usr/bin/g++ -c -O2 -I./c++ -I./menu -Iinclude -I./include -DETIP_NEEDS_MATH_H -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+In file included from configure:26652:
+./c++/etip.h.in:121:10: fatal error: curses.h: No such file or directory
+  121 | #include <curses.h>
+      |          ^~~~~~~~~~
+compilation terminated.
+configure:26667: $? = 1
+configure: failed program was:
+#line 26650 "configure"
+#include "confdefs.h"
+
+#include <etip.h.in>
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+configure:26664: /usr/bin/g++ -c -O2 -I./c++ -I./menu -Iinclude -I./include -DETIP_NEEDS_MATH_H -DETIP_NEEDS_MATH_EXCEPTION -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+In file included from configure:26652:
+./c++/etip.h.in:121:10: fatal error: curses.h: No such file or directory
+  121 | #include <curses.h>
+      |          ^~~~~~~~~~
+compilation terminated.
+configure:26667: $? = 1
+configure: failed program was:
+#line 26650 "configure"
+#include "confdefs.h"
+
+#include <etip.h.in>
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+configure:26694: result: none
+configure:26699: checking if /usr/bin/g++ accepts override keyword
+configure:26735: /usr/bin/g++ -o conftest -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc  >&5
+configure:26738: $? = 0
+configure:26740: ./conftest
+configure:26743: $? = 0
+configure:26762: result: yes
+configure:26771: checking if /usr/bin/g++ accepts parameter initialization
+configure:26807: /usr/bin/g++ -o conftest -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc  >&5
+configure:26798:1: error: default argument given for parameter 1 of 'TEST::TEST(int)' [-fpermissive]
+26798 | 
+      | ^   
+configure:26794:2: note: previous specification in 'TEST::TEST(int)' here
+26794 | public:
+      |  ^~~~
+configure:26810: $? = 1
+configure: program exited with status 1
+configure: failed program was:
+#line 26788 "configure"
+#include "confdefs.h"
+
+class TEST {
+private:
+	int value;
+public:
+	TEST(int x = 1);
+	~TEST();
+};
+
+TEST::TEST(int x = 1)	// some compilers do not like second initializer
+{
+	value = x;
+}
+int main(void) { }
+
+configure:26834: result: no
+configure:26844: checking if /usr/bin/g++ accepts static_cast
+configure:26902: /usr/bin/g++ -c -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+configure:26905: $? = 0
+configure:26908: test -s conftest.o
+configure:26911: $? = 0
+configure:26929: result: yes
+configure:27485: checking for gnat
+configure:27514: result: no
+configure:27485: checking for gnatmake
+configure:27514: result: no
+configure:27485: checking for gprconfig
+configure:27514: result: no
+configure:27485: checking for gprbuild
+configure:27514: result: no
+configure:28109: checking for wchar_t
+configure:28130: /usr/bin/g++ -c -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+configure:28133: $? = 0
+configure:28136: test -s conftest.o
+configure:28139: $? = 0
+configure:28149: result: yes
+configure:28152: checking size of wchar_t
+configure:28316: /usr/bin/g++ -o conftest -O2 -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc  >&5
+configure:28319: $? = 0
+configure:28321: ./conftest
+configure:28324: $? = 0
+configure:28340: result: 4
+configure:28371: checking for library subsets
+configure:28425: result: ticlib+termlib+ext_tinfo+base+widechar+ext_funcs
+configure:28456: checking default library suffix
+configure:28467: result: w
+configure:28470: checking default library-dependency suffix
+configure:28553: result: w.a
+configure:28556: checking default object directory
+configure:28572: result: objects
+configure:28576: checking c++ library-dependency suffix
+configure:28669: result: w.a
+configure:28845: checking if linker supports switching between static/dynamic
+configure:28854: /usr/bin/g++ -c -O2 -I. -I../include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG conftest.cc >&5
+configure:28857: $? = 0
+configure:28886: /usr/bin/g++ -o conftest -O2 -I. -I../include -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600 -DNDEBUG  conftest.cc -static -L/home/micky387/Omni/external/libncurses -lconftest   >&5
+configure:28889: $? = 0
+configure:28892: test -s conftest
+configure:28895: $? = 0
+configure:28918: result: no
+configure:28934: checking where we will install curses.h
+configure:28944: result: ${prefix}/include
+configure:28977: checking for desired basename for form library
+configure:28997: result: form
+configure:29000: checking for desired basename for menu library
+configure:29020: result: menu
+configure:29023: checking for desired basename for panel library
+configure:29043: result: panel
+configure:29046: checking for desired basename for cxx library
+configure:29066: result: ncurses++
+configure:29072: checking for src modules
+configure:29131: result: ncurses progs panel menu form
+configure:29303: checking for defines to add to ncursesw6-config script
+configure:29319: result:  -D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600
+configure:29407: checking for linker search path
+configure:29496: result: /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /lib64 /usr/lib64 /usr/local/lib /lib /usr/lib
+configure:29582: creating ./config.status
+
+## ----------------------- ##
+## Running config.status.  ##
+## ----------------------- ##
+
+This file was extended by config.status 2.52.20231210, executed with
+  CONFIG_FILES    = 
+  CONFIG_HEADERS  = 
+  CONFIG_LINKS    = 
+  CONFIG_COMMANDS = 
+  > "./config.status "
+on micky387-MS-7D75
+
+config.status:30433: creating include/MKterm.h.awk
+config.status:30433: creating include/curses.head
+config.status:30433: creating include/ncurses_dll.h
+config.status:30433: creating include/termcap.h
+config.status:30433: creating include/unctrl.h
+config.status:30433: creating man/man_db.renames
+config.status:30433: creating man/Makefile
+config.status:30433: creating include/Makefile
+config.status:30433: creating ncurses/Makefile
+config.status:30433: creating progs/Makefile
+config.status:30433: creating panel/Makefile
+config.status:30433: creating menu/Makefile
+config.status:30433: creating form/Makefile
+config.status:30433: creating test/Makefile
+config.status:30433: creating misc/Makefile
+config.status:30433: creating c++/Makefile
+config.status:30433: creating misc/run_tic.sh
+config.status:30433: creating misc/ncurses-config
+config.status:30433: creating man/ncursesw6-config.1
+config.status:30433: creating Makefile
+config.status:30594: creating include/ncurses_cfg.h
+
+## ----------------- ##
+## Cache variables.  ##
+## ----------------- ##
+
+ac_cv_build='x86_64-pc-linux-gnu'
+ac_cv_build_alias='x86_64-pc-linux-gnu'
+ac_cv_c_compiler_gnu='yes'
+ac_cv_c_const='yes'
+ac_cv_c_inline='inline'
+ac_cv_cxx_compiler_gnu='yes'
+ac_cv_env_CC_set=''
+ac_cv_env_CC_value=''
+ac_cv_env_CFLAGS_set=''
+ac_cv_env_CFLAGS_value=''
+ac_cv_env_CPPFLAGS_set=''
+ac_cv_env_CPPFLAGS_value=''
+ac_cv_env_CPP_set=''
+ac_cv_env_CPP_value=''
+ac_cv_env_CXXCPP_set=''
+ac_cv_env_CXXCPP_value=''
+ac_cv_env_CXXFLAGS_set=''
+ac_cv_env_CXXFLAGS_value=''
+ac_cv_env_CXX_set=''
+ac_cv_env_CXX_value=''
+ac_cv_env_LDFLAGS_set=''
+ac_cv_env_LDFLAGS_value=''
+ac_cv_env_build_alias_set=''
+ac_cv_env_build_alias_value=''
+ac_cv_env_host_alias_set=''
+ac_cv_env_host_alias_value=''
+ac_cv_env_target_alias_set=''
+ac_cv_env_target_alias_value=''
+ac_cv_func_btowc='yes'
+ac_cv_func_fork='yes'
+ac_cv_func_fork_works='yes'
+ac_cv_func_fpathconf='yes'
+ac_cv_func_fseeko='yes'
+ac_cv_func_getauxval='yes'
+ac_cv_func_getcwd='yes'
+ac_cv_func_getegid='yes'
+ac_cv_func_getenv='yes'
+ac_cv_func_geteuid='yes'
+ac_cv_func_getopt='yes'
+ac_cv_func_getuid='yes'
+ac_cv_func_issetugid='no'
+ac_cv_func_link='yes'
+ac_cv_func_localeconv='yes'
+ac_cv_func_mblen='yes'
+ac_cv_func_mbrlen='yes'
+ac_cv_func_mbrtowc='yes'
+ac_cv_func_mbsrtowcs='yes'
+ac_cv_func_mbstowcs='yes'
+ac_cv_func_mbtowc='yes'
+ac_cv_func_memmove='yes'
+ac_cv_func_poll='yes'
+ac_cv_func_putenv='yes'
+ac_cv_func_putwc='yes'
+ac_cv_func_regcomp='yes'
+ac_cv_func_remove='yes'
+ac_cv_func_select='yes'
+ac_cv_func_setbuf='yes'
+ac_cv_func_setbuffer='yes'
+ac_cv_func_setenv='yes'
+ac_cv_func_setfsuid='yes'
+ac_cv_func_setvbuf='yes'
+ac_cv_func_setvbuf_reversed='no'
+ac_cv_func_sigaction='yes'
+ac_cv_func_sigvec='no'
+ac_cv_func_snprintf='yes'
+ac_cv_func_strdup='yes'
+ac_cv_func_strstr='yes'
+ac_cv_func_symlink='yes'
+ac_cv_func_sysconf='yes'
+ac_cv_func_tcgetpgrp='yes'
+ac_cv_func_times='yes'
+ac_cv_func_tsearch='yes'
+ac_cv_func_unlink='yes'
+ac_cv_func_vfork='yes'
+ac_cv_func_vfork_works='yes'
+ac_cv_func_vsnprintf='yes'
+ac_cv_func_wcsrtombs='yes'
+ac_cv_func_wcstombs='yes'
+ac_cv_func_wctob='yes'
+ac_cv_func_wctomb='yes'
+ac_cv_func_wmemchr='yes'
+ac_cv_have_decl_exit='yes'
+ac_cv_header_dirent_dirent_h='yes'
+ac_cv_header_fcntl_h='yes'
+ac_cv_header_getopt_h='yes'
+ac_cv_header_gpm_h='no'
+ac_cv_header_inttypes_h='yes'
+ac_cv_header_iostream='yes'
+ac_cv_header_limits_h='yes'
+ac_cv_header_locale_h='yes'
+ac_cv_header_math_h='yes'
+ac_cv_header_memory_h='yes'
+ac_cv_header_poll_h='yes'
+ac_cv_header_stdc='yes'
+ac_cv_header_stdint_h='yes'
+ac_cv_header_stdlib_h='yes'
+ac_cv_header_string_h='yes'
+ac_cv_header_strings_h='yes'
+ac_cv_header_sys_auxv_h='yes'
+ac_cv_header_sys_ioctl_h='yes'
+ac_cv_header_sys_param_h='yes'
+ac_cv_header_sys_poll_h='yes'
+ac_cv_header_sys_select_h='yes'
+ac_cv_header_sys_stat_h='yes'
+ac_cv_header_sys_termio_h='no'
+ac_cv_header_sys_time_h='yes'
+ac_cv_header_sys_times_h='yes'
+ac_cv_header_sys_types_h='yes'
+ac_cv_header_termio_h='yes'
+ac_cv_header_termios_h='yes'
+ac_cv_header_time='yes'
+ac_cv_header_typeinfo='yes'
+ac_cv_header_unistd_h='yes'
+ac_cv_header_vfork_h='no'
+ac_cv_header_wchar_h='yes'
+ac_cv_header_wctype_h='yes'
+ac_cv_host='x86_64-pc-linux-gnu'
+ac_cv_host_alias='x86_64-pc-linux-gnu'
+ac_cv_lib_dir_opendir='no'
+ac_cv_lib_util_openpty='yes'
+ac_cv_objext='o'
+ac_cv_path_CXX='/usr/bin/g++'
+ac_cv_path_EGREP='grep -E'
+ac_cv_path_FGREP='grep -F'
+ac_cv_path_LDCONFIG='/usr/sbin/ldconfig'
+ac_cv_path_ac_pt_PKG_CONFIG='/usr/bin/pkg-config'
+ac_cv_path_install='/usr/bin/install -c'
+ac_cv_prog_AWK='mawk'
+ac_cv_prog_CPP='gcc -E'
+ac_cv_prog_CTAGS='ctags'
+ac_cv_prog_CXXCPP='/usr/bin/g++ -E'
+ac_cv_prog_ETAGS='etags'
+ac_cv_prog_GREP='grep'
+ac_cv_prog_MAKE_LOWER_TAGS='yes'
+ac_cv_prog_MAKE_UPPER_TAGS='yes'
+ac_cv_prog_ac_ct_AR='ar'
+ac_cv_prog_ac_ct_CC='gcc'
+ac_cv_prog_ac_ct_CXX='g++'
+ac_cv_prog_ac_ct_INFOCMP='infocmp'
+ac_cv_prog_ac_ct_LD='ld'
+ac_cv_prog_ac_ct_NM='nm'
+ac_cv_prog_ac_ct_RANLIB='ranlib'
+ac_cv_prog_ac_ct_TIC='tic'
+ac_cv_prog_cc_g='yes'
+ac_cv_prog_cc_stdc=''
+ac_cv_prog_cxx_g='yes'
+ac_cv_prog_gcc_traditional='no'
+ac_cv_prog_make_make_set='yes'
+ac_cv_sizeof_bool='1'
+ac_cv_sizeof_signed_char='1'
+ac_cv_sizeof_wchar_t='4'
+ac_cv_sys_file_offset_bits='no'
+ac_cv_sys_large_files='no'
+ac_cv_sys_largefile_CC='no'
+ac_cv_sys_largefile_source='no'
+ac_cv_sys_long_file_names='yes'
+ac_cv_target='x86_64-pc-linux-gnu'
+ac_cv_target_alias='x86_64-pc-linux-gnu'
+ac_cv_type_bool='yes'
+ac_cv_type_intptr_t='yes'
+ac_cv_type_pid_t='yes'
+ac_cv_type_signed_char='yes'
+ac_cv_type_ssize_t='yes'
+ac_cv_type_wchar_t='yes'
+am_cv_langinfo_codeset='yes'
+cf_cv_1UL='1U'
+cf_cv_PATH_GNAT='no'
+cf_cv_PATH_GNATMAKE='no'
+cf_cv_PATH_GPRBUILD='no'
+cf_cv_PATH_GPRCONFIG='no'
+cf_cv_PATH_TTYS='no'
+cf_cv_VERSION_GNAT='no'
+cf_cv_VERSION_GNATMAKE='no'
+cf_cv_VERSION_GPRBUILD='no'
+cf_cv_VERSION_GPRCONFIG='no'
+cf_cv_abi_default='6'
+cf_cv_abi_version='6'
+cf_cv_ar_flags='-curvU'
+cf_cv_builtin_bool='1'
+cf_cv_c11_noreturn='no,'
+cf_cv_cc_bool_type='0'
+cf_cv_consistent_getenv='yes'
+cf_cv_cpp_override='yes'
+cf_cv_cpp_param_init='no'
+cf_cv_cpp_static_cast='yes'
+cf_cv_dcl_environ='no'
+cf_cv_dcl_errno='yes'
+cf_cv_define_sigwinch='yes'
+cf_cv_do_reranlib='no'
+cf_cv_do_symlinks='yes'
+cf_cv_enable_lp64='1'
+cf_cv_enable_opaque='NCURSES_OPAQUE'
+cf_cv_enable_reentrant='0'
+cf_cv_enable_sigwinch='1'
+cf_cv_fopen_bin_r='yes'
+cf_cv_func_clock_gettime='yes'
+cf_cv_func_mkstemp='yes'
+cf_cv_func_nanosleep='yes'
+cf_cv_func_openpty='pty.h'
+cf_cv_func_vsscanf='vsscanf'
+cf_cv_gcc_inline='yes'
+cf_cv_getopt_header='unistd.h'
+cf_cv_gnu_dftsrc_219='yes'
+cf_cv_gnu_library='yes'
+cf_cv_gnu_library_219='yes'
+cf_cv_have_PATH_TTYS='no'
+cf_cv_have_environ='yes'
+cf_cv_have_errno='no'
+cf_cv_have_isascii='yes'
+cf_cv_have_libm='yes'
+cf_cv_have_tcgetattr='yes'
+cf_cv_have_va_copy='yes'
+cf_cv_header_stdbool_h='1'
+cf_cv_install_p='yes'
+cf_cv_ld_searchpath='/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu /lib64 /usr/lib64 /usr/local/lib /lib /usr/lib'
+cf_cv_lib_util='yes'
+cf_cv_link_dataonly='yes'
+cf_cv_link_funcs=' link symlink'
+cf_cv_make_PHONY='yes'
+cf_cv_makeflags=''
+cf_cv_mb_len_max='yes'
+cf_cv_mbstate_t='yes'
+cf_cv_mixedcase='yes'
+cf_cv_need_libm='yes'
+cf_cv_posix_visible='no'
+cf_cv_prog_CC_c_o='yes'
+cf_cv_prog_CXX_c_o='yes'
+cf_cv_prog_gnat_correct='no'
+cf_cv_regex_hdrs='regex.h'
+cf_cv_rel_version='6.5'
+cf_cv_rm_so_locs='no'
+cf_cv_shared_soname='`basename $@ .${REL_VERSION}`.${ABI_VERSION}'
+cf_cv_shlib_version='rel'
+cf_cv_shlib_version_infix='no'
+cf_cv_sig_atomic_t='volatile sig_atomic_t'
+cf_cv_sizechange='yes'
+cf_cv_src_modules='ncurses progs panel menu form'
+cf_cv_struct_dirent64='no'
+cf_cv_sys_time_select='yes'
+cf_cv_system_name='linux-gnu'
+cf_cv_timestamp='Tue Jul  8 18:05:41 EDT 2025'
+cf_cv_type_of_bool='unsigned char'
+cf_cv_type_sigaction='no'
+cf_cv_typeof_chtype='uint32_t'
+cf_cv_typeof_mmask_t='uint32_t'
+cf_cv_unsigned_literals='yes'
+cf_cv_wchar_h_okay='yes'
+cf_cv_wchar_t='no'
+cf_cv_wcwidth_graphics='yes'
+cf_cv_wint_t='yes'
+cf_cv_working_poll='yes'
+
+## ------------ ##
+## confdefs.h.  ##
+## ------------ ##
+
+#define PACKAGE "ncurses"
+#define NCURSES_VERSION "6.5"
+#define NCURSES_PATCHDATE 20240427
+#define SYSTEM_NAME "linux-gnu"
+#ifdef __cplusplus
+#include <stdlib.h>
+#endif
+#define HAVE_LONG_FILE_NAMES 1
+#define MIXEDCASE_FILENAMES 1
+#define STDC_HEADERS 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#define HAVE_MEMORY_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_DIRENT_H 1
+#define TERMINFO_DIRS "/system_ext/etc/terminfo"
+#define TERMINFO "/system_ext/etc/terminfo"
+#define HAVE_BIG_CORE 1
+#define PURE_TERMINFO 1
+#define USE_HOME_TERMINFO 1
+#define USE_ROOT_ENVIRON 1
+#define USE_ROOT_ACCESS 1
+#define USE_SETUID_ENVIRON 1
+#define HAVE_UNISTD_H 1
+#define HAVE_REMOVE 1
+#define HAVE_UNLINK 1
+#define HAVE_LINK 1
+#define HAVE_SYMLINK 1
+#define USE_LINKS 1
+#define HAVE_LANGINFO_CODESET 1
+#define USE_WIDEC_SUPPORT 1
+#define NCURSES_WIDECHAR 1
+#define HAVE_WCHAR_H 1
+#define HAVE_WCTYPE_H 1
+#define HAVE_PUTWC 1
+#define HAVE_BTOWC 1
+#define HAVE_WCTOB 1
+#define HAVE_WMEMCHR 1
+#define HAVE_MBTOWC 1
+#define HAVE_WCTOMB 1
+#define HAVE_MBLEN 1
+#define HAVE_MBRLEN 1
+#define HAVE_MBRTOWC 1
+#define HAVE_WCSRTOMBS 1
+#define HAVE_MBSRTOWCS 1
+#define HAVE_WCSTOMBS 1
+#define HAVE_MBSTOWCS 1
+#define NEED_WCHAR_H 1
+#define NEED_WCHAR_H 1
+#define HAVE_FSEEKO 1
+#define RGB_PATH "/usr/share/X11/rgb.txt"
+#define SIZEOF_SIGNED_CHAR 1
+#define NCURSES_EXT_FUNCS 1
+#define HAVE_ASSUME_DEFAULT_COLORS 1
+#define HAVE_CURSES_VERSION 1
+#define HAVE_HAS_KEY 1
+#define HAVE_RESIZETERM 1
+#define HAVE_RESIZE_TERM 1
+#define HAVE_TERM_ENTRY_H 1
+#define HAVE_USE_DEFAULT_COLORS 1
+#define HAVE_USE_SCREEN 1
+#define HAVE_USE_WINDOW 1
+#define HAVE_WRESIZE 1
+#define NCURSES_SP_FUNCS 1
+#define HAVE_TPUTS_SP 1
+#define NCURSES_EXT_COLORS 1
+#define HAVE_ALLOC_PAIR 1
+#define HAVE_INIT_EXTENDED_COLOR 1
+#define HAVE_RESET_COLOR_PAIRS 1
+#define NCURSES_EXT_PUTWIN 1
+#define NCURSES_NO_PADDING 1
+#define USE_SIGWINCH 1
+#define NCURSES_XNAMES 1
+#define NCURSES_WRAP_PREFIX "_nc_"
+#define USE_ASSUMED_COLOR 1
+#define USE_HASHMAP 1
+#define GCC_SCANF 1
+#define GCC_SCANF 1
+#define GCC_SCANFLIKE(fmt,var) __attribute__((format(scanf,fmt,var)))
+#define GCC_PRINTF 1
+#define GCC_PRINTF 1
+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+#define GCC_UNUSED __attribute__((unused))
+#define GCC_UNUSED __attribute__((unused))
+#define GCC_NORETURN __attribute__((noreturn))
+#define GCC_NORETURN __attribute__((noreturn))
+#define HAVE_NC_ALLOC_H 1
+#define HAVE_MATH_FUNCS 1
+#define TIME_WITH_SYS_TIME 1
+#define HAVE_REGEX_H_FUNCS 1
+#define HAVE_FCNTL_H 1
+#define HAVE_GETOPT_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_LOCALE_H 1
+#define HAVE_MATH_H 1
+#define HAVE_POLL_H 1
+#define HAVE_SYS_AUXV_H 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_PARAM_H 1
+#define HAVE_SYS_POLL_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_TIMES_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_WCTYPE_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_GETOPT_H 1
+#define HAVE_GETOPT_HEADER 1
+#define DECL_ENVIRON 1
+#define HAVE_ENVIRON 1
+#define HAVE_PUTENV 1
+#define HAVE_SETENV 1
+#define HAVE_STRDUP 1
+#define HAVE_SYS_TIME_SELECT 1
+#define SIG_ATOMIC_T volatile sig_atomic_t
+#define HAVE_CLOCK_GETTIME 1
+#define HAVE_FPATHCONF 1
+#define HAVE_GETCWD 1
+#define HAVE_GETAUXVAL 1
+#define HAVE_GETEGID 1
+#define HAVE_GETEUID 1
+#define HAVE_GETOPT 1
+#define HAVE_GETUID 1
+#define HAVE_LOCALECONV 1
+#define HAVE_POLL 1
+#define HAVE_REMOVE 1
+#define HAVE_SELECT 1
+#define HAVE_SETBUF 1
+#define HAVE_SETBUFFER 1
+#define HAVE_SETFSUID 1
+#define HAVE_SETVBUF 1
+#define HAVE_SIGACTION 1
+#define HAVE_SNPRINTF 1
+#define HAVE_STRDUP 1
+#define HAVE_STRSTR 1
+#define HAVE_SYSCONF 1
+#define HAVE_TCGETPGRP 1
+#define HAVE_TIMES 1
+#define HAVE_TSEARCH 1
+#define HAVE_VSNPRINTF 1
+#define HAVE_ISASCII 1
+#define HAVE_NANOSLEEP 1
+#define HAVE_TERMIO_H 1
+#define HAVE_TERMIOS_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_TCGETATTR 1
+#define HAVE_VSSCANF 1
+#define HAVE_UNISTD_H 1
+#define HAVE_MKSTEMP 1
+#define HAVE_SIZECHANGE 1
+#define HAVE_WORKING_POLL 1
+#define HAVE_CONSISTENT_MB_LEN_MAX 1
+#define HAVE_VA_COPY 1
+#define HAVE_UNISTD_H 1
+#define HAVE_FORK 1
+#define HAVE_VFORK 1
+#define HAVE_WORKING_VFORK 1
+#define HAVE_WORKING_FORK 1
+#define USE_FOPEN_BIN_R 1
+#define USE_OPENPTY_HEADER <pty.h>
+#define USE_XTERM_PTY 1
+#define HAVE_TYPEINFO 1
+#define HAVE_IOSTREAM 1
+#define IOSTREAM_NAMESPACE 1
+#define SIZEOF_BOOL 1
+#define CPP_HAS_OVERRIDE 1
+#define CPP_HAS_STATIC_CAST 1
+#define SIZEOF_WCHAR_T 4
+#define HAVE_SLK_COLOR 1
+#define HAVE_PANEL_H 1
+#define HAVE_LIBPANEL 1
+#define HAVE_MENU_H 1
+#define HAVE_LIBMENU 1
+#define HAVE_FORM_H 1
+#define HAVE_LIBFORM 1
+#define NCURSES_PATHSEP ':'
+#define NCURSES_VERSION_STRING "6.5.20240427"
+#define NCURSES_OSPEED_COMPAT 1
+
+
+configure: exit 0
