Merge pull request #1264 from isuruf/dyn
Support DYNAMIC_ARCH with CMake
This commit is contained in:
commit
e6b9b660c3
|
@ -27,6 +27,7 @@ option(BUILD_WITHOUT_LAPACK "Without LAPACK and LAPACKE (Only BLAS or CBLAS)" ON
|
||||||
endif()
|
endif()
|
||||||
option(BUILD_WITHOUT_CBLAS "Without CBLAS" OFF)
|
option(BUILD_WITHOUT_CBLAS "Without CBLAS" OFF)
|
||||||
option(BUILD_DEBUG "Build Debug Version" OFF)
|
option(BUILD_DEBUG "Build Debug Version" OFF)
|
||||||
|
option(DYNAMIC_ARCH "Build with DYNAMIC_ARCH" OFF)
|
||||||
#######
|
#######
|
||||||
if(BUILD_WITHOUT_LAPACK)
|
if(BUILD_WITHOUT_LAPACK)
|
||||||
set(NO_LAPACK 1)
|
set(NO_LAPACK 1)
|
||||||
|
@ -153,6 +154,22 @@ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Zi")
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /DEBUG /OPT:REF /OPT:ICF")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
#ifeq ($(DYNAMIC_ARCH), 1)
|
||||||
|
# @$(MAKE) -C kernel commonlibs || exit 1
|
||||||
|
# @for d in $(DYNAMIC_CORE) ; \
|
||||||
|
# do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
|
||||||
|
# done
|
||||||
|
# @echo DYNAMIC_ARCH=1 >> Makefile.conf_last
|
||||||
|
#endif
|
||||||
|
if (${DYNAMIC_ARCH})
|
||||||
|
add_subdirectory(kernel)
|
||||||
|
foreach(TARGET_CORE ${DYNAMIC_CORE})
|
||||||
|
message("${TARGET_CORE}")
|
||||||
|
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:kernel_${TARGET_CORE}>")
|
||||||
|
endforeach()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
# add objects to the openblas lib
|
# add objects to the openblas lib
|
||||||
add_library(${OpenBLAS_LIBNAME} SHARED ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS} ${OpenBLAS_DEF_FILE})
|
add_library(${OpenBLAS_LIBNAME} SHARED ${LA_SOURCES} ${LAPACKE_SOURCES} ${TARGET_OBJS} ${OpenBLAS_DEF_FILE})
|
||||||
|
|
||||||
|
@ -209,13 +226,7 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
|
||||||
# @echo "#define EXPRECISION">> config_last.h
|
# @echo "#define EXPRECISION">> config_last.h
|
||||||
#endif
|
#endif
|
||||||
###
|
###
|
||||||
#ifeq ($(DYNAMIC_ARCH), 1)
|
|
||||||
# @$(MAKE) -C kernel commonlibs || exit 1
|
|
||||||
# @for d in $(DYNAMIC_CORE) ; \
|
|
||||||
# do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
|
|
||||||
# done
|
|
||||||
# @echo DYNAMIC_ARCH=1 >> Makefile.conf_last
|
|
||||||
#endif
|
|
||||||
#ifdef USE_THREAD
|
#ifdef USE_THREAD
|
||||||
# @echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
|
# @echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -25,6 +25,8 @@ skip_commits:
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
matrix:
|
matrix:
|
||||||
|
- COMPILER: clang-cl
|
||||||
|
DYNAMIC_ARCH: ON
|
||||||
- COMPILER: clang-cl
|
- COMPILER: clang-cl
|
||||||
- COMPILER: cl
|
- COMPILER: cl
|
||||||
|
|
||||||
|
@ -39,6 +41,7 @@ before_build:
|
||||||
- cd c:\projects\OpenBLAS
|
- cd c:\projects\OpenBLAS
|
||||||
- if [%COMPILER%]==[cl] cmake -G "Visual Studio 12 Win64" .
|
- if [%COMPILER%]==[cl] cmake -G "Visual Studio 12 Win64" .
|
||||||
- if [%COMPILER%]==[clang-cl] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl .
|
- if [%COMPILER%]==[clang-cl] cmake -G "Ninja" -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_C_COMPILER=clang-cl .
|
||||||
|
- if [%DYNAMIC_ARCH%]==[ON] cmake -DDYNAMIC_ARCH=ON .
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
- cmake --build .
|
- cmake --build .
|
||||||
|
|
|
@ -64,16 +64,16 @@ endif ()
|
||||||
|
|
||||||
if (DYNAMIC_ARCH)
|
if (DYNAMIC_ARCH)
|
||||||
if (${ARCH} STREQUAL "x86")
|
if (${ARCH} STREQUAL "x86")
|
||||||
set(DYNAMIC_CORE "KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO")
|
set(DYNAMIC_CORE KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (${ARCH} STREQUAL "x86_64")
|
if (${ARCH} STREQUAL "x86_64")
|
||||||
set(DYNAMIC_CORE "PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO")
|
set(DYNAMIC_CORE PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO)
|
||||||
if (NOT NO_AVX)
|
if (NOT NO_AVX)
|
||||||
set(DYNAMIC_CORE "${DYNAMIC_CORE} SANDYBRIDGE BULLDOZER PILEDRIVER STEAMROLLER")
|
set(DYNAMIC_CORE ${DYNAMIC_CORE} SANDYBRIDGE BULLDOZER PILEDRIVER STEAMROLLER EXCAVATOR)
|
||||||
endif ()
|
endif ()
|
||||||
if (NOT NO_AVX2)
|
if (NOT NO_AVX2)
|
||||||
set(DYNAMIC_CORE "${DYNAMIC_CORE} HASWELL ZEN")
|
set(DYNAMIC_CORE ${DYNAMIC_CORE} HASWELL ZEN)
|
||||||
endif ()
|
endif ()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
|
@ -46,9 +46,11 @@ if (DEFINED TARGET_CORE)
|
||||||
set(GETARCH2_FLAGS "-DBUILD_KERNEL")
|
set(GETARCH2_FLAGS "-DBUILD_KERNEL")
|
||||||
set(TARGET_MAKE "Makefile_kernel.conf")
|
set(TARGET_MAKE "Makefile_kernel.conf")
|
||||||
set(TARGET_CONF "config_kernel.h")
|
set(TARGET_CONF "config_kernel.h")
|
||||||
|
set(TARGET_CONF_DIR ${PROJECT_BINARY_DIR}/kernel_config/${TARGET_CORE})
|
||||||
else()
|
else()
|
||||||
set(TARGET_MAKE "Makefile.conf")
|
set(TARGET_MAKE "Makefile.conf")
|
||||||
set(TARGET_CONF "config.h")
|
set(TARGET_CONF "config.h")
|
||||||
|
set(TARGET_CONF_DIR ${PROJECT_BINARY_DIR})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(TARGET_CONF_TEMP "${PROJECT_BINARY_DIR}/${TARGET_CONF}.tmp")
|
set(TARGET_CONF_TEMP "${PROJECT_BINARY_DIR}/${TARGET_CONF}.tmp")
|
||||||
|
@ -128,7 +130,13 @@ execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE
|
||||||
|
|
||||||
# append config data from getarch_2nd to the TARGET file and read in CMake vars
|
# append config data from getarch_2nd to the TARGET file and read in CMake vars
|
||||||
file(APPEND ${TARGET_CONF_TEMP} ${GETARCH2_CONF_OUT})
|
file(APPEND ${TARGET_CONF_TEMP} ${GETARCH2_CONF_OUT})
|
||||||
|
|
||||||
|
if (${BUILD_KERNEL})
|
||||||
|
configure_file(${TARGET_CONF_TEMP} ${PROJECT_BINARY_DIR}/kernel_config/${TARGET_CORE}/${TARGET_CONF} COPYONLY)
|
||||||
|
else ()
|
||||||
configure_file(${TARGET_CONF_TEMP} ${PROJECT_BINARY_DIR}/${TARGET_CONF} COPYONLY)
|
configure_file(${TARGET_CONF_TEMP} ${PROJECT_BINARY_DIR}/${TARGET_CONF} COPYONLY)
|
||||||
|
endif ()
|
||||||
|
|
||||||
ParseGetArchVars(${GETARCH2_MAKE_OUT})
|
ParseGetArchVars(${GETARCH2_MAKE_OUT})
|
||||||
|
|
||||||
# compile get_config_h
|
# compile get_config_h
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
## Author: Hank Anderson <hank@statease.com>
|
## Author: Hank Anderson <hank@statease.com>
|
||||||
## Description: Ported from OpenBLAS/Makefile.system
|
## Description: Ported from OpenBLAS/Makefile.system
|
||||||
##
|
##
|
||||||
|
|
||||||
set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib")
|
set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib")
|
||||||
|
|
||||||
# TODO: Makefile.system detects Darwin (mac) and switches to clang here -hpa
|
# TODO: Makefile.system detects Darwin (mac) and switches to clang here -hpa
|
||||||
|
|
|
@ -202,6 +202,8 @@ function(GenerateNamedObjects sources_in)
|
||||||
if (use_cblas)
|
if (use_cblas)
|
||||||
set(obj_name "cblas_${obj_name}")
|
set(obj_name "cblas_${obj_name}")
|
||||||
list(APPEND obj_defines "CBLAS")
|
list(APPEND obj_defines "CBLAS")
|
||||||
|
elseif (NOT "${obj_name}" MATCHES "${ARCH_SUFFIX}")
|
||||||
|
set(obj_name "${obj_name}${ARCH_SUFFIX}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
list(APPEND obj_defines "ASMNAME=${FU}${obj_name};ASMFNAME=${FU}${obj_name}${BU};NAME=${obj_name}${BU};CNAME=${obj_name};CHAR_NAME=\"${obj_name}${BU}\";CHAR_CNAME=\"${obj_name}\"")
|
list(APPEND obj_defines "ASMNAME=${FU}${obj_name};ASMFNAME=${FU}${obj_name}${BU};NAME=${obj_name}${BU};CNAME=${obj_name};CHAR_NAME=\"${obj_name}${BU}\";CHAR_CNAME=\"${obj_name}\"")
|
||||||
|
|
|
@ -38,6 +38,10 @@
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#define strncasecmp _strnicmp
|
||||||
|
#define strcasecmp _stricmp
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef ARCH_X86
|
#ifdef ARCH_X86
|
||||||
#define EXTERN extern
|
#define EXTERN extern
|
||||||
|
|
|
@ -1,27 +1,26 @@
|
||||||
|
|
||||||
include_directories(${PROJECT_SOURCE_DIR})
|
include_directories(${PROJECT_SOURCE_DIR})
|
||||||
include_directories(${PROJECT_BINARY_DIR})
|
|
||||||
include("${PROJECT_SOURCE_DIR}/cmake/kernel.cmake")
|
|
||||||
|
|
||||||
# Makefile
|
# Makefile
|
||||||
|
function (build_core TARGET_CORE KDIR TSUFFIX KERNEL_DEFINITIONS)
|
||||||
if (DEFINED TARGET_CORE)
|
set (OPENBLAS_SRC "")
|
||||||
#override CFLAGS += -DBUILD_KERNEL -DTABLE_NAME=gotoblas_$(TARGET_CORE)
|
set (ARCH_SUFFIX "")
|
||||||
set(BUILD_KERNEL 1)
|
include("${PROJECT_SOURCE_DIR}/cmake/kernel.cmake")
|
||||||
set(KDIR "")
|
if (${DYNAMIC_ARCH})
|
||||||
set(TSUFFIX "_${TARGET_CORE}")
|
include("${PROJECT_SOURCE_DIR}/cmake/system.cmake")
|
||||||
else ()
|
|
||||||
set(TARGET_CORE ${CORE})
|
|
||||||
set(KDIR "")
|
|
||||||
set(TSUFFIX "")
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
SetDefaultL1()
|
SetDefaultL1()
|
||||||
SetDefaultL2()
|
SetDefaultL2()
|
||||||
SetDefaultL3()
|
SetDefaultL3()
|
||||||
ParseMakefileVars("${KERNELDIR}/KERNEL")
|
ParseMakefileVars("${KERNELDIR}/KERNEL")
|
||||||
ParseMakefileVars("${KERNELDIR}/KERNEL.${TARGET_CORE}")
|
ParseMakefileVars("${KERNELDIR}/KERNEL.${TARGET_CORE}")
|
||||||
|
|
||||||
|
set(KERNEL_INTERFACE common_level1.h common_level2.h common_level3.h)
|
||||||
|
if(NOT ${NO_LAPACK})
|
||||||
|
set(KERNEL_INTERFACE ${KERNEL_INTERFACE} common_lapack.h)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (${ADD_COMMONOBJS})
|
||||||
if (${ARCH} STREQUAL "x86")
|
if (${ARCH} STREQUAL "x86")
|
||||||
if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
if (NOT "${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
|
||||||
GenerateNamedObjects("${KERNELDIR}/cpuid.S" "" "" false "" "" true)
|
GenerateNamedObjects("${KERNELDIR}/cpuid.S" "" "" false "" "" true)
|
||||||
|
@ -31,10 +30,13 @@ endif()
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# don't use float type name mangling here
|
# don't use float type name mangling here
|
||||||
GenerateNamedObjects("${KERNELDIR}/${LSAME_KERNEL}" "F_INTERFACE" "lsame" false "" "" true)
|
GenerateNamedObjects("${KERNELDIR}/${LSAME_KERNEL}" "F_INTERFACE" "lsame" false "" "" true "")
|
||||||
GenerateNamedObjects("${KERNELDIR}/${SCABS_KERNEL}" "COMPLEX;F_INTERFACE" "scabs1" false "" "" true)
|
GenerateNamedObjects("${KERNELDIR}/${SCABS_KERNEL}" "COMPLEX;F_INTERFACE" "scabs1" false "" "" true "")
|
||||||
GenerateNamedObjects("${KERNELDIR}/${DCABS_KERNEL}" "DOUBLE;COMPLEX;F_INTERFACE" "dcabs1" false "" "" true)
|
GenerateNamedObjects("${KERNELDIR}/${DCABS_KERNEL}" "DOUBLE;COMPLEX;F_INTERFACE" "dcabs1" false "" "" true "")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Run with no ARCH_SUFFIX for above
|
||||||
|
set (ARCH_SUFFIX "${TSUFFIX}")
|
||||||
# Makefile.L1
|
# Makefile.L1
|
||||||
foreach (float_type ${FLOAT_TYPES})
|
foreach (float_type ${FLOAT_TYPES})
|
||||||
# a bit of metaprogramming here to pull out the appropriate KERNEL var
|
# a bit of metaprogramming here to pull out the appropriate KERNEL var
|
||||||
|
@ -248,6 +250,23 @@ foreach (float_type ${FLOAT_TYPES})
|
||||||
GenerateNamedObjects("generic/zgemm3m_tcopy_${${float_char}GEMM3M_UNROLL_M}.c" "ICOPY;REAL_ONLY" "gemm3m_itcopyr" false "" "" false ${float_type})
|
GenerateNamedObjects("generic/zgemm3m_tcopy_${${float_char}GEMM3M_UNROLL_M}.c" "ICOPY;REAL_ONLY" "gemm3m_itcopyr" false "" "" false ${float_type})
|
||||||
GenerateNamedObjects("generic/zgemm3m_tcopy_${${float_char}GEMM3M_UNROLL_M}.c" "ICOPY;IMAGE_ONLY" "gemm3m_itcopyi" false "" "" false ${float_type})
|
GenerateNamedObjects("generic/zgemm3m_tcopy_${${float_char}GEMM3M_UNROLL_M}.c" "ICOPY;IMAGE_ONLY" "gemm3m_itcopyi" false "" "" false ${float_type})
|
||||||
|
|
||||||
|
#hemm3m and symm3m
|
||||||
|
foreach(name symm3m hemm3m)
|
||||||
|
GenerateNamedObjects("generic/z${name}_ucopy_${${float_char}GEMM3M_UNROLL_M}.c" "USE_ALPHA" "${name}_oucopyb.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_ucopy_${${float_char}GEMM3M_UNROLL_M}.c" "USE_ALPHA;REAL_ONLY" "${name}_oucopyr.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_ucopy_${${float_char}GEMM3M_UNROLL_M}.c" "USE_ALPHA;IMAGE_ONLY" "${name}_oucopyi.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_lcopy_${${float_char}GEMM3M_UNROLL_M}.c" "USE_ALPHA" "${name}_olcopyb.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_lcopy_${${float_char}GEMM3M_UNROLL_M}.c" "USE_ALPHA;REAL_ONLY" "${name}_olcopyr.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_lcopy_${${float_char}GEMM3M_UNROLL_M}.c" "USE_ALPHA;IMAGE_ONLY" "${name}_olcopyi.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_ucopy_${${float_char}GEMM3M_UNROLL_M}.c" "" "${name}_iucopyb.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_ucopy_${${float_char}GEMM3M_UNROLL_M}.c" "REAL_ONLY" "${name}_iucopyr.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_ucopy_${${float_char}GEMM3M_UNROLL_M}.c" "IMAGE_ONLY" "${name}_iucopyi.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_lcopy_${${float_char}GEMM3M_UNROLL_M}.c" "" "${name}_ilcopyb.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_lcopy_${${float_char}GEMM3M_UNROLL_M}.c" "REAL_ONLY" "${name}_ilcopyr.c" false "" "" false ${float_type})
|
||||||
|
GenerateNamedObjects("generic/z${name}_lcopy_${${float_char}GEMM3M_UNROLL_M}.c" "IMAGE_ONLY" "${name}_ilcopyi.c" false "" "" false ${float_type})
|
||||||
|
|
||||||
|
endforeach ()
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
else () #For real
|
else () #For real
|
||||||
|
@ -445,7 +464,52 @@ foreach (float_type ${FLOAT_TYPES})
|
||||||
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEADD_KERNEL}" "" "geadd_k" false "" "" false ${float_type})
|
GenerateNamedObjects("${KERNELDIR}/${${float_char}GEADD_KERNEL}" "" "geadd_k" false "" "" false ${float_type})
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
|
if (${DYNAMIC_ARCH})
|
||||||
|
set(SETPARAM_TARGET_DIR ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
|
||||||
|
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/setparam-ref.c SETPARAM_REF_CONTENTS)
|
||||||
|
string(REPLACE "TS" "${TSUFFIX}" SETPARAM_REF_CONTENTS_NEW "${SETPARAM_REF_CONTENTS}")
|
||||||
|
file(WRITE ${SETPARAM_TARGET_DIR}/setparam${TSUFFIX}.tmp "${SETPARAM_REF_CONTENTS_NEW}")
|
||||||
|
configure_file(${SETPARAM_TARGET_DIR}/setparam${TSUFFIX}.tmp ${SETPARAM_TARGET_DIR}/setparam${TSUFFIX}.c COPYONLY)
|
||||||
|
set(OPENBLAS_SRC ${OPENBLAS_SRC} ${SETPARAM_TARGET_DIR}/setparam${TSUFFIX}.c)
|
||||||
|
file(REMOVE ${SETPARAM_TARGET_DIR}/setparam${TSUFFIX}.tmp)
|
||||||
|
|
||||||
|
set(KERNEL_TSUFFIX_CONTENTS "")
|
||||||
|
foreach (KERNEL_INTERFACE_H ${KERNEL_INTERFACE})
|
||||||
|
file(READ ${PROJECT_SOURCE_DIR}/${KERNEL_INTERFACE_H} KERNEL_INTERFACE_H_CONTENTS)
|
||||||
|
string(REGEX REPLACE "[ ]*\\(" "${TSUFFIX}(" KERNEL_INTERFACE_H_CONTENTS_NEW "${KERNEL_INTERFACE_H_CONTENTS}")
|
||||||
|
set(KERNEL_TSUFFIX_CONTENTS "${KERNEL_TSUFFIX_CONTENTS}\n${KERNEL_INTERFACE_H_CONTENTS_NEW}")
|
||||||
|
endforeach()
|
||||||
|
file(WRITE ${SETPARAM_TARGET_DIR}/kernel${TSUFFIX}.tmp "${KERNEL_TSUFFIX_CONTENTS}")
|
||||||
|
configure_file(${SETPARAM_TARGET_DIR}/kernel${TSUFFIX}.tmp ${SETPARAM_TARGET_DIR}/kernel${TSUFFIX}.h COPYONLY)
|
||||||
|
file(REMOVE ${SETPARAM_TARGET_DIR}/kernel${TSUFFIX}.tmp)
|
||||||
|
endif ()
|
||||||
|
|
||||||
# Makefile.LA
|
# Makefile.LA
|
||||||
#DBLASOBJS += dneg_tcopy$(TSUFFIX).$(SUFFIX) dlaswp_ncopy$(TSUFFIX).$(SUFFIX)
|
#DBLASOBJS += dneg_tcopy$(TSUFFIX).$(SUFFIX) dlaswp_ncopy$(TSUFFIX).$(SUFFIX)
|
||||||
|
|
||||||
add_library(kernel OBJECT ${OPENBLAS_SRC})
|
add_library(kernel${TSUFFIX} OBJECT ${OPENBLAS_SRC})
|
||||||
|
set_target_properties(kernel${TSUFFIX} PROPERTIES COMPILE_FLAGS "${KERNEL_DEFINITIONS}")
|
||||||
|
get_target_property(KERNEL_INCLUDE_DIRECTORIES kernel${TSUFFIX} INCLUDE_DIRECTORIES)
|
||||||
|
set_target_properties(kernel${TSUFFIX} PROPERTIES INCLUDE_DIRECTORIES "${KERNEL_INCLUDE_DIRECTORIES};${TARGET_CONF_DIR}")
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
|
||||||
|
set(ADD_COMMONOBJS 1)
|
||||||
|
if (${DYNAMIC_ARCH})
|
||||||
|
foreach(TARGET_CORE ${DYNAMIC_CORE})
|
||||||
|
set(BUILD_KERNEL 1)
|
||||||
|
set(KDIR "")
|
||||||
|
set(TSUFFIX "_${TARGET_CORE}")
|
||||||
|
set(KERNEL_DEFINITIONS "-DBUILD_KERNEL -DTABLE_NAME=gotoblas_${TARGET_CORE} -DTS=${TSUFFIX}")
|
||||||
|
build_core("${TARGET_CORE}" "${KDIR}" "${TSUFFIX}" "${KERNEL_DEFINITIONS}")
|
||||||
|
set(ADD_COMMONOBJS 0)
|
||||||
|
endforeach()
|
||||||
|
else ()
|
||||||
|
set(TARGET_CONF_DIR ${PROJECT_BINARY_DIR})
|
||||||
|
set(TARGET_CORE ${CORE})
|
||||||
|
set(KDIR "")
|
||||||
|
set(TSUFFIX "")
|
||||||
|
set(KERNEL_DEFINITIONS "")
|
||||||
|
build_core("${TARGET_CORE}" "${KDIR}" "${TSUFFIX}" "${KERNEL_DEFINITIONS}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue