This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by ucommon configure 6.0.7, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = pcal
uname -m = x86_64
uname -r = 3.12.7-300.fc20.x86_64
uname -s = Linux
uname -v = #1 SMP Fri Jan 10 15:35:31 UTC 2014

/usr/bin/uname -p = x86_64
/bin/uname -X     = unknown

/bin/arch              = x86_64
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/lib64/qt-3.3/bin
PATH: /usr/lib64/ccache
PATH: /usr/local/bin
PATH: /usr/bin
PATH: /bin
PATH: /usr/local/sbin
PATH: /usr/sbin
PATH: /home/lisional/.local/bin
PATH: /usr/local/bin
PATH: /home/lisional/bin
PATH: /home/lisional/Dev/ADT/sdk/tools
PATH: /home/lisional/Dev/ADT/sdk/platform-tools
PATH: /home/lisional/Dev/ADT/ndk
PATH: /home/lisional/.local/bin
PATH: /home/lisional/Dev/ant/bin/ant
PATH: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.4.1.fc20.x86_64
PATH: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.4.1.fc20.x86_64/bin
PATH: /home/lisional/.local/bin
PATH: /usr/local/bin
PATH: /home/lisional/bin
PATH: /home/lisional/Dev/ADT/sdk/tools
PATH: /home/lisional/Dev/ADT/sdk/platform-tools
PATH: /home/lisional/Dev/ADT/ndk
PATH: /home/lisional/.local/bin
PATH: /home/lisional/Dev/ant/bin/ant
PATH: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.4.1.fc20.x86_64
PATH: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.4.1.fc20.x86_64/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2533: checking build system type
configure:2547: result: x86_64-unknown-linux-gnu
configure:2567: checking host system type
configure:2580: result: x86_64-unknown-linux-gnu
configure:2600: checking target system type
configure:2613: result: x86_64-unknown-linux-gnu
configure:2688: checking for gcc
configure:2704: found /usr/lib64/ccache/gcc
configure:2715: result: gcc
configure:2944: checking for C compiler version
configure:2953: gcc --version >&5
gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:2964: $? = 0
configure:2953: gcc -v >&5
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) 
configure:2964: $? = 0
configure:2953: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:2964: $? = 4
configure:2953: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:2964: $? = 4
configure:2984: checking whether the C compiler works
configure:3006: gcc    conftest.c  >&5
configure:3010: $? = 0
configure:3058: result: yes
configure:3061: checking for C compiler default output file name
configure:3063: result: a.out
configure:3069: checking for suffix of executables
configure:3076: gcc -o conftest    conftest.c  >&5
configure:3080: $? = 0
configure:3102: result: 
configure:3124: checking whether we are cross compiling
configure:3132: gcc -o conftest    conftest.c  >&5
configure:3136: $? = 0
configure:3143: ./conftest
configure:3147: $? = 0
configure:3162: result: no
configure:3167: checking for suffix of object files
configure:3189: gcc -c   conftest.c >&5
configure:3193: $? = 0
configure:3214: result: o
configure:3218: checking whether we are using the GNU C compiler
configure:3237: gcc -c   conftest.c >&5
configure:3237: $? = 0
configure:3246: result: yes
configure:3255: checking whether gcc accepts -g
configure:3275: gcc -c -g  conftest.c >&5
configure:3275: $? = 0
configure:3316: result: yes
configure:3333: checking for gcc option to accept ISO C89
configure:3396: gcc  -c -g -O2  conftest.c >&5
configure:3396: $? = 0
configure:3409: result: none needed
configure:3434: checking how to run the C preprocessor
configure:3465: gcc -E  conftest.c
configure:3465: $? = 0
configure:3479: gcc -E  conftest.c
conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:3479: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3504: result: gcc -E
configure:3524: gcc -E  conftest.c
configure:3524: $? = 0
configure:3538: gcc -E  conftest.c
conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:3538: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:3614: checking for gcc
configure:3641: result: gcc
configure:3870: checking for C compiler version
configure:3879: gcc --version >&5
gcc (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:3890: $? = 0
configure:3879: gcc -v >&5
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) 
configure:3890: $? = 0
configure:3879: gcc -V >&5
gcc: error: unrecognized command line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:3890: $? = 4
configure:3879: gcc -qversion >&5
gcc: error: unrecognized command line option '-qversion'
gcc: fatal error: no input files
compilation terminated.
configure:3890: $? = 4
configure:3894: checking whether we are using the GNU C compiler
configure:3922: result: yes
configure:3931: checking whether gcc accepts -g
configure:3992: result: yes
configure:4009: checking for gcc option to accept ISO C89
configure:4085: result: none needed
configure:4163: checking for g++
configure:4179: found /usr/lib64/ccache/g++
configure:4190: result: g++
configure:4217: checking for C++ compiler version
configure:4226: g++ --version >&5
g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4237: $? = 0
configure:4226: g++ -v >&5
Using built-in specs.
COLLECT_GCC=/usr/bin/g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) 
configure:4237: $? = 0
configure:4226: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:4237: $? = 4
configure:4226: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'
g++: fatal error: no input files
compilation terminated.
configure:4237: $? = 4
configure:4241: checking whether we are using the GNU C++ compiler
configure:4260: g++ -c   conftest.cpp >&5
configure:4260: $? = 0
configure:4269: result: yes
configure:4278: checking whether g++ accepts -g
configure:4298: g++ -c -g  conftest.cpp >&5
configure:4298: $? = 0
configure:4339: result: yes
configure:4367: checking how to run the C++ preprocessor
configure:4394: g++ -E  conftest.cpp
configure:4394: $? = 0
configure:4408: g++ -E  conftest.cpp
conftest.cpp:9:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4408: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4433: result: g++ -E
configure:4453: g++ -E  conftest.cpp
configure:4453: $? = 0
configure:4467: g++ -E  conftest.cpp
conftest.cpp:9:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:4467: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4607: checking for C++ compiler version
configure:4616: g++ --version >&5
g++ (GCC) 4.8.2 20131212 (Red Hat 4.8.2-7)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4627: $? = 0
configure:4616: g++ -v >&5
Using built-in specs.
COLLECT_GCC=/usr/bin/g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-isl=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.2-20131212/obj-x86_64-redhat-linux/cloog-install --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.2 20131212 (Red Hat 4.8.2-7) (GCC) 
configure:4627: $? = 0
configure:4616: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:4627: $? = 4
configure:4616: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'
g++: fatal error: no input files
compilation terminated.
configure:4627: $? = 4
configure:4631: checking whether we are using the GNU C++ compiler
configure:4659: result: yes
configure:4668: checking whether g++ accepts -g
configure:4729: result: yes
configure:5101: checking how to print strings
configure:5128: result: printf
configure:5149: checking for a sed that does not truncate output
configure:5213: result: /usr/bin/sed
configure:5231: checking for grep that handles long lines and -e
configure:5289: result: /usr/bin/grep
configure:5294: checking for egrep
configure:5356: result: /usr/bin/grep -E
configure:5361: checking for fgrep
configure:5423: result: /usr/bin/grep -F
configure:5458: checking for ld used by gcc
configure:5525: result: /usr/bin/ld
configure:5532: checking if the linker (/usr/bin/ld) is GNU ld
configure:5547: result: yes
configure:5559: checking for BSD- or MS-compatible name lister (nm)
configure:5608: result: /usr/bin/nm -B
configure:5738: checking the name lister (/usr/bin/nm -B) interface
configure:5745: gcc -c -g -O2  conftest.c >&5
configure:5748: /usr/bin/nm -B "conftest.o"
configure:5751: output
0000000000000000 B some_variable
configure:5758: result: BSD nm
configure:5761: checking whether ln -s works
configure:5765: result: yes
configure:5773: checking the maximum length of command line arguments
configure:5903: result: 1572864
configure:5920: checking whether the shell understands some XSI constructs
configure:5930: result: yes
configure:5934: checking whether the shell understands "+="
configure:5940: result: yes
configure:5975: checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format
configure:6015: result: func_convert_file_noop
configure:6022: checking how to convert x86_64-unknown-linux-gnu file names to toolchain format
configure:6042: result: func_convert_file_noop
configure:6049: checking for /usr/bin/ld option to reload object files
configure:6056: result: -r
configure:6130: checking for objdump
configure:6157: result: objdump
configure:6186: checking how to recognize dependent libraries
configure:6388: result: pass_all
configure:6473: checking for dlltool
configure:6500: result: dlltool
configure:6530: checking how to associate runtime and link libraries
configure:6557: result: printf %s\n
configure:6618: checking for ar
configure:6634: found /usr/bin/ar
configure:6645: result: ar
configure:6682: checking for archiver @FILE support
configure:6699: gcc -c -g -O2  conftest.c >&5
configure:6699: $? = 0
configure:6702: ar cru libconftest.a @conftest.lst >&5
configure:6705: $? = 0
configure:6710: ar cru libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:6713: $? = 1
configure:6725: result: @
configure:6783: checking for strip
configure:6799: found /usr/bin/strip
configure:6810: result: strip
configure:6882: checking for ranlib
configure:6898: found /usr/bin/ranlib
configure:6909: result: ranlib
configure:6986: checking for gawk
configure:7002: found /usr/bin/gawk
configure:7013: result: gawk
configure:7053: checking command to parse /usr/bin/nm -B output from gcc object
configure:7173: gcc -c -g -O2  conftest.c >&5
configure:7176: $? = 0
configure:7180: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:7183: $? = 0
configure:7249: gcc -o conftest -g -O2   conftest.c conftstm.o >&5
configure:7252: $? = 0
configure:7290: result: ok
configure:7327: checking for sysroot
configure:7357: result: no
configure:7434: gcc -c -g -O2  conftest.c >&5
configure:7437: $? = 0
configure:7619: checking for mt
configure:7649: result: no
configure:7669: checking if : is a manifest tool
configure:7675: : '-?'
configure:7683: result: no
configure:8321: checking for ANSI C header files
configure:8341: gcc -c -g -O2  conftest.c >&5
configure:8341: $? = 0
configure:8414: gcc -o conftest -g -O2   conftest.c  >&5
configure:8414: $? = 0
configure:8414: ./conftest
configure:8414: $? = 0
configure:8425: result: yes
configure:8438: checking for sys/types.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for sys/stat.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for stdlib.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for string.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for memory.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for strings.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for inttypes.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for stdint.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8438: checking for unistd.h
configure:8438: gcc -c -g -O2  conftest.c >&5
configure:8438: $? = 0
configure:8438: result: yes
configure:8452: checking for dlfcn.h
configure:8452: gcc -c -g -O2  conftest.c >&5
configure:8452: $? = 0
configure:8452: result: yes
configure:8667: checking for objdir
configure:8682: result: .libs
configure:8949: checking if gcc supports -fno-rtti -fno-exceptions
configure:8967: gcc -c -g -O2  -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C [enabled by default]
cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C [enabled by default]
configure:8971: $? = 0
configure:8984: result: no
configure:9311: checking for gcc option to produce PIC
configure:9318: result: -fPIC -DPIC
configure:9326: checking if gcc PIC flag -fPIC -DPIC works
configure:9344: gcc -c -g -O2  -fPIC -DPIC -DPIC conftest.c >&5
configure:9348: $? = 0
configure:9361: result: yes
configure:9390: checking if gcc static flag -static works
configure:9418: result: no
configure:9433: checking if gcc supports -c -o file.o
configure:9454: gcc -c -g -O2  -o out/conftest2.o conftest.c >&5
configure:9458: $? = 0
configure:9480: result: yes
configure:9488: checking if gcc supports -c -o file.o
configure:9535: result: yes
configure:9568: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:10721: result: yes
configure:10758: checking whether -lc should be explicitly linked in
configure:10766: gcc -c -g -O2  conftest.c >&5
configure:10769: $? = 0
configure:10784: gcc -shared  -fPIC -DPIC conftest.o  -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /usr/bin/grep  -lc  \>/dev/null 2\>\&1
configure:10787: $? = 0
configure:10801: result: no
configure:10961: checking dynamic linker characteristics
configure:11472: gcc -o conftest -g -O2   -Wl,-rpath -Wl,/foo conftest.c  >&5
configure:11472: $? = 0
configure:11698: result: GNU/Linux ld.so
configure:11805: checking how to hardcode library paths into programs
configure:11830: result: immediate
configure:12370: checking whether stripping libraries is possible
configure:12375: result: yes
configure:12410: checking if libtool supports shared libraries
configure:12412: result: yes
configure:12415: checking whether to build shared libraries
configure:12436: result: yes
configure:12439: checking whether to build static libraries
configure:12443: result: yes
configure:12466: checking how to run the C++ preprocessor
configure:12532: result: g++ -E
configure:12552: g++ -E  conftest.cpp
configure:12552: $? = 0
configure:12566: g++ -E  conftest.cpp
conftest.cpp:21:28: fatal error: ac_nonexistent.h: No such file or directory
 #include <ac_nonexistent.h>
                            ^
compilation terminated.
configure:12566: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:12735: checking for ld used by g++
configure:12802: result: /usr/bin/ld -m elf_x86_64
configure:12809: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld
configure:12824: result: yes
configure:12879: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:13884: result: yes
configure:13920: g++ -c -g -O2  conftest.cpp >&5
configure:13923: $? = 0
configure:14443: checking for g++ option to produce PIC
configure:14450: result: -fPIC -DPIC
configure:14458: checking if g++ PIC flag -fPIC -DPIC works
configure:14476: g++ -c -g -O2  -fPIC -DPIC -DPIC conftest.cpp >&5
configure:14480: $? = 0
configure:14493: result: yes
configure:14516: checking if g++ static flag -static works
configure:14544: result: no
configure:14556: checking if g++ supports -c -o file.o
configure:14577: g++ -c -g -O2  -o out/conftest2.o conftest.cpp >&5
configure:14581: $? = 0
configure:14603: result: yes
configure:14608: checking if g++ supports -c -o file.o
configure:14655: result: yes
configure:14685: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:14721: result: yes
configure:14862: checking dynamic linker characteristics
configure:15533: result: GNU/Linux ld.so
configure:15586: checking how to hardcode library paths into programs
configure:15611: result: immediate
configure:15688: checking for a BSD-compatible install
configure:15756: result: /usr/bin/install -c
configure:15767: checking whether build environment is sane
configure:15822: result: yes
configure:15973: checking for a thread-safe mkdir -p
configure:16012: result: /usr/bin/mkdir -p
configure:16015: checking whether make sets $(MAKE)
configure:16037: result: yes
configure:16067: checking for style of include used by make
configure:16095: result: GNU
configure:16129: checking whether make supports nested variables
configure:16146: result: yes
configure:16231: checking dependency style of gcc
configure:16342: result: gcc3
configure:16359: checking dependency style of g++
configure:16470: result: gcc3
configure:16489: checking for C/C++ restrict keyword
configure:16514: gcc -c -g -O2  conftest.c >&5
configure:16514: $? = 0
configure:16522: result: __restrict
configure:16535: checking for working volatile
configure:16554: gcc -c -g -O2  conftest.c >&5
configure:16554: $? = 0
configure:16561: result: yes
configure:16569: checking for inline
configure:16585: gcc -c -g -O2  conftest.c >&5
configure:16585: $? = 0
configure:16593: result: inline
configure:16687: checking full c++ support and linking model
configure:16697: result: yes
configure:16742: checking for stdint.h
configure:16742: result: yes
configure:16742: checking poll.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking poll.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for poll.h
configure:16742: result: yes
configure:16742: checking sys/mman.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking sys/mman.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for sys/mman.h
configure:16742: result: yes
configure:16742: checking sys/shm.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking sys/shm.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for sys/shm.h
configure:16742: result: yes
configure:16742: checking sys/poll.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking sys/poll.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for sys/poll.h
configure:16742: result: yes
configure:16742: checking sys/timeb.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking sys/timeb.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for sys/timeb.h
configure:16742: result: yes
configure:16742: checking endian.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking endian.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for endian.h
configure:16742: result: yes
configure:16742: checking sys/filio.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
conftest.c:64:23: fatal error: sys/filio.h: No such file or directory
 #include <sys/filio.h>
                       ^
compilation terminated.
configure:16742: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <sys/filio.h>
configure:16742: result: no
configure:16742: checking sys/filio.h presence
configure:16742: gcc -E  conftest.c
conftest.c:31:23: fatal error: sys/filio.h: No such file or directory
 #include <sys/filio.h>
                       ^
compilation terminated.
configure:16742: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| /* end confdefs.h.  */
| #include <sys/filio.h>
configure:16742: result: no
configure:16742: checking for sys/filio.h
configure:16742: result: no
configure:16742: checking dirent.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking dirent.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for dirent.h
configure:16742: result: yes
configure:16742: checking sys/resource.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking sys/resource.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for sys/resource.h
configure:16742: result: yes
configure:16742: checking wchar.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking wchar.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for wchar.h
configure:16742: result: yes
configure:16742: checking netinet/in.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking netinet/in.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for netinet/in.h
configure:16742: result: yes
configure:16742: checking net/if.h usability
configure:16742: gcc -c -g -O2  conftest.c >&5
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking net/if.h presence
configure:16742: gcc -E  conftest.c
configure:16742: $? = 0
configure:16742: result: yes
configure:16742: checking for net/if.h
configure:16742: result: yes
configure:16755: checking mach/clock.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
conftest.c:69:24: fatal error: mach/clock.h: No such file or directory
 #include <mach/clock.h>
                        ^
compilation terminated.
configure:16755: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <mach/clock.h>
configure:16755: result: no
configure:16755: checking mach/clock.h presence
configure:16755: gcc -E  conftest.c
conftest.c:36:24: fatal error: mach/clock.h: No such file or directory
 #include <mach/clock.h>
                        ^
compilation terminated.
configure:16755: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| /* end confdefs.h.  */
| #include <mach/clock.h>
configure:16755: result: no
configure:16755: checking for mach/clock.h
configure:16755: result: no
configure:16755: checking mach-o/dyld.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
conftest.c:69:25: fatal error: mach-o/dyld.h: No such file or directory
 #include <mach-o/dyld.h>
                         ^
compilation terminated.
configure:16755: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <mach-o/dyld.h>
configure:16755: result: no
configure:16755: checking mach-o/dyld.h presence
configure:16755: gcc -E  conftest.c
conftest.c:36:25: fatal error: mach-o/dyld.h: No such file or directory
 #include <mach-o/dyld.h>
                         ^
compilation terminated.
configure:16755: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| /* end confdefs.h.  */
| #include <mach-o/dyld.h>
configure:16755: result: no
configure:16755: checking for mach-o/dyld.h
configure:16755: result: no
configure:16755: checking linux/version.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking linux/version.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for linux/version.h
configure:16755: result: yes
configure:16755: checking sys/inotify.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking sys/inotify.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for sys/inotify.h
configure:16755: result: yes
configure:16755: checking sys/event.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
conftest.c:71:23: fatal error: sys/event.h: No such file or directory
 #include <sys/event.h>
                       ^
compilation terminated.
configure:16755: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <sys/event.h>
configure:16755: result: no
configure:16755: checking sys/event.h presence
configure:16755: gcc -E  conftest.c
conftest.c:38:23: fatal error: sys/event.h: No such file or directory
 #include <sys/event.h>
                       ^
compilation terminated.
configure:16755: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| /* end confdefs.h.  */
| #include <sys/event.h>
configure:16755: result: no
configure:16755: checking for sys/event.h
configure:16755: result: no
configure:16755: checking syslog.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking syslog.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for syslog.h
configure:16755: result: yes
configure:16755: checking sys/wait.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking sys/wait.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for sys/wait.h
configure:16755: result: yes
configure:16755: checking termios.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking termios.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for termios.h
configure:16755: result: yes
configure:16755: checking termio.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking termio.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for termio.h
configure:16755: result: yes
configure:16755: checking fcntl.h usability
configure:16755: gcc -c -g -O2  conftest.c >&5
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking fcntl.h presence
configure:16755: gcc -E  conftest.c
configure:16755: $? = 0
configure:16755: result: yes
configure:16755: checking for fcntl.h
configure:16755: result: yes
configure:16755: checking for unistd.h
configure:16755: result: yes
configure:16768: checking sys/param.h usability
configure:16768: gcc -c -g -O2  conftest.c >&5
configure:16768: $? = 0
configure:16768: result: yes
configure:16768: checking sys/param.h presence
configure:16768: gcc -E  conftest.c
configure:16768: $? = 0
configure:16768: result: yes
configure:16768: checking for sys/param.h
configure:16768: result: yes
configure:16768: checking sys/lockf.h usability
configure:16768: gcc -c -g -O2  conftest.c >&5
conftest.c:78:23: fatal error: sys/lockf.h: No such file or directory
 #include <sys/lockf.h>
                       ^
compilation terminated.
configure:16768: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| /* end confdefs.h.  */
| #include <stdio.h>
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef STDC_HEADERS
| # include <stdlib.h>
| # include <stddef.h>
| #else
| # ifdef HAVE_STDLIB_H
| #  include <stdlib.h>
| # endif
| #endif
| #ifdef HAVE_STRING_H
| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
| #  include <memory.h>
| # endif
| # include <string.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <sys/lockf.h>
configure:16768: result: no
configure:16768: checking sys/lockf.h presence
configure:16768: gcc -E  conftest.c
conftest.c:45:23: fatal error: sys/lockf.h: No such file or directory
 #include <sys/lockf.h>
                       ^
compilation terminated.
configure:16768: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| /* end confdefs.h.  */
| #include <sys/lockf.h>
configure:16768: result: no
configure:16768: checking for sys/lockf.h
configure:16768: result: no
configure:16768: checking sys/file.h usability
configure:16768: gcc -c -g -O2  conftest.c >&5
configure:16768: $? = 0
configure:16768: result: yes
configure:16768: checking sys/file.h presence
configure:16768: gcc -E  conftest.c
configure:16768: $? = 0
configure:16768: result: yes
configure:16768: checking for sys/file.h
configure:16768: result: yes
configure:16768: checking for dlfcn.h
configure:16768: result: yes
configure:16779: checking regex.h usability
configure:16779: gcc -c -g -O2  conftest.c >&5
configure:16779: $? = 0
configure:16779: result: yes
configure:16779: checking regex.h presence
configure:16779: gcc -E  conftest.c
configure:16779: $? = 0
configure:16779: result: yes
configure:16779: checking for regex.h
configure:16779: result: yes
configure:16785: checking for regfree in -lregex
configure:16810: gcc -o conftest -g -O2   conftest.c -lregex   >&5
/usr/bin/ld: cannot find -lregex
collect2: error: ld returned 1 exit status
configure:16810: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char regfree ();
| int
| main ()
| {
| return regfree ();
|   ;
|   return 0;
| }
configure:16819: result: no
configure:16832: checking for fopen in -lmsvcrt
configure:16857: gcc -o conftest -g -O2   conftest.c -lmsvcrt   >&5
/usr/bin/ld: cannot find -lmsvcrt
collect2: error: ld returned 1 exit status
configure:16857: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char fopen ();
| int
| main ()
| {
| return fopen ();
|   ;
|   return 0;
| }
configure:16866: result: no
configure:16885: checking for __modsi3 in -lgcc
configure:16910: gcc -o conftest -g -O2   conftest.c -lgcc   >&5
/tmp/cct0M5uI.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:59: undefined reference to `__modsi3'
collect2: error: ld returned 1 exit status
configure:16910: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char __modsi3 ();
| int
| main ()
| {
| return __modsi3 ();
|   ;
|   return 0;
| }
configure:16919: result: no
configure:16928: checking for socketpair in -lc
configure:16953: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:16953: $? = 0
configure:16963: result: yes
configure:17019: checking for getaddrinfo in -lc
configure:17044: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17044: $? = 0
configure:17054: result: yes
configure:17110: checking for gethostbyname2 in -lc
configure:17135: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17135: $? = 0
configure:17145: result: yes
configure:17202: checking for inet_ntop in -lc
configure:17227: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17227: $? = 0
configure:17237: result: yes
configure:17343: checking for socket in -lsocket
configure:17368: gcc -o conftest -g -O2   conftest.c -lsocket   >&5
/usr/bin/ld: cannot find -lsocket
collect2: error: ld returned 1 exit status
configure:17368: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char socket ();
| int
| main ()
| {
| return socket ();
|   ;
|   return 0;
| }
configure:17377: result: no
configure:17459: checking for socks proxy support
configure:17470: result: no
configure:17475: checking for lstat in -lc
configure:17500: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17500: $? = 0
configure:17510: result: yes
configure:17522: checking for strcoll in -lc
configure:17547: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17547: $? = 0
configure:17557: result: yes
configure:17569: checking for stricmp in -lc
configure:17594: gcc -o conftest -g -O2   conftest.c -lc   >&5
/tmp/ccMAL7b5.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:65: undefined reference to `stricmp'
collect2: error: ld returned 1 exit status
configure:17594: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char stricmp ();
| int
| main ()
| {
| return stricmp ();
|   ;
|   return 0;
| }
configure:17604: result: no
configure:17616: checking for stristr in -lc
configure:17641: gcc -o conftest -g -O2   conftest.c -lc   >&5
/tmp/ccmEGX96.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:65: undefined reference to `stristr'
collect2: error: ld returned 1 exit status
configure:17641: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char stristr ();
| int
| main ()
| {
| return stristr ();
|   ;
|   return 0;
| }
configure:17651: result: no
configure:17663: checking for sysconf in -lc
configure:17688: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17688: $? = 0
configure:17698: result: yes
configure:17710: checking for posix_memalign in -lc
configure:17735: gcc -o conftest -g -O2   conftest.c -lc   >&5
configure:17735: $? = 0
configure:17745: result: yes
configure:17757: checking for dlopen in -lc
configure:17782: gcc -o conftest -g -O2   conftest.c -lc   >&5
/tmp/ccPAhYfk.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:67: undefined reference to `dlopen'
collect2: error: ld returned 1 exit status
configure:17782: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| #define HAVE_SYSCONF 1
| #define HAVE_POSIX_MEMALIGN 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char dlopen ();
| int
| main ()
| {
| return dlopen ();
|   ;
|   return 0;
| }
configure:17792: result: no
configure:17803: checking for dlopen in -ldl
configure:17828: gcc -o conftest -g -O2   conftest.c -ldl   >&5
configure:17828: $? = 0
configure:17837: result: yes
configure:17958: checking pthread.h usability
configure:17958: gcc -c -g -O2  conftest.c >&5
configure:17958: $? = 0
configure:17958: result: yes
configure:17958: checking pthread.h presence
configure:17958: gcc -E  conftest.c
configure:17958: $? = 0
configure:17958: result: yes
configure:17958: checking for pthread.h
configure:17958: result: yes
configure:17962: checking for pthread_create in -lpthread
configure:17987: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
configure:17987: $? = 0
configure:17996: result: yes
configure:18137: checking for pthread_condattr_setclock in -lpthread
configure:18162: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
configure:18162: $? = 0
configure:18172: result: yes
configure:18183: checking for pthread_setconcurrency in -lpthread
configure:18208: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
configure:18208: $? = 0
configure:18218: result: yes
configure:18230: checking for pthread_yield in -lpthread
configure:18255: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
configure:18255: $? = 0
configure:18265: result: yes
configure:18277: checking for pthread_delay in -lpthread
configure:18302: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
/tmp/ccA6eeXJ.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:70: undefined reference to `pthread_delay'
collect2: error: ld returned 1 exit status
configure:18302: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| #define HAVE_SYSCONF 1
| #define HAVE_POSIX_MEMALIGN 1
| #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
| #define HAVE_PTHREAD_SETCONCURRENCY 1
| #define HAVE_PTHREAD_YIELD 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pthread_delay ();
| int
| main ()
| {
| return pthread_delay ();
|   ;
|   return 0;
| }
configure:18312: result: no
configure:18323: checking for pthread_delay_np in -lpthread
configure:18348: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
/tmp/ccGlDExO.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:70: undefined reference to `pthread_delay_np'
collect2: error: ld returned 1 exit status
configure:18348: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| #define HAVE_SYSCONF 1
| #define HAVE_POSIX_MEMALIGN 1
| #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
| #define HAVE_PTHREAD_SETCONCURRENCY 1
| #define HAVE_PTHREAD_YIELD 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char pthread_delay_np ();
| int
| main ()
| {
| return pthread_delay_np ();
|   ;
|   return 0;
| }
configure:18358: result: no
configure:18369: checking for pthread_setschedprio in -lpthread
configure:18394: gcc -o conftest -g -O2   conftest.c -lpthread   >&5
configure:18394: $? = 0
configure:18404: result: yes
configure:18464: checking for ftok
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for shm_open
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
/tmp/ccxiijUQ.o: In function `main':
/home/lisional/git/sflphone-android/jni/libucommon/sources/conftest.c:95: undefined reference to `shm_open'
collect2: error: ld returned 1 exit status
configure:18464: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| #define HAVE_SYSCONF 1
| #define HAVE_POSIX_MEMALIGN 1
| #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
| #define HAVE_PTHREAD_SETCONCURRENCY 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_PTHREAD_SETSCHEDPRIO 1
| #define HAVE_FTOK 1
| /* end confdefs.h.  */
| /* Define shm_open to an innocuous variant, in case <limits.h> declares shm_open.
|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
| #define shm_open innocuous_shm_open
| 
| /* System header to define __stub macros and hopefully few prototypes,
|     which can conflict with char shm_open (); below.
|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
|     <limits.h> exists even on freestanding compilers.  */
| 
| #ifdef __STDC__
| # include <limits.h>
| #else
| # include <assert.h>
| #endif
| 
| #undef shm_open
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char shm_open ();
| /* The GNU C library defines this for functions which it implements
|     to always fail with ENOSYS.  Some functions are actually named
|     something starting with __ and the normal name is an alias.  */
| #if defined __stub_shm_open || defined __stub___shm_open
| choke me
| #endif
| 
| int
| main ()
| {
| return shm_open ();
|   ;
|   return 0;
| }
configure:18464: result: no
configure:18472: checking for shm_open in -lposix4
configure:18497: gcc -o conftest -g -O2   conftest.c -lposix4   >&5
/usr/bin/ld: cannot find -lposix4
collect2: error: ld returned 1 exit status
configure:18497: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "ucommon"
| #define PACKAGE_TARNAME "ucommon"
| #define PACKAGE_VERSION "6.0.7"
| #define PACKAGE_STRING "ucommon 6.0.7"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #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_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define PACKAGE "ucommon"
| #define VERSION "6.0.7"
| #define restrict __restrict
| #define HAVE_STDINT_H 1
| #define HAVE_POLL_H 1
| #define HAVE_SYS_MMAN_H 1
| #define HAVE_SYS_SHM_H 1
| #define HAVE_SYS_POLL_H 1
| #define HAVE_SYS_TIMEB_H 1
| #define HAVE_ENDIAN_H 1
| #define HAVE_DIRENT_H 1
| #define HAVE_SYS_RESOURCE_H 1
| #define HAVE_WCHAR_H 1
| #define HAVE_NETINET_IN_H 1
| #define HAVE_NET_IF_H 1
| #define HAVE_LINUX_VERSION_H 1
| #define HAVE_SYS_INOTIFY_H 1
| #define HAVE_SYSLOG_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_TERMIOS_H 1
| #define HAVE_TERMIO_H 1
| #define HAVE_FCNTL_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_SYS_PARAM_H 1
| #define HAVE_SYS_FILE_H 1
| #define HAVE_DLFCN_H 1
| #define HAVE_REGEX_H 1
| #define HAVE_SOCKETPAIR 1
| #define HAVE_GETADDRINFO 1
| #define HAVE_GETHOSTBYNAME2 1
| #define HAVE_INET_NTOP 1
| #define HAVE_LSTAT 1
| #define HAVE_STRCOLL 1
| #define HAVE_SYSCONF 1
| #define HAVE_POSIX_MEMALIGN 1
| #define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
| #define HAVE_PTHREAD_SETCONCURRENCY 1
| #define HAVE_PTHREAD_YIELD 1
| #define HAVE_PTHREAD_SETSCHEDPRIO 1
| #define HAVE_FTOK 1
| /* end confdefs.h.  */
| 
| /* Override any GCC internal prototype to avoid an error.
|    Use char because int might match the return type of a GCC
|    builtin and then its argument prototype would still apply.  */
| #ifdef __cplusplus
| extern "C"
| #endif
| char shm_open ();
| int
| main ()
| {
| return shm_open ();
|   ;
|   return 0;
| }
configure:18507: result: no
configure:18517: checking for shm_open in -lrt
configure:18542: gcc -o conftest -g -O2   conftest.c -lrt   >&5
configure:18542: $? = 0
configure:18552: result: yes
configure:18464: checking for nanosleep
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for clock_nanosleep
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for clock_gettime
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for strerror_r
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for localtime_r
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for gmtime_r
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for posix_fadvise
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for ftruncate
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for pwrite
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for setpgrp
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for setlocale
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for gettext
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:96:6: warning: conflicting types for built-in function 'gettext' [enabled by default]
 char gettext ();
      ^
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for execvp
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:97:6: warning: conflicting types for built-in function 'execvp' [enabled by default]
 char execvp ();
      ^
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for atexit
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for realpath
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for symlink
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for readlink
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for waitpid
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18464: checking for wait4
configure:18464: gcc -o conftest -g -O2   conftest.c  >&5
configure:18464: $? = 0
configure:18464: result: yes
configure:18854: checking stdexcept usability
configure:18854: g++ -c   conftest.cpp >&5
configure:18854: $? = 0
configure:18854: result: yes
configure:18854: checking stdexcept presence
configure:18854: g++ -E  conftest.cpp
configure:18854: $? = 0
configure:18854: result: yes
configure:18854: checking for stdexcept
configure:18854: result: yes
configure:18864: checking for old style iostream
configure:18889: g++ -c   conftest.cpp >&5
configure:18889: $? = 0
configure:18891: result: no
configure:18914: checking whether g++ supports -mt
configure:18923: result: no
configure:18914: checking whether g++ supports -pthread
configure:18918: result: yes
configure:18941: checking whether g++ supports -fno-check-new
configure:18946: result: yes
configure:18941: checking whether g++ supports -finline
configure:18946: result: yes
configure:18955: checking whether g++ supports visibility
configure:18960: result: yes
configure:19105: checking for pkg-config
configure:19123: found /usr/bin/pkg-config
configure:19135: result: /usr/bin/pkg-config
configure:19160: checking pkg-config is at least version 0.9.0
configure:19163: result: yes
configure:19378: checking openssl/ssl.h usability
configure:19378: gcc -c -g -O2  conftest.c >&5
configure:19378: $? = 0
configure:19378: result: yes
configure:19378: checking openssl/ssl.h presence
configure:19378: gcc -E  conftest.c
configure:19378: $? = 0
configure:19378: result: yes
configure:19378: checking for openssl/ssl.h
configure:19378: result: yes
configure:19392: checking openssl/fips.h usability
configure:19392: gcc -c -g -O2  conftest.c >&5
configure:19392: $? = 0
configure:19392: result: yes
configure:19392: checking openssl/fips.h presence
configure:19392: gcc -E  conftest.c
configure:19392: $? = 0
configure:19392: result: yes
configure:19392: checking for openssl/fips.h
configure:19392: result: yes
configure:19402: checking for gnutls_init in -lgnutls
configure:19427: gcc -o conftest -g -O2   conftest.c -lgnutls   >&5
configure:19427: $? = 0
configure:19436: result: yes
configure:19482: checking secure library mode
configure:19484: result: gnutls
configure:19501: checking libintl.h usability
configure:19501: gcc -c -g -O2  conftest.c >&5
configure:19501: $? = 0
configure:19501: result: yes
configure:19501: checking libintl.h presence
configure:19501: gcc -E  conftest.c
configure:19501: $? = 0
configure:19501: result: yes
configure:19501: checking for libintl.h
configure:19501: result: yes
configure:19662: checking for doxygen
configure:19680: found /usr/bin/doxygen
configure:19693: result: /usr/bin/doxygen
configure:19833: checking that generated files are newer than configure
configure:19839: result: done
configure:19866: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by ucommon config.status 6.0.7, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on pcal

config.status:1259: creating Makefile
config.status:1259: creating corelib/Makefile
config.status:1259: creating commoncpp/Makefile
config.status:1259: creating openssl/Makefile
config.status:1259: creating gnutls/Makefile
config.status:1259: creating nossl/Makefile
config.status:1259: creating utils/Makefile
config.status:1259: creating inc/Makefile
config.status:1259: creating inc/ucommon/Makefile
config.status:1259: creating inc/commoncpp/Makefile
config.status:1259: creating test/Makefile
config.status:1259: creating directive
config.status:1259: creating commoncpp.pc
config.status:1259: creating ucommon.pc
config.status:1259: creating ucommon.spec
config.status:1259: creating ucommon-config
config.status:1259: creating commoncpp-config
config.status:1259: creating ucommon-config.h
config.status:1440: ucommon-config.h is unchanged
config.status:1488: executing libtool commands
config.status:1488: executing depfiles commands

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_c_inline=inline
ac_cv_c_restrict=__restrict
ac_cv_c_volatile=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
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_GNUTLS_CFLAGS_set=
ac_cv_env_GNUTLS_CFLAGS_value=
ac_cv_env_GNUTLS_LIBS_set=
ac_cv_env_GNUTLS_LIBS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_OPENSSL_CFLAGS_set=
ac_cv_env_OPENSSL_CFLAGS_value=
ac_cv_env_OPENSSL_LIBS_set=
ac_cv_env_OPENSSL_LIBS_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=
ac_cv_env_PKG_CONFIG_PATH_value=
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_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_atexit=yes
ac_cv_func_clock_gettime=yes
ac_cv_func_clock_nanosleep=yes
ac_cv_func_execvp=yes
ac_cv_func_ftok=yes
ac_cv_func_ftruncate=yes
ac_cv_func_gettext=yes
ac_cv_func_gmtime_r=yes
ac_cv_func_localtime_r=yes
ac_cv_func_nanosleep=yes
ac_cv_func_posix_fadvise=yes
ac_cv_func_pwrite=yes
ac_cv_func_readlink=yes
ac_cv_func_realpath=yes
ac_cv_func_setlocale=yes
ac_cv_func_setpgrp=yes
ac_cv_func_shm_open=no
ac_cv_func_strerror_r=yes
ac_cv_func_symlink=yes
ac_cv_func_wait4=yes
ac_cv_func_waitpid=yes
ac_cv_header_dirent_h=yes
ac_cv_header_dlfcn_h=yes
ac_cv_header_endian_h=yes
ac_cv_header_fcntl_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_libintl_h=yes
ac_cv_header_linux_version_h=yes
ac_cv_header_mach_clock_h=no
ac_cv_header_mach_o_dyld_h=no
ac_cv_header_memory_h=yes
ac_cv_header_net_if_h=yes
ac_cv_header_netinet_in_h=yes
ac_cv_header_openssl_fips_h=yes
ac_cv_header_openssl_ssl_h=yes
ac_cv_header_poll_h=yes
ac_cv_header_pthread_h=yes
ac_cv_header_regex_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdexcept=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_event_h=no
ac_cv_header_sys_file_h=yes
ac_cv_header_sys_filio_h=no
ac_cv_header_sys_inotify_h=yes
ac_cv_header_sys_lockf_h=no
ac_cv_header_sys_mman_h=yes
ac_cv_header_sys_param_h=yes
ac_cv_header_sys_poll_h=yes
ac_cv_header_sys_resource_h=yes
ac_cv_header_sys_shm_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_timeb_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_sys_wait_h=yes
ac_cv_header_syslog_h=yes
ac_cv_header_termio_h=yes
ac_cv_header_termios_h=yes
ac_cv_header_unistd_h=yes
ac_cv_header_wchar_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_lib_c___dlopen=no
ac_cv_lib_c___getaddrinfo=yes
ac_cv_lib_c___gethostbyname2=yes
ac_cv_lib_c___inet_ntop=yes
ac_cv_lib_c___lstat=yes
ac_cv_lib_c___posix_memalign=yes
ac_cv_lib_c___socketpair=yes
ac_cv_lib_c___strcoll=yes
ac_cv_lib_c___stricmp=no
ac_cv_lib_c___stristr=no
ac_cv_lib_c___sysconf=yes
ac_cv_lib_dl_dlopen=yes
ac_cv_lib_gcc___modsi3=no
ac_cv_lib_gnutls_gnutls_init=yes
ac_cv_lib_msvcrt_fopen=no
ac_cv_lib_posix4_shm_open=no
ac_cv_lib_pthread___pthread_condattr_setclock=yes
ac_cv_lib_pthread___pthread_delay=no
ac_cv_lib_pthread___pthread_delay_np=no
ac_cv_lib_pthread___pthread_setconcurrency=yes
ac_cv_lib_pthread___pthread_setschedprio=yes
ac_cv_lib_pthread___pthread_yield=yes
ac_cv_lib_pthread_pthread_create=yes
ac_cv_lib_regex_regfree=no
ac_cv_lib_rt_shm_open=yes
ac_cv_lib_socket_socket=no
ac_cv_objext=o
ac_cv_path_DOXYGEN=/usr/bin/doxygen
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_FGREP='/usr/bin/grep -F'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_mkdir=/usr/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_CXXCPP='g++ -E'
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_DLLTOOL=dlltool
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_target=x86_64-unknown-linux-gnu
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_CXX_dependencies_compiler_type=gcc3
am_cv_make_support_nested_variables=yes
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64'
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=no
lt_cv_prog_compiler_static_works_CXX=no
lt_cv_prog_gnu_ld=yes
lt_cv_prog_gnu_ldcxx=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=no
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/  {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/  {"\2", (void *) \&\2},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/  {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/  {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/  {"lib\2", (void *) \&\2},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /home/lisional/git/sflphone-android/jni/libucommon/sources/autoconf/missing aclocal-1.13'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='1'
AM_V='$(V)'
AR='ar'
AS='as'
AUTOCONF='${SHELL} /home/lisional/git/sflphone-android/jni/libucommon/sources/autoconf/missing autoconf'
AUTOHEADER='${SHELL} /home/lisional/git/sflphone-android/jni/libucommon/sources/autoconf/missing autoheader'
AUTOMAKE='${SHELL} /home/lisional/git/sflphone-android/jni/libucommon/sources/autoconf/missing automake-1.13'
AWK='gawk'
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2'
CHECKFLAGS=''
COMPAT='commoncpp'
CPP='gcc -E'
CPPFLAGS=''
CXX='g++'
CXXCPP='g++ -E'
CXXDEPMODE='depmode=gcc3'
CXXFLAGS=' -g -O2'
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DLLTOOL='dlltool'
DOXYGEN='/usr/bin/doxygen'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
EXEEXT=''
FGREP='/usr/bin/grep -F'
GNUTLS_CFLAGS=''
GNUTLS_LIBS='-lgnutls'
GREP='/usr/bin/grep'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/usr/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_GENERIC='$(SHELL) $(top_builddir)/libtool'
LT_VERSION='6:3:0'
MAKEINFO='${SHELL} /home/lisional/git/sflphone-android/jni/libucommon/sources/autoconf/missing makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/usr/bin/mkdir -p'
NM='/usr/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OPENSSL_CFLAGS=''
OPENSSL_LIBS='-lssl -lcrypto -lz '
OTOOL64=''
OTOOL=''
PACKAGE='ucommon'
PACKAGE_BUGREPORT=''
PACKAGE_NAME='ucommon'
PACKAGE_STRING='ucommon 6.0.7'
PACKAGE_TARNAME='ucommon'
PACKAGE_URL=''
PACKAGE_VERSION='6.0.7'
PATH_SEPARATOR=':'
PKG_CONFIG='/usr/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH=''
RANLIB='ranlib'
SECURE='gnutls'
SECURE_LIBS='-lgnutls'
SECURE_LOCAL='../gnutls/libusecure.la -lgnutls'
SED='/usr/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
STRIP='strip'
UCOMMON_CFGPATH='/etc'
UCOMMON_CLINK=' -lc'
UCOMMON_FLAGS=' -Wno-long-long -DNEW_STDCPP -pthread -fno-check-new -finline -fvisibility=hidden -DUCOMMON_VISIBILITY=1'
UCOMMON_INCLUDES='/usr/local/include/ucommon'
UCOMMON_LIBC='-lc'
UCOMMON_LIBS='  -lrt  -ldl -lpthread -lc'
UCOMMON_LINKED='  -lrt  -ldl -lpthread'
UCOMMON_LOCALE='/usr/local/share/locale'
UCOMMON_MODEL='CXX'
UCOMMON_PREFIX='/usr/local'
UCOMMON_VARPATH='/var'
UCOMMON_VISIBILITY='1'
VERSION='6.0.7'
ac_ct_AR='ar'
ac_ct_CC='gcc'
ac_ct_CXX='g++'
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__fastdepCXX_FALSE='#'
am__fastdepCXX_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='x86_64-unknown-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
includes='${includedir}/ucommon'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/lisional/git/sflphone-android/jni/libucommon/sources/autoconf/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
libs='/usr/local/lib'
localedir='${datarootdir}/locale'
localstatedir='/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='/etc'
target='x86_64-unknown-linux-gnu'
target_alias=''
target_cpu='x86_64'
target_os='linux-gnu'
target_vendor='unknown'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "ucommon"
#define PACKAGE_TARNAME "ucommon"
#define PACKAGE_VERSION "6.0.7"
#define PACKAGE_STRING "ucommon 6.0.7"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#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_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define PACKAGE "ucommon"
#define VERSION "6.0.7"
#define restrict __restrict
#define HAVE_STDINT_H 1
#define HAVE_POLL_H 1
#define HAVE_SYS_MMAN_H 1
#define HAVE_SYS_SHM_H 1
#define HAVE_SYS_POLL_H 1
#define HAVE_SYS_TIMEB_H 1
#define HAVE_ENDIAN_H 1
#define HAVE_DIRENT_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_WCHAR_H 1
#define HAVE_NETINET_IN_H 1
#define HAVE_NET_IF_H 1
#define HAVE_LINUX_VERSION_H 1
#define HAVE_SYS_INOTIFY_H 1
#define HAVE_SYSLOG_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_TERMIOS_H 1
#define HAVE_TERMIO_H 1
#define HAVE_FCNTL_H 1
#define HAVE_UNISTD_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_FILE_H 1
#define HAVE_DLFCN_H 1
#define HAVE_REGEX_H 1
#define HAVE_SOCKETPAIR 1
#define HAVE_GETADDRINFO 1
#define HAVE_GETHOSTBYNAME2 1
#define HAVE_INET_NTOP 1
#define HAVE_LSTAT 1
#define HAVE_STRCOLL 1
#define HAVE_SYSCONF 1
#define HAVE_POSIX_MEMALIGN 1
#define HAVE_PTHREAD_CONDATTR_SETCLOCK 1
#define HAVE_PTHREAD_SETCONCURRENCY 1
#define HAVE_PTHREAD_YIELD 1
#define HAVE_PTHREAD_SETSCHEDPRIO 1
#define HAVE_FTOK 1
#define HAVE_SHM_OPEN 1
#define HAVE_NANOSLEEP 1
#define HAVE_CLOCK_NANOSLEEP 1
#define HAVE_CLOCK_GETTIME 1
#define HAVE_STRERROR_R 1
#define HAVE_LOCALTIME_R 1
#define HAVE_GMTIME_R 1
#define HAVE_POSIX_FADVISE 1
#define HAVE_FTRUNCATE 1
#define HAVE_PWRITE 1
#define HAVE_SETPGRP 1
#define HAVE_SETLOCALE 1
#define HAVE_GETTEXT 1
#define HAVE_EXECVP 1
#define HAVE_REALPATH 1
#define HAVE_SYMLINK 1
#define HAVE_READLINK 1
#define HAVE_WAITPID 1
#define HAVE_WAIT4 1
#define HAVE_STDEXCEPT 1
#define HAVE_OPENSSL_SSL_H 1
#define HAVE_OPENSSL_FIPS_H 1
#define HAVE_LIBINTL_H 1
#define UCOMMON_PREFIX "/usr/local"
#define UCOMMON_CFGPATH "/etc"
#define UCOMMON_VARPATH "/var"
#define UCOMMON_LOCALE "/usr/local/share/locale"

configure: exit 0
