2 include_directories(${PROJECT_SOURCE_DIR})
3 include_directories(${PROJECT_BINARY_DIR})
5 list (REMOVE_ITEM FLOAT_TYPES "HALF")
10 lauum/lauum_U_single.c
11 lauum/lauum_L_single.c
14 # add a 'z' to filename for complex version
15 set(LAPACK_MANGLED_SOURCES
23 # sources that need TRANS set
24 # this has a 'z' version
29 # sources that need UNIT set
30 # these do NOT have a z version
32 trtri/trtri_U_single.c
33 trtri/trtri_L_single.c
36 # these have a 'z' version
42 GenerateNamedObjects("${LAPACK_SOURCES}")
43 GenerateNamedObjects("${LAPACK_MANGLED_SOURCES}" "" "" false "" "" false 3)
45 GenerateNamedObjects("laswp/generic/laswp_k_4.c" "" "laswp_plus" false "" "" false 3)
46 GenerateNamedObjects("laswp/generic/laswp_k_4.c" "MINUS" "laswp_minus" false "" "" false 3)
48 foreach (float_type ${FLOAT_TYPES})
49 if (${float_type} STREQUAL "HALF")
52 GenerateNamedObjects("getrf/getrf_single.c" "UNIT" "getrf_single" false "" "" false ${float_type})
55 # dynamic_arch laswp needs arch specific code ?
56 #foreach(TARGET_CORE ${DYNAMIC_CORE})
57 # set(TSUFFIX "_${TARGET_CORE}")
59 #GenerateNamedObjects("laswp/generic/laswp_k_4.c" "" "laswp_plus" false "" ${TSUFFIX} false 3)
60 #GenerateNamedObjects("laswp/generic/laswp_k_4.c" "MINUS" "laswp_minus" false "" ${TSUFFIX} false 3)
66 set(GETRF_SRC getrf/getrf_parallel_omp.c)
68 set(GETRF_SRC getrf/getrf_parallel.c)
71 # these do not have 'z' versions
73 lauum/lauum_U_parallel.c
74 lauum/lauum_L_parallel.c
75 potrf/potrf_U_parallel.c
76 potrf/potrf_L_parallel.c
79 # this has a z version
80 list(APPEND TRANS_SOURCES
81 getrs/getrs_parallel.c
84 # these do NOT have a z version
85 list(APPEND UNIT_SOURCES
86 trtri/trtri_U_parallel.c
87 trtri/trtri_L_parallel.c
90 foreach (float_type ${FLOAT_TYPES})
91 GenerateNamedObjects("${GETRF_SRC}" "UNIT" "getrf_parallel" false "" "" false ${float_type})
94 GenerateNamedObjects("${PARALLEL_SOURCES}")
97 foreach (float_type ${FLOAT_TYPES})
98 if (${float_type} STREQUAL "COMPLEX" OR ${float_type} STREQUAL "ZCOMPLEX")
99 foreach (trans_src ${TRANS_SOURCES})
100 string(REGEX MATCH "[a-z]/([a-z]+_)([a-z]+)" op_name ${trans_src})
101 string(REPLACE "/" "/z" ztrans_src ${trans_src})
102 GenerateNamedObjects("${ztrans_src}" "TRANS=1" "${CMAKE_MATCH_1}N_${CMAKE_MATCH_2}" false "" "" false ${float_type})
103 GenerateNamedObjects("${ztrans_src}" "TRANS=2" "${CMAKE_MATCH_1}T_${CMAKE_MATCH_2}" false "" "" false ${float_type})
104 GenerateNamedObjects("${ztrans_src}" "TRANS=3" "${CMAKE_MATCH_1}R_${CMAKE_MATCH_2}" false "" "" false ${float_type})
105 GenerateNamedObjects("${ztrans_src}" "TRANS=4" "${CMAKE_MATCH_1}C_${CMAKE_MATCH_2}" false "" "" false ${float_type})
108 GenerateCombinationObjects("${TRANS_SOURCES}" "TRANS" "N" "" 4 "" false ${float_type})
112 GenerateCombinationObjects("${UNIT_SOURCES}" "UNIT" "N" "" 4)
113 GenerateCombinationObjects("${UNIT_SOURCES2}" "UNIT" "N" "" 0 "" "" 3)
115 add_library(lapack OBJECT ${OPENBLAS_SRC})