1 /*******************************************************************
3 * ft_conf.h (OS/2 version)
5 * High-level interface specification.
7 * Copyright 1996-1998 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.
17 * This file is used to contain the definition of several
18 * configuration-specific macros.
20 ******************************************************************/
22 /* we need the following because there are some typedefs in this file */
28 /**********************************************************************/
30 /* We begin by a series of macros that are automatically set by the */
31 /* 'configure' script on Unix. They must be set manually on OS/2, */
32 /* so here they are : */
34 /**********************************************************************/
38 /* Define to empty if the keyword "const" does not work. */
41 /* The number of bytes in a int. */
44 /* The number of bytes in a long. */
47 /* Define if you have the memcpy function. */
50 /* Define if you have the memmove function. */
53 /* Define if you have the <stdlib.h> header file. */
56 /* Define if you have the <fcntl.h> header file. */
59 /* Define if you have the <unistd.h> header file. */
62 /* Define if you need <conio.h> for console I/O functions. */
63 #if defined(__EMX__) || defined(__IBMC__)
67 /* Define if you have the valloc function. */
70 /* Define if you have the getpagesize function. */
71 #undef HAVE_GETPAGESIZE
73 /* Define if you have a working `mmap' system call. */
76 /**********************************************************************/
78 /* The following configuration macros can be tweaked manually by */
79 /* a developer to turn on or off certain features or options in the */
80 /* TrueType engine. This may be useful to tune it for specific */
83 /**********************************************************************/
86 /*************************************************************************/
87 /* Define this if the underlying operating system uses a different */
88 /* character width than 8bit for file names. You must then also supply */
89 /* a typedef declaration for defining 'TT_Text'. Default is off. */
91 /* #define HAVE_TT_TEXT */
94 /*************************************************************************/
95 /* Define this if you want to generate code to support engine extensions */
96 /* Default is on, but if you're satisfied by the basic services provided */
97 /* by the engine and need no extensions, undefine this configuration */
98 /* macro to save a few more bytes. */
100 #define TT_CONFIG_OPTION_EXTEND_ENGINE
103 /*************************************************************************/
104 /* Define this if you want to generate code to support gray-scaling, */
105 /* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can */
106 /* disable it if you don't need it. */
108 #define TT_CONFIG_OPTION_GRAY_SCALING
111 /*************************************************************************/
112 /* Define this if you want to completely disable the use of the bytecode */
113 /* interpreter. Doing so will produce a much smaller library, but the */
114 /* quality of the rendered glyphs will enormously suffer from this. */
116 /* This switch was introduced due to the Apple patents issue which */
117 /* emerged recently on the FreeType lists. We still do not have Apple's */
118 /* opinion on the subject and will change this as soon as we have. */
120 #undef TT_CONFIG_OPTION_NO_INTERPRETER
123 /*************************************************************************/
124 /* Define this if you want to use a big 'switch' statement within the */
125 /* bytecode interpreter. Because some non-optimizing compilers are not */
126 /* able to produce jump tables from such statements, undefining this */
127 /* configuration macro will generate the appropriate C jump table in */
128 /* ttinterp.c. If you use an optimizing compiler, you should leave it */
129 /* defined for better performance and code compactness.. */
131 #define TT_CONFIG_OPTION_INTERPRETER_SWITCH
134 /*************************************************************************/
135 /* Define this if you want to build a 'static' version of the TrueType */
136 /* bytecode interpreter. This will produce much bigger code, which */
137 /* _may_ be faster on some architectures.. */
139 /* Do NOT DEFINE THIS is you build a thread-safe version of the engine */
141 #undef TT_CONFIG_OPTION_STATIC_INTERPRETER
144 /*************************************************************************/
145 /* Define this if you want to build a 'static' version of the scan-line */
146 /* converter (the component which in charge of converting outlines into */
147 /* bitmaps). This will produce a bigger object file for "ttraster.c", */
148 /* which _may_ be faster on some architectures.. */
150 /* Do NOT DEFINE THIS is you build a thread-safe version of the engine */
152 #undef TT_CONFIG_OPTION_STATIC_RASTER
156 /*************************************************************************/
157 /* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */
158 /* version of the library. */
160 #undef TT_CONFIG_OPTION_THREAD_SAFE
163 /**********************************************************************/
165 /* The following macros are used to define the debug level, as well */
166 /* as individual tracing levels for each component. There are */
167 /* currently three modes of operation : */
169 /* - trace mode (define DEBUG_LEVEL_TRACE) */
171 /* The engine prints all error messages, as well as tracing */
172 /* ones, filtered by each component's level */
174 /* - debug mode (define DEBUG_LEVEL_ERROR) */
176 /* Disable tracing, but keeps error output and assertion */
179 /* - release mode (don't define anything) */
181 /* Don't include error-checking or tracing code in the */
182 /* engine's code. Ideal for releases. */
186 /* Each component's tracing level is defined in its own source. */
188 /**********************************************************************/
190 /* Define if you want to use the tracing debug mode */
191 #undef DEBUG_LEVEL_TRACE
193 /* Define if you want to use the error debug mode - ignored if */
194 /* DEBUG_LEVEL_TRACE is defined */
195 #undef DEBUG_LEVEL_ERROR
198 /**************************************************************************/
199 /* Definition of various integer sizes. These types are used by ttcalc */
200 /* and ttinterp (for the 64-bit integers) only.. */
204 typedef signed int TT_Int32
;
205 typedef unsigned int TT_Word32
;
207 #elif SIZEOF_LONG == 4
209 typedef signed long TT_Int32
;
210 typedef unsigned long TT_Word32
;
213 #error "no 32bit type found"
218 /* LONG64 must be defined when a 64-bit type is available */
219 /* INT64 must then be defined to this type.. */
225 /* GCC provides the non-ANSI 'long long' 64-bit type. You can activate */
226 /* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this */
227 /* will produce many -ansi warnings during library compilation. */
228 #ifdef TT_USE_LONG_LONG
231 #define INT64 long long
233 #endif /* TT_USE_LONG_LONG */
236 #endif /* FT_CONF_H */