set(CMAKE_ASM_FLAGS "-f elf64")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -rdynamic -Wall -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -Werror=format-security -fno-strict-aliasing -fsigned-char -fPIC")
+execute_process(COMMAND yasm -f elf64 -i ${CMAKE_SOURCE_DIR}/src/erasure-code/isa/isa-l/include/ ${CMAKE_SOURCE_DIR}/src/erasure-code/isa/isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s -o /dev/null
+ RESULT_VARIABLE rc
+ OUTPUT_QUIET)
+if(NOT rc)
+ set(HAVE_BETTER_YASM_ELF64 1)
+endif(NOT rc)
+MESSAGE("HAVE_BETTER_YASM_ELF64=" ${HAVE_BETTER_YASM_ELF64})
+
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -ftemplate-depth-1024 -Wno-invalid-offsetof -Wnon-virtual-dtor -Wno-invalid-offsetof -Wstrict-null-sentinel -Woverloaded-virtual")
set(EXTRALIBS uuid rt dl ${Boost_LIBS})
add_subdirectory(jerasure)
add_subdirectory(lrc)
-if (WITH_BETTER_YASM_ELF64) # TODO: check for yasm support
+if (HAVE_BETTER_YASM_ELF64)
add_subdirectory(isa)
-endif (WITH_BETTER_YASM_ELF64)
+endif (HAVE_BETTER_YASM_ELF64)
add_library(erasure_code ErasureCodePlugin.cc)
target_link_libraries(erasure_code dl)
isa-l/erasure_code/gf_vect_dot_prod_avx2.asm.s
isa-l/erasure_code/gf_vect_dot_prod_avx.asm.s
isa-l/erasure_code/gf_vect_dot_prod_sse.asm.s
+ isa-l/erasure_code/gf_2vect_mad_avx2.asm.s
+ isa-l/erasure_code/gf_2vect_mad_avx.asm.s
+ isa-l/erasure_code/gf_2vect_mad_sse.asm.s
+ isa-l/erasure_code/gf_3vect_mad_avx2.asm.s
+ isa-l/erasure_code/gf_3vect_mad_avx.asm.s
+ isa-l/erasure_code/gf_3vect_mad_sse.asm.s
+ isa-l/erasure_code/gf_4vect_mad_avx2.asm.s
+ isa-l/erasure_code/gf_4vect_mad_avx.asm.s
+ isa-l/erasure_code/gf_4vect_mad_sse.asm.s
+ isa-l/erasure_code/gf_5vect_mad_avx2.asm.s
+ isa-l/erasure_code/gf_5vect_mad_avx.asm.s
+ isa-l/erasure_code/gf_5vect_mad_sse.asm.s
+ isa-l/erasure_code/gf_6vect_mad_avx2.asm.s
+ isa-l/erasure_code/gf_6vect_mad_avx.asm.s
+ isa-l/erasure_code/gf_6vect_mad_sse.asm.s
+ isa-l/erasure_code/gf_vect_mad_avx2.asm.s
+ isa-l/erasure_code/gf_vect_mad_avx.asm.s
+ isa-l/erasure_code/gf_vect_mad_sse.asm.s
isa-l/erasure_code/gf_vect_mul_avx.asm.s
isa-l/erasure_code/gf_vect_mul_sse.asm.s
ErasureCodeIsa.cc
+ ErasureCodeIsaTableCache.cc
ErasureCodePluginIsa.cc
xor_op.cc
$<TARGET_OBJECTS:erasure_code_objs>