+
+find_program(GOLD_EXECUTABLE NAMES ${LLVM_DEFAULT_TARGET_TRIPLE}-ld.gold ld.gold ${LLVM_DEFAULT_TARGET_TRIPLE}-ld ld DOC "The gold linker")
+set(LLVM_BINUTILS_INCDIR "" CACHE PATH
+ "PATH to binutils/include containing plugin-api.h for gold plugin.")
+
+if(APPLE)
+ find_program(LD64_EXECUTABLE NAMES ld DOC "The ld64 linker")
+endif()
+
+include(FindOCaml)
+include(AddOCaml)
+if(WIN32)
+ message(STATUS "OCaml bindings disabled.")
+else()
+ find_package(OCaml)
+ if( NOT OCAML_FOUND )
+ message(STATUS "OCaml bindings disabled.")
+ else()
+ if( OCAML_VERSION VERSION_LESS "4.00.0" )
+ message(STATUS "OCaml bindings disabled, need OCaml >=4.00.0.")
+ else()
+ find_ocamlfind_package(ctypes VERSION 0.4 OPTIONAL)
+ if( HAVE_OCAML_CTYPES )
+ message(STATUS "OCaml bindings enabled.")
+ find_ocamlfind_package(oUnit VERSION 2 OPTIONAL)
+ set(LLVM_BINDINGS "${LLVM_BINDINGS} ocaml")
+ else()
+ message(STATUS "OCaml bindings disabled, need ctypes >=0.4.")
+ endif()
+ endif()
+ endif()
+endif()
+
+string(REPLACE " " ";" LLVM_BINDINGS_LIST "${LLVM_BINDINGS}")