// -*- c++ -*-
#ifndef AKAXISO_CONFIGURATION_H__
#define AKAXISO_CONFIGURATION_H__

#ifdef _MSC_VER
# pragma warning( disable : 4786 )
# if _MSC_VER >= 1300
#  define TYPENAME typename
# else
#  define TYPENAME
# endif
# define LONGLONG _int64
# ifdef _M_IX86
#  define __LITTLE_ENDIAN_COMPUTER__
# endif
#endif

#ifdef __GNUG__
# define TYPENAME typename
# define LONGLONG long long
# define USE_OWN_USTRING 1
# if __GNUG__ == 3
#  define HAS_CHAR_TRAITS 1
# endif

# if defined(__i386__)
#  define __LITTLE_ENDIAN_COMPUTER__ 1
# endif

#endif

#ifdef __BORLANDC__
# define TYPENAME typename
# if __BORLANDC__ >= 0x0560
#  define LONGLONG long long
# endif
# ifdef USE_XERCESC
#  pragma link "XercesLib.lib"
# endif
# define __LITTLE_ENDIAN_COMPUTER__ 1
#endif

/* Make sure to define _WIN32 for BCB. */
#if defined(__WIN32__) /* BCB style */ && !defined(_WIN32)
# define _WIN32 1
#endif

/* Default Charcode */
#if defined(_WIN32)
# define DEFAULT_ENCODING "Shift_JIS"
# define __USING_SJIS__ 1 // Babel
#endif

#if defined(__linux__) || defined(__unix__)
# define DEFAULT_ENCODING "eucJP"
# define __USING_EUC__ 1 // Babel
# define WCHAR_T aka2::uchar_t
#endif

/* babel '#define's. */
#define __BBL_USING_STDMAP_TABLE__ 1
#define __BBL_USE_SELECTORS__      1
#define __UNICODE_CHAR_SIZE_2__    1

#ifndef WCHAR_T
#define WCHAR_T wchar_t
#endif

#if !defined(__LITTLE_ENDIAN_COMPUTER__) && !defined(__BIG_ENDIAN_COMPUTER__)
# error "Endian is not specified."
#endif

#endif
