// -*- 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
# define LONGLONG long long
# ifdef USE_XERCESC
#  pragma link "XercesLib.lib"
# endif
# define __LITTLE_ENDIAN_COMPUTER__ 1
#endif

/* Default Charcode */
#if defined(_WIN32) /* VC */ || defined(__WIN32__) /* BCB */
# define DEFAULT_CHARSET "Shift_JIS"
# define __USING_SJIS__ 1 // Babel
#endif

#if defined(__linux__) || defined(__unix__)
# define DEFAULT_CHARSET "euc-jp"
# 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
