2 ## Author: Hank Anderson <hank@statease.com>
3 ## Description: Ported from OpenBLAS/Makefile.system
5 set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib")
7 # System detection, via CMake.
8 include("${PROJECT_SOURCE_DIR}/cmake/system_check.cmake")
10 if(CMAKE_CROSSCOMPILING AND NOT DEFINED TARGET)
11 # Detect target without running getarch
15 set(TARGET "ARMV7") # TODO: Ask compiler which arch this is
17 message(FATAL_ERROR "When cross compiling, a TARGET is required.")
21 # Other files expect CORE, which is actually TARGET and will become TARGET_CORE for kernel build. Confused yet?
22 # It seems we are meant to use TARGET as input and CORE internally as kernel.
23 if(NOT DEFINED CORE AND DEFINED TARGET)
27 # TARGET_CORE will override TARGET which is used in DYNAMIC_ARCH=1.
28 if (DEFINED TARGET_CORE)
29 set(TARGET ${TARGET_CORE})
32 # Force fallbacks for 32bit
33 if (DEFINED BINARY AND DEFINED TARGET AND BINARY EQUAL 32)
34 message(STATUS "Compiling a ${BINARY}-bit binary.")
36 if (${TARGET} STREQUAL "HASWELL" OR ${TARGET} STREQUAL "SANDYBRIDGE" OR ${TARGET} STREQUAL "SKYLAKEX" OR ${TARGET} STREQUAL "COOPERLAKE" OR ${TARGET} STREQUAL "SAPPHIRERAPIDS")
39 if (${TARGET} STREQUAL "BULLDOZER" OR ${TARGET} STREQUAL "PILEDRIVER" OR ${TARGET} STREQUAL "ZEN")
40 set(TARGET "BARCELONA")
42 if (${TARGET} STREQUAL "ARMV8" OR ${TARGET} STREQUAL "CORTEXA57" OR ${TARGET} STREQUAL "CORTEXA53" OR ${TARGET} STREQUAL "CORTEXA55")
45 if (${TARGET} STREQUAL "POWER8" OR ${TARGET} STREQUAL "POWER9" OR ${TARGET} STREQUAL "POWER10")
52 message(STATUS "-- -- -- -- -- -- -- -- -- -- -- -- --")
53 message(STATUS "Targeting the ${TARGET} architecture.")
54 set(GETARCH_FLAGS "-DFORCE_${TARGET}")
57 # On x86_64 build getarch with march=native. This is required to detect AVX512 support in getarch.
58 if (X86_64 AND NOT ${CMAKE_C_COMPILER_ID} STREQUAL "PGI")
59 set(GETARCH_FLAGS "${GETARCH_FLAGS} -march=native")
62 # On x86 no AVX support is available
64 if ((DEFINED BINARY AND BINARY EQUAL 32) OR ("$CMAKE_SIZEOF_VOID_P}" EQUAL "4"))
65 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DNO_AVX -DNO_AVX2 -DNO_AVX512")
70 message(STATUS "Using 64-bit integers.")
71 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DUSE64BITINT")
74 if (NOT DEFINED GEMM_MULTITHREAD_THRESHOLD)
75 set(GEMM_MULTITHREAD_THRESHOLD 4)
77 message(STATUS "GEMM multithread threshold set to ${GEMM_MULTITHREAD_THRESHOLD}.")
78 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DGEMM_MULTITHREAD_THRESHOLD=${GEMM_MULTITHREAD_THRESHOLD}")
81 message(STATUS "Disabling Advanced Vector Extensions (AVX).")
82 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DNO_AVX")
86 message(STATUS "Disabling Advanced Vector Extensions 2 (AVX2).")
87 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DNO_AVX2")
91 message(STATUS "Disabling Advanced Vector Extensions 512 (AVX512).")
92 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DNO_AVX512")
95 if (CMAKE_BUILD_TYPE STREQUAL "Debug")
96 set(GETARCH_FLAGS "${GETARCH_FLAGS} ${CMAKE_C_FLAGS_DEBUG}")
99 if (NOT DEFINED NO_PARALLEL_MAKE)
100 set(NO_PARALLEL_MAKE 0)
102 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DNO_PARALLEL_MAKE=${NO_PARALLEL_MAKE}")
104 if (CMAKE_C_COMPILER STREQUAL loongcc)
105 set(GETARCH_FLAGS "${GETARCH_FLAGS} -static")
111 if (CMAKE_ASM_COMPILER_ID STREQUAL "GNU")
113 elseif (CMAKE_ASM_COMPILER_ID STREQUAL "Clang")
114 set(CCOMMON_OPT "${CCOMMON_OPT} -fno-integrated-as")
117 set(GETARCH_FLAGS "${GETARCH_FLAGS} -DHAVE_GAS=${HAVE_GAS}")
120 #if don't use Fortran, it will only compile CBLAS.
127 # N.B. this is NUM_THREAD in Makefile.system which is probably a bug -hpa
128 if (NOT CMAKE_CROSSCOMPILING)
129 if (NOT DEFINED NUM_CORES)
130 include(ProcessorCount)
131 ProcessorCount(NUM_CORES)
136 if (NOT DEFINED NUM_PARALLEL)
140 if (NOT DEFINED NUM_THREADS)
141 if (DEFINED NUM_CORES AND NOT NUM_CORES EQUAL 0)
143 set(NUM_THREADS ${NUM_CORES})
149 if (${NUM_THREADS} LESS 2)
151 elseif(NOT DEFINED USE_THREAD)
156 message(STATUS "Multi-threading enabled with ${NUM_THREADS} threads.")
159 set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_LOCKING")
163 include("${PROJECT_SOURCE_DIR}/cmake/prebuild.cmake")
165 if (${TARGET} STREQUAL COOPERLAKE AND NOT NO_AVX512)
166 if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
167 execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
168 if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 10.09)
169 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake")
171 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
173 elseif (${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang")
174 if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 8.99)
175 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=cooperlake")
177 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
181 if (${TARGET} STREQUAL SAPPHIRERAPIDS AND NOT NO_AVX512)
182 if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
183 execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
184 if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 11.0)
185 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=sapphirerapids")
187 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
189 elseif (${CMAKE_C_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_C_COMPILER_ID} STREQUAL "AppleClang")
190 if (${CMAKE_C_COMPILER_VERSION} VERSION_GREATER 12.0)
191 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=sapphirerapids")
193 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
197 if (${TARGET} STREQUAL SKYLAKEX AND NOT NO_AVX512)
198 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -march=skylake-avx512")
200 if (${TARGET} STREQUAL HASWELL AND NOT NO_AVX2)
201 if (${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
202 execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
203 if (${GCC_VERSION} VERSION_GREATER 4.7 OR ${GCC_VERSION} VERSION_EQUAL 4.7)
204 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2")
206 elseif (${CMAKE_C_COMPILER_ID} STREQUAL "CLANG")
207 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2")
210 if (DEFINED HAVE_AVX)
212 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx")
215 if (DEFINED HAVE_AVX2)
217 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mavx2")
220 # if (DEFINED HAVE_FMA3)
222 # set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mfma")
225 if (DEFINED HAVE_SSE)
226 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse")
228 if (DEFINED HAVE_SSE2)
229 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse2")
231 if (DEFINED HAVE_SSE3)
232 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse3")
234 if (DEFINED HAVE_SSSE3)
235 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mssse3")
237 if (DEFINED HAVE_SSE4_1)
238 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -msse4.1")
241 if (${TARGET} STREQUAL POWER10)
242 execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
243 if (${GCC_VERSION} VERSION_GREATER 10.2 OR ${GCC_VERSION} VERSION_EQUAL 10.2)
244 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power10 -mtune=power10 -mvsx -fno-fast-math")
246 message(FATAL_ERROR "Compiler GCC.${GCC_VERSION} does not support Power10.")
249 if (${TARGET} STREQUAL POWER9)
250 execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
251 if (${GCC_VERSION} VERSION_GREATER 5.0 OR ${GCC_VERSION} VERSION_EQUAL 5.0)
252 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power9 -mtune=power9 -mvsx -fno-fast-math")
254 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math")
255 message(WARNING "Compiler GCC.${GCC_VERSION} does not support fully Power9.")
258 if (${TARGET} STREQUAL POWER8)
259 set (KERNEL_DEFINITIONS "${KERNEL_DEFINITIONS} -mcpu=power8 -mtune=power8 -mvsx -fno-fast-math")
263 message(STATUS "Compiling a ${BINARY}-bit binary.")
265 if (NOT DEFINED NEED_PIC)
269 # OS dependent settings
270 include("${PROJECT_SOURCE_DIR}/cmake/os.cmake")
272 # Architecture dependent settings
273 include("${PROJECT_SOURCE_DIR}/cmake/arch.cmake")
275 # C Compiler dependent settings
276 include("${PROJECT_SOURCE_DIR}/cmake/cc.cmake")
280 set(SUFFIX64_UNDERSCORE _64)
284 # Fortran Compiler dependent settings
285 include("${PROJECT_SOURCE_DIR}/cmake/fc.cmake")
290 set (CCOMMON_OPT "${CCOMMON_OPT} -DLAPACK_ILP64")
300 # CCOMMON_OPT += -DUSE64BITINT
305 set(CCOMMON_OPT "${CCOMMON_OPT} -DOS_EMBEDDED")
306 set(CCOMMON_OPT "${CCOMMON_OPT} -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16")
310 if (${CMAKE_C_COMPILER} STREQUAL "IBM")
311 set(CCOMMON_OPT "${CCOMMON_OPT} -qpic=large")
313 set(CCOMMON_OPT "${CCOMMON_OPT} -fPIC")
317 if (${F_COMPILER} STREQUAL "SUN")
318 set(FCOMMON_OPT "${FCOMMON_OPT} -pic")
320 set(FCOMMON_OPT "${FCOMMON_OPT} -fPIC")
325 if (X86_64 OR ${CORE} STREQUAL POWER10)
326 set(SMALL_MATRIX_OPT TRUE)
328 if (SMALL_MATRIX_OPT)
329 set(CCOMMON_OPT "${CCOMMON_OPT} -DSMALL_MATRIX_OPT")
333 if (X86 OR X86_64 OR ARM64 OR POWER)
334 set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH")
336 set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_OLDER")
340 message (STATUS "DYNAMIC_ARCH is not supported on the target architecture, removing")
345 set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_LIST")
346 foreach(DCORE ${DYNAMIC_LIST})
347 set(CCOMMON_OPT "${CCOMMON_OPT} -DDYN_${DCORE}")
352 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_LAPACK")
353 #Disable LAPACK C interface
358 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_LAPACKE")
362 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX")
366 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX")
370 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX2")
374 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX512")
378 # USE_SIMPLE_THREADED_LEVEL3 = 1
380 set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER")
383 if (NOT ${CORE} STREQUAL "LOONGSON3B")
384 set(USE_SIMPLE_THREADED_LEVEL3 1)
389 set(CCOMMON_OPT "${CCOMMON_OPT} -DBIGNUMA")
394 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_WARMUP")
397 if (CONSISTENT_FPCSR)
398 set(CCOMMON_OPT "${CCOMMON_OPT} -DCONSISTENT_FPCSR")
402 set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_TLS")
405 # Only for development
406 # set(CCOMMON_OPT "${CCOMMON_OPT} -DPARAMTEST")
407 # set(CCOMMON_OPT "${CCOMMON_OPT} -DPREFETCHTEST")
408 # set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_SWITCHING")
412 set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_PAPI")
413 set(EXTRALIB "${EXTRALIB} -lpapi -lperfctr")
417 set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_THREADS")
420 set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_CPU_NUMBER=${NUM_THREADS}")
422 set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_PARALLEL_NUMBER=${NUM_PARALLEL}")
425 set(CCOMMON_OPT "${CCOMMON_OPT} -DBUFFERSIZE=${BUFFERSIZE}")
428 if (USE_SIMPLE_THREADED_LEVEL3)
429 set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_SIMPLE_THREADED_LEVEL3")
432 if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
433 if (DEFINED MAX_STACK_ALLOC)
434 if (NOT ${MAX_STACK_ALLOC} EQUAL 0)
435 set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_STACK_ALLOC=${MAX_STACK_ALLOC}")
438 set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_STACK_ALLOC=2048")
441 if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
442 if (DEFINED BLAS3_MEM_ALLOC_THRESHOLD)
443 if (NOT ${BLAS3_MEM_ALLOC_THRESHOLD} EQUAL 32)
444 set(CCOMMON_OPT "${CCOMMON_OPT} -DBLAS3_MEM_ALLOC_THRESHOLD=${BLAS3_MEM_ALLOC_THRESHOLD}")
448 if (DEFINED LIBNAMESUFFIX)
449 set(LIBPREFIX "libopenblas_${LIBNAMESUFFIX}")
451 set(LIBPREFIX "libopenblas")
454 if (NOT DEFINED SYMBOLPREFIX)
458 if (NOT DEFINED SYMBOLSUFFIX)
462 set(KERNELDIR "${PROJECT_SOURCE_DIR}/kernel/${ARCH}")
464 # TODO: need to convert these Makefiles
465 # include ${PROJECT_SOURCE_DIR}/cmake/${ARCH}.cmake
467 if (${CORE} STREQUAL "PPC440")
468 set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_QALLOC")
471 if (${CORE} STREQUAL "PPC440FP2")
472 set(STATIC_ALLOCATION 1)
475 if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
479 if (NOT X86_64 AND NOT X86 AND NOT ${CORE} STREQUAL "LOONGSON3B")
484 set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AFFINITY")
487 if (FUNCTION_PROFILE)
488 set(CCOMMON_OPT "${CCOMMON_OPT} -DFUNCTION_PROFILE")
491 if (HUGETLB_ALLOCATION)
492 set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_HUGETLB")
495 if (DEFINED HUGETLBFILE_ALLOCATION)
496 set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_HUGETLBFILE -DHUGETLB_FILE_NAME=${HUGETLBFILE_ALLOCATION})")
499 if (STATIC_ALLOCATION)
500 set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_STATIC")
503 if (DEVICEDRIVER_ALLOCATION)
504 set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_DEVICEDRIVER -DDEVICEDRIVER_NAME=\"/dev/mapper\"")
507 if (MIXED_MEMORY_ALLOCATION)
508 set(CCOMMON_OPT "${CCOMMON_OPT} -DMIXED_MEMORY_ALLOCATION")
511 set(CCOMMON_OPT "${CCOMMON_OPT} -DVERSION=\"\\\"${OpenBLAS_VERSION}\\\"\"")
513 set(REVISION "-r${OpenBLAS_VERSION}")
514 set(MAJOR_VERSION ${OpenBLAS_MAJOR_VERSION})
516 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CCOMMON_OPT}")
518 if (NOT BUILD_SINGLE AND NOT BUILD_DOUBLE AND NOT BUILD_COMPLEX AND NOT BUILD_COMPLEX16)
519 set (BUILD_SINGLE ON)
520 set (BUILD_DOUBLE ON)
521 set (BUILD_COMPLEX ON)
522 set (BUILD_COMPLEX16 ON)
525 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_SINGLE")
528 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_DOUBLE")
531 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_COMPLEX")
534 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_COMPLEX16")
537 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DBUILD_BFLOAT16")
540 set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} ${CCOMMON_OPT}")
542 # TODO: not sure what PFLAGS is -hpa
543 set(PFLAGS "${PFLAGS} ${CCOMMON_OPT} -I${TOPDIR} -DPROFILE ${COMMON_PROF}")
545 set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} ${FCOMMON_OPT}")
546 # TODO: not sure what FPFLAGS is -hpa
547 set(FPFLAGS "${FPFLAGS} ${FCOMMON_OPT} ${COMMON_PROF}")
549 #For LAPACK Fortran codes.
550 set(LAPACK_FFLAGS "${LAPACK_FFLAGS} ${CMAKE_Fortran_FLAGS}")
551 set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}")
553 #Disable -fopenmp for LAPACK Fortran codes on Windows.
554 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
555 set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parallel")
556 foreach (FILTER_FLAG ${FILTER_FLAGS})
557 string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS})
558 string(REPLACE ${FILTER_FLAG} "" LAPACK_FPFLAGS ${LAPACK_FPFLAGS})
562 if ("${F_COMPILER}" STREQUAL "GFORTRAN")
563 # lapack-netlib is rife with uninitialized warnings -hpa
564 set(LAPACK_FFLAGS "${LAPACK_FFLAGS} -Wno-maybe-uninitialized")
567 set(LAPACK_CFLAGS "${CMAKE_C_CFLAGS} -DHAVE_LAPACK_CONFIG_H")
569 set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DLAPACK_ILP64")
572 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
573 set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DOPENBLAS_OS_WINDOWS")
576 if (${CMAKE_C_COMPILER} STREQUAL "LSB" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
577 set(LAPACK_CFLAGS "${LAPACK_CFLAGS} -DLAPACK_COMPLEX_STRUCTURE")
580 if ("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
581 if ("${F_COMPILER}" STREQUAL "FLANG")
582 if (${CMAKE_Fortran_COMPILER_VERSION} VERSION_LESS_EQUAL 3)
583 set(CMAKE_Fortran_FLAGS_RELEASE "${CMAKE_Fortran_FLAGS_RELEASE} -fno-unroll-loops")
588 if (NOT DEFINED SUFFIX)
592 if (NOT DEFINED PSUFFIX)
596 if (NOT DEFINED LIBSUFFIX)
602 set(LIBNAME "${LIBPREFIX}p${REVISION}.${LIBSUFFIX}")
603 set(LIBNAME_P "${LIBPREFIX}p${REVISION}_p.${LIBSUFFIX}")
605 set(LIBNAME "${LIBPREFIX}${REVISION}.${LIBSUFFIX}")
606 set(LIBNAME_P "${LIBPREFIX}${REVISION}_p.${LIBSUFFIX}")
610 set(LIBNAME "${LIBPREFIX}_${LIBCORE}p${REVISION}.${LIBSUFFIX}")
611 set(LIBNAME_P "${LIBPREFIX}_${LIBCORE}p${REVISION}_p.${LIBSUFFIX}")
613 set(LIBNAME "${LIBPREFIX}_${LIBCORE}${REVISION}.${LIBSUFFIX}")
614 set(LIBNAME_P "${LIBPREFIX}_${LIBCORE}${REVISION}_p.${LIBSUFFIX}")
619 set(LIBDLLNAME "${LIBPREFIX}.dll")
620 set(LIBSONAME "${LIBNAME}.${LIBSUFFIX}.so")
621 set(LIBDYNNAME "${LIBNAME}.${LIBSUFFIX}.dylib")
622 set(LIBDEFNAME "${LIBNAME}.${LIBSUFFIX}.def")
623 set(LIBEXPNAME "${LIBNAME}.${LIBSUFFIX}.exp")
624 set(LIBZIPNAME "${LIBNAME}.${LIBSUFFIX}.zip")
626 set(LIBS "${PROJECT_SOURCE_DIR}/${LIBNAME}")
627 set(LIBS_P "${PROJECT_SOURCE_DIR}/${LIBNAME_P}")
630 set(LIB_COMPONENTS BLAS)
632 set(LIB_COMPONENTS "${LIB_COMPONENTS} CBLAS")
636 set(LIB_COMPONENTS "${LIB_COMPONENTS} LAPACK")
638 set(LIB_COMPONENTS "${LIB_COMPONENTS} LAPACKE")
641 set(LIB_COMPONENTS "${LIB_COMPONENTS} ReLAPACK")
646 set(LIB_COMPONENTS CBLAS)
654 if (X86 OR X86_64 OR ${ARCH} STREQUAL "ia64" OR MIPS64)
658 if (${CORE} STREQUAL "generic")
674 #export NEED2UNDERSCORES
679 #export MAKEFILE_RULE
708 #export FUNCTION_PROFILE
711 #export SBGEMM_UNROLL_M
712 #export SBGEMM_UNROLL_N
713 #export SGEMM_UNROLL_M
714 #export SGEMM_UNROLL_N
715 #export DGEMM_UNROLL_M
716 #export DGEMM_UNROLL_N
717 #export QGEMM_UNROLL_M
718 #export QGEMM_UNROLL_N
719 #export CGEMM_UNROLL_M
720 #export CGEMM_UNROLL_N
721 #export ZGEMM_UNROLL_M
722 #export ZGEMM_UNROLL_N
723 #export XGEMM_UNROLL_M
724 #export XGEMM_UNROLL_N
725 #export CGEMM3M_UNROLL_M
726 #export CGEMM3M_UNROLL_N
727 #export ZGEMM3M_UNROLL_M
728 #export ZGEMM3M_UNROLL_N
729 #export XGEMM3M_UNROLL_M
730 #export XGEMM3M_UNROLL_N