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

It was created by configure, which was
generated by GNU Autoconf 2.59.  Invocation command line was

  $ ./configure 

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

hostname = NB027
uname -m = i686
uname -r = 2.6.15-29-686
uname -s = Linux
uname -v = #1 SMP PREEMPT Wed Aug 29 13:42:01 UTC 2007

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

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

PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/bin/X11
PATH: /usr/games


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

configure:1338: checking for ICU version numbers
configure:1358: result: release 3.8, library 38.0
configure:1395: checking build system type
configure:1413: result: i686-pc-linux-gnu
configure:1421: checking host system type
configure:1435: result: i686-pc-linux-gnu
configure:1494: checking for gcc
configure:1520: result: gcc
configure:1764: checking for C compiler version
configure:1767: gcc --version </dev/null >&5
gcc (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Copyright (C) 2006 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:1770: $? = 0
configure:1772: gcc -v </dev/null >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
configure:1775: $? = 0
configure:1777: gcc -V </dev/null >&5
gcc: '-V' option must have argument
configure:1780: $? = 1
configure:1803: checking for C compiler default output file name
configure:1806: gcc  -O3   conftest.c  >&5
configure:1809: $? = 0
configure:1855: result: a.out
configure:1860: checking whether the C compiler works
configure:1866: ./a.out
configure:1869: $? = 0
configure:1886: result: yes
configure:1893: checking whether we are cross compiling
configure:1895: result: no
configure:1898: checking for suffix of executables
configure:1900: gcc -o conftest  -O3   conftest.c  >&5
configure:1903: $? = 0
configure:1928: result: 
configure:1934: checking for suffix of object files
configure:1955: gcc -c  -O3  conftest.c >&5
configure:1958: $? = 0
configure:1980: result: o
configure:1984: checking whether we are using the GNU C compiler
configure:2008: gcc -c  -O3  conftest.c >&5
configure:2014: $? = 0
configure:2018: test -z 
			 || test ! -s conftest.err
configure:2021: $? = 0
configure:2024: test -s conftest.o
configure:2027: $? = 0
configure:2040: result: yes
configure:2046: checking whether gcc accepts -g
configure:2067: gcc -c -g  conftest.c >&5
configure:2073: $? = 0
configure:2077: test -z 
			 || test ! -s conftest.err
configure:2080: $? = 0
configure:2083: test -s conftest.o
configure:2086: $? = 0
configure:2097: result: yes
configure:2114: checking for gcc option to accept ANSI C
configure:2184: gcc  -c  -O3  conftest.c >&5
configure:2190: $? = 0
configure:2194: test -z 
			 || test ! -s conftest.err
configure:2197: $? = 0
configure:2200: test -s conftest.o
configure:2203: $? = 0
configure:2221: result: none needed
configure:2239: gcc -c  -O3  conftest.c >&5
conftest.c:2: error: syntax error before 'me'
configure:2245: $? = 1
configure: failed program was:
| #ifndef __cplusplus
|   choke me
| #endif
configure:2472: checking for C++ compiler version
configure:2475: g++ --version </dev/null >&5
g++ (GCC) 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
Copyright (C) 2006 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:2478: $? = 0
configure:2480: g++ -v </dev/null >&5
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --with-tune=pentium4 --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)
configure:2483: $? = 0
configure:2485: g++ -V </dev/null >&5
g++: '-V' option must have argument
configure:2488: $? = 1
configure:2491: checking whether we are using the GNU C++ compiler
configure:2515: g++ -c  -O  conftest.cc >&5
configure:2521: $? = 0
configure:2525: test -z 
			 || test ! -s conftest.err
configure:2528: $? = 0
configure:2531: test -s conftest.o
configure:2534: $? = 0
configure:2547: result: yes
configure:2553: checking whether g++ accepts -g
configure:2574: g++ -c -g  conftest.cc >&5
configure:2580: $? = 0
configure:2584: test -z 
			 || test ! -s conftest.err
configure:2587: $? = 0
configure:2590: test -s conftest.o
configure:2593: $? = 0
configure:2604: result: yes
configure:2646: g++ -c  -O  conftest.cc >&5
configure:2652: $? = 0
configure:2656: test -z 
			 || test ! -s conftest.err
configure:2659: $? = 0
configure:2662: test -s conftest.o
configure:2665: $? = 0
configure:2691: g++ -c  -O  conftest.cc >&5
conftest.cc: In function 'int main()':
conftest.cc:13: error: 'exit' was not declared in this scope
configure:2697: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| exit (42);
|   ;
|   return 0;
| }
configure:2646: g++ -c  -O  conftest.cc >&5
configure:2652: $? = 0
configure:2656: test -z 
			 || test ! -s conftest.err
configure:2659: $? = 0
configure:2662: test -s conftest.o
configure:2665: $? = 0
configure:2691: g++ -c  -O  conftest.cc >&5
configure:2697: $? = 0
configure:2701: test -z 
			 || test ! -s conftest.err
configure:2704: $? = 0
configure:2707: test -s conftest.o
configure:2710: $? = 0
configure:2746: checking for a BSD-compatible install
configure:2801: result: /usr/bin/install -c
configure:2828: checking for gmake
configure:2861: result: no
configure:2828: checking for gnumake
configure:2861: result: no
configure:2873: checking for doxygen
configure:2892: found /usr/bin/doxygen
configure:2904: result: /usr/bin/doxygen
configure:2925: checking checking for executable suffix
configure:2932: result: 
configure:2937: checking whether strict compiling is on
configure:2953: result: no
configure:3003: checking for 64-bit executable support
configure:3338: result: yes
configure:3345: checking which Makefile fragment to use
configure:3453: result: mh-linux
configure:3528: checking for floor in -lm
configure:3558: gcc -o conftest  -O3   conftest.c -lm   >&5
conftest.c:19: warning: conflicting types for built-in function 'floor'
configure:3564: $? = 0
configure:3568: test -z 
			 || test ! -s conftest.err
configure:3571: $? = 0
configure:3574: test -s conftest
configure:3577: $? = 0
configure:3590: result: yes
configure:3605: checking whether to build shared libraries
configure:3620: result: yes
configure:3624: checking whether to build static libraries
configure:3636: result: no
configure:3640: checking whether to build debug libraries
configure:3652: result: no
configure:3656: checking whether to build release libraries
configure:3668: result: yes
configure:3672: checking whether to enable draft APIs
configure:3684: result: yes
configure:3691: checking for library API export
configure:3719: gcc -o conftest  -O3 -fvisibility=hidden   conftest.c -lm  >&5
configure:3725: $? = 0
configure:3729: test -z 
			 || test ! -s conftest.err
configure:3732: $? = 0
configure:3735: test -s conftest
configure:3738: $? = 0
configure:3761: result: yes
configure:3808: checking for ranlib
configure:3824: found /usr/bin/ranlib
configure:3835: result: ranlib
configure:3849: checking for ar
configure:3868: found /usr/bin/ar
configure:3881: result: /usr/bin/ar
configure:3889: checking whether to enable renaming of symbols
configure:3902: result: yes
configure:3906: checking whether to enable function and data tracing
configure:3919: result: yes
configure:3938: checking for definition of U_INLINE for C
configure:3961: gcc -c  -O3  conftest.c >&5
configure:3967: $? = 0
configure:3971: test -z 
			 || test ! -s conftest.err
configure:3974: $? = 0
configure:3977: test -s conftest.o
configure:3980: $? = 0
configure:3992: result: inline
configure:4029: checking for pthread_attr_init in -lpthread
configure:4059: gcc -o conftest  -O3   conftest.c -lpthread  -lm  >&5
configure:4065: $? = 0
configure:4069: test -z 
			 || test ! -s conftest.err
configure:4072: $? = 0
configure:4075: test -s conftest
configure:4078: $? = 0
configure:4091: result: yes
configure:4462: checking for mmap
configure:4488: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:4494: $? = 0
configure:4498: test -z 
			 || test ! -s conftest.err
configure:4501: $? = 0
configure:4504: test -s conftest
configure:4507: $? = 0
configure:4520: result: yes
configure:4555: checking how to run the C preprocessor
configure:4590: gcc -E  conftest.c
configure:4596: $? = 0
configure:4628: gcc -E  conftest.c
conftest.c:14:28: error: ac_nonexistent.h: No such file or directory
configure:4634: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #ifdef __cplusplus
| extern "C" void std::exit (int) throw (); using std::exit;
| #endif
| #define HAVE_LIBM 1
| #define HAVE_LIBPTHREAD 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4673: result: gcc -E
configure:4697: gcc -E  conftest.c
configure:4703: $? = 0
configure:4735: gcc -E  conftest.c
conftest.c:14:28: error: ac_nonexistent.h: No such file or directory
configure:4741: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #ifdef __cplusplus
| extern "C" void std::exit (int) throw (); using std::exit;
| #endif
| #define HAVE_LIBM 1
| #define HAVE_LIBPTHREAD 1
| /* end confdefs.h.  */
| #include <ac_nonexistent.h>
configure:4785: checking for egrep
configure:4795: result: grep -E
configure:4800: checking for ANSI C header files
configure:4825: gcc -c  -O3  conftest.c >&5
configure:4831: $? = 0
configure:4835: test -z 
			 || test ! -s conftest.err
configure:4838: $? = 0
configure:4841: test -s conftest.o
configure:4844: $? = 0
configure:4933: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
conftest.c: In function 'main':
conftest.c:31: warning: incompatible implicit declaration of built-in function 'exit'
configure:4936: $? = 0
configure:4938: ./conftest
configure:4941: $? = 0
configure:4956: result: yes
configure:4980: checking for sys/types.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for sys/stat.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for stdlib.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for string.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for memory.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for strings.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for inttypes.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for stdint.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:4980: checking for unistd.h
configure:4996: gcc -c  -O3  conftest.c >&5
configure:5002: $? = 0
configure:5006: test -z 
			 || test ! -s conftest.err
configure:5009: $? = 0
configure:5012: test -s conftest.o
configure:5015: $? = 0
configure:5026: result: yes
configure:5043: checking for inttypes.h
configure:5048: result: yes
configure:5237: checking for iostream usability
configure:5256: g++ -c  -O  conftest.cc >&5
configure:5262: $? = 0
configure:5266: test -z 
			 || test ! -s conftest.err
configure:5269: $? = 0
configure:5272: test -s conftest.o
configure:5275: $? = 0
configure:5289: result: yes
configure:5383: checking whether byte ordering is bigendian
configure:5410: gcc -c  -O3  conftest.c >&5
configure:5416: $? = 0
configure:5420: test -z 
			 || test ! -s conftest.err
configure:5423: $? = 0
configure:5426: test -s conftest.o
configure:5429: $? = 0
configure:5453: gcc -c  -O3  conftest.c >&5
conftest.c: In function 'main':
conftest.c:32: error: 'not' undeclared (first use in this function)
conftest.c:32: error: (Each undeclared identifier is reported only once
conftest.c:32: error: for each function it appears in.)
conftest.c:32: error: syntax error before 'big'
configure:5459: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| 
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #ifdef __cplusplus
| extern "C" void std::exit (int) throw (); using std::exit;
| #endif
| #define HAVE_LIBM 1
| #define HAVE_LIBPTHREAD 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_INTTYPES_H 1
| /* end confdefs.h.  */
| #include <sys/types.h>
| #include <sys/param.h>
| 
| int
| main ()
| {
| #if BYTE_ORDER != BIG_ENDIAN
|  not big endian
| #endif
| 
|   ;
|   return 0;
| }
configure:5594: result: no
configure:5624: checking for nl_langinfo
configure:5681: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:5687: $? = 0
configure:5691: test -z 
			 || test ! -s conftest.err
configure:5694: $? = 0
configure:5697: test -s conftest
configure:5700: $? = 0
configure:5712: result: yes
configure:5721: checking for nl_langinfo's argument to obtain the codeset
configure:5744: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:5750: $? = 0
configure:5754: test -z 
			 || test ! -s conftest.err
configure:5757: $? = 0
configure:5760: test -s conftest
configure:5763: $? = 0
configure:5775: result: CODESET
configure:5792: checking for namespace support
configure:5816: g++ -o conftest  -O   conftest.cc -lpthread -lm  >&5
configure:5822: $? = 0
configure:5826: test -z 
			 || test ! -s conftest.err
configure:5829: $? = 0
configure:5832: test -s conftest
configure:5835: $? = 0
configure:5848: result: yes
configure:5857: checking for properly overriding new and delete
configure:5888: g++ -o conftest  -O   conftest.cc -lpthread -lm  >&5
configure:5894: $? = 0
configure:5898: test -z 
			 || test ! -s conftest.err
configure:5901: $? = 0
configure:5904: test -s conftest
configure:5907: $? = 0
configure:5920: result: yes
configure:5925: checking for placement new and delete
configure:5956: g++ -o conftest  -O   conftest.cc -lpthread -lm  >&5
configure:5962: $? = 0
configure:5966: test -z 
			 || test ! -s conftest.err
configure:5969: $? = 0
configure:5972: test -s conftest
configure:5975: $? = 0
configure:5988: result: yes
configure:6004: checking for popen
configure:6061: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:6067: $? = 0
configure:6071: test -z 
			 || test ! -s conftest.err
configure:6074: $? = 0
configure:6077: test -s conftest
configure:6080: $? = 0
configure:6092: result: yes
configure:6103: checking for tzset
configure:6160: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:6166: $? = 0
configure:6170: test -z 
			 || test ! -s conftest.err
configure:6173: $? = 0
configure:6176: test -s conftest
configure:6179: $? = 0
configure:6191: result: yes
configure:6301: checking for tzname
configure:6329: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:6335: $? = 0
configure:6339: test -z 
			 || test ! -s conftest.err
configure:6342: $? = 0
configure:6345: test -s conftest
configure:6348: $? = 0
configure:6360: result: yes
configure:6431: checking for timezone
configure:6459: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:6465: $? = 0
configure:6469: test -z 
			 || test ! -s conftest.err
configure:6472: $? = 0
configure:6475: test -s conftest
configure:6478: $? = 0
configure:6490: result: yes
configure:6618: checking for int8_t
configure:6642: gcc -c  -O3  conftest.c >&5
configure:6648: $? = 0
configure:6652: test -z 
			 || test ! -s conftest.err
configure:6655: $? = 0
configure:6658: test -s conftest.o
configure:6661: $? = 0
configure:6672: result: yes
configure:6684: checking for uint8_t
configure:6708: gcc -c  -O3  conftest.c >&5
configure:6714: $? = 0
configure:6718: test -z 
			 || test ! -s conftest.err
configure:6721: $? = 0
configure:6724: test -s conftest.o
configure:6727: $? = 0
configure:6738: result: yes
configure:6750: checking for int16_t
configure:6774: gcc -c  -O3  conftest.c >&5
configure:6780: $? = 0
configure:6784: test -z 
			 || test ! -s conftest.err
configure:6787: $? = 0
configure:6790: test -s conftest.o
configure:6793: $? = 0
configure:6804: result: yes
configure:6816: checking for uint16_t
configure:6840: gcc -c  -O3  conftest.c >&5
configure:6846: $? = 0
configure:6850: test -z 
			 || test ! -s conftest.err
configure:6853: $? = 0
configure:6856: test -s conftest.o
configure:6859: $? = 0
configure:6870: result: yes
configure:6882: checking for int32_t
configure:6906: gcc -c  -O3  conftest.c >&5
configure:6912: $? = 0
configure:6916: test -z 
			 || test ! -s conftest.err
configure:6919: $? = 0
configure:6922: test -s conftest.o
configure:6925: $? = 0
configure:6936: result: yes
configure:6948: checking for uint32_t
configure:6972: gcc -c  -O3  conftest.c >&5
configure:6978: $? = 0
configure:6982: test -z 
			 || test ! -s conftest.err
configure:6985: $? = 0
configure:6988: test -s conftest.o
configure:6991: $? = 0
configure:7002: result: yes
configure:7014: checking for int64_t
configure:7038: gcc -c  -O3  conftest.c >&5
configure:7044: $? = 0
configure:7048: test -z 
			 || test ! -s conftest.err
configure:7051: $? = 0
configure:7054: test -s conftest.o
configure:7057: $? = 0
configure:7068: result: yes
configure:7080: checking for uint64_t
configure:7104: gcc -c  -O3  conftest.c >&5
configure:7110: $? = 0
configure:7114: test -z 
			 || test ! -s conftest.err
configure:7117: $? = 0
configure:7120: test -s conftest.o
configure:7123: $? = 0
configure:7134: result: yes
configure:7213: checking wchar.h usability
configure:7225: gcc -c  -O3  conftest.c >&5
configure:7231: $? = 0
configure:7235: test -z 
			 || test ! -s conftest.err
configure:7238: $? = 0
configure:7241: test -s conftest.o
configure:7244: $? = 0
configure:7254: result: yes
configure:7258: checking wchar.h presence
configure:7268: gcc -E  conftest.c
configure:7274: $? = 0
configure:7294: result: yes
configure:7329: checking for wchar.h
configure:7336: result: yes
configure:7352: checking for library containing wcscpy
configure:7382: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:7388: $? = 0
configure:7392: test -z 
			 || test ! -s conftest.err
configure:7395: $? = 0
configure:7398: test -s conftest
configure:7401: $? = 0
configure:7471: result: none required
configure:7487: checking for wchar_t
configure:7520: gcc -c  -O3  conftest.c >&5
configure:7526: $? = 0
configure:7530: test -z 
			 || test ! -s conftest.err
configure:7533: $? = 0
configure:7536: test -s conftest.o
configure:7539: $? = 0
configure:7550: result: yes
configure:7553: checking size of wchar_t
configure:7926: gcc -o conftest  -O3   conftest.c -lpthread -lm  >&5
configure:7929: $? = 0
configure:7931: ./conftest
configure:7934: $? = 0
configure:7957: result: 4
configure:7975: checking for UTF-16 string literal support
configure:8117: result: unknown
configure:8222: checking for a library suffix to use
configure:8236: result: none
configure:8432: creating ./config.status

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

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

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

on NB027

config.status:782: creating icudefs.mk
config.status:782: creating Makefile
config.status:782: creating data/icupkg.inc
config.status:782: creating config/Makefile.inc
config.status:782: creating data/Makefile
config.status:782: creating stubdata/Makefile
config.status:782: creating common/Makefile
config.status:782: creating i18n/Makefile
config.status:782: creating layout/Makefile
config.status:782: creating layoutex/Makefile
config.status:782: creating io/Makefile
config.status:782: creating extra/Makefile
config.status:782: creating extra/uconv/Makefile
config.status:782: creating extra/scrptrun/Makefile
config.status:782: creating tools/Makefile
config.status:782: creating tools/ctestfw/Makefile
config.status:782: creating tools/toolutil/Makefile
config.status:782: creating tools/makeconv/Makefile
config.status:782: creating tools/genrb/Makefile
config.status:782: creating tools/genuca/Makefile
config.status:782: creating tools/genccode/Makefile
config.status:782: creating tools/gencmn/Makefile
config.status:782: creating tools/gencnval/Makefile
config.status:782: creating tools/genctd/Makefile
config.status:782: creating tools/gennames/Makefile
config.status:782: creating tools/gentest/Makefile
config.status:782: creating tools/gennorm/Makefile
config.status:782: creating tools/genprops/Makefile
config.status:782: creating tools/gencase/Makefile
config.status:782: creating tools/genbidi/Makefile
config.status:782: creating tools/genpname/Makefile
config.status:782: creating tools/genbrk/Makefile
config.status:782: creating tools/gensprep/Makefile
config.status:782: creating tools/icupkg/Makefile
config.status:782: creating tools/icuswap/Makefile
config.status:782: creating tools/pkgdata/Makefile
config.status:782: creating tools/tzcode/Makefile
config.status:782: creating test/Makefile
config.status:782: creating test/compat/Makefile
config.status:782: creating test/testdata/Makefile
config.status:782: creating test/testdata/pkgdata.inc
config.status:782: creating test/hdrtst/Makefile
config.status:782: creating test/intltest/Makefile
config.status:782: creating test/cintltst/Makefile
config.status:782: creating test/iotest/Makefile
config.status:782: creating test/letest/Makefile
config.status:782: creating samples/Makefile
config.status:782: creating samples/date/Makefile
config.status:782: creating samples/cal/Makefile
config.status:782: creating samples/layout/Makefile
config.status:782: creating common/unicode/platform.h
config.status:886: creating common/icucfg.h

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

ac_cv_build=i686-pc-linux-gnu
ac_cv_build_alias=i686-pc-linux-gnu
ac_cv_c_bigendian=no
ac_cv_c_compiler_gnu=yes
ac_cv_c_inline=inline
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CC_set=set
ac_cv_env_CC_value=gcc
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value=' -O3'
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXFLAGS_set=set
ac_cv_env_CXXFLAGS_value=' -O'
ac_cv_env_CXX_set=set
ac_cv_env_CXX_value=g++
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_exeext=
ac_cv_func_mmap_ok=yes
ac_cv_func_nl_langinfo=yes
ac_cv_func_popen=yes
ac_cv_func_tzset=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_iostream=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_header_wchar_h=yes
ac_cv_host=i686-pc-linux-gnu
ac_cv_host_alias=i686-pc-linux-gnu
ac_cv_lib_m_floor=yes
ac_cv_lib_pthread_pthread_attr_init=yes
ac_cv_namespace_ok=yes
ac_cv_nl_langinfo_codeset=CODESET
ac_cv_objext=o
ac_cv_override_cxx_allocation_ok=yes
ac_cv_override_placement_new_ok=yes
ac_cv_path_AR=/usr/bin/ar
ac_cv_path_DOXYGEN=/usr/bin/doxygen
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_CPP='gcc -E'
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=
ac_cv_prog_cxx_g=yes
ac_cv_prog_egrep='grep -E'
ac_cv_search_wcscpy='none required'
ac_cv_sizeof_wchar_t=4
ac_cv_type_int16_t=yes
ac_cv_type_int32_t=yes
ac_cv_type_int64_t=yes
ac_cv_type_int8_t=yes
ac_cv_type_uint16_t=yes
ac_cv_type_uint32_t=yes
ac_cv_type_uint64_t=yes
ac_cv_type_uint8_t=yes
ac_cv_type_wchar_t=yes
ac_cv_var_timezone=yes
ac_cv_var_tzname=yes
icu_cv_host_frag=mh-linux

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

AR='/usr/bin/ar'
ARFLAGS=''
CC='gcc'
CFLAGS=' -O3 $(THREADSCFLAGS)'
COMPILE_LINK_ENVVAR=''
CPP='gcc -E'
CPPFLAGS=' $(THREADSCPPFLAGS)'
CXX='g++'
CXXFLAGS=' -O $(THREADSCXXFLAGS)'
DATA_PACKAGING_MODE='dll'
DEFS='-DHAVE_CONFIG_H'
DOXYGEN='/usr/bin/doxygen'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='grep -E'
ENABLE_DEBUG='0'
ENABLE_RELEASE='1'
ENABLE_RPATH='NO'
ENABLE_SHARED='YES'
ENABLE_STATIC=''
EXEEXT=''
EXTRAS_TRUE=''
GENCCODE_ASSEMBLY='-a gcc'
HAVE_INT16_T='1'
HAVE_INT32_T='1'
HAVE_INT64_T='1'
HAVE_INT8_T='1'
HAVE_MMAP='1'
HAVE_UINT16_T='1'
HAVE_UINT32_T='1'
HAVE_UINT64_T='1'
HAVE_UINT8_T='1'
ICUDATA_CHAR='l'
ICUIO_TRUE=''
ICULIBSUFFIX=''
ICULIBSUFFIXCNAME=''
ICU_USE_THREADS='1'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
LAYOUT_TRUE=''
LDFLAGS=''
LIBCFLAGS='-fvisibility=hidden'
LIBCXXFLAGS='-fvisibility=hidden'
LIBOBJS=''
LIBS='-lpthread -lm '
LIB_M=''
LIB_THREAD=''
LIB_VERSION='38.0'
LIB_VERSION_MAJOR='38'
LTLIBOBJS=''
OBJEXT='o'
PACKAGE='icu'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
RANLIB='ranlib'
SAMPLES_TRUE=''
SHELL='/bin/sh'
TESTS_TRUE=''
THREADS_TRUE=''
UNICODE_VERSION='5.0'
U_CHECK_UTF16_STRING='1'
U_DEFAULT_SHOW_DRAFT='1'
U_DISABLE_RENAMING='0'
U_ENABLE_TRACING='0'
U_HAVE_INTTYPES_H='1'
U_HAVE_LIB_SUFFIX='0'
U_HAVE_NAMESPACE='1'
U_HAVE_NL_LANGINFO_CODESET='1'
U_HAVE_PLACEMENT_NEW='1'
U_HAVE_POPEN='1'
U_HAVE_TIMEZONE='1'
U_HAVE_TZNAME='1'
U_HAVE_TZSET='1'
U_HAVE_WCHAR_H='1'
U_HAVE_WCSCPY='1'
U_INLINE='inline'
U_IOSTREAM_SOURCE='199711'
U_IS_BIG_ENDIAN='0'
U_MAKE='make'
U_NL_LANGINFO_CODESET='CODESET'
U_OVERRIDE_CXX_ALLOCATION='1'
U_SIZEOF_WCHAR_T='4'
U_TIMEZONE='timezone'
U_TZNAME='tzname'
U_TZSET='tzset'
U_USE_GCC_VISIBILITY_ATTRIBUTE='1'
VERSION='3.8'
ac_ct_CC='gcc'
ac_ct_CXX=''
ac_ct_RANLIB='ranlib'
bindir='${exec_prefix}/bin'
build='i686-pc-linux-gnu'
build_alias=''
build_cpu='i686'
build_os='linux-gnu'
build_vendor='pc'
datadir='${prefix}/share'
exec_prefix='${prefix}'
host='i686-pc-linux-gnu'
host_alias=''
host_cpu='i686'
host_os='linux-gnu'
host_vendor='pc'
includedir='${prefix}/include'
infodir='${prefix}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localstatedir='${prefix}/var'
mandir='${prefix}/man'
oldincludedir='/usr/include'
pkgicudatadir='${prefix}/share'
platform='U_LINUX'
platform_make_fragment='$(top_srcdir)/config/mh-linux'
platform_make_fragment_name='mh-linux'
prefix='/usr/local'
program_transform_name='s,x,x,'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''
thepkgicudatadir='NONE/share'

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

#define HAVE_INTTYPES_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_LIBM 1
#define HAVE_LIBPTHREAD 1
#define HAVE_MEMORY_H 1
#define HAVE_STDINT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRINGS_H 1
#define HAVE_STRING_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define HAVE_WCHAR_H 1
#define PACKAGE_BUGREPORT ""
#define PACKAGE_NAME ""
#define PACKAGE_STRING ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define SIZEOF_WCHAR_T 4
#define STDC_HEADERS 1
#endif
#ifdef __cplusplus
extern "C" void std::exit (int) throw (); using std::exit;

configure: exit 0

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

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

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

on yummy.mtv.corp.google.com

config.status:782: creating data/Makefile

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

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

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

on yummy.mtv.corp.google.com

config.status:782: creating data/pkgdataMakefile
