This file describes options that you can specify in comconfig.h (by the
#define command), in order to customize the compiled code. All of these
definitions are optional; default values will be used otherwise. (You can
also use -D switches for compiling to control them, too)
=== Implemented options ===
CONFIG_APPLICATION_ID
Application ID for SQLite database files (if not defined, then the
default value will be used). Should be a 32-bit integer represented in
decimal notation, as a string token (not as a numeric token).
CONFIG_DEFAULT_RESOURCES
If defined, read resource configuration from the specified file if
it cannot find the configuration file in the home directory.
CONFIG_GLOBAL_HASH_SIZE
Size of global hash table when reading class definition file. This must
be less than 65535.
CONFIG_LOCAL_HASH_SIZE
Size of local hash table when reading class definition file. This must
be less than 65535.
CONFIG_NO_PORTABLE
If defined, then portable mode by checking argv[0] is disabled. (It is
still possible to use portable mode by HEROMESH_PREFIX)
CONFIG_USING_32BIT_TIMESTAMPS
If defined, force use of 32-bit timestamps. (This is needed in order to
avoid compiler warnings on some systems, such as some versions of the
Raspberry Pi system. This option will be deprecated in year 2038, so
you should upgrade your system before that if possible.)
CONFIG_WITH_STACK_PROTECTION
If defined, allow stack protection to be included in the compiled code.
(Otherwise, the configuration options dealing with stack protection
will be ignored and will have no effect.) This requires that the GNU
__builtin_frame_address function is available. (Note: This feature does
not seem to work properly at this time. If you are able to fix it, then
please provide a patch.)
=== Unimplemented options ===
The below options are not implemented and are subject to being changed
in future when they are implemented.
CONFIG_ERROR_CHECKING
Define error checking level, where 9 is maximum. Lower numbers might
improve speed but may make the program crash in some cases and may also
cause security vulnerabilities.
CONFIG_LAUNCHER_PATH
If defined, then it is the full path to a file to execute if Free Hero
Mesh has been invoked with no command-line arguments, or if it is given
the flag to run the launcher program instead.
CONFIG_MULTIUSER_SCORES
(Meant for storing scores on a multiuser system, somehow)
CONFIG_OMIT_EDITOR
If defined, omit the level editor and picture editor.
CONFIG_OMIT_MUSIC
If defined, omit background music playback capabilities. (Even if this
is not defined, it can still be disabled at runtime.
CONFIG_OMIT_SOUND
If defined, omit all sound capabilities (including music). (Even if it
is not defined, it can still be disabled at runtime.)
CONFIG_PRIVATE_USERCACHE
If defined as a octal number, set the default file permissions of the
user cache database when creating it. (The user can still change them
afterward by using chmod.)
CONFIG_RANDOM_SOURCE
Device to read random numbers from instead of using the random number
generator built in to SQLite. (This will override the definition of the
SQL RANDOM() function if it is defined.)
CONFIG_USING_APPIMAGE
If defined, it will check the environment variables having to do with
AppImage and will be able to load the default resources from there, as
well as allow the configuration file to reference the AppImage directory.
CONFIG_USING_BSD_FUNCTIONS
If defined, use BSD functions (such as funopen) instead of GNU functions
(such as fopencookie), by adding emulations into the program. (It is
still necessary to use a C compiler with GNU extensions though, even if
the GNU library is not available.)
CONFIG_USING_SDL12_COMPAT
Define this if the program is to be compiled for use with the
"sdl12-compat" SDL compatibility layer. (This does not affect linking,
but it may change some parts of the program to improve compatibility.)
CONFIG_USING_SDLCL
Define this if the program is to be compiled for use with the "sdlcl"
SDL compatibility layer. (This does not affect linking, but it may change
some parts of the program to improve compatibility.)
CONFIG_USING_X86_BMI2
If defined, use PDEP and PEXT instructions. This only works on x86 and
only on some processor models. (Apparently this is fast on Intel but slow
on AMD, so it should not be used on AMD, even if it is available.)
CONFIG_WITH_VIDEO_RECORDING
If defined, then include code to implement video recording, which will
override some of the SDL functions (and some other functions), and might
make them more slowly even if the video recording is not enabled.