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