Index: test-suite/trunk/CMakeLists.txt =================================================================== --- test-suite/trunk/CMakeLists.txt +++ test-suite/trunk/CMakeLists.txt @@ -73,6 +73,7 @@ add_subdirectory(SingleSource) add_subdirectory(MultiSource) +add_subdirectory(External) # Produce lit.site.cfg configure_file("${CMAKE_SOURCE_DIR}/lit.site.cfg.in" "${CMAKE_BINARY_DIR}/lit.site.cfg") Index: test-suite/trunk/External/CMakeLists.txt =================================================================== --- test-suite/trunk/External/CMakeLists.txt +++ test-suite/trunk/External/CMakeLists.txt @@ -0,0 +1,30 @@ +set(TEST_SUITE_EXTERNALS_DIR "" CACHE PATH + "Directory containing test-suite external benchmark sources") + +# Find path containing an external benchmark and set PATHVAR to it. +# Specifically this: +# - Adds a CACHE variable for PATHVAR +# - If PATHVAR is unset set it to the first existing directory in this list: +# - ${TEST_SUITE_EXTERNALS_DIR}/${NAME} +# - ${CMAKE_SOURCE_DIR}/test-suite-externals/${NAME} +macro(llvm_externals_find PATHVAR NAME DESCRIPTION) + set(${PATHVAR} "" CACHE PATH "Directory containing ${DESCRIPTION} sourcecode") + if(TEST_SUITE_EXTERNALS_DIR AND NOT ${PATHVAR} AND + IS_DIRECTORY "${TEST_SUITE_EXTERNALS_DIR}/${NAME}") + set(${PATHVAR} "${TEST_SUITE_EXTERNALS_DIR}/${NAME}") + endif() + if(NOT ${PATHVAR} AND + IS_DIRECTORY "${CMAKE_SOURCE_DIR}/test-suite-externals/${NAME}") + set(${PATHVAR} "${CMAKE_SOURCE_DIR}/test-suite-externals/${NAME}") + endif() + if(${PATHVAR}) + message(STATUS "Found ${DESCRIPTION}: ${${PATHVAR}}") + endif() +endmacro() + +llvm_add_subdirectories( + HMMER + Nurbs + Povray + skidmarks10 +) Index: test-suite/trunk/External/HMMER/CMakeLists.txt =================================================================== --- test-suite/trunk/External/HMMER/CMakeLists.txt +++ test-suite/trunk/External/HMMER/CMakeLists.txt @@ -0,0 +1,19 @@ +llvm_externals_find(TEST_SUITE_HMMER_ROOT "hmmer" "HMMER 2.3.2") + +if(TEST_SUITE_HMMER_ROOT) + set(PROG hmmcalibrate) + FILE(GLOB Source ${TEST_SUITE_HMMER_ROOT}/*.c) + list(APPEND CPPFLAGS -DSSE2 -pthread) + list(APPEND LDFLAGS -pthread) + if(ARCH STREQUAL "PowerPC") + list(APPEND TARGET_FLAGS -maltivec) + list(APPEND LCCFLAGS -maltivec) + endif() + + if(DEFINED LARGE_PROBLEM_SIZE) + llvm_test_run(--fixed 400 --cpu 1 --num 200000 --seed 1158818515 ${TEST_SUITE_HMMER_ROOT}/globin.hmm) + else() + llvm_test_run(--fixed 400 --cpu 1 --num 80000 --seed 1158818515 ${TEST_SUITE_HMMER_ROOT}/globin.hmm) + endif() + llvm_multisource() +endif() Index: test-suite/trunk/External/Nurbs/CMakeLists.txt =================================================================== --- test-suite/trunk/External/Nurbs/CMakeLists.txt +++ test-suite/trunk/External/Nurbs/CMakeLists.txt @@ -0,0 +1,19 @@ +llvm_externals_find(TEST_SUITE_NURBS_ROOT "nurbs" "Nurbs") + +if(TEST_SUITE_NURBS_ROOT) + set(PROG nurbs) + file(GLOB Source ${TEST_SUITE_NURBS_ROOT}/*.cpp) + list(APPEND LDFLAGS -lstdc++) + list(APPEND LIBS -lstdc++) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + list(APPEND CPPFLAGS -DDWORD_IS_ULL) + endif() + + llvm_test_run(/k all timed /t 500 /vsteps 192 /usteps 192 /vcp 20 /ucp 20) + llvm_test_verify(${CMAKE_BINARY_DIR}/tools/fpcmp + %o + ${CMAKE_CURRENT_SOURCE_DIR}/nurbs.reference_output + ) + + llvm_multisource() +endif() Index: test-suite/trunk/External/Povray/CMakeLists.txt =================================================================== --- test-suite/trunk/External/Povray/CMakeLists.txt +++ test-suite/trunk/External/Povray/CMakeLists.txt @@ -0,0 +1,37 @@ +llvm_externals_find(TEST_SUITE_POVRAY_ROOT "povray31" "POV-Ray 3.1") + +if(TEST_SUITE_POVRAY_ROOT) + set(PROG povray) + + file(GLOB Source + ${TEST_SUITE_POVRAY_ROOT}/source/*.c + ${TEST_SUITE_POVRAY_ROOT}/source/libpng/*.c + ) + list(REMOVE_ITEM Source + ${TEST_SUITE_POVRAY_ROOT}/source/libpng/ansi2knr.c + ${TEST_SUITE_POVRAY_ROOT}/source/libpng/pngtest.c + ${TEST_SUITE_POVRAY_ROOT}/source/libpng/example.c + ) + + list(APPEND CPPFLAGS + -I${TEST_SUITE_POVRAY_ROOT}/source + -I${TEST_SUITE_POVRAY_ROOT}/source/unix + -I${TEST_SUITE_POVRAY_ROOT}/source/libpng + -DPREFIX='"${CMAKE_CURRENT_BINARY_DIR}"' + -DSYSCONFDIR='"${CMAKE_CURRENT_BINARY_DIR}"' + ) + list(APPEND LIBS -lz -lm) + list(APPEND LDFLAGS -lz -lm) + + llvm_test_run( + -I${TEST_SUITE_POVRAY_ROOT}/scenes/advanced/chess2.pov + -L${TEST_SUITE_POVRAY_ROOT}/include + -GA$<.junk -O- + ) + llvm_test_verify(${CMAKE_BINARY_DIR}/tools/fpcmp + %o + ${CMAKE_CURRENT_SOURCE_DIR}/povray.reference_output + ) + + llvm_multisource() +endif() Index: test-suite/trunk/External/skidmarks10/CMakeLists.txt =================================================================== --- test-suite/trunk/External/skidmarks10/CMakeLists.txt +++ test-suite/trunk/External/skidmarks10/CMakeLists.txt @@ -0,0 +1,17 @@ +llvm_externals_find(TEST_SUITE_SKIDMARKS10_ROOT "skidmarks10" "Skidmarks 10") + +if(TEST_SUITE_SKIDMARKS10_ROOT) + set(PROG skidmarks) + file(GLOB Source ${TEST_SUITE_SKIDMARKS10_ROOT}/source/*.c) + list(APPEND CPPFLAGS -I${TEST_SUITE_SKIDMARKS10_ROOT}/source) + if(ARCH STREQUAL "x86") + list(APPEND CPPFLAGS -msse3) + endif() + + llvm_test_run(0 ${TEST_SUITE_SKIDMARKS10_ROOT}/golden) + llvm_test_verify(${CMAKE_BINARY_DIR}/tools/fpcmp + %o + ${CMAKE_CURRENT_SOURCE_DIR}/skidmarks.reference_output + ) + llvm_multisource() +endif()