Skip to content
Commits on Source (10)
# OpenMP projects should set the environment variable OMP_NUM_THREADS to a reasonably small value (say, 4).
dist: trusty
sudo : false
notifications:
slack: veg-igem:rqQd95zjTuZoRNElekQx2CLf
email:
recipients:
- spond@temple.edu
- steven@stevenweaver.org
- spond@temple.edu
- tuj86312@temple.edu
on_success: change
on_failure: always
branches:
only:
- master
- beta
env:
- METHOD_TEST=tests/hbltests/libv3/SLAC.wbf
- METHOD_TEST=tests/hbltests/libv3/SLAC-partitioned.wbf
- METHOD_TEST=tests/hbltests/libv3/FEL.wbf
- METHOD_TEST=tests/hbltests/libv3/MEME.wbf
- METHOD_TEST=tests/hbltests/libv3/MEME-partitioned.wbf
- METHOD_TEST=tests/hbltests/libv3/FUBAR.wbf
- METHOD_TEST=tests/hbltests/libv3/RELAX.wbf
- METHOD_TEST=tests/hbltests/libv3/aBSREL.wbf
- METHOD_TEST=tests/hbltests/libv3/BUSTED.wbf
- METHOD_TEST=tests/hbltests/libv3/LEISR.wbf
- METHOD_TEST=tests/hbltests/libv3/BGM.wbf
- develop
dist: xenial
sudo : false
language: c++
compiler:
- gcc
- clang
script:
- export OMP_NUM_THREADS=4
- travis_wait 60 eval $envSpecificTest
matrix:
include:
# ---- Run all the tests with gcc-7 ----
- os: linux
env:
- envSpecificTest="bash ./test_kwargs.sh"
addons:
apt:
sources:
......@@ -44,18 +38,301 @@ addons:
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="bash ./run_unit_tests.sh"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make HYPHYMP
- make HYPHYGTEST
- make
script:
- export OMP_NUM_THREADS=8
- export LD_LIBRARY_PATH=/usr/local/clang/lib:$LD_LIBRARY_PATH
- ./HYPHYGTEST
- ./HYPHYMP LIBPATH=`pwd`/res/ tests/hbltests/libv3/math.bf
- ./HYPHYMP LIBPATH=`pwd`/res/ tests/hbltests/libv3/iofunctions.bf
- ./HYPHYMP LIBPATH=`pwd`/res/ tests/hbltests/libv3/utilityfunctions.bf
- ./HYPHYMP LIBPATH=`pwd`/res/ $METHOD_TEST
- os: linux
env:
- envSpecificTest="export PATH=$PATH:$(pwd); cd; git clone https://gitlab.com/rdvelazquez/testiphy.git; cd testiphy; ./testiphy HYPHYMP"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP LIBPATH=`pwd`/res/ tests/hbltests/libv3/SLAC.wbf"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP SLAC --alignment ./tests/hbltests/libv3/data/partitioned.nex --branches Internal"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP FEL --alignment ./tests/hbltests/libv3/data/CD2.nex"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP MEME --alignment ./tests/hbltests/data/CD2.nex"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP MEME --alignment ./tests/hbltests/libv3/data/CD2.nex --branches GROUP1"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP FUBAR --alignment ./tests/hbltests/libv3/data/CD2.nex"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP LIBPATH=`pwd`/res/ tests/hbltests/libv3/RELAX.wbf"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP LIBPATH=`pwd`/res/ tests/hbltests/libv3/aBSREL.wbf"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP BUSTED --alignment ./tests/hbltests/data/CD2.nex --srv No --branches Internal"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./HYPHYMP BGM --alignment ./tests/hbltests/data/CD2.nex"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./hyphy fade --alignment ./tests/hbltests/data/CD2_AA.fna"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
- os: linux
env:
- envSpecificTest="./hyphy gard --alignment ./tests/hbltests/data/CD2.nex"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-7
- gcc-7
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- cmake .
- make
# ---- Just run the hbl unit tests with gcc-4, 5 and 6 ----
# gcc-4
- os: linux
env:
- envSpecificTest="bash ./run_unit_tests.sh"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-4.9
- gcc-4.9
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi
- cmake .
- make
# gcc-5
- os: linux
env:
- envSpecificTest="bash ./run_unit_tests.sh"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-5
- gcc-5
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-5" CC="gcc-5"; fi
- cmake .
- make
# gcc-6
- os: linux
env:
- envSpecificTest="bash ./run_unit_tests.sh"
addons:
apt:
sources:
- llvm-toolchain-precise
- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- g++-6
- gcc-6
install:
- if [ "$CXX" = "g++" ]; then export CXX="g++-6" CC="gcc-6"; fi
- cmake .
- make
cmake_minimum_required(VERSION 3.0.0)
cmake_minimum_required(VERSION 3.12)
project(HyPhy)
cmake_policy(VERSION 3.0.0)
cmake_policy(SET CMP0026 NEW)
#cmake_policy(SET CMP0026 OLD)
#cmake_policy(SET CMP0004 OLD)
set(CMAKE_CONFIGURATION_TYPES Release)
......@@ -20,12 +22,14 @@ macro(PCL_CHECK_FOR_SSE3)
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
#if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
set(CMAKE_REQUIRED_FLAGS "-msse3")
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
#endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
check_cxx_source_runs("
#include <pmmintrin.h>
#include <stdio.h>
int main ()
{
__m128d a, b;
......@@ -33,6 +37,7 @@ macro(PCL_CHECK_FOR_SSE3)
a = _mm_loadu_pd (vals);
b = _mm_hadd_pd (a,a);
_mm_storeu_pd (vals, b);
printf (\"%g\", vals[0]);
return (0);
}"
HAVE_SSE3_EXTENSIONS)
......@@ -46,12 +51,14 @@ macro(PCL_CHECK_FOR_AVX)
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_REQUIRED_FLAGS "-march=corei7-avx -mtune=corei7-avx")
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
#if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
set(CMAKE_REQUIRED_FLAGS "-mavx")
#endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
check_cxx_source_runs("
#include <immintrin.h>
#include <stdio.h>
int main ()
{
__m256d a, b;
......@@ -59,11 +66,43 @@ macro(PCL_CHECK_FOR_AVX)
a = _mm256_loadu_pd (vals);
b = _mm256_hadd_pd (a,a);
_mm256_storeu_pd (vals, b);
printf (\"%g\", vals[0]);
return (0);
}"
HAVE_AVX_EXTENSIONS)
endmacro(PCL_CHECK_FOR_AVX)
#-------------------------------------------------------------------------------
# FMA3 MACROS
#-------------------------------------------------------------------------------
macro(PCL_CHECK_FOR_FMA3)
include(CheckCXXSourceRuns)
set(CMAKE_REQUIRED_FLAGS)
#if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
set(CMAKE_REQUIRED_FLAGS "-mavx -mfma ")
#endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
check_cxx_source_runs("
#include <immintrin.h>
#include <stdio.h>
int main ()
{
__m256d a, b, c;
double vals[4] = {2.};
a = _mm256_loadu_pd (vals);
b = _mm256_loadu_pd (vals);
c = _mm256_loadu_pd (vals);
a = _mm256_fmadd_pd (a, b, c);
_mm256_storeu_pd (vals, a);
printf (\"%g\", vals[0]);
return 0;
}"
HAVE_FMA3)
endmacro(PCL_CHECK_FOR_FMA3)
#-------------------------------------------------------------------------------
# set the CMAKE_MODULE_PATH so we can import OpenCL
......@@ -71,21 +110,22 @@ endmacro(PCL_CHECK_FOR_AVX)
set(CMAKE_MODULE_PATH cmake)
set(HYPHY_VERSION 2.1)
#-------------------------------------------------------------------------------
# setup the files we'll be using
#-------------------------------------------------------------------------------
file(GLOB SRC_CORE src/core/*.cpp)
file(GLOB SRC_GTESTS tests/gtests/*.cpp)
file(GLOB SRC_NEW src/new/*.cpp)
file(GLOB SRC_CONTRIB src/contrib/*.cpp)
set(SRC_LINK src/lib/link/THyPhy.cpp)
set(SRC_SQLITE3 contrib/SQLite-3.8.2/sqlite3.c)
set(SRC_UNIXMAIN src/mains/unix.cpp)
set(SRC_UTILS src/utils/hyphyunixutils.cpp)
set(SRC_COMMON ${SRC_CORE} ${SRC_NEW} ${SRC_SQLITE3} ${SRC_UTILS})
set(SRC_COMMON ${SRC_CORE} ${SRC_NEW} ${SRC_SQLITE3} ${SRC_UTILS} ${SRC_CONTRIB})
set_source_files_properties(${SRC_CORE} ${SRC_NEW} {SRC_UTILS} PROPERTIES COMPILE_FLAGS "-Weffc++ -Wextra -Wall")
#-------------------------------------------------------------------------------
# make it fast, scotty
......@@ -95,6 +135,7 @@ set(DEFAULT_WARNING_FLAGS "-w")
set(DEFAULT_DEBUG_WARNING_FLAGS "-Wall -Wno-int-to-pointer-cast -Wno-conversion-null -Wno-sign-compare -Wno-maybe-uninitialized")
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
execute_process(
COMMAND ${CMAKE_CXX_COMPILER} -dumpversion
......@@ -108,7 +149,7 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
if(${GCC_VERSION} VERSION_LESS 6.0)
set(DEFAULT_COMPILE_FLAGS "-fsigned-char -O3 -std=gnu++14")
else(${GCC_VERSION} VERSION_LESS 6.0)
set(DEFAULT_COMPILE_FLAGS "-fsigned-char -O3")
set(DEFAULT_COMPILE_FLAGS "-fsigned-char -O3 -std=c++14")
endif(${GCC_VERSION} VERSION_LESS 6.0)
if(NOAVX)
......@@ -125,8 +166,13 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
else(NOAVX)
PCL_CHECK_FOR_AVX()
if(${HAVE_AVX_EXTENSIONS})
set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -march=corei7-avx -mtune=corei7-avx")
set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -march=native -mtune=native -mavx")
add_definitions (-D_SLKP_USE_AVX_INTRINSICS)
PCL_CHECK_FOR_FMA3()
if (${HAVE_FMA3})
set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -mfma")
add_definitions (-D_SLKP_USE_FMA3_INTRINSICS)
endif (${HAVE_FMA3})
else(${HAVE_AVX_EXTENSIONS})
PCL_CHECK_FOR_SSE3()
if(${HAVE_SSE3_EXTENSIONS})
......@@ -144,8 +190,13 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(DEFAULT_COMPILE_FLAGS "-fsigned-char -O3")
PCL_CHECK_FOR_AVX()
if(${HAVE_AVX_EXTENSIONS})
set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -march=corei7-avx -mtune=corei7-avx ")
set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -march=native -mtune=native -mavx")
add_definitions (-D_SLKP_USE_AVX_INTRINSICS)
PCL_CHECK_FOR_FMA3()
if (${HAVE_FMA3})
set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -mfma")
add_definitions (-D_SLKP_USE_FMA3_INTRINSICS)
endif (${HAVE_FMA3})
else(${HAVE_AVX_EXTENSIONS})
PCL_CHECK_FOR_SSE3()
if(${HAVE_SSE3_EXTENSIONS})
......@@ -155,7 +206,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
endif (${HAVE_AVX_EXTENSIONS})
set_property(
SOURCE ${SRC_CORE}
SOURCE ${SRC_CORE} ${SRC_NEW} ${SRC_UTILS} ${SRC_UNIXMAIN}
APPEND_STRING PROPERTY COMPILE_FLAGS " -std=c++14 "
)
endif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
......@@ -171,28 +222,18 @@ if(NOT DEFINED DEFAULT_LINK_FLAGS)
set(DEFAULT_LINK_FLAGS "")
endif(NOT DEFINED DEFAULT_LINK_FLAGS)
set(DEFAULT_LINK_FLAGS "${DEFAULT_LINK_FLAGS} ")
if(NOT DEFINED DEFAULT_WARNING_FLAGS)
set(DEFAULT_WARNING_FLAGS "")
endif(NOT DEFINED DEFAULT_WARNING_FLAGS)
include (CheckLibraryExists)
CHECK_LIBRARY_EXISTS( "libamdlibm.so" "amd_log" "" HAS_AMD_LIBM)
if(HAS_AMD_LIBM)
set(DEFAULT_LINK_FLAGS "${DEFAULT_LINK_FLAGS} -lamdlibm")
add_definitions(-D__USEAMDLOG__)
endif(HAS_AMD_LIBM)
#-------------------------------------------------------------------------------
# OpenMP support
#-------------------------------------------------------------------------------
find_package(OpenMP)
if(NOT ${OPENMP_FOUND})
set(OpenMP_CXX_FLAGS "")
endif(NOT ${OPENMP_FOUND})
#-------------------------------------------------------------------------------
# default installation prefix
#-------------------------------------------------------------------------------
......@@ -202,10 +243,11 @@ endif()
if(NOT DEFINED INSTALL_PREFIX)
set(INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE INTERNAL "Installation prefix" FORCE)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(DEFAULT_LIBRARIES pthread)
set(DEFAULT_LIBRARIES )
else(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(DEFAULT_LIBRARIES dl pthread)
set(DEFAULT_LIBRARIES dl)
endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
#-------------------------------------------------------------------------------
......@@ -214,9 +256,9 @@ endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
find_package(CURL)
if(${CURL_FOUND} AND NOT APPLE)
if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(DEFAULT_LIBRARIES pthread crypto curl ssl)
set(DEFAULT_LIBRARIES crypto curl ssl)
else(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
set(DEFAULT_LIBRARIES dl pthread crypto curl ssl)
set(DEFAULT_LIBRARIES dl crypto curl ssl)
endif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
add_definitions (-D__HYPHYCURL__)
endif(${CURL_FOUND} AND NOT APPLE)
......@@ -243,7 +285,15 @@ add_custom_target(uninstall
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
)
find_program(NODE npm)
if(NOT NODE)
message("Node not installed; API documentation will not be generated")
else(NOT NODE)
add_custom_target(
docs ALL
rm -rf ./docs && npm install -g documentation@4 && documentation build --polyglot -f md ./res/TemplateBatchFiles/libv3/**/*.bf -o ./docs.md
)
endif(NOT NODE)
#-------------------------------------------------------------------------------
......@@ -274,12 +324,10 @@ set_property(
#-------------------------------------------------------------------------------
add_definitions(-D_SLKP_LFENGINE_REWRITE_ -D__AFYP_REWRITE_BGM__)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
add_definitions(-D__HYPHY_64__)
endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
include_directories(
src/core/include
src/contrib
src/lib/Link src/new/include
contrib/SQLite-3.8.2 # SQLite
contrib/gtest-1.7.0/include
......@@ -296,57 +344,24 @@ install(DIRECTORY res/ DESTINATION lib/hyphy)
# HYPHYMP target
#-------------------------------------------------------------------------------
add_executable(
HYPHYMP
hyphy
${SRC_COMMON} ${SRC_UNIXMAIN}
)
target_link_libraries(HYPHYMP ${DEFAULT_LIBRARIES})
if(${OPENMP_FOUND})
target_link_libraries(hyphy PRIVATE ${DEFAULT_LIBRARIES} OpenMP::OpenMP_CXX)
else(${OPENMP_FOUND})
target_link_libraries(hyphy PRIVATE ${DEFAULT_LIBRARIES})
endif(${OPENMP_FOUND})
add_custom_target(MP DEPENDS HYPHYMP)
add_custom_target(MP DEPENDS hyphy)
install(
TARGETS HYPHYMP
TARGETS hyphy
RUNTIME DESTINATION bin
OPTIONAL
)
#-------------------------------------------------------------------------------
# hyphy OpenCL target
#-------------------------------------------------------------------------------
find_package(OpenCL)
if(${OPENCL_FOUND})
add_executable(
HYPHYOCL
EXCLUDE_FROM_ALL
${SRC_COMMON} ${SRC_UNIXMAIN} ${CMAKE_CURRENT_BINARY_DIR}/src/ocl/opencl_kernels.h
)
include_directories(${OPENCL_INCLUDE_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/src/ocl)
target_link_libraries(HYPHYOCL ${DEFAULT_LIBRARIES} ${OPENCL_LIBRARIES})
add_custom_target(OCL DEPENDS HYPHYOCL)
set_property(
TARGET HYPHYOCL
APPEND PROPERTY COMPILE_DEFINITIONS __MP__ __MP2__ __UNIX__ _HY_GPU_EXAMPLE_CALCULATOR MDSOCL
)
set_target_properties(
HYPHYOCL
PROPERTIES
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_WARNING_FLAGS}"
LINK_FLAGS "${DEFAULT_LINK_FLAGS}"
)
add_executable(
cl2hdr
EXCLUDE_FROM_ALL
contrib/cl2hdr.c
)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/src/ocl/opencl_kernels.h
COMMAND cl2hdr ${CMAKE_CURRENT_SOURCE_DIR}/src/ocl/opencl_kernels.cl ${CMAKE_CURRENT_BINARY_DIR}/src/ocl/opencl_kernels.h
DEPENDS cl2hdr ${CMAKE_CURRENT_SOURCE_DIR}/src/ocl/opencl_kernels.cl
)
endif(${OPENCL_FOUND})
#-------------------------------------------------------------------------------
......@@ -358,12 +373,17 @@ if(${MPI_FOUND})
add_executable(
HYPHYMPI
EXCLUDE_FROM_ALL
${SRC_COMMON} ${SRC_UNIXMAIN}
)
include_directories(${MPI_INCLUDE_PATH})
if(${OPENMP_FOUND})
target_link_libraries(HYPHYMPI ${DEFAULT_LIBRARIES} ${MPI_LIBRARIES} OpenMP::OpenMP_CXX)
else(${OPENMP_FOUND})
target_link_libraries(HYPHYMPI ${DEFAULT_LIBRARIES} ${MPI_LIBRARIES})
endif(${OPENMP_FOUND})
install(
TARGETS HYPHYMPI
......@@ -379,14 +399,73 @@ if(${MPI_FOUND})
APPEND PROPERTY COMPILE_DEFINITIONS __HYPHYMPI__ __UNIX__ _HYPHY_LIBDIRECTORY_="${CMAKE_INSTALL_PREFIX}/lib/hyphy"
)
message ("${DEFAULT_LINK_FLAGS} ${MPI_LINK_FLAGS} ${OpenMP_CXX_FLAGS}")
set_target_properties(
HYPHYMPI
PROPERTIES
if(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_WARNING_FLAGS} ${MPI_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS}"
LINK_FLAGS "${DEFAULT_LINK_FLAGS} ${MPI_LINK_FLAGS} ${OpenMP_CXX_FLAGS}"
else(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_WARNING_FLAGS} ${MPI_COMPILE_FLAGS}"
LINK_FLAGS "${DEFAULT_LINK_FLAGS} ${MPI_LINK_FLAGS}"
endif(${OPENMP_FOUND})
)
endif(${MPI_FOUND})
#-------------------------------------------------------------------------------
# hyphy profile target
#-------------------------------------------------------------------------------
add_executable(
HYPHY-PROFILE
EXCLUDE_FROM_ALL
${SRC_COMMON} ${SRC_UNIXMAIN}
)
if(${OPENMP_FOUND})
target_link_libraries(HYPHY-PROFILE ${DEFAULT_LIBRARIES} OpenMP::OpenMP_CXX)
else(${OPENMP_FOUND})
target_link_libraries(HYPHY-PROFILE ${DEFAULT_LIBRARIES})
endif(${OPENMP_FOUND})
add_custom_target(PROFILE DEPENDS HYPHY-PROFILE)
set_target_properties(
HYPHY-PROFILE
PROPERTIES
if(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS} -g -fprofile-instr-generate -fcoverage-mapping "
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS} -g -fprofile-instr-generate "
else(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS}-g -fprofile-instr-generate -fcoverage-mapping "
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} -g -fprofile-instr-generate "
endif(${OPENMP_FOUND})
)
#-------------------------------------------------------------------------------
# hyphy profile target
#-------------------------------------------------------------------------------
add_executable(
HYPHY-GPERF
EXCLUDE_FROM_ALL
${SRC_COMMON} ${SRC_UNIXMAIN}
)
target_link_libraries(HYPHY-PROFILE ${DEFAULT_LIBRARIES})
add_custom_target(GPERF DEPENDS HYPHY-GPERF)
set_target_properties(
HYPHY-GPERF
PROPERTIES
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -g "
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} -g -L/usr/local/Cellar/gperftools/2.7/lib/ -lprofiler -ltcmalloc "
endif(${OPENMP_FOUND})
)
#-------------------------------------------------------------------------------
# hyphy debug target
......@@ -397,7 +476,12 @@ add_executable(
${SRC_COMMON} ${SRC_UNIXMAIN}
)
if(${OPENMP_FOUND})
target_link_libraries(HYPHYDEBUG ${DEFAULT_LIBRARIES} OpenMP::OpenMP_CXX)
else(${OPENMP_FOUND})
target_link_libraries(HYPHYDEBUG ${DEFAULT_LIBRARIES})
endif(${OPENMP_FOUND})
add_custom_target(DEBUG DEPENDS HYPHYDEBUG)
......@@ -405,8 +489,13 @@ add_custom_target(DEBUG DEPENDS HYPHYDEBUG)
set_target_properties(
HYPHYDEBUG
PROPERTIES
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage -pg -O0 "
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage -pg -O0 "
if(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -g -fsanitize=address -fsanitize=leak -O0 "
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS} -g -fsanitize=address -O0 "
else(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -g -fsanitize=address -fsanitize=leak -O0 "
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} -g -fsanitize=address -O0 "
endif(${OPENMP_FOUND})
)
......@@ -430,8 +519,13 @@ set_property(
set_target_properties(
HYPHYGTEST
PROPERTIES
if(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
else(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
endif(${OPENMP_FOUND})
)
......@@ -441,30 +535,47 @@ set_target_properties(
if(UNIX)
set_property(
TARGET HYPHYMP HYPHYGTEST HYPHYDEBUG
TARGET hyphy HYPHYGTEST HYPHYDEBUG HYPHY-PROFILE HYPHY-GPERF
APPEND PROPERTY COMPILE_DEFINITIONS __UNIX__
)
endif(UNIX)
set_property(
TARGET HYPHYMP
TARGET hyphy
APPEND PROPERTY COMPILE_DEFINITIONS __MP__ __MP2__
)
set_property(
TARGET HYPHYMP HYPHYGTEST HYPHYDEBUG
TARGET hyphy HYPHYGTEST HYPHYDEBUG
APPEND PROPERTY COMPILE_DEFINITIONS _HYPHY_LIBDIRECTORY_="${CMAKE_INSTALL_PREFIX}/lib/hyphy"
)
set_property(
TARGET hyphy HYPHYGTEST HYPHYDEBUG HYPHY-PROFILE
APPEND PROPERTY COMPILE_DEFINITIONS _HYPHY_LIBDIRECTORY_="${CMAKE_INSTALL_PREFIX}/lib/hyphy"
)
set_property(
TARGET HYPHYDEBUG HYPHYGTEST
APPEND PROPERTY COMPILE_DEFINITIONS __HYPHYDEBUG__
)
set_target_properties(
HYPHYMP
hyphy
PROPERTIES
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_WARNING_FLAGS} ${OpenMP_CXX_FLAGS}"
LINK_FLAGS "${DEFAULT_LINK_FLAGS} ${OpenMP_CXX_FLAGS}"
if(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -g "
LINK_FLAGS "${DEFAULT_LINK_FLAGS} ${OpenMP_CXX_FLAGS} -g "
else(${OPENMP_FOUND})
COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_WARNING_FLAGS} -g "
LINK_FLAGS "${DEFAULT_LINK_FLAGS} -g "
endif(${OPENMP_FOUND})
)
macro(makeLink src dest target)
add_custom_command(TARGET ${target} POST_BUILD
COMMAND ln -sf ${dest} ${src} DEPENDS ${dest} COMMENT "mklink ${src} -> ${dest}")
endmacro()
makeLink(HYPHYMP hyphy hyphy)
......@@ -29,7 +29,11 @@ Prefix variables that are meant to be private or auxiliary with an underscore, a
### Functions, classes
Capital case, as in `ComputeExpression()` or `VariableContainer` (class).
Capital case, as in `ComputeExpression()` or `VariableContainer` (class). Prefix the names of *auxiliary* classes and types with an `_`.
### Simple types
Types such as enums, structs, and typedefs should prefixed with `hy` and followed by capital case identifiers, e.g. `hyFloat`
#### Cheap functions
......@@ -39,6 +43,10 @@ If a function is *cheap* to call (i.e. don't worry about caching the result), na
Capital case prefixed with a lower case `k`, as in `kHarvestFrequenciesResolveAmbiguities`
### Bit-flags
Capital case prefixed with `f`, as in `fSearchCaseSensitive`
### Environment variables (HBL only)
All capitals with underscore-separated words, as in `LIKELIHOOD_FUNCTION_EXPORT_FORMAT`
HyPhy - Hypothesis testing using Phylogenies
============================================
# HyPhy - Hypothesis testing using Phylogenies
Introduction
------------
HyPhy is an open-source software package for the analysis of genetic sequences using techniques in phylogenetics, molecular evolution, and machine learning. It features a complete graphical user interface (GUI) and a rich scripting language for limitless customization of analyses. Additionally, HyPhy features support for parallel computing environments (via message passing interface (MPI)) and it can be compiled as a shared library and called from other programming environments such as Python and R.
HyPhy is an open-source software package for the analysis of genetic sequences using techniques in phylogenetics, molecular evolution, and machine learning. It features a complete graphical user interface (GUI) and a rich scripting language for limitless customization of analyses. Additionally, HyPhy features support for parallel computing environments (via message passing interface (MPI)) and it can be compiled as a shared library and called from other programming environments such as Python and R. HyPhy is the computational backbone powering datamonkey.org. Additional information is available at hyphy.org.
Requirements
------------
* cmake >= 3.0
* gcc >= 4.9
* libcurl
## Quick Start
#### Install
`conda install hyphy`
#### Run with Command Line Arguments
`hyphy <method_name> --alignment <path_to_alignment_file> <additional_method_specific_arguments>`
+ _`<method_name>` is the name of the analysis you wish to run (can be: absrel, bgm, busted, fade, fel, fubar, gard, meme, relax or slac)_
+ _`<path_to_alignment_file>` is the relative or absolute path to a fasta, nexus or phylib file containing an alignment and tree_
+ _A list of the available `<additional_method_specific_arguments>` can be seen by running `hyphy <method_name> --help`_
Installation
------------
or
Hyphy depends on CMake for its build system.
#### Run in Interactive Mode
`hyphy -i`
To install, make sure you have CMake >3.0 installed. Hyphy is dependent on other development libraries like
libcurl and libpthread. Libcurl requires development libraries such as crypto++ and openssl ( or gnutls depending on your configuration)
On Ubuntu these are libcurl-dev, libcrypto++-dev and libssl-dev.
## Building from Source
You can download a specific release from this repository or if you prefer the master branch simply
clone the repo with
#### Requirements
* cmake >= 3.12
* gcc >= 4.9
* libcurl
* libpthread
* openmp (can be installed on mac via `brew install libomp`)
#### Download
You can download a specific release [here](https://github.com/veg/hyphy/releases) or clone this repo with
`git clone https://github.com/veg/hyphy.git`
Change your directory to the newly cloned directory
Change your directory to the downloaded/cloned directory
`cd hyphy`
Configure the project from the source directory using CMake.
#### Build
`cmake .`
If you prefer to use other build systems, such as Xcode,
configure using the -G switch
`make install`
`cmake -G Xcode .`
## Additional Options for Building from Source
CMake supports a number of build system generators,
feel free to peruse these and use them if you wish.
#### Build Systems
If you prefer to use other build systems, such as Xcode, configure using the -G switch
By default, HyPhy installs into `/usr/local`
but it can be installed on any location of your system
by providing an installation prefix
`cmake -G Xcode .`
`cmake -DINSTALL_PREFIX=/location/of/choice`
CMake supports a number of build system generators, feel free to peruse these and use them if you wish.
For example, this configuration will install hyphy at /opt/hyphy
If you are on an OS X platform, you can specify which OS X SDK to use
`mkdir -p /opt/hyphy`
`cmake -DCMAKE_OSX_SYSROOT=/Developer/SDKs/MacOSX10.9.sdk/ .`
`cmake -DINSTALL_PREFIX=/opt/hyphy .`
If building on a heterogeneous cluster with some nodes that do not support auto-vectorization
If building on a hetereogenous cluster with some nodes that do not support auto-vectorization
`cmake -DNOAVX=ON .`.
If you're on a UNIX-compatible system,
and you're comfortable with GNU make,
then run `make` with one of the following build targets:
If you're on a UNIX-compatible system, and you're comfortable with GNU make, then run `make` with one of the following build targets:
+ MAC - build a Mac Carbon application
+ HYPHYGTK - HYPHY with GTK
+ SP - build a HyPhy executable (HYPHYSP) without multiprocessing
+ MP - build a HyPhy executable (HYPHYMP) using pthreads to do multiprocessing
+ MP or hyphy - build a HyPhy executable (This used to be "HYPHYMP" but is now just "hyphy") using pthreads to do multiprocessing
+ MPI - build a HyPhy executable (HYPHYMPI) using MPI to do multiprocessing
+ HYPHYMPI - build a HyPhy executable (HYPHYMPI) using openMPI
+ LIB - build a HyPhy library (libhyphy_mp) using pthreads to do multiprocessing
- GTEST - build HyPhy's gtest testing executable (HYPHYGTEST)
For example to create a MPI build of HYPHY using openMPI ensure that you
have openmpi installed and available on your path. You can check if this
is the case after running
`cmake .` you should see something similar to this in your output
#### Example (MPI build of hyphy using openMPI)
Ensure that you have openmpi installed and available on your path. You can check if this is the case after running `cmake .` you should see something similar to this in your output
`-- Found MPI_C: /opt/scyld/openmpi/1.6.3/gnu/lib/libmpi.so;/usr/lib64/libibverbs.so;/usr/lib64/libdat.so;/usr/lib64/librt.so;/usr/lib64/libnsl.so;/usr/lib64/libutil.so;/usr/lib64/libm.so;/usr/lib64/libtorque.so;/usr/lib64/libm.so;/usr/lib64/libnuma.so;/usr/lib64/librt.so;/usr/lib64/libnsl.so;/usr/lib64/libutil.so;/usr/lib64/libm.so `
......@@ -86,13 +81,35 @@ And then run make install to install the software
`make install`
+ HYPHYMP(I) will be installed at `/location/of/choice/bin`
+ hyphy will be installed at `/location/of/choice/bin`
+ libhyphy_mp.(so/dylib/dll) will be installed at `/location/of/choice/lib`
+ HyPhy's standard library of batchfiles will go into `/location/of/choice/lib/hyphy`
HYPHYGTEST isn't installed normally,
because it serves no utility outside of testing.
#### Building for Testing
HYPHYGTEST isn't installed normally, because it serves no utility outside of testing.
To test HyPhy, build with the GTEST target and run ./HYPHYGTEST from the source directory.
`make GTEST`
`./HYPHYGTEST`
#### Executable Location
By default, HyPhy installs into `/usr/local` but it can be installed on any location of your system by providing an installation prefix
`cmake -DINSTALL_PREFIX=/location/of/choice`
For example, this configuration will install hyphy at /opt/hyphy
`mkdir -p /opt/hyphy`
`cmake -DINSTALL_PREFIX=/opt/hyphy .`
#### Building Documentation
```
make docs
cd docs
python3 -m http.server
```
#!/bin/sh
# This configuration file was taken originally from the mpi4py project
# <http://mpi4py.scipy.org/>, and then modified for Julia
set -e
set -x
MPI_IMPL="$1"
os=`uname`
case "$os" in
Darwin)
brew update
brew upgrade cmake
brew upgrade gcc
case "$MPI_IMPL" in
mpich|mpich3)
brew install mpich
;;
openmpi)
brew install openmpi
;;
*)
echo "Unknown MPI implementation: $MPI_IMPL"
exit 1
;;
esac
;;
Linux)
sudo apt-get update -q
case "$MPI_IMPL" in
mpich1)
sudo apt-get install -y gfortran mpich-shmem-bin libmpich-shmem1.0-dev
;;
mpich2)
sudo apt-get install -y gfortran mpich2 libmpich2-3 libmpich2-dev
;;
mpich|mpich3)
sudo apt-get install -y gfortran libcr0 default-jdk hwloc libmpich10 libmpich-dev
wget -q http://de.archive.ubuntu.com/ubuntu/pool/universe/m/mpich/mpich_3.0.4-6ubuntu1_amd64.deb
sudo dpkg -i ./mpich_3.0.4-6ubuntu1_amd64.deb
# rm -f ./mpich_3.1-1ubuntu_amd64.deb
;;
openmpi)
sudo apt-get install -y gfortran
wget --no-check-certificate https://www.open-mpi.org/software/ompi/v1.10/downloads/openmpi-1.10.2.tar.gz
tar -zxf openmpi-1.10.2.tar.gz
cd openmpi-1.10.2
sh ./configure --prefix=$HOME/OpenMPI > /dev/null
make -j > /dev/null
sudo make install > /dev/null
;;
*)
echo "Unknown MPI implementation: $MPI_IMPL"
exit 1
;;
esac
;;
*)
echo "Unknown operating system: $os"
exit 1
;;
esac
hyphy (2.5.0+dfsg-1) UNRELEASED; urgency=medium
* New upstream version
* debhelper-compat 12
* Standards-Version: 4.4.0
* Secure URI in copyright format
* Remove trailing whitespace in debian/changelog
TODO: Fix build failure
-- Andreas Tille <tille@debian.org> Sun, 28 Jul 2019 01:08:15 +0200
hyphy (2.3.14+dfsg-2) unstable; urgency=medium
[ Saira Hussain ]
......
......@@ -3,13 +3,13 @@ Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.
Uploaders: Andreas Tille <tille@debian.org>
Section: science
Priority: optional
Build-Depends: debhelper (>= 11~),
cmake (>= 3.0),
Build-Depends: debhelper-compat (= 12),
cmake,
mpi-default-dev,
libcurl4-gnutls-dev | libcurl4-dev,
libssl-dev,
libsqlite3-dev
Standards-Version: 4.3.1
Standards-Version: 4.4.0
Vcs-Browser: https://salsa.debian.org/med-team/hyphy
Vcs-Git: https://salsa.debian.org/med-team/hyphy.git
Homepage: http://hyphy.org/
......
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Contact: Steven Weaver <sweaver@ucsd.edu>
Upstream-Name: HyPhy
Source: https://github.com/veg/hyphy/releases
......
......@@ -5,25 +5,19 @@ Bug-Debian: http://bugs.debian.org/793345
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -416,8 +416,8 @@ add_custom_target(DEBUG DEPENDS HYPHYDEB
set_target_properties(
HYPHYDEBUG
PROPERTIES
- COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage -pg -O0 "
- LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS} -g -fprofile-arcs -ftest-coverage -pg -O0 "
+ COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS}"
+ LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${OpenMP_CXX_FLAGS}"
)
@@ -441,8 +441,8 @@ set_property(
set_target_properties(
@@ -543,11 +543,11 @@ set_target_properties(
HYPHYGTEST
PROPERTIES
if(${OPENMP_FOUND})
- COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
- LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
+ COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -msse3"
+ LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} ${OpenMP_CXX_FLAGS} -msse3"
else(${OPENMP_FOUND})
- COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
- LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -msse3 -g -fprofile-arcs -ftest-coverage -pg"
+ COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -msse3"
+ LINK_FLAGS "${DEFAULT_COMPILE_FLAGS} ${DEFAULT_DEBUG_WARNING_FLAGS} -msse3"
endif(${OPENMP_FOUND})
)
Description: Make sure that also in tests the existence of SSE3 extension is done
--> deactivated
Bug-Debian: http://bugs.debian.org/793344
Author: Andreas Tille <tille@debian.org>
Last-Update: Thu, 23 Jul 2015 13:12:54 +0200
......
Author: Andreas Tille
Last-Update: Mon, 26 Oct 2015 11:19:57 +0100
Bug-Debian: http://bugs.debian.org/802994
Description: remove optimizations for the local machine
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -47,7 +47,7 @@ macro(PCL_CHECK_FOR_AVX)
set(CMAKE_REQUIRED_FLAGS)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- set(CMAKE_REQUIRED_FLAGS "-march=corei7-avx -mtune=corei7-avx")
+ set(CMAKE_REQUIRED_FLAGS "")
endif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
check_cxx_source_runs("
@@ -124,7 +124,7 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMP
else(NOAVX)
PCL_CHECK_FOR_AVX()
if(${HAVE_AVX_EXTENSIONS})
- set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} -march=corei7-avx -mtune=corei7-avx")
+ set(DEFAULT_COMPILE_FLAGS "${DEFAULT_COMPILE_FLAGS} ")
add_definitions (-D_SLKP_USE_AVX_INTRINSICS)
else(${HAVE_AVX_EXTENSIONS})
PCL_CHECK_FOR_SSE3()
......@@ -13,11 +13,11 @@ Bug-Debian: http://bugs.debian.org/793346
-TEST_F(SimpleListTest,_LengthConstructorTest){
- _SimpleList sl((long)7);
- EXPECT_EQ(8,sizeof(sl.lData));
- EXPECT_EQ(8,sizeof(sl.list_data));
-}
+//TEST_F(SimpleListTest,_LengthConstructorTest){
+// _SimpleList sl((long)7);
+// EXPECT_EQ(8,sizeof(sl.lData));
+// EXPECT_EQ(8,sizeof(sl.list_data));
+//}
TEST_F(SimpleListTest, _PopulateTest){
......
use_debian_sqlite.patch
spelling.patch
drop_profiling_option.patch
remove_unneeded_test.patch
msse_option_only_if_available.patch
remove_arch_specific_flags.patch
# msse_option_only_if_available.patch
Author: Andreas Tille <tille@debian.org>
Last-Update: Mon, 29 Jun 2015 11:13:57 +0200
Description: Fix two spelling issues
--- a/src/core/batchlan.cpp
+++ b/src/core/batchlan.cpp
@@ -7383,7 +7383,7 @@ bool _ElementaryCommand::ConstructMPI
//____________________________________________________________________________________
bool _ElementaryCommand::ConstructCategoryMatrix (_String&source, _ExecutionList&target)
-// syntax: ConstructCategoryMatrix (receptacle, likelihood function, [COMPLETE/SHORT, which partitions to include -- a matrix agrument] )
+// syntax: ConstructCategoryMatrix (receptacle, likelihood function, [COMPLETE/SHORT, which partitions to include -- a matrix argument] )
{
_List pieces;
ExtractConditions (source,blConstructCM.sLength,pieces,',');
--- a/src/core/include/calcnode.h
+++ b/src/core/include/calcnode.h
@@ -471,7 +471,7 @@ public:
_AssociativeList*
SplitsIdentity (_PMathObj);
/* 20090609: SLKP
- given a tree agrument (p), the function returns an AVL with a 2x1 matrix (key "CLUSTERS")
+ given a tree argument (p), the function returns an AVL with a 2x1 matrix (key "CLUSTERS")
and a string (key "CONSENSUS");
The first cell contains the number of splits in *this
The second cell contains the number of splits in the argument that are present in *this
......@@ -6,20 +6,21 @@ Description: Use Debian packaged sqlite3
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -79,11 +79,10 @@ file(GLOB SRC_GTESTS tests/gtests/*.cpp)
file(GLOB SRC_NEW src/new/*.cpp)
@@ -119,12 +119,11 @@ file(GLOB SRC_NEW src/new/*.cpp)
file(GLOB SRC_CONTRIB src/contrib/*.cpp)
set(SRC_LINK src/lib/link/THyPhy.cpp)
-set(SRC_SQLITE3 contrib/SQLite-3.8.2/sqlite3.c)
set(SRC_UNIXMAIN src/mains/unix.cpp)
set(SRC_UTILS src/utils/hyphyunixutils.cpp)
-set(SRC_COMMON ${SRC_CORE} ${SRC_NEW} ${SRC_SQLITE3} ${SRC_UTILS})
+set(SRC_COMMON ${SRC_CORE} ${SRC_NEW} ${SRC_UTILS})
-set(SRC_COMMON ${SRC_CORE} ${SRC_NEW} ${SRC_SQLITE3} ${SRC_UTILS} ${SRC_CONTRIB})
+set(SRC_COMMON ${SRC_CORE} ${SRC_NEW} ${SRC_UTILS} ${SRC_CONTRIB})
set_source_files_properties(${SRC_CORE} ${SRC_NEW} {SRC_UTILS} PROPERTIES COMPILE_FLAGS "-Weffc++ -Wextra -Wall")
#-------------------------------------------------------------------------------
@@ -210,6 +209,36 @@ if(${CURL_FOUND} AND NOT APPLE)
@@ -264,6 +263,36 @@ if(${CURL_FOUND} AND NOT APPLE)
endif(${CURL_FOUND} AND NOT APPLE)
#-------------------------------------------------------------------------------
......@@ -56,7 +57,7 @@ Description: Use Debian packaged sqlite3
# gtest dependency
#-------------------------------------------------------------------------------
add_subdirectory(contrib/gtest-1.7.0)
@@ -243,11 +272,6 @@ set_property(
@@ -305,11 +334,6 @@ set_property(
)
set_property(
......@@ -68,9 +69,9 @@ Description: Use Debian packaged sqlite3
SOURCE src/core/calcnode2.cpp
APPEND_STRING PROPERTY COMPILE_FLAGS " -fstrict-aliasing -funroll-loops"
)
@@ -269,7 +293,6 @@ endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
include_directories(
@@ -329,7 +353,6 @@ include_directories(
src/core/include
src/contrib
src/lib/Link src/new/include
- contrib/SQLite-3.8.2 # SQLite
contrib/gtest-1.7.0/include
......
classStyle = "\n\\section*{_INSERT_DATA_FOR_Command_HERE_}\\begin{tabular}{lr}\\parbox[t]{2in}{\\textit{_INSERT_DATA_FOR_Class_HERE_\\newline _INSERT_DATA_FOR_Revised_HERE_}}&\\parbox{4in}{\\textsf{_INSERT_DATA_FOR_Description_HERE_}}\\end{tabular}"+
"\n\n\\texttt{_INSERT_DATA_FOR_Syntax_HERE_}\\scriptsize{\\begin{flushleft}_INSERT_DATA_FOR_Notes_HERE_\\end{flushleft}}Example\\linebreak\\linespread{0.3}\\fbox{\\parbox{6in}{\\tiny\\begin{alltt}_INSERT_DATA_FOR_Example_HERE_\\end{alltt}}}\\linespread{1}\n";
latexTop = "\\documentclass[11pt]{article}\\usepackage{amssymb}\\usepackage{alltt}\\textwidth = 6.25 in\\textheight = 9 in\\oddsidemargin = 0.0 in\\evensidemargin = 0.0 in\\topmargin = 0.0 in\\headheight = 0.0 in\\headsep = 0.0 in\\parskip = 0.2in\\parindent = 0.0in\\begin{document}";
latexBottom = "\end{document}";
/*--------------------------------------------------*/
function countHits (dummy)
{
hitNames[hitCount] = SQL_ROW_DATA[0];
hitDescs[hitCount] = SQL_ROW_DATA[1];
hitCount = hitCount + 1;
return 0;
}
/*--------------------------------------------------*/
function echoQuery (dummy)
{
colCount = Columns (SQL_ROW_DATA);
if (doExport)
{
cText = classStyle;
for (cc=0; cc<colCount; cc=cc+1)
{
cName = SQL_COLUMN_NAMES[cc];
inLines = {{""}};
cr = SQL_ROW_DATA[cc]&&2;
if (Abs(cr))
{
sscanf (cr,"Lines",inLines);
c = "";
for (k=0; k<Columns(inLines)-1;k=k+1)
{
if (Abs(inLines[k]))
{
c = c+inLines[k]+"\\linebreak\n";
}
else
{
c = c+"\n\n";
}
}
c = c+inLines[k];
cr = "#&$%~_^{}";
for (rcc = 0; rcc < Abs(cr); rcc=rcc+1)
{
crp = "\\"+cr[rcc];
c=c^{{crp,crp}};
}
c=c^{{"\\|","$|$"}};
c=c^{{"\\[","$[$"}};
c=c^{{"\\]","$]$"}};
/*cr=cr^{{"\\\\\\\\","$\\backslash$"}};*/
cText = cText^{{"_INSERT_DATA_FOR_"+cName+"_HERE_",c}};
sscanf (cName,"Raw",rcc);
}
else
{
cText = cText^{{"_INSERT_DATA_FOR_"+cName+"_HERE_","N/A"}};
}
}
fprintf (latexFile,"\n", cText);
}
else
{
for (cc=0; cc<colCount; cc=cc+1)
{
cName = SQL_COLUMN_NAMES[cc];
cChars = Abs(cName);
underLine = "";
for (ck=0; ck<cChars;ck=ck+1)
{
underLine = underLine+"-";
}
fprintf (stdout, "\n", SQL_COLUMN_NAMES[cc],"\n",underLine,"\n", SQL_ROW_DATA[cc]&&2,"\n");
}
}
return 0;
}
/*--------------------------------------------------*/
if (QUERY_FIELD == "Window")
{
filePath = HYPHY_BASE_DIRECTORY + "Help" + DIRECTORY_SEPARATOR + "Commands"+DIRECTORY_SEPARATOR+"reference.sql";
OpenWindow (DATABASEWINDOW,{{filePath}},"SCREEN_WIDTH-100;SCREEN_HEIGHT-100;50;50");
return 0;
}
DoSQL (SQL_OPEN,"reference.sql",dbID);
hitCount = 0;
hitNames = {};
hitDescs = {};
if (QUERY_FIELD == "Export")
{
QUERY_FIELD = "Command";
doExport = 1;
}
else
{
doExport = 0;
}
sqlQuery = "select Command, Description from HYPHY_REFERENCE where "+QUERY_FIELD+" glob '*" + QUERY_TERM+"*' order by Command";
DoSQL (dbID,sqlQuery,"return countHits(0);");
if (hitCount == 0)
{
fprintf (stdout, "\nNo records matched your query\n");
}
else
{
if (doExport)
{
DEFAULT_FILE_SAVE_NAME = "Commands.tex";
SetDialogPrompt ("Export a LaTex document to:");
fprintf (PROMPT_FOR_FILE, CLEAR_FILE,latexTop);
latexFile = LAST_FILE_PATH;
}
if (hitCount > 1)
{
hitRecords = {hitCount,2};
for (cc=0; cc<hitCount; cc=cc+1)
{
hitRecords[cc][0] = hitNames[cc];
hitRecords[cc][1] = hitDescs[cc];
}
ChoiceList (hitCount,"Choose a command",0,SKIP_NONE,hitRecords);
if (hitCount[0]<0)
{
DoSQL (SQL_CLOSE,"",dbID);
return 0;
}
for (h=0; h<Columns(hitCount); h=h+1)
{
hc = hitCount [h];
hitNames[0] = hitNames[hc];
DoSQL (dbID,"select Command, Class, Syntax, Description, Notes, Example, Revised from HYPHY_REFERENCE where Command = '" + hitNames[0]+"' order by Command","return echoQuery(0);");
}
hitDescs = 0;
hitRecords = 0;
}
else
{
DoSQL (dbID,"select Command, Class, Syntax, Description, Notes, Example, Revised from HYPHY_REFERENCE where Command = '" + hitNames[0]+"' order by Command","return echoQuery(0);");
}
hitNames = 0;
if (doExport)
{
fprintf (latexFile,latexBottom);
}
}
DoSQL (SQL_CLOSE,"",dbID);