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
