Blame README.config

Packit 93f41a
Configuration options in libmng
Packit 93f41a
===============================
Packit 93f41a
Packit 93f41a
The library is fairly configurable through the use of a number of defines.
Packit 93f41a
Please note however that certain defines are for internal use only.
Packit 93f41a
The following list gives a summary of options that can be used externally to
Packit 93f41a
define the functionality of the library:
Packit 93f41a
Packit 93f41a
========================================
Packit 93f41a
Packit 93f41a
#define MNG_BUILD_DLL
Packit 93f41a
Packit 93f41a
This is used to indicate that a "standard" DLL should result from compiling
Packit 93f41a
the library. Please note the remarks in README.dll if you intend to work
Packit 93f41a
with the library as a DLL. The purpose of this option is to ensure that
Packit 93f41a
DLL builds have the same set of functions.
Packit 93f41a
Packit 93f41a
#define MNG_BUILD_SO
Packit 93f41a
Packit 93f41a
This is used to indicate that a "standard" shared library (SO) should result
Packit 93f41a
from a compilation. The purpose of this option is to ensure that all
Packit 93f41a
shared libraries generated this way will have the same set of functions.
Packit 93f41a
Packit 93f41a
#define MNG_USE_DLL / #define MNG_USE_SO
Packit 93f41a
Packit 93f41a
These should be used when including the library header in the compilation
Packit 93f41a
of an application to indicate that the compiler/linker must take the
Packit 93f41a
necessary steps to make the binary executable to use the standard DLL
Packit 93f41a
or shared library (SO).
Packit 93f41a
Packit 93f41a
#define MNG_SKIP_ZLIB / #define MNG_SKIP_LCMS / #define MNG_SKIP_IJG6B
Packit 93f41a
Packit 93f41a
Use these in conjunction with MNG_USE_DLL / MNG_USE_SO. This is useful if
Packit 93f41a
you only need the external definitions of the MNG library and not the others,
Packit 93f41a
which will speed up the compilation process.
Packit 93f41a
Packit 93f41a
#define MNG_SUPPORT_FULL / #define MNG_SUPPORT_LC / #define MNG_SUPPORT_VLC
Packit 93f41a
Packit 93f41a
These can be used to indicate the level of MNG spec compliance required.
Packit 93f41a
Currently only full MNG compliance is supported.
Packit 93f41a
Packit 93f41a
#define MNG_SUPPORT_IJG6B
Packit 93f41a
Packit 93f41a
This can be used to indicate if JNG support is required. This option will
Packit 93f41a
include the IJG JPEG-library. Note that MNG_SUPPORT_FULL will automatically
Packit 93f41a
set this option. Use this only if you need JNG support with MNG-(V)LC.
Packit 93f41a
Packit 93f41a
#define MNG_FULL_CMS / #define MNG_GAMMA_ONLY / #define MNG_NO_CMS /
Packit 93f41a
#define MNG_APP_CMS
Packit 93f41a
Packit 93f41a
These indicate the color-correction support level of the library.
Packit 93f41a
If you are on a platform that supports lcms (Little CMS by Marti Maria Saguar)
Packit 93f41a
then it is highly recommended to define MNG_FULL_CMS.
Packit 93f41a
If your platform has it's own CMS then select MNG_APP_CMS and be sure to
Packit 93f41a
include the appropriate callbacks in your app.
Packit 93f41a
In all other cases it is recommended to define MNG_GAMMA_ONLY.
Packit 93f41a
Packit 93f41a
#define MNG_SUPPORT_READ / #define MNG_SUPPORT_WRITE /
Packit 93f41a
#define MNG_SUPPORT_DISPLAY
Packit 93f41a
Packit 93f41a
These indicate the high-level support for reading, writing and/or
Packit 93f41a
displaying files. Note that in order to display a file, you'll need to read
Packit 93f41a
it first. (yes, really!)
Packit 93f41a
Packit 93f41a
#define MNG_STORE_CHUNKS
Packit 93f41a
Packit 93f41a
This indicates that the library should store chunk-information when reading
Packit 93f41a
a file. This information can then be processed through the
Packit 93f41a
MNG_ITERATE_CHUNKS() function. Note that you must specify this option if
Packit 93f41a
you want to create and write a new file.
Packit 93f41a
Packit 93f41a
#define MNG_ACCESS_CHUNKS
Packit 93f41a
Packit 93f41a
This is used to indicate that the app may need access to internally stored
Packit 93f41a
chunk information. MNG_STORE_CHUNKS must be defined as well for this option
Packit 93f41a
to function properly.
Packit 93f41a
Packit 93f41a
#define MNG_INTERNAL_MEMMNGMT
Packit 93f41a
Packit 93f41a
You can use this to have the library handle it's own memory allocation and
Packit 93f41a
deallocation through the "standard" memory functions. This option is turned
Packit 93f41a
off by default, which means your app must define the memory callbacks.
Packit 93f41a
Packit 93f41a
#define MNG_ERROR_TELLTALE
Packit 93f41a
Packit 93f41a
Set this on to allow human-readable error-messages to be included in the
Packit 93f41a
library and the error function and callback.
Packit 93f41a
Packit 93f41a
#define MNG_BIGENDIAN_SUPPORTED
Packit 93f41a
Packit 93f41a
This option should be used to indicate the hardware is based on big endian
Packit 93f41a
integers.
Packit 93f41a
Packit 93f41a
#define MNG_SUPPORT_TRACE / #define MNG_TRACE_TELLTALE
Packit 93f41a
Packit 93f41a
These two can be used when debugging an app. You'll need to have the trace
Packit 93f41a
callback setup also. This allows for a rather thorough investigation of the
Packit 93f41a
libraries function paths.
Packit 93f41a
Packit 93f41a
========================================
Packit 93f41a
Packit 93f41a
Any other optional defines you may encounter are for internal use only.
Packit 93f41a
please do not specify them externally. In case of doubt, consult the
Packit 93f41a
support email lists. More info can be found on http://www.libmng.com