# D.U.M.A. - Detect Unintended Memory Access - Memory checker

## depends on ! BACKEND

## help D.U.M.A. - Detect Unintended Memory Access
## help A memory bound checker, with additional features.
## help Formerly known as Electric Fence.

config DUMA_A
    bool
    prompt "Build a static library"
    default y

config DUMA_SO
    bool
    prompt "Build a shared library"
    default y if SHARED_LIBS

choice
    bool
    prompt "D.U.M.A. version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW

config DUMA_V_2_5_15
    bool
    prompt "2_5_15"

config DUMA_V_2_5_14
    bool
    prompt "2_5_14 (OBSOLETE)"
    depends on OBSOLETE

config DUMA_V_2_5_12
    bool
    prompt "2_5_12 (OBSOLETE)"
    depends on OBSOLETE

config DUMA_V_2_5_8
    bool
    prompt "2_5_8 (OBSOLETE)"
    depends on OBSOLETE

config DUMA_V_2_5_1
    bool
    prompt "2_5_1 (OBSOLETE)"
    depends on OBSOLETE

endchoice

config DUMA_VERSION
    string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "2_5_15" if DUMA_V_2_5_15
    default "2_5_14" if DUMA_V_2_5_14
    default "2_5_12" if DUMA_V_2_5_12
    default "2_5_8" if DUMA_V_2_5_8
    default "2_5_1" if DUMA_V_2_5_1
