0
|
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 |
|