5172
+ − 1
/***************************************************************************/
+ − 2
/* */
+ − 3
/* ftconfig.h */
+ − 4
/* */
+ − 5
/* VMS-specific configuration file (specification only). */
+ − 6
/* */
+ − 7
/* Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by */
+ − 8
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
+ − 9
/* */
+ − 10
/* This file is part of the FreeType project, and may only be used, */
+ − 11
/* modified, and distributed under the terms of the FreeType project */
+ − 12
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
+ − 13
/* this file you indicate that you have read the license and */
+ − 14
/* understand and accept it fully. */
+ − 15
/* */
+ − 16
/***************************************************************************/
+ − 17
+ − 18
+ − 19
/*************************************************************************/
+ − 20
/* */
+ − 21
/* This header file contains a number of macro definitions that are used */
+ − 22
/* by the rest of the engine. Most of the macros here are automatically */
+ − 23
/* determined at compile time, and you should not need to change it to */
+ − 24
/* port FreeType, except to compile the library with a non-ANSI */
+ − 25
/* compiler. */
+ − 26
/* */
+ − 27
/* Note however that if some specific modifications are needed, we */
+ − 28
/* advise you to place a modified copy in your build directory. */
+ − 29
/* */
+ − 30
/* The build directory is usually `freetype/builds/<system>', and */
+ − 31
/* contains system-specific files that are always included first when */
+ − 32
/* building the library. */
+ − 33
/* */
+ − 34
/*************************************************************************/
+ − 35
+ − 36
+ − 37
#ifndef __FTCONFIG_H__
+ − 38
#define __FTCONFIG_H__
+ − 39
+ − 40
+ − 41
/* Include the header file containing all developer build options */
+ − 42
#include <ft2build.h>
+ − 43
#include FT_CONFIG_OPTIONS_H
+ − 44
#include FT_CONFIG_STANDARD_LIBRARY_H
+ − 45
+ − 46
+ − 47
FT_BEGIN_HEADER
+ − 48
+ − 49
/*************************************************************************/
+ − 50
/* */
+ − 51
/* PLATFORM-SPECIFIC CONFIGURATION MACROS */
+ − 52
/* */
+ − 53
/* These macros can be toggled to suit a specific system. The current */
+ − 54
/* ones are defaults used to compile FreeType in an ANSI C environment */
+ − 55
/* (16bit compilers are also supported). Copy this file to your own */
+ − 56
/* `freetype/builds/<system>' directory, and edit it to port the engine. */
+ − 57
/* */
+ − 58
/*************************************************************************/
+ − 59
+ − 60
+ − 61
#define HAVE_UNISTD_H 1
+ − 62
#define HAVE_FCNTL_H 1
+ − 63
+ − 64
#define SIZEOF_INT 4
+ − 65
#define SIZEOF_LONG 4
+ − 66
+ − 67
#define FT_SIZEOF_INT 4
+ − 68
#define FT_SIZEOF_LONG 4
+ − 69
+ − 70
#define FT_CHAR_BIT 8
+ − 71
+ − 72
+ − 73
/* Preferred alignment of data */
+ − 74
#define FT_ALIGNMENT 8
+ − 75
+ − 76
+ − 77
/* FT_UNUSED is a macro used to indicate that a given parameter is not */
+ − 78
/* used -- this is only used to get rid of unpleasant compiler warnings */
+ − 79
#ifndef FT_UNUSED
+ − 80
#define FT_UNUSED( arg ) ( (arg) = (arg) )
+ − 81
#endif
+ − 82
+ − 83
+ − 84
/*************************************************************************/
+ − 85
/* */
+ − 86
/* AUTOMATIC CONFIGURATION MACROS */
+ − 87
/* */
+ − 88
/* These macros are computed from the ones defined above. Don't touch */
+ − 89
/* their definition, unless you know precisely what you are doing. No */
+ − 90
/* porter should need to mess with them. */
+ − 91
/* */
+ − 92
/*************************************************************************/
+ − 93
+ − 94
+ − 95
/*************************************************************************/
+ − 96
/* */
+ − 97
/* Mac support */
+ − 98
/* */
+ − 99
/* This is the only necessary change, so it is defined here instead */
+ − 100
/* providing a new configuration file. */
+ − 101
/* */
+ − 102
#if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \
+ − 103
( defined( __MWERKS__ ) && defined( macintosh ) )
+ − 104
/* no Carbon frameworks for 64bit 10.4.x */
+ − 105
#include "AvailabilityMacros.h"
+ − 106
#if defined( __LP64__ ) && \
+ − 107
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
+ − 108
#define DARWIN_NO_CARBON 1
+ − 109
#else
+ − 110
#define FT_MACINTOSH 1
+ − 111
#endif
+ − 112
+ − 113
#elif defined( __SC__ ) || defined( __MRC__ )
+ − 114
/* Classic MacOS compilers */
+ − 115
#include "ConditionalMacros.h"
+ − 116
#if TARGET_OS_MAC
+ − 117
#define FT_MACINTOSH 1
+ − 118
#endif
+ − 119
+ − 120
#endif
+ − 121
+ − 122
+ − 123
/*************************************************************************/
+ − 124
/* */
+ − 125
/* IntN types */
+ − 126
/* */
+ − 127
/* Used to guarantee the size of some specific integers. */
+ − 128
/* */
+ − 129
typedef signed short FT_Int16;
+ − 130
typedef unsigned short FT_UInt16;
+ − 131
+ − 132
#if FT_SIZEOF_INT == 4
+ − 133
+ − 134
typedef signed int FT_Int32;
+ − 135
typedef unsigned int FT_UInt32;
+ − 136
+ − 137
#elif FT_SIZEOF_LONG == 4
+ − 138
+ − 139
typedef signed long FT_Int32;
+ − 140
typedef unsigned long FT_UInt32;
+ − 141
+ − 142
#else
+ − 143
#error "no 32bit type found -- please check your configuration files"
+ − 144
#endif
+ − 145
+ − 146
/* look up an integer type that is at least 32 bits */
+ − 147
#if FT_SIZEOF_INT >= 4
+ − 148
+ − 149
typedef int FT_Fast;
+ − 150
typedef unsigned int FT_UFast;
+ − 151
+ − 152
#elif FT_SIZEOF_LONG >= 4
+ − 153
+ − 154
typedef long FT_Fast;
+ − 155
typedef unsigned long FT_UFast;
+ − 156
+ − 157
#endif
+ − 158
+ − 159
+ − 160
/* determine whether we have a 64-bit int type for platforms without */
+ − 161
/* Autoconf */
+ − 162
#if FT_SIZEOF_LONG == 8
+ − 163
+ − 164
/* FT_LONG64 must be defined if a 64-bit type is available */
+ − 165
#define FT_LONG64
+ − 166
#define FT_INT64 long
+ − 167
+ − 168
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
+ − 169
+ − 170
/* this compiler provides the __int64 type */
+ − 171
#define FT_LONG64
+ − 172
#define FT_INT64 __int64
+ − 173
+ − 174
#elif defined( __BORLANDC__ ) /* Borland C++ */
+ − 175
+ − 176
/* XXXX: We should probably check the value of __BORLANDC__ in order */
+ − 177
/* to test the compiler version. */
+ − 178
+ − 179
/* this compiler provides the __int64 type */
+ − 180
#define FT_LONG64
+ − 181
#define FT_INT64 __int64
+ − 182
+ − 183
#elif defined( __WATCOMC__ ) /* Watcom C++ */
+ − 184
+ − 185
/* Watcom doesn't provide 64-bit data types */
+ − 186
+ − 187
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
+ − 188
+ − 189
#define FT_LONG64
+ − 190
#define FT_INT64 long long int
+ − 191
+ − 192
#elif defined( __GNUC__ )
+ − 193
+ − 194
/* GCC provides the `long long' type */
+ − 195
#define FT_LONG64
+ − 196
#define FT_INT64 long long int
+ − 197
+ − 198
#endif /* FT_SIZEOF_LONG == 8 */
+ − 199
+ − 200
+ − 201
#define FT_BEGIN_STMNT do {
+ − 202
#define FT_END_STMNT } while ( 0 )
+ − 203
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
+ − 204
+ − 205
+ − 206
/*************************************************************************/
+ − 207
/* */
+ − 208
/* A 64-bit data type will create compilation problems if you compile */
+ − 209
/* in strict ANSI mode. To avoid them, we disable their use if */
+ − 210
/* __STDC__ is defined. You can however ignore this rule by */
+ − 211
/* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */
+ − 212
/* */
+ − 213
#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 )
+ − 214
+ − 215
#ifdef __STDC__
+ − 216
+ − 217
/* undefine the 64-bit macros in strict ANSI compilation mode */
+ − 218
#undef FT_LONG64
+ − 219
#undef FT_INT64
+ − 220
+ − 221
#endif /* __STDC__ */
+ − 222
+ − 223
#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */
+ − 224
+ − 225
+ − 226
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
+ − 227
+ − 228
#define FT_LOCAL( x ) static x
+ − 229
#define FT_LOCAL_DEF( x ) static x
+ − 230
+ − 231
#else
+ − 232
+ − 233
#ifdef __cplusplus
+ − 234
#define FT_LOCAL( x ) extern "C" x
+ − 235
#define FT_LOCAL_DEF( x ) extern "C" x
+ − 236
#else
+ − 237
#define FT_LOCAL( x ) extern x
+ − 238
#define FT_LOCAL_DEF( x ) x
+ − 239
#endif
+ − 240
+ − 241
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
+ − 242
+ − 243
+ − 244
#ifndef FT_BASE
+ − 245
+ − 246
#ifdef __cplusplus
+ − 247
#define FT_BASE( x ) extern "C" x
+ − 248
#else
+ − 249
#define FT_BASE( x ) extern x
+ − 250
#endif
+ − 251
+ − 252
#endif /* !FT_BASE */
+ − 253
+ − 254
+ − 255
#ifndef FT_BASE_DEF
+ − 256
+ − 257
#ifdef __cplusplus
+ − 258
#define FT_BASE_DEF( x ) extern "C" x
+ − 259
#else
+ − 260
#define FT_BASE_DEF( x ) extern x
+ − 261
#endif
+ − 262
+ − 263
#endif /* !FT_BASE_DEF */
+ − 264
+ − 265
+ − 266
#ifndef FT_EXPORT
+ − 267
+ − 268
#ifdef __cplusplus
+ − 269
#define FT_EXPORT( x ) extern "C" x
+ − 270
#else
+ − 271
#define FT_EXPORT( x ) extern x
+ − 272
#endif
+ − 273
+ − 274
#endif /* !FT_EXPORT */
+ − 275
+ − 276
+ − 277
#ifndef FT_EXPORT_DEF
+ − 278
+ − 279
#ifdef __cplusplus
+ − 280
#define FT_EXPORT_DEF( x ) extern "C" x
+ − 281
#else
+ − 282
#define FT_EXPORT_DEF( x ) extern x
+ − 283
#endif
+ − 284
+ − 285
#endif /* !FT_EXPORT_DEF */
+ − 286
+ − 287
+ − 288
#ifndef FT_EXPORT_VAR
+ − 289
+ − 290
#ifdef __cplusplus
+ − 291
#define FT_EXPORT_VAR( x ) extern "C" x
+ − 292
#else
+ − 293
#define FT_EXPORT_VAR( x ) extern x
+ − 294
#endif
+ − 295
+ − 296
#endif /* !FT_EXPORT_VAR */
+ − 297
+ − 298
/* The following macros are needed to compile the library with a */
+ − 299
/* C++ compiler and with 16bit compilers. */
+ − 300
/* */
+ − 301
+ − 302
/* This is special. Within C++, you must specify `extern "C"' for */
+ − 303
/* functions which are used via function pointers, and you also */
+ − 304
/* must do that for structures which contain function pointers to */
+ − 305
/* assure C linkage -- it's not possible to have (local) anonymous */
+ − 306
/* functions which are accessed by (global) function pointers. */
+ − 307
/* */
+ − 308
/* */
+ − 309
/* FT_CALLBACK_DEF is used to _define_ a callback function. */
+ − 310
/* */
+ − 311
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
+ − 312
/* contains pointers to callback functions. */
+ − 313
/* */
+ − 314
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
+ − 315
/* that contains pointers to callback functions. */
+ − 316
/* */
+ − 317
/* */
+ − 318
/* Some 16bit compilers have to redefine these macros to insert */
+ − 319
/* the infamous `_cdecl' or `__fastcall' declarations. */
+ − 320
/* */
+ − 321
#ifndef FT_CALLBACK_DEF
+ − 322
#ifdef __cplusplus
+ − 323
#define FT_CALLBACK_DEF( x ) extern "C" x
+ − 324
#else
+ − 325
#define FT_CALLBACK_DEF( x ) static x
+ − 326
#endif
+ − 327
#endif /* FT_CALLBACK_DEF */
+ − 328
+ − 329
#ifndef FT_CALLBACK_TABLE
+ − 330
#ifdef __cplusplus
+ − 331
#define FT_CALLBACK_TABLE extern "C"
+ − 332
#define FT_CALLBACK_TABLE_DEF extern "C"
+ − 333
#else
+ − 334
#define FT_CALLBACK_TABLE extern
+ − 335
#define FT_CALLBACK_TABLE_DEF /* nothing */
+ − 336
#endif
+ − 337
#endif /* FT_CALLBACK_TABLE */
+ − 338
+ − 339
+ − 340
FT_END_HEADER
+ − 341
+ − 342
+ − 343
#endif /* __FTCONFIG_H__ */
+ − 344
+ − 345
+ − 346
/* END */