#if ((defined(_MSC_VER) || defined(__MINGW32__))                        \
     && (defined(__WIN32__) || defined(WIN32) || defined(_WIN32)))
# define RKTIO_SYSTEM_WINDOWS
#else
# define RKTIO_SYSTEM_UNIX
#endif

/* Whether `intptr_t' is available. */
#undef HAVE_INTPTR_T

/* Whether `uintptr_t' is available. */
#undef HAVE_UINTPTR_T

#ifdef HAVE_INTPTR_T
# include <inttypes.h>
#endif
#ifndef HAVE_INTPTR_T
typedef long intptr_t;
#endif
#ifndef HAVE_UINTPTR_T
typedef unsigned long uintptr_t;
#endif

#ifdef RKTIO_SYSTEM_WINDOWS
# ifdef _MSC_VER
typedef _int64 rktio_int64_t;
typedef unsigned _int64 rktio_uint64_t;
# else
typedef __int64 rktio_int64_t;
typedef unsigned __int64 rktio_uint64_t;
# endif
#else
typedef long long rktio_int64_t;
typedef unsigned long long rktio_uint64_t;
#endif

/* Whether pthread is available */
#undef RKTIO_USE_PTHREADS

/* When poll(), epoll(), kqueue(), etc. is available: */
#undef HAVE_POLL_SYSCALL
#undef HAVE_EPOLL_SYSCALL
#undef HAVE_INOTIFY_SYSCALL
#undef HAVE_KQUEUE_SYSCALL

/* Whether getaddrinfo() is available: */
#undef HAVE_GETADDRINFO

/* Whether nl_langinfo works. */
#undef RKTIO_HAVE_CODESET

/* In case you want to avoid dynamic sizing of `fd_set` arrays: */
#undef RKTIO_STATIC_FDSET_SIZE

/* In case you want to use fcntl for file locks */
#undef RKTIO_USE_FCNTL_AND_FORK_FOR_FILE_LOCKS

/* In case iconv is not available: */
#undef RKTIO_NO_ICONV
