1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
# --------------------------
# The communication routines
# --------------------------
set (comm
igesd2d_.c sgesd2d_.c dgesd2d_.c cgesd2d_.c zgesd2d_.c
itrsd2d_.c strsd2d_.c dtrsd2d_.c ctrsd2d_.c ztrsd2d_.c
igerv2d_.c sgerv2d_.c dgerv2d_.c cgerv2d_.c zgerv2d_.c
itrrv2d_.c strrv2d_.c dtrrv2d_.c ctrrv2d_.c ztrrv2d_.c
igebs2d_.c sgebs2d_.c dgebs2d_.c cgebs2d_.c zgebs2d_.c
igebr2d_.c sgebr2d_.c dgebr2d_.c cgebr2d_.c zgebr2d_.c
itrbs2d_.c strbs2d_.c dtrbs2d_.c ctrbs2d_.c ztrbs2d_.c
itrbr2d_.c strbr2d_.c dtrbr2d_.c ctrbr2d_.c ztrbr2d_.c
igsum2d_.c sgsum2d_.c dgsum2d_.c cgsum2d_.c zgsum2d_.c
igamx2d_.c sgamx2d_.c dgamx2d_.c cgamx2d_.c zgamx2d_.c
igamn2d_.c sgamn2d_.c dgamn2d_.c cgamn2d_.c zgamn2d_.c)
# --------------------
# The support routines
# --------------------
set (supp
blacs_setup_.c blacs_set_.c blacs_get_.c
blacs_abort_.c blacs_exit_.c blacs_pnum_.c blacs_pcoord_.c
ksendid_.c krecvid_.c kbsid_.c kbrid_.c
dcputime00_.c dwalltime00_.c blacs_pinfo_.c
blacs_init_.c blacs_map_.c blacs_free_.c blacs_grid_.c blacs_info_.c
blacs_barr_.c sys2blacs_.c blacs2sys_.c free_handle_.c)
# ---------------------
# The internal routines
# ---------------------
set (internal
BI_HypBS.c BI_HypBR.c BI_IdringBS.c BI_IdringBR.c
BI_MpathBS.c BI_MpathBR.c BI_SringBS.c BI_SringBR.c
BI_TreeBS.c BI_TreeBR.c
BI_Ssend.c BI_Rsend.c BI_Srecv.c BI_Asend.c BI_Arecv.c
BI_TreeComb.c BI_BeComb.c BI_MringComb.c
BI_ArgCheck.c BI_TransDist.c BI_GetBuff.c BI_UpdateBuffs.c
BI_EmergencyBuff.c BI_BlacsErr.c BI_BlacsWarn.c BI_BlacsAbort.c
BI_BuffIsFree.c BI_imvcopy.c BI_smvcopy.c BI_dmvcopy.c
BI_ivmcopy.c BI_svmcopy.c BI_dvmcopy.c
BI_Pack.c BI_Unpack.c BI_GetMpiGeType.c BI_GetMpiTrType.c
BI_ivvsum.c BI_svvsum.c BI_dvvsum.c BI_cvvsum.c BI_zvvsum.c
BI_ivvamx.c BI_svvamx.c BI_dvvamx.c BI_cvvamx.c BI_zvvamx.c
BI_ivvamx2.c BI_svvamx2.c BI_dvvamx2.c BI_cvvamx2.c BI_zvvamx2.c
BI_ivvamn.c BI_svvamn.c BI_dvvamn.c BI_cvvamn.c BI_zvvamn.c
BI_ivvamn2.c BI_svvamn2.c BI_dvvamn2.c BI_cvvamn2.c BI_zvvamn2.c
BI_iMPI_amx.c BI_sMPI_amx.c BI_dMPI_amx.c BI_cMPI_amx.c
BI_zMPI_amx.c BI_iMPI_amx2.c BI_sMPI_amx2.c BI_dMPI_amx2.c
BI_cMPI_amx2.c BI_zMPI_amx2.c BI_iMPI_amn.c BI_sMPI_amn.c
BI_dMPI_amn.c BI_cMPI_amn.c BI_zMPI_amn.c BI_iMPI_amn2.c
BI_sMPI_amn2.c BI_dMPI_amn2.c BI_cMPI_amn2.c BI_zMPI_amn2.c
BI_cMPI_sum.c BI_zMPI_sum.c BI_ContxtNum.c BI_GlobalVars.c
BI_TransUserComm.c )
#
# Note on CMAKE (from Brad - Kitware)
#
#CMake hides the intermediate object files from its interface so there is
#no direct way to do this within a single target. This limitation comes
#from the requirement to support generation of build systems like VS IDE
#project files that do not expose object files explicitly.
# Solution 1 : Build separate libraries, one for each block of objects
#set(blacsFint ${comm} ${supp})
#add_library(blacsCint ${comm} ${supp})
#set_property(TARGET blacsCint PROPERTY COMPILE_DEFINITIONS CallFromC)
#add_library(scalapack ${internal} ${blacsFint})
#target_link_libraries(scalapack blacsCint)
# Solution 2 : Create an extra source file that #include-s the original one
set(srcs ${comm} ${supp})
set(srcs_C)
foreach(src ${srcs})
# string(REPLACE ".c" "-C.c" src_C "${CMAKE_CURRENT_BINARY_DIR}/${src}")
string(REPLACE ".c" "-C.c" src_C "${src}")
configure_file(src-C.c.in ${src_C} @ONLY)
list(APPEND srcs_C ${src_C})
endforeach()
set(blacs ${srcs} ${srcs_C} ${internal})
#add_library(scalapack ${srcs} ${srcs_C} ${internal})
#scalapack_install_library(scalapack)
|