]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: fix paths & make object libs of various EC files
authorMatt Benjamin <mbenjamin@redhat.com>
Wed, 20 Jan 2016 22:48:44 +0000 (17:48 -0500)
committerAli Maredia <amaredia@redhat.com>
Tue, 23 Feb 2016 20:09:34 +0000 (15:09 -0500)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
src/erasure-code/CMakeLists.txt
src/erasure-code/jerasure/CMakeLists.txt
src/erasure-code/shec/CMakeLists.txt

index 3bc8f193c388de1c6774f5c51a5774c9067dee05..0f406bc441a49f31d1769cd121cf5fe4552ee560 100644 (file)
@@ -63,6 +63,10 @@ else(INTEL_SSE4_1)
   message(STATUS "Skipping target ec_jerasure_sse4 & ec_shec_sse4: -msse4.1 not supported")
 endif(INTEL_SSE4_1)
 
+#jerasure subdir must be before shec so jerasure & neon obj libs are declared
+include_directories(jerasure/jerasure/include)
+include_directories(jerasure/gf-complete/include)
+include_directories(jerasure)
 add_subdirectory(jerasure)
 add_subdirectory(lrc)
 add_subdirectory(shec)
index c2fb1ef1de750d1b7b02e2a6773edfa9cf305ddc..45b0da47028c6eb1862f4cffde2449dda48b478a 100644 (file)
@@ -1,9 +1,6 @@
 # jerasure plugin
 
-include_directories(gf-complete/include)
-include_directories(jerasure/include)
-
-set(jerasure_srcs
+set(jerasure_obj_srcs
   jerasure/src/cauchy.c
   jerasure/src/galois.c
   jerasure/src/jerasure.c
@@ -20,28 +17,40 @@ set(jerasure_srcs
   gf-complete/src/gf_w4.c
   gf-complete/src/gf_rand.c
   gf-complete/src/gf_w8.c
+  )
+add_library(jerasure_objs OBJECT ${jerasure_obj_srcs})
+
+add_library(ec_jerasure_objs OBJECT
   ErasureCodePluginJerasure.cc
   ErasureCodeJerasure.cc
-  $<TARGET_OBJECTS:erasure_code_objs>
-)
+  )
 
-add_library(ec_jerasure_generic SHARED ${jerasure_srcs})
+add_library(ec_jerasure_generic SHARED 
+  $<TARGET_OBJECTS:ec_jerasure_objs>
+  $<TARGET_OBJECTS:jerasure_objs>
+  $<TARGET_OBJECTS:erasure_code_objs>
+  )
 add_dependencies(ec_jerasure_generic ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
 target_link_libraries(ec_jerasure_generic ${EXTRALIBS})
 set_target_properties(ec_jerasure_generic PROPERTIES VERSION 2.0.0 SOVERSION 2)
 install(TARGETS ec_jerasure_generic DESTINATION lib/erasure-code)
 
-set(jerasure_neon_srcs
-  ${jerasure_srcs}
-  erasure-code/jerasure/gf-complete/src/neon/gf_w4_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w8_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w16_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w32_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w64_neon.c)
-
-
+# ec_jerasure_neon
 #TODO:build libec_jerasure_neon library on an ARM machine
 if(ARM_NEON OR ARM_NEON2)
+  set(neon_objs_srcs
+    gf-complete/src/neon/gf_w4_neon.c
+    gf-complete/src/neon/gf_w8_neon.c
+    gf-complete/src/neon/gf_w16_neon.c
+    gf-complete/src/neon/gf_w32_neon.c
+    gf-complete/src/neon/gf_w64_neon.c)
+  add_library(neon_objs OBJECT ${neon_objs_srcs})
+
+  set(jerasure_neon_srcs
+    $<TARGET_OBJECTS:ec_jerasure_objs>
+    $<TARGET_OBJECTS:jerasure_objs>
+    $<TARGET_OBJECTS:neon_objs>
+    )
   add_library(ec_jerasure_neon SHARED ${jerasure_neon_srcs})
   add_dependencies(ec_jerasure_neon ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
   target_link_libraries(ec_jerasure_neon crush pthread ${EXTRALIBS})
@@ -52,7 +61,9 @@ endif(ARM_NEON OR ARM_NEON2)
 
 # ec_jerasure_sse3
 if(INTEL_SSE)
-  add_library(ec_jerasure_sse3 SHARED ${jerasure_srcs})
+  add_library(ec_jerasure_sse3 SHARED 
+    $<TARGET_OBJECTS:jerasure_objs>
+    $<TARGET_OBJECTS:ec_jerasure_objs>)
   add_dependencies(ec_jerasure_sse3 ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
   target_link_libraries(ec_jerasure_sse3 ${EXTRALIBS})
   set_target_properties(ec_jerasure_sse3 PROPERTIES VERSION 2.0.0 SOVERSION 2
@@ -62,7 +73,9 @@ endif(INTEL_SSE)
 
 # ec_jerasure_sse4
 if(INTEL_SSE4_1)
-  add_library(ec_jerasure_sse4 SHARED ${jerasure_srcs})
+  add_library(ec_jerasure_sse4 SHARED 
+    $<TARGET_OBJECTS:jerasure_objs>
+    $<TARGET_OBJECTS:ec_jerasure_objs>)
   add_dependencies(ec_jerasure_sse4 ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
   target_link_libraries(ec_jerasure_sse4 ${EXTRALIBS})
   set_target_properties(ec_jerasure_sse4 PROPERTIES VERSION 2.0.0 SOVERSION 2
index efe156a146c99b406a1635c9645c77e817a5b619..f504e8b230a7f1693f77a47806a8c7fd50c5fd98 100644 (file)
@@ -1,49 +1,33 @@
 #shec plugin
 
-set(shec_srcs
+include_directories(.)
+
+set(shec_objs_srcs
   ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc 
   ErasureCodePluginShec.cc 
   ErasureCodeShec.cc 
   ErasureCodeShecTableCache.cc 
   determinant.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/src/cauchy.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/src/galois.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/src/jerasure.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/src/liberation.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/src/reed_sol.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_wgen.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_method.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_w16.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_w32.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_w64.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_w128.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_general.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_w4.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_rand.c 
-  ${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/src/gf_w8.c)
+  )
+
+add_library(shec_objs OBJECT ${shec_objs_srcs})
 
-include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/jerasure/include)
-include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure/gf-complete/include)
-include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/jerasure)
-include_directories(${CMAKE_SOURCE_DIR}/src/erasure-code/shec)
-add_library(ec_shec_generic SHARED ${shec_srcs})
+add_library(ec_shec_generic SHARED 
+  $<TARGET_OBJECTS:jerasure_objs>
+  $<TARGET_OBJECTS:shec_objs>)
 target_link_libraries(ec_shec_generic crush pthread)
 add_dependencies(ec_shec_generic ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
 set_target_properties(ec_shec_generic PROPERTIES VERSION 1.0.0 SOVERSION 1)
 install(TARGETS ec_shec_generic DESTINATION lib/erasure-code)
 
-# ec_shec_sse3
-set(shec_neon_srcs
-  ${shec_srcs}
-  erasure-code/jerasure/gf-complete/src/neon/gf_w4_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w8_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w16_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w32_neon.c 
-  erasure-code/jerasure/gf-complete/src/neon/gf_w64_neon.c)
-
+# ec_shec_neon
 #TODO:build libec_shec_neon library on an ARM machine
 if(ARM_NEON OR ARM_NEON2)
+  set(shec_neon_srcs
+    $<TARGET_OBJECTS:shec_objs>
+    $<TARGET_OBJECTS:jerasure_objs>
+    $<TARGET_OBJECTS:neon_objs>
+    )
   add_library(ec_shec_neon SHARED ${shec_neon_srcs})
   add_dependencies(ec_shec_neon ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
   target_link_libraries(ec_shec_neon ${EXTRALIBS})
@@ -54,7 +38,9 @@ endif(ARM_NEON OR ARM_NEON2)
 
 # ec_shec_sse3
 if(INTEL_SSE)
-  add_library(ec_shec_sse3 SHARED ${shec_srcs})
+  add_library(ec_shec_sse3 SHARED 
+    $<TARGET_OBJECTS:jerasure_objs>
+    $<TARGET_OBJECTS:shec_objs>)
   add_dependencies(ec_shec_sse3 ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
   target_link_libraries(ec_shec_sse3 ${EXTRALIBS})
   set_target_properties(ec_shec_sse3 PROPERTIES VERSION 2.0.0 SOVERSION 2
@@ -64,7 +50,9 @@ endif(INTEL_SSE)
 
 # ec_shec_sse4
 if(INTEL_SSE4_1)
-  add_library(ec_shec_sse4 SHARED ${shec_srcs})
+  add_library(ec_shec_sse4 SHARED 
+    $<TARGET_OBJECTS:jerasure_objs>
+    $<TARGET_OBJECTS:shec_objs>)
   add_dependencies(ec_shec_sse4 ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
   target_link_libraries(ec_shec_sse4 ${EXTRALIBS})
   set_target_properties(ec_shec_sse4 PROPERTIES VERSION 2.0.0 SOVERSION 2