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