# Compiler options

menu "C compiler"

config CC_CORE_NEEDED
    bool

config CC_SUPPORT_CXX
    bool

config CC_SUPPORT_FORTRAN
    bool

config CC_SUPPORT_JAVA
    bool

config CC_SUPPORT_ADA
    bool

config CC_SUPPORT_D
    bool

config CC_SUPPORT_JIT
    bool

config CC_SUPPORT_OBJC
    bool

config CC_SUPPORT_OBJCXX
    bool

config CC_SUPPORT_GOLANG
    bool

source "config/gen/cc.in"

comment "Additional supported languages:"

config CC_LANG_CXX
    bool
    prompt "C++"
    depends on CC_SUPPORT_CXX
    help
      Enable building a C++ compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_FORTRAN
    bool
    prompt "Fortran"
    depends on CC_SUPPORT_FORTRAN
    help
      Enable building a FORTRAN compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_JIT
    bool
    prompt "JIT (EXPERIMENTAL)"
    depends on CC_SUPPORT_JIT
    depends on EXPERIMENTAL
    help
      Enable building the GCC JIT library.

      Only select this if you know that your specific version of the
      compiler supports the libgccjit.

if ! BARE_METAL

config CC_LANG_JAVA
    bool
    prompt "Java"
    depends on CC_SUPPORT_JAVA
    help
      Enable building a Java compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_ADA
    bool
    prompt "Ada (EXPERIMENTAL)"
    depends on CC_SUPPORT_ADA
    depends on EXPERIMENTAL
    help
      Enable building an Ada compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_D
    bool
    prompt "D (EXPERIMENTAL)"
    depends on CC_SUPPORT_D
    depends on EXPERIMENTAL
    help
      Enable building a D compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_OBJC
    bool
    prompt "Objective-C (EXPERIMENTAL)"
    depends on CC_SUPPORT_OBJC
    depends on EXPERIMENTAL
    help
      Enable building an Objective C compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_OBJCXX
    bool
    prompt "Objective-C++ (EXPERIMENTAL)"
    depends on EXPERIMENTAL
    depends on CC_SUPPORT_OBJCXX
    help
      Enable building an Objective C++ compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

config CC_LANG_GOLANG
    bool
    prompt "Go (EXPERIMENTAL)"
    depends on EXPERIMENTAL
    depends on CC_SUPPORT_GOLANG
    help
      Enable building a Go compiler.

      Only select this if you know that your specific version of the
      compiler supports this language.

endif # ! BARE_METAL

config CC_LANG_OTHERS
    string
    prompt "Other languages (EXPERIMENTAL)"
    default ""
    depends on EXPERIMENTAL
    help
      Enter here a comma-separated list of languages that you know your compiler
      supports, besides those listed above.

      Eg. gcc-4.1+ has a toy programming language, treelang. As it is not useful
      in real life, it is not available in the selection above.

endmenu
