+# Configure the three LLVM configuration header files.
+configure_file(
+ ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/config.h.cmake
+ ${LLVM_BINARY_DIR}/include/llvm/Config/config.h)
+configure_file(
+ ${LLVM_MAIN_INCLUDE_DIR}/llvm/Config/llvm-config.h.cmake
+ ${LLVM_BINARY_DIR}/include/llvm/Config/llvm-config.h)
+configure_file(
+ ${LLVM_MAIN_INCLUDE_DIR}/llvm/Support/DataTypes.h.cmake
+ ${LLVM_BINARY_DIR}/include/llvm/Support/DataTypes.h)
+
+set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${LLVM_TOOLS_BINARY_DIR} )
+set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib )
+set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LLVM_BINARY_DIR}/lib )
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+include_directories( ${LLVM_BINARY_DIR}/include ${LLVM_MAIN_INCLUDE_DIR})
+
+if( ${CMAKE_SYSTEM_NAME} MATCHES FreeBSD )
+ # On FreeBSD, /usr/local/* is not used by default. In order to build LLVM
+ # with libxml2, iconv.h, etc., we must add /usr/local paths.
+ include_directories("/usr/local/include")
+ link_directories("/usr/local/lib")
+endif( ${CMAKE_SYSTEM_NAME} MATCHES FreeBSD )
+
+if( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include llvm/Support/Solaris.h")
+endif( ${CMAKE_SYSTEM_NAME} MATCHES SunOS )
+
+# Make sure we don't get -rdynamic in every binary. For those that need it,
+# use set_target_properties(target PROPERTIES ENABLE_EXPORTS 1)
+set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
+
+include(AddLLVM)
+include(TableGen)
+
+if( MINGW )
+ # People report that -O3 is unreliable on MinGW. The traditional
+ # build also uses -O2 for that reason:
+ llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")
+endif()
+
+# Put this before tblgen. Else we have a circular dependence.
+add_subdirectory(lib/Support)
+add_subdirectory(lib/TableGen)
+
+add_subdirectory(utils/TableGen)
+
+add_subdirectory(include/llvm)
+
+add_subdirectory(lib)
+
+add_subdirectory(utils/FileCheck)
+add_subdirectory(utils/FileUpdate)
+add_subdirectory(utils/count)
+add_subdirectory(utils/not)
+add_subdirectory(utils/llvm-lit)
+add_subdirectory(utils/yaml-bench)