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
296