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

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

  $ ./configure 

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

hostname = redux
uname -m = i686
uname -r = 2.4.18-4GB
uname -s = Linux
uname -v = #1 Wed Mar 27 13:57:05 UTC 2002

/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 = /home/aberger/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/opt/kde2/bin:/opt/kde/bin:/usr/openwin/bin:/usr/lib/SmallEiffel/bin:/usr/lib/java/bin:/opt/gnome/bin:/usr/lib/qt-2.1.1/bin:/usr/local/apache/bin:/usr/local/apache/bin

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

configure:1143: PATH=".;."; conftest.sh
./configure: conftest.sh: command not found
configure:1146: $? = 127
configure:1186: checking build system type
configure:1204: result: i686-suse-linux
configure:1214: checking host system type
configure:1228: result: i686-suse-linux
configure:1238: checking target system type
configure:1252: result: i686-suse-linux
configure:1280: checking for a BSD compatible install
configure:1329: result: /usr/bin/ginstall -c
configure:1340: checking whether build environment is sane
configure:1383: result: yes
configure:1416: checking for mawk
configure:1442: result: no
configure:1416: checking for gawk
configure:1431: found /usr/bin/gawk
configure:1439: result: gawk
configure:1449: checking whether make sets ${MAKE}
configure:1469: result: yes
configure:1580: checking for soapcpp2
configure:1595: found /usr/local/bin/soapcpp2
configure:1603: result: yes
configure:1690: checking for gcc
configure:1705: found /usr/bin/gcc
configure:1713: result: gcc
configure:1941: checking for C compiler version
configure:1944: gcc --version </dev/null >&5
2.95.3
configure:1947: $? = 0
configure:1949: gcc -v </dev/null >&5
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/specs
gcc version 2.95.3 20010315 (SuSE)
configure:1952: $? = 0
configure:1954: gcc -V </dev/null >&5
gcc: argument to `-V' is missing
configure:1957: $? = 1
configure:1977: checking for C compiler default output
configure:1980: gcc    conftest.c  >&5
configure:1983: $? = 0
configure:2012: result: a.out
configure:2017: checking whether the C compiler works
configure:2023: ./a.out
configure:2026: $? = 0
configure:2041: result: yes
configure:2048: checking whether we are cross compiling
configure:2050: result: no
configure:2053: checking for executable suffix
configure:2055: gcc -o conftest    conftest.c  >&5
configure:2058: $? = 0
configure:2080: result: 
configure:2086: checking for object suffix
configure:2104: gcc -c   conftest.c >&5
configure:2107: $? = 0
configure:2126: result: o
configure:2130: checking whether we are using the GNU C compiler
configure:2151: gcc -c   conftest.c >&5
configure:2154: $? = 0
configure:2157: test -s conftest.o
configure:2160: $? = 0
configure:2172: result: yes
configure:2178: checking whether gcc accepts -g
configure:2196: gcc -c -g  conftest.c >&5
configure:2199: $? = 0
configure:2202: test -s conftest.o
configure:2205: $? = 0
configure:2215: result: yes
configure:2242: gcc -c -g -O2  conftest.c >&5
conftest.c:2: parse error before `me'
configure:2245: $? = 1
configure: failed program was:
#ifndef __cplusplus
  choke me
#endif
configure:2351: checking for style of include used by make
configure:2378: result: GNU
configure:2384: checking dependency style of gcc
configure:2446: result: gcc
configure:2455: checking how to run the C preprocessor
configure:2481: gcc -E  conftest.c
configure:2487: $? = 0
configure:2514: gcc -E  conftest.c
configure:2511: ac_nonexistent.h: No such file or directory
configure:2520: $? = 1
configure: failed program was:
#line 2510 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
configure:2557: result: gcc -E
configure:2572: gcc -E  conftest.c
configure:2578: $? = 0
configure:2605: gcc -E  conftest.c
configure:2602: ac_nonexistent.h: No such file or directory
configure:2611: $? = 1
configure: failed program was:
#line 2601 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
configure:2699: checking for g++
configure:2714: found /usr/bin/g++
configure:2722: result: g++
configure:2737: checking for C++ compiler version
configure:2740: g++ --version </dev/null >&5
2.95.3
configure:2743: $? = 0
configure:2745: g++ -v </dev/null >&5
Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.3/specs
gcc version 2.95.3 20010315 (SuSE)
configure:2748: $? = 0
configure:2750: g++ -V </dev/null >&5
g++: argument to `-V' missing

configure:2753: $? = 1
configure:2756: checking whether we are using the GNU C++ compiler
configure:2777: g++ -c   conftest.cc >&5
configure:2780: $? = 0
configure:2783: test -s conftest.o
configure:2786: $? = 0
configure:2798: result: yes
configure:2804: checking whether g++ accepts -g
configure:2822: g++ -c -g  conftest.cc >&5
configure:2825: $? = 0
configure:2828: test -s conftest.o
configure:2831: $? = 0
configure:2841: result: yes
configure:2881: g++ -c   conftest.cc >&5
configure:2884: $? = 0
configure:2887: test -s conftest.o
configure:2890: $? = 0
configure:2912: g++ -c   conftest.cc >&5
configure:2915: $? = 0
configure:2918: test -s conftest.o
configure:2921: $? = 0
configure:2945: checking dependency style of g++
configure:3007: result: gcc
configure:3013: checking for apxs
configure:3028: found /usr/local/apache/bin/apxs
configure:3036: result: yes
configure:3144: checking for ld used by GCC
configure:3207: result: /usr/i486-suse-linux/bin/ld
configure:3216: checking if the linker (/usr/i486-suse-linux/bin/ld) is GNU ld
GNU ld version 2.11.92.0.10 20011021 (SuSE)
configure:3228: result: yes
configure:3232: checking for /usr/i486-suse-linux/bin/ld option to reload object files
configure:3239: result: -r
configure:3244: checking for BSD-compatible nm
configure:3280: result: /usr/bin/nm -B
configure:3283: checking whether ln -s works
configure:3287: result: yes
configure:3294: checking how to recognise dependant libraries
configure:3472: result: pass_all
configure:3478: checking command to parse /usr/bin/nm -B output
configure:3559: gcc -c -g -O2  conftest.c >&5
configure:3562: $? = 0
configure:3566: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ 	]\([ABCDGISTW][ABCDGISTW]*\)[ 	][ 	]*\(\)\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2\3 \3/p' \> conftest.nm
configure:3569: $? = 0
configure:3621: gcc -o conftest -g -O2   conftest.c conftstm.o >&5
configure:3624: $? = 0
configure:3668: result: ok
configure:3675: checking for dlfcn.h
configure:3685: gcc -E  conftest.c
configure:3691: $? = 0
configure:3710: result: yes
configure:3897: checking for ranlib
configure:3912: found /usr/bin/ranlib
configure:3921: result: ranlib
configure:3971: checking for strip
configure:3986: found /usr/bin/strip
configure:3995: result: strip
configure:4510: checking for objdir
configure:4521: result: .libs
configure:4536: checking for gcc option to produce PIC
configure:4686: result: -fPIC
configure:4690: checking if gcc PIC flag -fPIC works
configure:4710: gcc -c -g -O2 -fPIC -DPIC  conftest.c >&5
configure:4713: $? = 0
configure:4716: test -s conftest.o
configure:4719: $? = 0
configure:4755: result: yes
configure:4771: checking if gcc static flag -static works
configure:4792: gcc -o conftest -g -O2   -static conftest.c  >&5
configure:4795: $? = 0
configure:4798: test -s conftest
configure:4801: $? = 0
configure:4815: result: yes
configure:4826: checking if gcc supports -c -o file.o
configure:4846: gcc -c -g -O2 -o out/conftest2.o  conftest.c >&5
configure:4870: result: yes
configure:4875: checking if gcc supports -c -o file.lo
configure:4899: gcc -c -g -O2 -c -o conftest.lo  conftest.c >&5
configure:4902: $? = 0
configure:4905: test -s conftest.lo
configure:4908: $? = 0
configure:4929: result: yes
configure:4960: checking if gcc supports -fno-rtti -fno-exceptions
configure:4979: gcc -c -g -O2 -fno-rtti -fno-exceptions -c conftest.c  conftest.c >&5
configure:4982: $? = 0
configure:4985: test -s conftest.o
configure:4988: $? = 0
configure:5004: result: yes
configure:5015: checking whether the linker (/usr/i486-suse-linux/bin/ld) supports shared libraries
configure:5695: result: yes
configure:5700: checking how to hardcode library paths into programs
configure:5724: result: immediate
configure:5729: checking whether stripping libraries is possible
configure:5734: result: yes
configure:5745: checking dynamic linker characteristics
configure:6138: result: GNU/Linux ld.so
configure:6143: checking if libtool supports shared libraries
configure:6145: result: yes
configure:6148: checking whether to build shared libraries
configure:6169: result: yes
configure:6172: checking whether to build static libraries
configure:6176: result: yes
configure:6214: checking for shl_load
configure:6251: gcc -o conftest -g -O2   conftest.c  >&5
/tmp/ccGgEWLb.o: In function `main':
/home/aberger/apache_gsoap.0.0.5/configure:6242: undefined reference to `shl_load'
collect2: ld returned 1 exit status
configure:6254: $? = 1
configure: failed program was:
#line 6220 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char shl_load (); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
   builtin and then its argument prototype would still apply.  */
char shl_load ();
char (*f) ();

int
main ()
{
/* 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_shl_load) || defined (__stub___shl_load)
choke me
#else
f = shl_load;
#endif

  ;
  return 0;
}
configure:6270: result: no
configure:6275: checking for shl_load in -ldld
configure:6302: gcc -o conftest -g -O2   conftest.c -ldld   >&5
/usr/i486-suse-linux/bin/ld: cannot find -ldld
collect2: ld returned 1 exit status
configure:6305: $? = 1
configure: failed program was:
#line 6283 "configure"
#include "confdefs.h"

/* Override any gcc2 internal prototype to avoid an error.  */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
   builtin and then its argument prototype would still apply.  */
char shl_load ();
int
main ()
{
shl_load ();
  ;
  return 0;
}
configure:6322: result: no
configure:6327: checking for dlopen
configure:6364: gcc -o conftest -g -O2   conftest.c  >&5
/tmp/ccqkUxyk.o: In function `main':
/home/aberger/apache_gsoap.0.0.5/configure:6355: undefined reference to `dlopen'
collect2: ld returned 1 exit status
configure:6367: $? = 1
configure: failed program was:
#line 6333 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
    which can conflict with char dlopen (); below.  */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error.  */
#ifdef __cplusplus
extern "C"
#endif
/* We use char because int might match the return type of a gcc2
   builtin and then its argument prototype would still apply.  */
char dlopen ();
char (*f) ();

int
main ()
{
/* 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_dlopen) || defined (__stub___dlopen)
choke me
#else
f = dlopen;
#endif

  ;
  return 0;
}
configure:6383: result: no
configure:6388: checking for dlopen in -ldl
configure:6415: gcc -o conftest -g -O2   conftest.c -ldl   >&5
configure:6418: $? = 0
configure:6421: test -s conftest
configure:6424: $? = 0
configure:6435: result: yes
configure:6575: checking whether a program can dlopen itself
configure:6647: gcc -o conftest -g -O2  -DHAVE_DLFCN_H  -Wl,--export-dynamic conftest.c -ldl  >&5
configure:6650: $? = 0
configure:6667: result: yes
configure:6672: checking whether a statically linked program can dlopen itself
configure:6744: gcc -o conftest -g -O2  -DHAVE_DLFCN_H  -Wl,--export-dynamic -static conftest.c -ldl  >&5
configure:6747: $? = 0
configure:6764: result: no
configure:6794: checking whether -lc should be explicitly linked in
configure:6802: gcc -c -g -O2  conftest.c >&5
configure:6805: $? = 0
configure:6819: gcc -shared conftest.o  -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| grep  -lc  \>/dev/null 2\>\&1
configure:6822: $? = 0
configure:6835: result: no
configure:7448: checking for getcwd
configure:7485: gcc -o conftest -g -O2   conftest.c  >&5
configure:7488: $? = 0
configure:7491: test -s conftest
configure:7494: $? = 0
configure:7504: result: yes
configure:7517: checking for memset
configure:7554: gcc -o conftest -g -O2   conftest.c  >&5
configure:7533: warning: conflicting types for built-in function `memset'
configure:7557: $? = 0
configure:7560: test -s conftest
configure:7563: $? = 0
configure:7573: result: yes
configure:7587: checking for mawk
configure:7610: result: gawk
configure:7632: checking for a BSD compatible install
configure:7681: result: /usr/bin/ginstall -c
configure:7730: checking for ranlib
configure:7754: result: ranlib
configure:7766: checking for ANSI C header files
configure:7780: gcc -E  conftest.c
configure:7786: $? = 0
configure:7873: gcc -o conftest -g -O2   conftest.c  >&5
configure:7876: $? = 0
configure:7878: ./conftest
configure:7881: $? = 0
configure:7894: result: yes
configure:7904: checking for gcc option to accept ANSI C
configure:7961: gcc  -c -g -O2  conftest.c >&5
configure:7964: $? = 0
configure:7967: test -s conftest.o
configure:7970: $? = 0
configure:7987: result: none needed
configure:7995: checking for an ANSI C-conforming const
configure:8059: gcc -c -g -O2  conftest.c >&5
configure:8062: $? = 0
configure:8065: test -s conftest.o
configure:8068: $? = 0
configure:8078: result: yes
configure:8094: checking for sys/types.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for sys/stat.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for stdlib.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for string.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for memory.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for strings.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for inttypes.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for stdint.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8094: checking for unistd.h
configure:8106: gcc -c -g -O2  conftest.c >&5
configure:8109: $? = 0
configure:8112: test -s conftest.o
configure:8115: $? = 0
configure:8125: result: yes
configure:8135: checking for size_t
configure:8156: gcc -c -g -O2  conftest.c >&5
configure:8159: $? = 0
configure:8162: test -s conftest.o
configure:8165: $? = 0
configure:8175: result: yes
configure:8190: checking for sys/types.h
configure:8225: result: yes
configure:8190: checking for sys/socket.h
configure:8200: gcc -E  conftest.c
configure:8206: $? = 0
configure:8225: result: yes
configure:8190: checking for unistd.h
configure:8225: result: yes
configure:8190: checking for netinet/in.h
configure:8200: gcc -E  conftest.c
configure:8206: $? = 0
configure:8225: result: yes
configure:8238: checking for arpa/inet.h
configure:8248: gcc -E  conftest.c
configure:8254: $? = 0
configure:8273: result: yes
configure:8238: checking for netdb.h
configure:8248: gcc -E  conftest.c
configure:8254: $? = 0
configure:8273: result: yes
configure:8238: checking for sys/ioctl.h
configure:8248: gcc -E  conftest.c
configure:8254: $? = 0
configure:8273: result: yes
configure:8238: checking for errno.h
configure:8248: gcc -E  conftest.c
configure:8254: $? = 0
configure:8273: result: yes
configure:8286: checking for sys/time.h
configure:8296: gcc -E  conftest.c
configure:8302: $? = 0
configure:8321: result: yes
configure:8334: checking for ltdl.h
configure:8344: gcc -E  conftest.c
configure:8350: $? = 0
configure:8369: result: yes
configure:8382: checking for stdsoap2.h
configure:8392: gcc -E  conftest.c
configure:8398: $? = 0
configure:8417: result: yes
configure:8507: creating ./config.status

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

This file was extended by config.status 2.52, executed with
  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  > ./config.status 
on redux

config.status:9017: creating Makefile
config.status:9017: creating ConsoleServer/Makefile
config.status:9017: creating ConsoleServer/foo/Makefile
config.status:9017: creating example/Makefile
config.status:9017: creating example/calculator/Makefile
config.status:9017: creating mod_gsoap/Makefile
config.status:9109: creating config.h
config.status:9250: config.h is unchanged

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

ac_cv_build=i686-suse-linux
ac_cv_build_alias=i686-suse-linux
ac_cv_c_compiler_gnu=yes
ac_cv_c_const=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_func_dlopen=no
ac_cv_func_getcwd=yes
ac_cv_func_memset=yes
ac_cv_func_shl_load=no
ac_cv_header_arpa_inet_h=yes
ac_cv_header_dlfcn_h=yes
ac_cv_header_errno_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_ltdl_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_netdb_h=yes
ac_cv_header_netinet_in_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_stdsoap2_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_ioctl_h=yes
ac_cv_header_sys_socket_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_time_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=i686-suse-linux
ac_cv_host_alias=i686-suse-linux
ac_cv_lib_dl_dlopen=yes
ac_cv_lib_dld_shl_load=no
ac_cv_objext=o
ac_cv_path_install=$'/usr/bin/ginstall -c'
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP=$'gcc -E'
ac_cv_prog_EXISTS_APXS=yes
ac_cv_prog_EXISTS_GSOAP=yes
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=
ac_cv_prog_cxx_g=yes
ac_cv_prog_make_make_set=yes
ac_cv_target=i686-suse-linux
ac_cv_target_alias=i686-suse-linux
ac_cv_type_size_t=yes
am_cv_CC_dependencies_compiler_type=gcc
am_cv_CXX_dependencies_compiler_type=gcc
lt_cv_archive_cmds_need_lc=no
lt_cv_compiler_c_o=yes
lt_cv_compiler_o_lo=yes
lt_cv_deplibs_check_method=pass_all
lt_cv_dlopen=dlopen
lt_cv_dlopen_libs=-ldl
lt_cv_dlopen_self=yes
lt_cv_dlopen_self_static=no
lt_cv_file_magic_cmd=$'$MAGIC_CMD'
lt_cv_file_magic_test_file=$'/lib/libc.so.6 /lib/libc.so.6.backup /lib/libc-*.so'
lt_cv_global_symbol_to_c_name_address=$'sed -n -e \'s/^: \\([^ ]*\\) $/  {\\"\\1\\", (lt_ptr) 0},/p\' -e \'s/^[BCDEGRST] \\([^ ]*\\) \\([^ ]*\\)$/  {"\\2", (lt_ptr) \\&\\2},/p\''
lt_cv_global_symbol_to_cdecl=$'sed -n -e \'s/^. .* \\(.*\\)$/extern char \\1;/p\''
lt_cv_ld_reload_flag=-r
lt_cv_path_LD=/usr/i486-suse-linux/bin/ld
lt_cv_path_NM=$'/usr/bin/nm -B'
lt_cv_prog_cc_can_build_shared=yes
lt_cv_prog_cc_no_builtin=
lt_cv_prog_cc_pic=$' -fPIC'
lt_cv_prog_cc_pic_works=yes
lt_cv_prog_cc_shlib=
lt_cv_prog_cc_static=-static
lt_cv_prog_cc_static_works=yes
lt_cv_prog_cc_wl=-Wl,
lt_cv_prog_gnu_ld=yes
lt_cv_sys_global_symbol_pipe=$'sed -n -e \'s/^.*[ \t]\\([ABCDGISTW][ABCDGISTW]*\\)[ \t][ \t]*\\(\\)\\([_A-Za-z][_A-Za-z0-9]*\\)$/\\1 \\2\\3 \\3/p\''
lt_cv_sys_path_separator=:

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

#define PACKAGE "mod_gsoap"
#define VERSION "0.0.5"
#define HAVE_DLFCN_H 1
#define HAVE_GETCWD 1
#define HAVE_MEMSET 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_SYS_TYPES_H 1
#define HAVE_SYS_SOCKET_H 1
#define HAVE_UNISTD_H 1
#define HAVE_NETINET_IN_H 1
#define HAVE_ARPA_INET_H 1
#define HAVE_NETDB_H 1
#define HAVE_SYS_IOCTL_H 1
#define HAVE_ERRNO_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_LTDL_H 1
#define HAVE_STDSOAP2_H 1


configure: exit 0

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

This file was extended by config.status 2.52, executed with
  CONFIG_FILES    = 
  CONFIG_HEADERS  = config.h
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  > ./config.status 
on redux

config.status:9109: creating config.h
config.status:9250: config.h is unchanged
