diff --git a/BUILD.gn b/BUILD.gn
new file mode 100644
index 0000000..d62cd33
--- /dev/null
+++ b/BUILD.gn
@@ -0,0 +1,157 @@
+# Copyright 2018 The Fuchsia Authors. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#    * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#    * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+config("wsman_config") {
+  visibility = [ ":*" ]
+  include_dirs = [ "include" ]
+}
+
+config("wsman_private_config") {
+  visibility = [ ":*" ]
+  defines = [
+    "_BSD_SOURCE",
+    "HAVE_CONFIG_H",
+  ]
+  cflags = [
+    "-Wno-conditional-type-mismatch",
+    "-Wno-enum-conversion",
+    "-Wno-implicit-function-declaration",
+    "-Wno-int-conversion",
+    "-Wno-sign-compare",
+    "-Wno-sometimes-uninitialized",
+    "-Wno-unused-const-variable",
+  ]
+  include_dirs = [ target_gen_dir ]
+}
+
+copy("copy_wsman_config") {
+  visibility = [ ":*" ]
+  if (is_fuchsia) {
+    sources = [
+      "wsman_config.h.fuchsia",
+    ]
+  } else {
+    sources = [
+      "wsman_config.h",
+    ]
+  }
+  outputs = [
+    "$target_gen_dir/wsman_config.h",
+  ]
+}
+
+group("wsman_settings") {
+  visibility = [ ":*" ]
+  public_configs = [ ":wsman_private_config" ]
+  deps = [
+    ":copy_wsman_config",
+  ]
+}
+
+static_library("wsman") {
+  sources = [
+    "src/lib/u/base64.c",
+    "src/lib/u/buf.c",
+    "src/lib/u/debug.c",
+    "src/lib/u/gettimeofday.c",
+    "src/lib/u/hash.c",
+    "src/lib/u/iniparser.c",
+    "src/lib/u/list.c",
+    "src/lib/u/lock.c",
+    "src/lib/u/log.c",
+    "src/lib/u/md5.c",
+    "src/lib/u/memory.c",
+    "src/lib/u/misc.c",
+    "src/lib/u/os.c",
+    "src/lib/u/pthreadx_win32.c",
+    "src/lib/u/strings.c",
+    "src/lib/u/syslog.c",
+    "src/lib/u/uerr.c",
+    "src/lib/u/uoption.c",
+    "src/lib/u/uri.c",
+    "src/lib/u/uuid.c",
+    "src/lib/wsman-cimindication-processor.c",
+    "src/lib/wsman-debug.c",
+    "src/lib/wsman-dispatcher.c",
+    "src/lib/wsman-epr.c",
+    "src/lib/wsman-event-pool.c",
+    "src/lib/wsman-faults.c",
+    "src/lib/wsman-filter.c",
+    "src/lib/wsman-key-value.c",
+    "src/lib/wsman-libxml2-binding.c",
+    "src/lib/wsman-soap-envelope.c",
+    "src/lib/wsman-soap-message.c",
+    "src/lib/wsman-soap.c",
+    "src/lib/wsman-subscription-repository.c",
+    "src/lib/wsman-xml-serialize.c",
+    "src/lib/wsman-xml.c",
+  ]
+  public_configs = [ ":wsman_config" ]
+  public_deps = [
+    "//third_party/boringssl",
+    "//third_party/curl:libcurl",
+    "//third_party/libxml2",
+    "//third_party/sblim-sfcc:cmpisfcc",
+  ]
+  deps = [
+    ":wsman_settings",
+  ]
+}
+
+static_library("wsman_client") {
+  sources = [
+    "src/lib/wsman-client.c",
+  ]
+  public_configs = [ ":wsman_config" ]
+  public_deps = [
+    "//third_party/boringssl",
+    "//third_party/curl:libcurl",
+    "//third_party/libxml2",
+    "//third_party/sblim-sfcc:cmpisfcc",
+  ]
+  deps = [
+    ":wsman_settings",
+  ]
+}
+
+static_library("wsman_curl_client_transport") {
+  sources = [
+    "src/lib/wsman-client-transport.c",
+    "src/lib/wsman-curl-client-transport.c",
+  ]
+  public_configs = [ ":wsman_config" ]
+  public_deps = [
+    "//third_party/boringssl",
+    "//third_party/curl:libcurl",
+    "//third_party/libxml2",
+    "//third_party/sblim-sfcc:cmpisfcc",
+  ]
+  deps = [
+    ":wsman_settings",
+  ]
+}
diff --git a/include/wsman-xml-serializer.h b/include/wsman-xml-serializer.h
index 8beca41..86474ca 100644
--- a/include/wsman-xml-serializer.h
+++ b/include/wsman-xml-serializer.h
@@ -79,7 +79,7 @@
 typedef double XML_TYPE_REAL64;
 #define PTRTOINT unsigned long long
 #else
-#include <sys/types.h>
+#include <inttypes.h>
 #if defined (__SVR4) && defined (__sun)
 typedef uchar_t XML_TYPE_UINT8;
 typedef ushort_t XML_TYPE_UINT16;
@@ -97,10 +97,10 @@
 #define PTRTOINT int
 
 #else
-typedef u_int8_t XML_TYPE_UINT8;
-typedef u_int16_t XML_TYPE_UINT16;
-typedef u_int32_t XML_TYPE_UINT32;
-typedef u_int64_t XML_TYPE_UINT64;
+typedef uint8_t XML_TYPE_UINT8;
+typedef uint16_t XML_TYPE_UINT16;
+typedef uint32_t XML_TYPE_UINT32;
+typedef uint64_t XML_TYPE_UINT64;
 typedef int8_t XML_TYPE_INT8;
 typedef int16_t XML_TYPE_INT16;
 typedef int32_t XML_TYPE_INT32;
diff --git a/src/lib/u/lock.c b/src/lib/u/lock.c
index 025eea4..b635886 100644
--- a/src/lib/u/lock.c
+++ b/src/lib/u/lock.c
@@ -50,7 +50,7 @@
 extern int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type);
 #endif
 
-#if defined (__SVR4) && defined (__sun)
+#if (defined (__SVR4) && defined (__sun)) || defined(__Fuchsia__)
 #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE
 #endif
 
diff --git a/src/lib/u/uuid.c b/src/lib/u/uuid.c
index c7a6729..ab2dfd7 100644
--- a/src/lib/u/uuid.c
+++ b/src/lib/u/uuid.c
@@ -299,7 +299,7 @@
 {
 
     static int clock_sequence = 1;
-    u_int64_t longTimeVal;
+    uint64_t longTimeVal;
     int timeLow = 0;
     int timeMid = 0;
     int timeHigh = 0;
@@ -319,7 +319,7 @@
 
     // get time data
     gettimeofday( &tv, NULL );
-    longTimeVal = (u_int64_t)1000000 * (u_int64_t)tv.tv_sec + (u_int64_t)tv.tv_usec;
+    longTimeVal = (int64_t)1000000 * (int64_t)tv.tv_sec + (int64_t)tv.tv_usec;
     timeLow = longTimeVal & 0xffffffff;     // lower 32 bits
     timeMid = (longTimeVal >> 32) & 0xffff; // middle 16 bits
     timeHigh = (longTimeVal >> 32) & 0xfff; // upper 12 bits
diff --git a/wsman_config.h b/wsman_config.h
new file mode 100644
index 0000000..76ff09a
--- /dev/null
+++ b/wsman_config.h
@@ -0,0 +1,401 @@
+/* wsman_config.h.cmake.  Copied from wsman_config.h.in  */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+#if 0
+#define CRAY_STACKSEG_END 1
+#endif
+
+/* Define to 1 if using `alloca.c'. */
+#if 0
+#define C_ALLOCA 1
+#endif
+
+/* Default server config file */
+#define DEFAULT_CONFIG_FILE "/etc/openwsman/openwsman.conf"
+
+/* Default client config file */
+#define DEFAULT_CLIENT_CONFIG_FILE "/etc/openwsman/openwsman_client.conf"
+
+/* Defined if WS-Eventing wanted */
+#if 1
+#define ENABLE_EVENTING_SUPPORT 1
+#endif
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#if 0
+#define HAVE_ALLOCA 1
+#endif
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
+#if 1
+#define HAVE_ALLOCA_H 1
+#endif
+
+/* Define to 1 if you have the `bcopy' function. */
+#if 1
+#define HAVE_BCOPY 1
+#endif
+
+/* Define to 1 if you have the `crypt' function. */
+#if 1
+#define HAVE_CRYPT 1
+#endif
+
+/* Define to 1 if you have the <crypt.h> header file. */
+#if 1
+#define HAVE_CRYPT_H 1
+#endif
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#if 1
+#define HAVE_CTYPE_H 1
+#endif
+
+/* Define to 1 if you have the <CUnit/Basic.h> header file. */
+#if 0
+#define HAVE_CUNIT_BASIC_H 1
+#endif
+
+/* Define to 1 if you have the `daemon' function. */
+#if 1
+#define HAVE_DAEMON 1
+#endif
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#if 1
+#define HAVE_DIRENT_H 1
+#endif
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#if 1
+#define HAVE_DLFCN_H 1
+#endif
+
+/* Define to 1 if you have the `fnmatch' function. */
+#if 1
+#define HAVE_FNMATCH 1
+#endif
+
+/* Define to 1 if you have the `getaddrinfo' function. */
+#if 1
+#define HAVE_GETADDRINFO 1
+#endif
+
+/* Define to 1 if you have the `getnameinfo' function. */
+#if 1
+#define HAVE_GETNAMEINFO 1
+#endif
+
+/* Define to 1 if you have the `getpid' function. */
+#if 1
+#define HAVE_GETPID 1
+#endif
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#if 1
+#define HAVE_GETTIMEOFDAY 1
+#endif
+
+/* Define to 1 if you have the `gmtime_r' function. */
+#if 1
+#define HAVE_GMTIME_R 1
+#endif
+
+/* Define to 1 if you have the `inet_aton' function. */
+#if 1
+#define HAVE_INET_ATON 1
+#endif
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#if 1
+#define HAVE_INET_NTOP 1
+#endif
+
+/* Define to 1 if you have the `inet_pton' function. */
+#if 1
+#define HAVE_INET_PTON 1
+#endif
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#if 1
+#define HAVE_INTTYPES_H 1
+#endif
+
+/* Define to 1 if the system has the type `in_addr_t'. */
+#if 0
+#define HAVE_IN_ADDR_T 1
+#endif
+
+/* Define to 1 if the system has the type `in_port_t'. */
+#if 0
+#define HAVE_IN_PORT_T 1
+#endif
+
+/* libcrypt library present */
+#if 1
+#define HAVE_LIBCRYPT 1
+#endif
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#if 1
+#define HAVE_LIBNSL 1
+#endif
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#if 0
+#define HAVE_LIBSOCKET 1
+#endif
+
+/* Define to 1 if you have the `memmove' function. */
+#if 1
+#define HAVE_MEMMOVE 1
+#endif
+
+/* Define to 1 if you have the <memory.h> header file. */
+#if 1
+#define HAVE_MEMORY_H 1
+#endif
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#if 1
+#define HAVE_NETINET_IN_H 1
+#endif
+
+/* Define to 1 if you have the <net/if_dl.h> header file. */
+#if 0
+#define HAVE_NET_IF_DL_H 1
+#endif
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#if 1
+#define HAVE_NET_IF_H 1
+#endif
+
+/* Defined if pam support is available */
+#if 1
+#define HAVE_PAM 1
+#endif
+
+/* Define to 1 if you have the <pam/pam_appl.h> header file. */
+#if 0
+#define HAVE_PAM_PAM_APPL_H 1
+#endif
+
+/* Define to 1 if you have the <pam/pam_misc.h> header file. */
+#if 0
+#define HAVE_PAM_PAM_MISC_H 1
+#endif
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#if 1
+#define HAVE_PTHREAD_H 1
+#endif
+
+/* Define to 1 if the system has the type `sa_family_t'. */
+#if 0
+#define HAVE_SA_FAMILY_T 1
+#endif
+
+/* Define if struct sockaddr contains sa_len */
+#if 0
+#define HAVE_SA_LEN 1
+#endif
+
+/* Define to 1 if you have the <security/pam_appl.h> header file. */
+#if 1
+#define HAVE_SECURITY_PAM_APPL_H 1
+#endif
+
+/* Define to 1 if you have the <security/pam_misc.h> header file. */
+#if 1
+#define HAVE_SECURITY_PAM_MISC_H 1
+#endif
+
+/* Define to 1 if you have the `sleep' function. */
+#if 1
+#define HAVE_SLEEP 1
+#endif
+
+/* Define to 1 if you have the `srandom' function. */
+#if 1
+#define HAVE_SRANDOM 1
+#endif
+
+/* Defined if you have SSL support */
+#if 1
+#define HAVE_SSL 1
+#endif
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#if 1
+#define HAVE_STDARG_H 1
+#endif
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#if 1
+#define HAVE_STDINT_H 1
+#endif
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#if 1
+#define HAVE_STDLIB_H 1
+#endif
+
+/* Define to 1 if you have the <strings.h> header file. */
+#if 1
+#define HAVE_STRINGS_H 1
+#endif
+
+/* Define to 1 if you have the <string.h> header file. */
+#if 1
+#define HAVE_STRING_H 1
+#endif
+
+/* Define to 1 if you have the `strsep' function. */
+#if 1
+#define HAVE_STRSEP 1
+#endif
+
+/* Define to 1 if you have the `strtok_r' function. */
+#if 1
+#define HAVE_STRTOK_R 1
+#endif
+
+/* Define to 1 if you have the `syslog' function. */
+#if 1
+#define HAVE_SYSLOG 1
+#endif
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#if 1
+#define HAVE_SYS_IOCTL_H 1
+#endif
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#if 1
+#define HAVE_SYS_RESOURCE_H 1
+#endif
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#if 1
+#define HAVE_SYS_SELECT_H 1
+#endif
+
+/* Define to 1 if you have the <sys/sendfile.h> header file. */
+#if 1
+#define HAVE_SYS_SENDFILE_H 1
+#endif
+
+/* Define to 1 if you have the <sys/signal.h> header file. */
+#if 1
+#define HAVE_SYS_SIGNAL_H 1
+#endif
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#if 1
+#define HAVE_SYS_SOCKET_H 1
+#endif
+
+/* Define to 1 if you have the <sys/sockio.h> header file. */
+#if 0
+#define HAVE_SYS_SOCKIO_H 1
+#endif
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#if 1
+#define HAVE_SYS_STAT_H 1
+#endif
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#if 1
+#define HAVE_SYS_TYPES_H 1
+#endif
+
+/* Define to 1 if you have the `timegm' function. */
+#if 1
+#define HAVE_TIMEGM 1
+#endif
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#if 1
+#define HAVE_UNISTD_H 1
+#endif
+
+/* Define to 1 if you have the `unlink' function. */
+#if 1
+#define HAVE_UNLINK 1
+#endif
+
+/* Define to 1 if you have the <vararg.h> header file. */
+#if 0
+#define HAVE_VARARG_H 1
+#endif
+
+/* Define to 1 if you have the `va_copy' function. */
+#if 1
+#define HAVE_VA_COPY 1
+#endif
+
+/* Name of package */
+#define PACKAGE openwsman
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "www.openwsman.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "openwsman"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "WS-Management for all"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "openwsman-2.6.5.tar.bz2"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.6"
+
+/* Define to the API version of the server plugin interface. */
+#define OPENWSMAN_PLUGIN_API_VERSION "2.2"
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 
+
+/* The size of `long long', as computed by sizeof. */
+#define SIZEOF_LONG_LONG 
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 
+
+/* Define to 1 if you have the ANSI C header files. */
+#if 1
+#define STDC_HEADERS 1
+#endif
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#if 1
+#define TIME_WITH_SYS_TIME 1
+#endif
+
+/* Version number of package */
+#define VERSION 2.6.5
+
+/* Defined if verbose debug logging is requested */
+#if 0
+#define WSMAN_DEBUG_VERBOSE 1
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+#if 0
+#define ssize_t int
+#endif
+
+/* Define to 1 if you want to enable IPv6 support. */
+#if 1
+#define ENABLE_IPV6 1
+#endif
diff --git a/wsman_config.h.fuchsia b/wsman_config.h.fuchsia
new file mode 100644
index 0000000..857ff5e
--- /dev/null
+++ b/wsman_config.h.fuchsia
@@ -0,0 +1,401 @@
+/* wsman_config.h.cmake.  Copied from wsman_config.h.in  */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+#if 0
+#define CRAY_STACKSEG_END 1
+#endif
+
+/* Define to 1 if using `alloca.c'. */
+#if 0
+#define C_ALLOCA 1
+#endif
+
+/* Default server config file */
+#define DEFAULT_CONFIG_FILE "/etc/openwsman/openwsman.conf"
+
+/* Default client config file */
+#define DEFAULT_CLIENT_CONFIG_FILE "/etc/openwsman/openwsman_client.conf"
+
+/* Defined if WS-Eventing wanted */
+#if 1
+#define ENABLE_EVENTING_SUPPORT 1
+#endif
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#if 0
+#define HAVE_ALLOCA 1
+#endif
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
+#if 1
+#define HAVE_ALLOCA_H 1
+#endif
+
+/* Define to 1 if you have the `bcopy' function. */
+#if 1
+#define HAVE_BCOPY 1
+#endif
+
+/* Define to 1 if you have the `crypt' function. */
+#if 1
+#define HAVE_CRYPT 1
+#endif
+
+/* Define to 1 if you have the <crypt.h> header file. */
+#if 1
+#define HAVE_CRYPT_H 1
+#endif
+
+/* Define to 1 if you have the <ctype.h> header file. */
+#if 1
+#define HAVE_CTYPE_H 1
+#endif
+
+/* Define to 1 if you have the <CUnit/Basic.h> header file. */
+#if 0
+#define HAVE_CUNIT_BASIC_H 1
+#endif
+
+/* Define to 1 if you have the `daemon' function. */
+#if 1
+#define HAVE_DAEMON 1
+#endif
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#if 1
+#define HAVE_DIRENT_H 1
+#endif
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#if 1
+#define HAVE_DLFCN_H 1
+#endif
+
+/* Define to 1 if you have the `fnmatch' function. */
+#if 1
+#define HAVE_FNMATCH 1
+#endif
+
+/* Define to 1 if you have the `getaddrinfo' function. */
+#if 1
+#define HAVE_GETADDRINFO 1
+#endif
+
+/* Define to 1 if you have the `getnameinfo' function. */
+#if 1
+#define HAVE_GETNAMEINFO 1
+#endif
+
+/* Define to 1 if you have the `getpid' function. */
+#if 1
+#define HAVE_GETPID 1
+#endif
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#if 1
+#define HAVE_GETTIMEOFDAY 1
+#endif
+
+/* Define to 1 if you have the `gmtime_r' function. */
+#if 1
+#define HAVE_GMTIME_R 1
+#endif
+
+/* Define to 1 if you have the `inet_aton' function. */
+#if 1
+#define HAVE_INET_ATON 1
+#endif
+
+/* Define to 1 if you have the `inet_ntop' function. */
+#if 1
+#define HAVE_INET_NTOP 1
+#endif
+
+/* Define to 1 if you have the `inet_pton' function. */
+#if 1
+#define HAVE_INET_PTON 1
+#endif
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#if 1
+#define HAVE_INTTYPES_H 1
+#endif
+
+/* Define to 1 if the system has the type `in_addr_t'. */
+#if 0
+#define HAVE_IN_ADDR_T 1
+#endif
+
+/* Define to 1 if the system has the type `in_port_t'. */
+#if 0
+#define HAVE_IN_PORT_T 1
+#endif
+
+/* libcrypt library present */
+#if 1
+#define HAVE_LIBCRYPT 1
+#endif
+
+/* Define to 1 if you have the `nsl' library (-lnsl). */
+#if 0
+#define HAVE_LIBNSL 1
+#endif
+
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#if 0
+#define HAVE_LIBSOCKET 1
+#endif
+
+/* Define to 1 if you have the `memmove' function. */
+#if 1
+#define HAVE_MEMMOVE 1
+#endif
+
+/* Define to 1 if you have the <memory.h> header file. */
+#if 1
+#define HAVE_MEMORY_H 1
+#endif
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#if 1
+#define HAVE_NETINET_IN_H 1
+#endif
+
+/* Define to 1 if you have the <net/if_dl.h> header file. */
+#if 0
+#define HAVE_NET_IF_DL_H 1
+#endif
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#if 1
+#define HAVE_NET_IF_H 1
+#endif
+
+/* Defined if pam support is available */
+#if 0
+#define HAVE_PAM 1
+#endif
+
+/* Define to 1 if you have the <pam/pam_appl.h> header file. */
+#if 0
+#define HAVE_PAM_PAM_APPL_H 1
+#endif
+
+/* Define to 1 if you have the <pam/pam_misc.h> header file. */
+#if 0
+#define HAVE_PAM_PAM_MISC_H 1
+#endif
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#if 1
+#define HAVE_PTHREAD_H 1
+#endif
+
+/* Define to 1 if the system has the type `sa_family_t'. */
+#if 1
+#define HAVE_SA_FAMILY_T 1
+#endif
+
+/* Define if struct sockaddr contains sa_len */
+#if 0
+#define HAVE_SA_LEN 1
+#endif
+
+/* Define to 1 if you have the <security/pam_appl.h> header file. */
+#if 0
+#define HAVE_SECURITY_PAM_APPL_H 1
+#endif
+
+/* Define to 1 if you have the <security/pam_misc.h> header file. */
+#if 0
+#define HAVE_SECURITY_PAM_MISC_H 1
+#endif
+
+/* Define to 1 if you have the `sleep' function. */
+#if 1
+#define HAVE_SLEEP 1
+#endif
+
+/* Define to 1 if you have the `srandom' function. */
+#if 1
+#define HAVE_SRANDOM 1
+#endif
+
+/* Defined if you have SSL support */
+#if 1
+#define HAVE_SSL 1
+#endif
+
+/* Define to 1 if you have the <stdarg.h> header file. */
+#if 1
+#define HAVE_STDARG_H 1
+#endif
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#if 1
+#define HAVE_STDINT_H 1
+#endif
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#if 1
+#define HAVE_STDLIB_H 1
+#endif
+
+/* Define to 1 if you have the <strings.h> header file. */
+#if 1
+#define HAVE_STRINGS_H 1
+#endif
+
+/* Define to 1 if you have the <string.h> header file. */
+#if 1
+#define HAVE_STRING_H 1
+#endif
+
+/* Define to 1 if you have the `strsep' function. */
+#if 1
+#define HAVE_STRSEP 1
+#endif
+
+/* Define to 1 if you have the `strtok_r' function. */
+#if 1
+#define HAVE_STRTOK_R 1
+#endif
+
+/* Define to 1 if you have the `syslog' function. */
+#if 1
+#define HAVE_SYSLOG 1
+#endif
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#if 1
+#define HAVE_SYS_IOCTL_H 1
+#endif
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#if 1
+#define HAVE_SYS_RESOURCE_H 1
+#endif
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#if 1
+#define HAVE_SYS_SELECT_H 1
+#endif
+
+/* Define to 1 if you have the <sys/sendfile.h> header file. */
+#if 0
+#define HAVE_SYS_SENDFILE_H 1
+#endif
+
+/* Define to 1 if you have the <sys/signal.h> header file. */
+#if 1
+#define HAVE_SYS_SIGNAL_H 1
+#endif
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#if 1
+#define HAVE_SYS_SOCKET_H 1
+#endif
+
+/* Define to 1 if you have the <sys/sockio.h> header file. */
+#if 0
+#define HAVE_SYS_SOCKIO_H 1
+#endif
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#if 1
+#define HAVE_SYS_STAT_H 1
+#endif
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#if 1
+#define HAVE_SYS_TYPES_H 1
+#endif
+
+/* Define to 1 if you have the `timegm' function. */
+#if 1
+#define HAVE_TIMEGM 1
+#endif
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#if 1
+#define HAVE_UNISTD_H 1
+#endif
+
+/* Define to 1 if you have the `unlink' function. */
+#if 1
+#define HAVE_UNLINK 1
+#endif
+
+/* Define to 1 if you have the <vararg.h> header file. */
+#if 0
+#define HAVE_VARARG_H 1
+#endif
+
+/* Define to 1 if you have the `va_copy' function. */
+#if 1
+#define HAVE_VA_COPY 1
+#endif
+
+/* Name of package */
+#define PACKAGE openwsman
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "www.openwsman.org"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "openwsman"
+
+/* Define to the full name and version of this package. */
+#define PACKAGE_STRING "WS-Management for all"
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "openwsman-2.6.5.tar.bz2"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "2.6"
+
+/* Define to the API version of the server plugin interface. */
+#define OPENWSMAN_PLUGIN_API_VERSION "2.2"
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 
+
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 
+
+/* The size of `long long', as computed by sizeof. */
+#define SIZEOF_LONG_LONG 
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 
+
+/* Define to 1 if you have the ANSI C header files. */
+#if 1
+#define STDC_HEADERS 1
+#endif
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#if 1
+#define TIME_WITH_SYS_TIME 1
+#endif
+
+/* Version number of package */
+#define VERSION 2.6.5
+
+/* Defined if verbose debug logging is requested */
+#if 0
+#define WSMAN_DEBUG_VERBOSE 1
+#endif
+
+/* Define to `int' if <sys/types.h> does not define. */
+#if 0
+#define ssize_t int
+#endif
+
+/* Define to 1 if you want to enable IPv6 support. */
+#if 1
+#define ENABLE_IPV6 1
+#endif
