Build Macros


Back to Main Index

Build macros can be defined to control the compiling process of VortexGE,  these build macros are be defined inside "lib/vconfig.h". One may change those macros by manually editing the file or by (re-)running the configuration script ("./configure") in interactive mode.

(Re-)running "./configure" will overwrite these files :

with all the manual changes one has made in them.

Macros for Selecting the Video System to be Built In

__USE_X11_VIDEO__
Define this macro to compile the video environment with the X Window system.For now, since this is the only video system supported, this macro must be defined or VortexGE will not compile.
 
__USE_XF86VM__
Define this macro to use the xf86vm extension from the X server.
 
__USE_XSHM__
Define this macro to use the xshm extension from the X server.
 
__USE_XMU__
Define this macro to use the xmu extension from the X server.
 
__USE_DITHERING_FOR_8BPP__
Define this macro to enable dithering in 8 bpp display mode.
 
This macro will be always defined by the configuration script. If for some reason you do not want to use dithering in 8 bpp display mode, just remove this macro from the generated configuration header, "lib/VConfig.h"
 
Default values defined :
__USE_X11_VIDEO__
__USE_XF86VM__
__USE_XSHM__
__USE_XMU__
__USE_DITHERING_FOR_8BPP__

Macros for Selecting the Audio System to be Built In

__USE_ALSA_AUDIO__
Define this macro to compile the audio environment with ALSA support.
__USE_OSS_AUDIO__
Define this macro to compile the audio environment with OSS support.
__USE_TIM_MIDI__
Define this macro to compile the audio environment with libTiMidity support.
__USE_XF86VM__
Define this macro to use the xf86vm extension from the X server.
 
Default values defined :
__USE_ALSA_AUDIO__ (only if the appropriate header file and library are detected in the system)
__USE_OSS_AUDIO__
__USE_TIM_MIDI__
 
Users won't be asked if they want to enable or disable those audio supports, because all Linux distribution should still be able to build them (as long as the appropriate header and library files are installed in the system) even tough the corresponding audio system may actually not supported by the kernel/driver.
 
The dummy (NULL) audio and Midi system will be always built in.

Macros for Selecting the Appropriate Optimizations

__USE_QW_MEMOPS__
If "_USE_ASM_" is undefined, define this macro to use the (might be) faster QWORD memory transfer in "lib/System/MemoryOperations.h" otherwise the standard DWORD memory transfer should be used. If "__USE_ASM__" is defined, this macro will have no effect.
 
__USE_ASM__
Define this macro to use inline assembly for performance optimization. Once this macro is defined, it can be finely tuned for some specific processor using these macros :
__USE_MMX__ :to utilize MMX
__USE_SSE__ :to utilize SSE
__USE_SSE2__ :to utilize SSE 2
__USE_SSE3__ :to utilize SSE 3
__USE_3DNOW__:to utilize 3DNow!
 
If none of those macros are defined, plain 32-bit x86 assembly will be used.
 
If your system supports SSE, SSE2 or SSE3, you should also define the build macros for enabling SSE instead of just enabling MMX. On these computers some MMX operations, such as memory operations defined in "lib/System/ MemoryOperations.h" may perform even slower than plain 32-bit x86 assembly.
 
For SSE memory operations defined in "lib/System/MemoryOperations.h", there is one more option :
__USE_ALIGNED_MEMOPS__
by using this, you may gain more speed with memory operations defined in "System/MemoryOperations.h", however, the memory address used must be aligned to a 16-byte boundary or a segmentation fault will be occurred.
Default values defined :
__USE_ASM__
__USE_ALIGNED_MEMOPS__

Other Macros
__LIB_HC_MCTLG_PATH__
This macro will tell VortexGE where to find the library's internal message catalog directory, "libVGE.messages.cat". The path is hard-coded by the configuration script. Should you need to install VortexGE to a directory different from the selected one in the configuration process, the only way to tell the library the location of the catalog directory is by using the "VGE_MESSAGE_CATALOG_PATH" environment variable.
 
__USE_COLORED_MESSAGES__
Define this macro to colorize the output of message displayer functions (declared in "lib/Base/MessageDisplayer.h"), otherwise the standard black and white (B&W) output will be used.
 
Default values defined :
__LIB_HC_MCTLG_PATH__ "/absolute/path/to/lib/installation/directory"
__USE_COLORED_MESSAGES__
NOTE:
Some other macros will be also automatically defined/undefined by the configuration script (depending on the system configuration and the selected options), it is recommended not to change them.


Back to Main Index