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