1Configuration options in libmng 2=============================== 3 4The library is fairly configurable through the use of a number of defines. 5Please note however that certain defines are for internal use only. 6The following list gives a summary of options that can be used externally to 7define the functionality of the library: 8 9======================================== 10 11#define MNG_BUILD_DLL 12 13This is used to indicate that a "standard" DLL should result from compiling 14the library. Please note the remarks in README.dll if you intend to work 15with the library as a DLL. The purpose of this option is to ensure that 16DLL builds have the same set of functions. 17 18#define MNG_BUILD_SO 19 20This is used to indicate that a "standard" shared library (SO) should result 21from a compilation. The purpose of this option is to ensure that all 22shared libraries generated this way will have the same set of functions. 23 24#define MNG_USE_DLL / #define MNG_USE_SO 25 26These should be used when including the library header in the compilation 27of an application to indicate that the compiler/linker must take the 28necessary steps to make the binary executable to use the standard DLL 29or shared library (SO). 30 31#define MNG_SKIP_ZLIB / #define MNG_SKIP_LCMS / #define MNG_SKIP_IJG6B 32 33Use these in conjunction with MNG_USE_DLL / MNG_USE_SO. This is useful if 34you only need the external definitions of the MNG library and not the others, 35which will speed up the compilation process. 36 37#define MNG_SUPPORT_FULL / #define MNG_SUPPORT_LC / #define MNG_SUPPORT_VLC 38 39These can be used to indicate the level of MNG spec compliance required. 40Currently only full MNG compliance is supported. 41 42#define MNG_SUPPORT_IJG6B 43 44This can be used to indicate if JNG support is required. This option will 45include the IJG JPEG-library. Note that MNG_SUPPORT_FULL will automatically 46set this option. Use this only if you need JNG support with MNG-(V)LC. 47 48#define MNG_FULL_CMS / #define MNG_GAMMA_ONLY / #define MNG_NO_CMS / 49#define MNG_APP_CMS 50 51These indicate the color-correction support level of the library. 52If you are on a platform that supports lcms (Little CMS by Marti Maria Saguar) 53then it is highly recommended to define MNG_FULL_CMS. 54If your platform has it's own CMS then select MNG_APP_CMS and be sure to 55include the appropriate callbacks in your app. 56In all other cases it is recommended to define MNG_GAMMA_ONLY. 57 58#define MNG_SUPPORT_READ / #define MNG_SUPPORT_WRITE / 59#define MNG_SUPPORT_DISPLAY 60 61These indicate the high-level support for reading, writing and/or 62displaying files. Note that in order to display a file, you'll need to read 63it first. (yes, really!) 64 65#define MNG_STORE_CHUNKS 66 67This indicates that the library should store chunk-information when reading 68a file. This information can then be processed through the 69MNG_ITERATE_CHUNKS() function. Note that you must specify this option if 70you want to create and write a new file. 71 72#define MNG_ACCESS_CHUNKS 73 74This is used to indicate that the app may need access to internally stored 75chunk information. MNG_STORE_CHUNKS must be defined as well for this option 76to function properly. 77 78#define MNG_INTERNAL_MEMMNGMT 79 80You can use this to have the library handle it's own memory allocation and 81deallocation through the "standard" memory functions. This option is turned 82off by default, which means your app must define the memory callbacks. 83 84#define MNG_ERROR_TELLTALE 85 86Set this on to allow human-readable error-messages to be included in the 87library and the error function and callback. 88 89#define MNG_BIGENDIAN_SUPPORTED 90 91This option should be used to indicate the hardware is based on big endian 92integers. 93 94#define MNG_SUPPORT_TRACE / #define MNG_TRACE_TELLTALE 95 96These two can be used when debugging an app. You'll need to have the trace 97callback setup also. This allows for a rather thorough investigation of the 98libraries function paths. 99 100======================================== 101 102Any other optional defines you may encounter are for internal use only. 103please do not specify them externally. In case of doubt, consult the 104support email lists. More info can be found on http://www.libmng.com 105