#ifndef _GLIBMM_CONFIG_H
#define _GLIBMM_CONFIG_H

#ifdef _WIN32
  /* Win32 compilers have a lot of varation */
# if defined(_MSC_VER)
#  define GLIBMM_MSC 1
#  define GLIBMM_WIN32 1
#  define GLIBMM_DLL 1
# elif defined(__CYGWIN__)
#  define GLIBMM_CONFIGURE 1
# elif defined(__MINGW32__)
#  define GLIBMM_WIN32 1
#  define GLIBMM_CONFIGURE 1
# else
   /* AIX clR compiler complains about this even though it doesn't get this far */
#  error "Unknown architecture (send me gcc --dumpspecs or equiv)"
# endif
#else
# define GLIBMM_CONFIGURE 1
#endif /* _WIN32 */

#ifdef GLIBMM_CONFIGURE

/* Define if extern "C" and extern "C++" function pointers are compatible. */
#undef GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS

/* Define if non-instantiated templates may dynamic_cast<> to an undefined
   type. */
#undef GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION

/* Define if the compiler honors namespaces inside extern "C" blocks. */
#undef GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC

/* Defined when the SUN Forte C++ compiler is being used. */
#undef GLIBMM_COMPILER_SUN_FORTE

/* Defined when the --enable-debug-refcounting configure argument was given */
#undef GLIBMM_DEBUG_REFCOUNTING

/* This is always set. This is only for backwards compatibility. */
#undef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED

/* Define to omit deprecated API from the library. */
#undef GLIBMM_DISABLE_DEPRECATED

/* This is always set. This is only for backwards compatibility. */
#undef GLIBMM_EXCEPTIONS_ENABLED

/* This is always set. This is only for backwards compatibility. */
#undef GLIBMM_VFUNCS_ENABLED

/* Defined if a static member variable may be initialized inline to
   std::string::npos */
#undef GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS

/* Defined when time_t is not equivalent to gint32, meaning that it can be
   used for a method overload */
#undef GLIBMM_HAVE_C_STD_TIME_T_IS_NOT_INT32

/* Define if the compiler disambiguates template specializations for const and
   non-const types. */
#undef GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS

/* Defined when the libstdc++ declares the std-namespace */
#undef GLIBMM_HAVE_NAMESPACE_STD

/* Defined if std::iterator_traits<> is standard-conforming */
#undef GLIBMM_HAVE_STD_ITERATOR_TRAITS

/* Defined if std::reverse_iterator is in Sun libCstd style */
#undef GLIBMM_HAVE_SUN_REVERSE_ITERATOR

/* Defined if the STL containers have templated sequence ctors */
#undef GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS

/* Define to 1 if wide stream is available. */
#undef GLIBMM_HAVE_WIDE_STREAM

/* Major version number of glibmm. */
#undef GLIBMM_MAJOR_VERSION

/* Define if C++ member functions may refer to member templates. */
#undef GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES

/* Micro version number of glibmm. */
#undef GLIBMM_MICRO_VERSION

/* Minor version number of glibmm. */
#undef GLIBMM_MINOR_VERSION

/* This is always set. This is only for backwards compatibility. */
#undef GLIBMM_PROPERTIES_ENABLED

/* Define if glibmm is built as a static library */
#undef GLIBMM_STATIC_LIB


#endif /* GLIBMM_CONFIGURE */

#ifdef GLIBMM_MSC
# define GLIBMM_HAVE_STD_ITERATOR_TRAITS 1
# define GLIBMM_HAVE_TEMPLATE_SEQUENCE_CTORS 2
# define GLIBMM_HAVE_WIDE_STREAM 1
# define GLIBMM_HAVE_DISAMBIGUOUS_CONST_TEMPLATE_SPECIALIZATIONS 1
# define GLIBMM_HAVE_C_STD_TIME_T_IS_NOT_INT32 1
# define GLIBMM_CAN_USE_DYNAMIC_CAST_IN_UNUSED_TEMPLATE_WITHOUT_DEFINITION 1
# define GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS 1
# define GLIBMM_CAN_USE_NAMESPACES_INSIDE_EXTERNC 1
# define GLIBMM_PROPERTIES_ENABLED 1
# define GLIBMM_VFUNCS_ENABLED 1
# define GLIBMM_EXCEPTIONS_ENABLED 1
# define GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED 1
# pragma warning (disable: 4786 4355 4800 4181)
#endif

/* Dummy macro definition for compatibility with old code that expects
 * it to be defined.  Remove after grace period. */
#define GLIBMM_USING_STD(Symbol)

/* Enable DLL-specific stuff only when not building a static library */
#if !defined(__CYGWIN__) && defined(__MINGW32__) && !defined(GLIBMM_STATIC_LIB)
# define GLIBMM_DLL 1
#endif

#ifdef GLIBMM_DLL
# if defined(GLIBMM_BUILD) && defined(_WINDLL)
   /* Do not dllexport as it is handled by gendef on MSVC */
#  define GLIBMM_API
# elif !defined(GLIBMM_BUILD)
#  define GLIBMM_API __declspec(dllimport)
# else
   /* Build a static library */
#  define GLIBMM_API
# endif /* GLIBMM_BUILD - _WINDLL */
#else
# define GLIBMM_API
#endif /* GLIBMM_DLL */

#endif /* _GLIBMM_CONFIG_H */
