1 /***************************************************************************/
5 /* UNIX-specific configuration file (specification only). */
7 /* Copyright 1996-2000 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
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. */
16 /***************************************************************************/
19 /*************************************************************************/
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 */
27 /* Note however that if some specific modifications are needed, we */
28 /* advise you to place a modified copy in your build directory. */
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. */
34 /*************************************************************************/
41 /* Include the header file containing all developer build options */
42 #include <freetype/config/ftoption.h>
45 /*************************************************************************/
47 /* PLATFORM-SPECIFIC CONFIGURATION MACROS */
49 /* These macros can be toggled to suit a specific system. The current */
50 /* ones are defaults used to compile FreeType in an ANSI C environment */
51 /* (16bit compilers are also supported). Copy this file to your own */
52 /* `freetype/builds/<system>' directory, and edit it to port the engine. */
54 /*************************************************************************/
57 #define HAVE_UNISTD_H 0
58 #define HAVE_FCNTL_H 0
64 #define FT_SIZEOF_INT SIZEOF_INT
65 #define FT_SIZEOF_LONG SIZEOF_LONG
68 /* Preferred alignment of data */
69 #define FT_ALIGNMENT 8
72 /* UNUSED is a macro used to indicate that a given parameter is not used */
73 /* -- this is only used to get rid of unpleasant compiler warnings */
75 #define FT_UNUSED( arg ) ( (arg) = (arg) )
79 /*************************************************************************/
81 /* AUTOMATIC CONFIGURATION MACROS */
83 /* These macros are computed from the ones defined above. Don't touch */
84 /* their definition, unless you know precisely what you are doing. No */
85 /* porter should need to mess with them. */
87 /*************************************************************************/
90 /*************************************************************************/
94 /* Used to guarantee the size of some specific integers. */
96 typedef signed short FT_Int16;
97 typedef unsigned short FT_UInt16;
99 #if FT_SIZEOF_INT == 4
101 typedef signed int FT_Int32;
102 typedef unsigned int FT_UInt32;
104 #elif FT_SIZEOF_LONG == 4
106 typedef signed long FT_Int32;
107 typedef unsigned long FT_UInt32;
110 #error "no 32bit type found -- please check your configuration files"
113 #if FT_SIZEOF_LONG == 8
115 /* FT_LONG64 must be defined if a 64-bit type is available */
117 #define FT_INT64 long
122 /*************************************************************************/
124 /* Many compilers provide the non-ANSI `long long' 64-bit type. You can */
125 /* activate it by defining the FTCALC_USE_LONG_LONG macro in */
128 /* Note that this will produce many -ansi warnings during library */
129 /* compilation, and that in many cases, the generated code will be */
130 /* neither smaller nor faster! */
132 #ifdef FTCALC_USE_LONG_LONG
135 #define FT_INT64 long long
137 #endif /* FTCALC_USE_LONG_LONG */
138 #endif /* FT_SIZEOF_LONG == 8 */
141 #ifdef FT_MAKE_OPTION_SINGLE_OBJECT
142 #define LOCAL_DEF static
143 #define LOCAL_FUNC static
145 #define LOCAL_DEF extern
146 #define LOCAL_FUNC /* nothing */
149 #ifdef FT_MAKE_OPTION_SINGLE_LIBRARY_OBJECT
150 #define BASE_DEF( x ) static x
151 #define BASE_FUNC( x ) static x
153 #define BASE_DEF( x ) extern x
154 #define BASE_FUNC( x ) extern x
157 #ifndef FT_EXPORT_DEF
158 #define FT_EXPORT_DEF( x ) extern x
161 #ifndef FT_EXPORT_FUNC
162 #define FT_EXPORT_FUNC( x ) extern x
165 #ifndef FT_EXPORT_VAR
166 #define FT_EXPORT_VAR( x ) extern x
169 #endif /* FTCONFIG_H */