1/*
2 * Copyright (c) 1997
3 * Moscow Center for SPARC Technology
4 *
5 * Copyright (c) 1999
6 * Boris Fomitchev
7 *
8 * This material is provided "as is", with absolutely no warranty expressed
9 * or implied. Any use is at your own risk.
10 *
11 * Permission to use or copy this software for any purpose is hereby granted
12 * without fee, provided the above notices are retained on all copies.
13 * Permission to modify the code and to distribute modified code is granted,
14 * provided the above notices are retained, and a notice that the code was
15 * modified is included with the above copyright notice.
16 *
17 */
18
19/*
20 * Purpose of this file :
21 *
22 * To hold COMPILER-SPECIFIC portion of STLport settings.
23 * In general, user should not edit this file unless
24 * using the compiler not recognized below.
25 *
26 * If your compiler is not being recognized yet,
27 * please look for definitions of macros in stl_mycomp.h,
28 * copy stl_mycomp.h to stl_YOUR_COMPILER_NAME,
29 * adjust flags for your compiler, and add  <include config/stl_YOUR_COMPILER_NAME>
30 * to the secton controlled by unique macro defined internaly by your compiler.
31 *
32 * To change user-definable settings, please edit <user_config.h>
33 *
34 */
35
36#ifndef __stl_config__system_h
37#define __stl_config__system_h
38
39#if defined (__sun)
40#  include <stl/config/_solaris.h>
41#  if defined (__GNUC__)
42#    include <stl/config/_gcc.h>
43#  elif defined (__SUNPRO_CC) || defined (__SUNPRO_C)
44#    include <stl/config/_sunprocc.h>
45/*
46#  ifdef __KCC
47#    include <stl/config/_kai.h>
48#  endif
49*/
50#  elif defined (__APOGEE__)  /* Apogee 4.x */
51#    include <stl/config/_apcc.h>
52#  elif defined (__FCC_VERSION) /* Fujitsu Compiler, v4.0 assumed */
53#    include <stl/config/_fujitsu.h>
54#  endif
55#elif defined (__hpux)
56#  include <stl/config/_hpux.h>
57#  if defined (__GNUC__)
58#    include <stl/config/_gcc.h>
59#  elif defined (__HP_aCC)
60#    include <stl/config/_hpacc.h>
61#  endif
62#elif defined (__ANDROID__)
63/* Android mobile phone platform. Somewhat but not entirely GNU/Linux-like */
64#  include <stl/config/_android.h>
65#elif defined (linux) || defined (__linux__)
66#  include <stl/config/_linux.h>
67#  if defined (__BORLANDC__)
68#    include <stl/config/_bc.h> /* Borland C++ 0x570 */
69/* Intel's icc define __GNUC__! */
70#  elif defined (__INTEL_COMPILER)
71#    include <stl/config/_icc.h>
72#  elif defined (__GNUC__)
73#    include <stl/config/_gcc.h>
74#  endif
75/*
76#  ifdef __KCC
77#    include <stl/config/_kai.h>
78#  endif
79*/
80#elif defined (__FreeBSD__)
81#  include <stl/config/_freebsd.h>
82#  if defined (__GNUC__)
83#    include <stl/config/_gcc.h>
84#  endif
85#elif defined (__OpenBSD__)
86#  include <stl/config/_openbsd.h>
87#  if defined (__GNUC__)
88#    include <stl/config/_gcc.h>
89#  endif
90#elif defined (__sgi) /* IRIX? */
91#  define _STLP_PLATFORM "SGI Irix"
92#  if defined (__GNUC__)
93#    include <stl/config/_gcc.h>
94#  else
95#    include <stl/config/_sgi.h>
96#  endif
97#elif defined (__OS400__) /* AS/400 C++ */
98#  define _STLP_PLATFORM "OS 400"
99#  if defined (__GNUC__)
100#    include <stl/config/_gcc.h>
101#  else
102#    include <stl/config/_as400.h>
103#  endif
104#elif defined (_AIX)
105#  include <stl/config/_aix.h>
106#  if defined (__xlC__) || defined (__IBMC__) || defined ( __IBMCPP__ )
107     /* AIX xlC, Visual Age C++ , OS-390 C++ */
108#    include <stl/config/_ibm.h>
109#  endif
110#elif defined (_CRAY) /* Cray C++ 3.4 or 3.5 */
111#  define _STLP_PLATFORM "Cray"
112#  include <config/_cray.h>
113#elif defined (__DECCXX) || defined (__DECC)
114#  define _STLP_PLATFORM "DECC"
115#  ifdef __vms
116#    include <stl/config/_dec_vms.h>
117#  else
118#    include <stl/config/_dec.h>
119#  endif
120#elif defined (macintosh) || defined (_MAC)
121#  include <stl/config/_mac.h>
122#  if defined (__MWERKS__)
123#    include <stl/config/_mwerks.h>
124#  endif
125#elif defined (__APPLE__)
126#  include <stl/config/_macosx.h>
127#  ifdef __GNUC__
128#    include <stl/config/_gcc.h>
129#  endif
130#elif defined (__CYGWIN__)
131#  include <stl/config/_cygwin.h>
132#  if defined (__GNUC__)
133#    include <stl/config/_gcc.h>
134#  endif
135#elif defined (__MINGW32__)
136#  define _STLP_PLATFORM "MinGW"
137#  if defined (__GNUC__)
138#    include <stl/config/_gcc.h>
139#  endif
140#  include <stl/config/_windows.h>
141#elif defined (_WIN32) || defined (__WIN32) || defined (WIN32) || defined (__WIN32__) || \
142      defined (__WIN16) || defined (WIN16) || defined (_WIN16)
143#  if defined ( __BORLANDC__ )  /* Borland C++ / CodeGear C++ */
144#    include <stl/config/_bc.h>
145#  elif defined (__WATCOM_CPLUSPLUS__) || defined (__WATCOMC__)  /* Watcom C++ */
146#    include <stl/config/_watcom.h>
147#  elif defined (__COMO__) || defined (__COMO_VERSION_)
148#    include <stl/config/_como.h>
149#  elif defined (__DMC__)   /* Digital Mars C++ */
150#    include <stl/config/_dm.h>
151#  elif defined (__ICL) /* Intel reference compiler for Win */
152#    include <stl/config/_intel.h>
153#  elif defined (__MWERKS__)
154#    include <stl/config/_mwerks.h>
155#  elif defined (_MSC_VER) && (_MSC_VER >= 1200) && defined (UNDER_CE)
156     /* Microsoft eMbedded Visual C++ 3.0, 4.0 (.NET) */
157#    include <stl/config/_evc.h>
158#  elif defined (_MSC_VER)
159    /* Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0 */
160#    include <stl/config/_msvc.h>
161#  endif
162
163#  include <stl/config/_windows.h>
164#else
165#  error Unknown platform !!
166#endif
167
168#if !defined (_STLP_COMPILER)
169/* Unable to identify the compiler, issue error diagnostic.
170 * Edit <config/stl_mycomp.h> to set STLport up for your compiler. */
171#  include <stl/config/stl_mycomp.h>
172#endif
173
174#endif /* __stl_config__system_h */
175