X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=cmake%2Fconfig-ix.cmake;h=cb83eab2a5b63f9f54f05648f22e361009c07ea8;hb=3cf763dc7a9741c14432710943ab66b439562881;hp=9351f264b0ef5069c98e74a9c4f4ccd2fb717858;hpb=20f17149a8b158690c9ac72c03014b0d269da49c;p=oota-llvm.git diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index 9351f264b0e..cb83eab2a5b 100755 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -4,6 +4,11 @@ include(CheckSymbolExists) include(CheckFunctionExists) include(CheckCXXSourceCompiles) +if( UNIX AND NOT BEOS ) + # Used by check_symbol_exists: + set(CMAKE_REQUIRED_LIBRARIES m) +endif() + # Helper macros and functions macro(add_cxx_include result files) set(${result} "") @@ -62,7 +67,9 @@ check_include_file(sys/wait.h HAVE_SYS_WAIT_H) check_include_file(termios.h HAVE_TERMIOS_H) check_include_file(unistd.h HAVE_UNISTD_H) check_include_file(utime.h HAVE_UTIME_H) +check_include_file(valgrind/valgrind.h HAVE_VALGRIND_VALGRIND_H) check_include_file(windows.h HAVE_WINDOWS_H) +check_include_file(fenv.h HAVE_FENV_H) # library checks if( NOT LLVM_ON_WIN32 ) @@ -84,6 +91,7 @@ check_symbol_exists(isnan cmath HAVE_ISNAN_IN_CMATH) check_symbol_exists(isnan math.h HAVE_ISNAN_IN_MATH_H) check_symbol_exists(ceilf math.h HAVE_CEILF) check_symbol_exists(floorf math.h HAVE_FLOORF) +check_symbol_exists(nearbyintf math.h HAVE_NEARBYINTF) check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO) check_symbol_exists(malloc_zone_statistics malloc/malloc.h HAVE_MALLOC_ZONE_STATISTICS) @@ -126,6 +134,27 @@ endif() check_type_exists(uint64_t "${headers}" HAVE_UINT64_T) check_type_exists(u_int64_t "${headers}" HAVE_U_INT64_T) +# available programs checks +function(llvm_find_program name) + string(TOUPPER ${name} NAME) + find_program(LLVM_PATH_${NAME} ${name}) + mark_as_advanced(LLVM_PATH_${NAME}) + if(LLVM_PATH_${NAME}) + set(HAVE_${NAME} 1 CACHE INTERNAL "Is ${name} available ?") + mark_as_advanced(HAVE_${NAME}) + else(LLVM_PATH_${NAME}) + set(HAVE_${NAME} "" CACHE INTERNAL "Is ${name} available ?") + endif(LLVM_PATH_${NAME}) +endfunction() + +llvm_find_program(gv) +llvm_find_program(circo) +llvm_find_program(twopi) +llvm_find_program(neato) +llvm_find_program(fdp) +llvm_find_program(dot) +llvm_find_program(dotty) + # Define LLVM_MULTITHREADED if gcc atomic builtins exists. include(CheckAtomic) @@ -138,7 +167,9 @@ endif() include(GetTargetTriple) get_target_triple(LLVM_HOSTTRIPLE) -message(STATUS "LLVM_HOSTTRIPLE: ${LLVM_HOSTTRIPLE}") + +# FIXME: We don't distinguish the target and the host. :( +set(TARGET_TRIPLE "${LLVM_HOSTTRIPLE}") # Determine the native architecture. string(TOLOWER "${LLVM_TARGET_ARCH}" LLVM_NATIVE_ARCH) @@ -171,19 +202,22 @@ elseif (LLVM_NATIVE_ARCH MATCHES "xcore") elseif (LLVM_NATIVE_ARCH MATCHES "msp430") set(LLVM_NATIVE_ARCH MSP430) else () - message(STATUS + message(STATUS "Unknown architecture ${LLVM_NATIVE_ARCH}; lli will not JIT code") set(LLVM_NATIVE_ARCH) endif () - + if (LLVM_NATIVE_ARCH) list(FIND LLVM_TARGETS_TO_BUILD ${LLVM_NATIVE_ARCH} NATIVE_ARCH_IDX) if (NATIVE_ARCH_IDX EQUAL -1) - message(STATUS + message(STATUS "Native target ${LLVM_NATIVE_ARCH} is not selected; lli will not JIT code") set(LLVM_NATIVE_ARCH) else () message(STATUS "Native target architecture is ${LLVM_NATIVE_ARCH}") + set(LLVM_NATIVE_TARGET LLVMInitialize${LLVM_NATIVE_ARCH}Target) + set(LLVM_NATIVE_TARGETINFO LLVMInitialize${LLVM_NATIVE_ARCH}TargetInfo) + set(LLVM_NATIVE_ASMPRINTER LLVMInitialize${LLVM_NATIVE_ARCH}AsmPrinter) endif () endif() @@ -229,11 +263,18 @@ else( ENABLE_THREADS ) message(STATUS "Threads disabled.") endif() +set(LLVM_PREFIX ${CMAKE_INSTALL_PREFIX}) + 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/System/DataTypes.h.cmake ${LLVM_BINARY_DIR}/include/llvm/System/DataTypes.h