# ltrace

## depends on ! BACKEND
##
## select LIBELF_TARGET
##
## help ltrace is a program that simply runs the specified command until it exits.
## help It intercepts and records the dynamic library calls which are called by
## help the executed process and the signals which are received by that process.
## help It can also intercept and print the system calls executed by the program.

choice
    bool
    prompt "ltrace version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW

config LTRACE_V_0_7_3
    bool
    prompt "0.7.3"

config LTRACE_V_0_5_3
    bool
    prompt "0.5.3"
    select LTRACE_0_5_3_or_later

config LTRACE_V_0_5_2
    bool
    prompt "0.5.2"

endchoice

config LTRACE_VERSION
    string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "0.7.3" if LTRACE_V_0_7_3
    default "0.5.3" if LTRACE_V_0_5_3
    default "0.5.2" if LTRACE_V_0_5_2

config LTRACE_0_5_3_or_later
    bool
