# PPL options

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

config PPL_V_0_11_2
    bool
    prompt "0.11.2"
    select PPL_0_11

config PPL_V_0_11_1
    bool
    prompt "0.11.1"
    select PPL_0_11

config PPL_V_0_11
    bool
    prompt "0.11"
    select PPL_0_11

config PPL_V_0_10_2
    bool
    prompt "0.10.2"
    select PPL_NEEDS_FPERMISSIVE

endchoice

config PPL_VERSION
    string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "0.11.2" if PPL_V_0_11_2
    default "0.11.1" if PPL_V_0_11_1
    default "0.11" if PPL_V_0_11
    default "0.10.2" if PPL_V_0_10_2

# For PPL 0.10, we need -fpermissive to build on gcc 4.7+
# (even gcc-4.6+ ?)
config PPL_NEEDS_FPERMISSIVE
    bool

# For PPL 0.11, we need to pull libpwl if configured static
config PPL_0_11
    bool
    select PPL_NEEDS_LIBPWL if ! COMPLIBS_SHARED

config PPL_NEEDS_LIBPWL
    bool
