/* ************************************************************************** *//* * * *//* * project : libmng * *//* * file : libmng_conf.h copyright (c) G.Juyn 2000-2004 * *//* * version : 1.0.9 * *//* * * *//* * purpose : main configuration file * *//* * * *//* * author : G.Juyn * *//* * * *//* * comment : The configuration file. Change this to include/exclude * *//* * the options you want or do not want in libmng. * *//* * * *//* * changes : 0.5.2 - 06/02/2000 - G.Juyn * *//* * - separated configuration-options into this file * *//* * - changed to most likely configuration (?) * *//* * 0.5.2 - 06/03/2000 - G.Juyn * *//* * - changed options to create a standard so-library * *//* * with everything enabled * *//* * 0.5.2 - 06/04/2000 - G.Juyn * *//* * - changed options to create a standard win32-dll * *//* * with everything enabled * *//* * * *//* * 0.9.2 - 08/05/2000 - G.Juyn * *//* * - changed file-prefixes * *//* * * *//* * 0.9.3 - 08/12/2000 - G.Juyn * *//* * - added workaround for faulty PhotoShop iCCP chunk * *//* * 0.9.3 - 09/16/2000 - G.Juyn * *//* * - removed trace-options from default SO/DLL builds * *//* * * *//* * 1.0.4 - 06/22/2002 - G.Juyn * *//* * - B526138 - returned IJGSRC6B calling convention to * *//* * default for MSVC * *//* * * *//* * 1.0.5 - 09/14/2002 - G.Juyn * *//* * - added event handling for dynamic MNG * *//* * - added 'supports' call to check function availability * *//* * * *//* * 1.0.6 - 06/22/2002 - G.R-P * *//* * - added MNG_NO_INCLUDE_JNG conditional * *//* * - added MNG_SKIPCHUNK_evNT conditional * *//* * 1.0.6 - 07/14/2002 - G.R-P * *//* * - added MNG_NO_SUPPORT_FUNCQUERY conditional * *//* * * *//* * 1.0.7 - 03/07/2004 - G.R-P * *//* * - added MNG_VERSION_QUERY_SUPPORT_ conditional * *//* * * *//* * 1.0.9 - 05/12/2004 - G.Juyn * *//* * - clearified MNG_BIGENDIAN_SUPPORTED conditional * *//* * - added MNG_LITTLEENDIAN_SUPPORTED conditional * *//* * * *//* ************************************************************************** */#if defined(__BORLANDC__) && defined(MNG_STRICT_ANSI)#pragma option -A /* force ANSI-C */#endif#ifndef _libmng_conf_h_#define _libmng_conf_h_#ifdef MNG_MOZILLA_CFG#include "special\mozcfg\mozlibmngconf.h"#endif/* ************************************************************************** *//* * * *//* * User-selectable compile-time options * *//* * * *//* ************************************************************************** *//* enable exactly one(1) of the MNG-(sub)set selectors *//* use this to select which (sub)set of the MNG specification you wish to support *//* generally you'll want full support as the library provides it automatically for you! if you're really strung on memory-requirements you can opt to enable less support (but it's just NOT a good idea!) *//* NOTE that this isn't actually implemented yet */#if !defined(MNG_SUPPORT_FULL) && !defined(MNG_SUPPORT_LC) && !defined(MNG_SUPPORT_VLC)#define MNG_SUPPORT_FULL/* #define MNG_SUPPORT_LC *//* #define MNG_SUPPORT_VLC */#endif/* ************************************************************************** *//* enable JPEG support if required *//* use this to enable the JNG support routines *//* this requires an external jpeg package; currently only IJG's jpgsrc6b is supported! *//* NOTE that the IJG code can be either 8- or 12-bit (eg. not both); so choose the one you've defined in jconfig.h; if you don't know what the heck I'm talking about, just leave it at 8-bit support (thank you!) */#ifndef MNG_NO_INCLUDE_JNG#ifdef MNG_SUPPORT_FULL /* full support includes JNG */#define MNG_SUPPORT_IJG6B#endif#ifndef MNG_SUPPORT_IJG6B#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_SUPPORT_IJG6B#endif#endif#if defined(MNG_SUPPORT_IJG6B) && !defined(MNG_SUPPORT_JPEG8) && !defined(MNG_SUPPORT_JPEG12)#define MNG_SUPPORT_JPEG8/* #define MNG_SUPPORT_JPEG12 */#endif/* The following is required to export the IJG routines from the DLL in the Windows-standard calling convention; currently this only works for Borland C++ !!! */#if defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#if defined(MNG_SUPPORT_IJG6B) && defined(__BORLANDC__)#define MNG_DEFINE_JPEG_STDCALL#endif#endif#endif/* ************************************************************************** *//* enable required high-level functions *//* use this to select the high-level functions you require *//* if you only need to display a MNG, disable write support! *//* if you only need to examine a MNG, disable write & display support! *//* if you only need to copy a MNG, disable display support! *//* if you only need to create a MNG, disable read & display support! *//* NOTE that turning all options off will be very unuseful! */#if !defined(MNG_SUPPORT_READ) && !defined(MNG_SUPPORT_WRITE) && !defined(MNG_SUPPORT_DISPLAY)#define MNG_SUPPORT_READ#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_SUPPORT_WRITE#endif#define MNG_SUPPORT_DISPLAY#endif/* ************************************************************************** *//* enable chunk access functions *//* use this to select whether you need access to the individual chunks *//* useful if you want to examine a read MNG (you'll also need MNG_STORE_CHUNKS !)*//* required if you need to create & write a new MNG! */#ifndef MNG_ACCESS_CHUNKS#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_ACCESS_CHUNKS#endif#endif/* ************************************************************************** *//* enable exactly one(1) of the color-management functionality selectors *//* use this to select the level of automatic color support *//* MNG_FULL_CMS requires the lcms (little cms) external package ! *//* if you want your own app (or the OS) to handle color-management select MNG_APP_CMS */#define MNG_GAMMA_ONLY/* #define MNG_FULL_CMS *//* #define MNG_APP_CMS *//* ************************************************************************** *//* enable automatic dithering *//* use this if you need dithering support to convert high-resolution images to a low-resolution output-device *//* NOTE that this is not supported yet *//* #define MNG_AUTO_DITHER *//* ************************************************************************** *//* enable whether chunks should be stored for reference later *//* use this if you need to examine the chunks of a MNG you have read, or (re-)write a MNG you have read *//* turn this off if you want to reduce memory-consumption */#ifndef MNG_STORE_CHUNKS#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_STORE_CHUNKS#endif#endif/* ************************************************************************** *//* enable internal memory management (if your compiler supports it) *//* use this if your compiler supports the 'standard' memory functions (calloc & free), and you want the library to use these functions and not bother your app with memory-callbacks *//* #define MNG_INTERNAL_MEMMNGMT *//* ************************************************************************** *//* enable internal tracing-functionality (manual debugging purposes) *//* use this if you have trouble location bugs or problems *//* NOTE that you'll need to specify the trace callback function! *//* #define MNG_SUPPORT_TRACE *//* ************************************************************************** *//* enable extended error- and trace-telltaling *//* use this if you need explanatory messages with errors and/or tracing */#if !defined(MNG_ERROR_TELLTALE) && !defined(MNG_TRACE_TELLTALE)#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_ERROR_TELLTALE#define MNG_TRACE_TELLTALE#endif#endif/* ************************************************************************** *//* enable BIG/LITTLE endian optimizations *//* enable BIG if you're on an architecture that supports big-endian reads and writes that aren't word-aligned *//* according to reliable sources this only works for PowerPC (bigendian mode) and 680x0 *//* enable LITTLE if you're on an architecture that supports little-endian *//* when in doubt leave both off !!! *//* #define MNG_BIGENDIAN_SUPPORTED *//* #define MNG_LITTLEENDIAN_SUPPORTED *//* ************************************************************************** *//* enable 'version' functions */#if !defined(MNG_VERSION_QUERY_SUPPORT) && \ !defined(MNG_NO_VERSION_QUERY_SUPPORT)#define MNG_VERSION_QUERY_SUPPORT#endif/* enable 'supports' function *//* use this if you need to query the availability of functions at runtime; useful for apps that dynamically load the library and that need specific functions */#if !defined(MNG_NO_SUPPORT_FUNCQUERY) && !defined(MNG_SUPPORT_FUNCQUERY)#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || \ defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_SUPPORT_FUNCQUERY#endif#endif/* ************************************************************************** *//* enable dynamic MNG features *//* use this if you would like to have dynamic support for specifically designed MNGs; eg. this is useful for 'rollover' effects such as common on the world wide web */#ifndef MNG_SUPPORT_DYNAMICMNG#if defined(MNG_BUILD_SO) || defined(MNG_USE_SO) || defined(MNG_BUILD_DLL) || defined(MNG_USE_DLL)#define MNG_SUPPORT_DYNAMICMNG#endif#endif#ifndef MNG_SUPPORT_DYNAMICMNG#ifndef MNG_SKIPCHUNK_evNT#define MNG_SKIPCHUNK_evNT#endif#endif#ifdef MNG_INCLUDE_JNG#ifndef MNG_NO_ACCESS_JPEG#ifndef MNG_ACCESS_JPEG#define MNG_ACCESS_JPEG#endif#endif#endif#ifdef MNG_INCLUDE_ZLIB#ifndef MNG_NO_ACCESS_ZLIB#ifndef MNG_ACCESS_ZLIB#define MNG_ACCESS_ZLIB#endif#endif#endif/* ************************************************************************** *//* * * *//* * End of user-selectable compile-time options * *//* * * *//* ************************************************************************** */#endif /* _libmng_conf_h_ *//* ************************************************************************** *//* * end of file * *//* ************************************************************************** */