1 | /* ************************************************************************** */
|
---|
2 | /* * * */
|
---|
3 | /* * project : libmng * */
|
---|
4 | /* * file : libmng_conf.h copyright (c) G.Juyn 2000-2004 * */
|
---|
5 | /* * version : 1.0.9 * */
|
---|
6 | /* * * */
|
---|
7 | /* * purpose : main configuration file * */
|
---|
8 | /* * * */
|
---|
9 | /* * author : G.Juyn * */
|
---|
10 | /* * * */
|
---|
11 | /* * comment : The configuration file. Change this to include/exclude * */
|
---|
12 | /* * the options you want or do not want in libmng. * */
|
---|
13 | /* * * */
|
---|
14 | /* * changes : 0.5.2 - 06/02/2000 - G.Juyn * */
|
---|
15 | /* * - separated configuration-options into this file * */
|
---|
16 | /* * - changed to most likely configuration (?) * */
|
---|
17 | /* * 0.5.2 - 06/03/2000 - G.Juyn * */
|
---|
18 | /* * - changed options to create a standard so-library * */
|
---|
19 | /* * with everything enabled * */
|
---|
20 | /* * 0.5.2 - 06/04/2000 - G.Juyn * */
|
---|
21 | /* * - changed options to create a standard win32-dll * */
|
---|
22 | /* * with everything enabled * */
|
---|
23 | /* * * */
|
---|
24 | /* * 0.9.2 - 08/05/2000 - G.Juyn * */
|
---|
25 | /* * - changed file-prefixes * */
|
---|
26 | /* * * */
|
---|
27 | /* * 0.9.3 - 08/12/2000 - G.Juyn * */
|
---|
28 | /* * - added workaround for faulty PhotoShop iCCP chunk * */
|
---|
29 | /* * 0.9.3 - 09/16/2000 - G.Juyn * */
|
---|
30 | /* * - removed trace-options from default SO/DLL builds * */
|
---|
31 | /* * * */
|
---|
32 | /* * 1.0.4 - 06/22/2002 - G.Juyn * */
|
---|
33 | /* * - B526138 - returned IJGSRC6B calling convention to * */
|
---|
34 | /* * default for MSVC * */
|
---|
35 | /* * * */
|
---|
36 | /* * 1.0.5 - 09/14/2002 - G.Juyn * */
|
---|
37 | /* * - added event handling for dynamic MNG * */
|
---|
38 | /* * - added 'supports' call to check function availability * */
|
---|
39 | /* * * */
|
---|
40 | /* * 1.0.6 - 06/22/2002 - G.R-P * */
|
---|
41 | /* * - added MNG_NO_INCLUDE_JNG conditional * */
|
---|
42 | /* * - added MNG_SKIPCHUNK_evNT conditional * */
|
---|
43 | /* * 1.0.6 - 07/14/2002 - G.R-P * */
|
---|
44 | /* * - added MNG_NO_SUPPORT_FUNCQUERY conditional * */
|
---|
45 | /* * * */
|
---|
46 | /* * 1.0.7 - 03/07/2004 - G.R-P * */
|
---|
47 | /* * - added MNG_VERSION_QUERY_SUPPORT_ conditional * */
|
---|
48 | /* * * */
|
---|
49 | /* * 1.0.9 - 05/12/2004 - G.Juyn * */
|
---|
50 | /* * - clearified MNG_BIGENDIAN_SUPPORTED conditional * */
|
---|
51 | /* * - added MNG_LITTLEENDIAN_SUPPORTED conditional * */
|
---|
52 | /* * * */
|
---|
53 | /* ************************************************************************** */
|
---|
54 |
|
---|
55 |
|
---|
56 | #if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)
|
---|
57 | #pragma option -A /* force ANSI-C */
|
---|
58 | #endif
|
---|
59 |
|
---|
60 | #ifndef _libmng_conf_h_
|
---|
61 | #define _libmng_conf_h_
|
---|
62 |
|
---|
63 | #ifdef MNG_MOZILLA_CFG
|
---|
64 | #include "special\mozcfg\mozlibmngconf.h"
|
---|
65 | #endif
|
---|
66 |
|
---|
67 | /* ************************************************************************** */
|
---|
68 | /* * * */
|
---|
69 | /* * User-selectable compile-time options * */
|
---|
70 | /* * * */
|
---|
71 | /* ************************************************************************** */
|
---|
72 |
|
---|
73 | /* enable exactly one(1) of the MNG-(sub)set selectors */
|
---|
74 | /* use this to select which (sub)set of the MNG specification you wish
|
---|
75 | to support */
|
---|
76 | /* generally you'll want full support as the library provides it automatically
|
---|
77 | for you! if you're really strung on memory-requirements you can opt
|
---|
78 | to enable less support (but it's just NOT a good idea!) */
|
---|
79 | /* NOTE that this isn't actually implemented yet */
|
---|
80 |
|
---|
81 | #if !defined(MNG_SUPPORT_FULL) && !defined(MNG_SUPPORT_LC) && !defined(MNG_SUPPORT_VLC)
|
---|
82 | #define MNG_SUPPORT_FULL
|
---|
83 | /* #define MNG_SUPPORT_LC */
|
---|
84 | /* #define MNG_SUPPORT_VLC */
|
---|
85 | #endif
|
---|
86 |
|
---|
87 | /* ************************************************************************** */
|
---|
88 |
|
---|
89 | /* enable JPEG support if required */
|
---|
90 | /* use this to enable the JNG support routines */
|
---|
91 | /* this requires an external jpeg package;
|
---|
92 | currently only IJG's jpgsrc6b is supported! */
|
---|
93 | /* NOTE that the IJG code can be either 8- or 12-bit (eg. not both);
|
---|
94 | so choose the one you've defined in jconfig.h; if you don't know what
|
---|
95 | the heck I'm talking about, just leave it at 8-bit support (thank you!) */
|
---|
96 |
|
---|
97 | #ifndef MNG_NO_INCLUDE_JNG
|
---|
98 | #ifdef MNG_SUPPORT_FULL /* full support includes JNG */
|
---|
99 | #define MNG_SUPPORT_IJG6B
|
---|
100 | #endif
|
---|
101 |
|
---|
102 | #ifndef MNG_SUPPORT_IJG6B
|
---|
103 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
104 | #define MNG_SUPPORT_IJG6B
|
---|
105 | #endif
|
---|
106 | #endif
|
---|
107 |
|
---|
108 | #if defined(MNG_SUPPORT_IJG6B) && !defined(MNG_SUPPORT_JPEG8) && !defined(MNG_SUPPORT_JPEG12)
|
---|
109 | #define MNG_SUPPORT_JPEG8
|
---|
110 | /* #define MNG_SUPPORT_JPEG12 */
|
---|
111 | #endif
|
---|
112 |
|
---|
113 | /* The following is required to export the IJG routines from the DLL in
|
---|
114 | the Windows-standard calling convention;
|
---|
115 | currently this only works for Borland C++ !!! */
|
---|
116 |
|
---|
117 | #if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
118 | #if defined(MNG_SUPPORT_IJG6B) && defined(__BORLANDC__)
|
---|
119 | #define MNG_DEFINE_JPEG_STDCALL
|
---|
120 | #endif
|
---|
121 | #endif
|
---|
122 | #endif
|
---|
123 |
|
---|
124 | /* ************************************************************************** */
|
---|
125 |
|
---|
126 | /* enable required high-level functions */
|
---|
127 | /* use this to select the high-level functions you require */
|
---|
128 | /* if you only need to display a MNG, disable write support! */
|
---|
129 | /* if you only need to examine a MNG, disable write & display support! */
|
---|
130 | /* if you only need to copy a MNG, disable display support! */
|
---|
131 | /* if you only need to create a MNG, disable read & display support! */
|
---|
132 | /* NOTE that turning all options off will be very unuseful! */
|
---|
133 |
|
---|
134 | #if !defined(MNG_SUPPORT_READ) && !defined(MNG_SUPPORT_WRITE) && !defined(MNG_SUPPORT_DISPLAY)
|
---|
135 | #define MNG_SUPPORT_READ
|
---|
136 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
137 | #define MNG_SUPPORT_WRITE
|
---|
138 | #endif
|
---|
139 | #define MNG_SUPPORT_DISPLAY
|
---|
140 | #endif
|
---|
141 |
|
---|
142 | /* ************************************************************************** */
|
---|
143 |
|
---|
144 | /* enable chunk access functions */
|
---|
145 | /* use this to select whether you need access to the individual chunks */
|
---|
146 | /* useful if you want to examine a read MNG (you'll also need MNG_STORE_CHUNKS !)*/
|
---|
147 | /* required if you need to create & write a new MNG! */
|
---|
148 |
|
---|
149 | #ifndef MNG_ACCESS_CHUNKS
|
---|
150 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
151 | #define MNG_ACCESS_CHUNKS
|
---|
152 | #endif
|
---|
153 | #endif
|
---|
154 |
|
---|
155 | /* ************************************************************************** */
|
---|
156 |
|
---|
157 | /* enable exactly one(1) of the color-management functionality selectors */
|
---|
158 | /* use this to select the level of automatic color support */
|
---|
159 | /* MNG_FULL_CMS requires the lcms (little cms) external package ! */
|
---|
160 | /* if you want your own app (or the OS) to handle color-management
|
---|
161 | select MNG_APP_CMS */
|
---|
162 |
|
---|
163 | #define MNG_GAMMA_ONLY
|
---|
164 | /* #define MNG_FULL_CMS */
|
---|
165 | /* #define MNG_APP_CMS */
|
---|
166 |
|
---|
167 | /* ************************************************************************** */
|
---|
168 |
|
---|
169 | /* enable automatic dithering */
|
---|
170 | /* use this if you need dithering support to convert high-resolution
|
---|
171 | images to a low-resolution output-device */
|
---|
172 | /* NOTE that this is not supported yet */
|
---|
173 |
|
---|
174 | /* #define MNG_AUTO_DITHER */
|
---|
175 |
|
---|
176 | /* ************************************************************************** */
|
---|
177 |
|
---|
178 | /* enable whether chunks should be stored for reference later */
|
---|
179 | /* use this if you need to examine the chunks of a MNG you have read,
|
---|
180 | or (re-)write a MNG you have read */
|
---|
181 | /* turn this off if you want to reduce memory-consumption */
|
---|
182 |
|
---|
183 | #ifndef MNG_STORE_CHUNKS
|
---|
184 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
185 | #define MNG_STORE_CHUNKS
|
---|
186 | #endif
|
---|
187 | #endif
|
---|
188 |
|
---|
189 | /* ************************************************************************** */
|
---|
190 |
|
---|
191 | /* enable internal memory management (if your compiler supports it) */
|
---|
192 | /* use this if your compiler supports the 'standard' memory functions
|
---|
193 | (calloc & free), and you want the library to use these functions and not
|
---|
194 | bother your app with memory-callbacks */
|
---|
195 |
|
---|
196 | /* #define MNG_INTERNAL_MEMMNGMT */
|
---|
197 |
|
---|
198 | /* ************************************************************************** */
|
---|
199 |
|
---|
200 | /* enable internal tracing-functionality (manual debugging purposes) */
|
---|
201 | /* use this if you have trouble location bugs or problems */
|
---|
202 | /* NOTE that you'll need to specify the trace callback function! */
|
---|
203 |
|
---|
204 | /* #define MNG_SUPPORT_TRACE */
|
---|
205 |
|
---|
206 | /* ************************************************************************** */
|
---|
207 |
|
---|
208 | /* enable extended error- and trace-telltaling */
|
---|
209 | /* use this if you need explanatory messages with errors and/or tracing */
|
---|
210 |
|
---|
211 | #if !defined(MNG_ERROR_TELLTALE) && !defined(MNG_TRACE_TELLTALE)
|
---|
212 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
213 | #define MNG_ERROR_TELLTALE
|
---|
214 | #define MNG_TRACE_TELLTALE
|
---|
215 | #endif
|
---|
216 | #endif
|
---|
217 |
|
---|
218 | /* ************************************************************************** */
|
---|
219 |
|
---|
220 | /* enable BIG/LITTLE endian optimizations */
|
---|
221 | /* enable BIG if you're on an architecture that supports big-endian reads
|
---|
222 | and writes that aren't word-aligned */
|
---|
223 | /* according to reliable sources this only works for PowerPC (bigendian mode)
|
---|
224 | and 680x0 */
|
---|
225 | /* enable LITTLE if you're on an architecture that supports little-endian */
|
---|
226 | /* when in doubt leave both off !!! */
|
---|
227 |
|
---|
228 | /* #define MNG_BIGENDIAN_SUPPORTED */
|
---|
229 | /* #define MNG_LITTLEENDIAN_SUPPORTED */
|
---|
230 |
|
---|
231 | /* ************************************************************************** */
|
---|
232 | /* enable 'version' functions */
|
---|
233 | #if !defined(MNG_VERSION_QUERY_SUPPORT) && \
|
---|
234 | !defined(MNG_NO_VERSION_QUERY_SUPPORT)
|
---|
235 | #define MNG_VERSION_QUERY_SUPPORT
|
---|
236 | #endif
|
---|
237 |
|
---|
238 | /* enable 'supports' function */
|
---|
239 | /* use this if you need to query the availability of functions at runtime;
|
---|
240 | useful for apps that dynamically load the library and that need specific
|
---|
241 | functions */
|
---|
242 |
|
---|
243 | #if !defined(MNG_NO_SUPPORT_FUNCQUERY) && !defined(MNG_SUPPORT_FUNCQUERY)
|
---|
244 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || \
|
---|
245 | defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
246 | #define MNG_SUPPORT_FUNCQUERY
|
---|
247 | #endif
|
---|
248 | #endif
|
---|
249 |
|
---|
250 | /* ************************************************************************** */
|
---|
251 |
|
---|
252 | /* enable dynamic MNG features */
|
---|
253 | /* use this if you would like to have dynamic support for specifically
|
---|
254 | designed MNGs; eg. this is useful for 'rollover' effects such as common
|
---|
255 | on the world wide web */
|
---|
256 |
|
---|
257 | #ifndef MNG_SUPPORT_DYNAMICMNG
|
---|
258 | #if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)
|
---|
259 | #define MNG_SUPPORT_DYNAMICMNG
|
---|
260 | #endif
|
---|
261 | #endif
|
---|
262 | #ifndef MNG_SUPPORT_DYNAMICMNG
|
---|
263 | #ifndef MNG_SKIPCHUNK_evNT
|
---|
264 | #define MNG_SKIPCHUNK_evNT
|
---|
265 | #endif
|
---|
266 | #endif
|
---|
267 |
|
---|
268 | #ifdef MNG_INCLUDE_JNG
|
---|
269 | #ifndef MNG_NO_ACCESS_JPEG
|
---|
270 | #ifndef MNG_ACCESS_JPEG
|
---|
271 | #define MNG_ACCESS_JPEG
|
---|
272 | #endif
|
---|
273 | #endif
|
---|
274 | #endif
|
---|
275 |
|
---|
276 | #ifdef MNG_INCLUDE_ZLIB
|
---|
277 | #ifndef MNG_NO_ACCESS_ZLIB
|
---|
278 | #ifndef MNG_ACCESS_ZLIB
|
---|
279 | #define MNG_ACCESS_ZLIB
|
---|
280 | #endif
|
---|
281 | #endif
|
---|
282 | #endif
|
---|
283 |
|
---|
284 | /* ************************************************************************** */
|
---|
285 | /* * * */
|
---|
286 | /* * End of user-selectable compile-time options * */
|
---|
287 | /* * * */
|
---|
288 | /* ************************************************************************** */
|
---|
289 |
|
---|
290 | #endif /* _libmng_conf_h_ */
|
---|
291 |
|
---|
292 | /* ************************************************************************** */
|
---|
293 | /* * end of file * */
|
---|
294 | /* ************************************************************************** */
|
---|
295 |
|
---|