Skip to content

Commit 4260215

Browse files
committed
Support DYNAMIC_ARCH with cmake
1 parent 89ec2be commit 4260215

File tree

6 files changed

+474
-444
lines changed

6 files changed

+474
-444
lines changed

CMakeLists.txt

+8
Original file line numberDiff line numberDiff line change
@@ -209,13 +209,21 @@ set_target_properties(${OpenBLAS_LIBNAME} PROPERTIES
209209
# @echo "#define EXPRECISION">> config_last.h
210210
#endif
211211
###
212+
212213
#ifeq ($(DYNAMIC_ARCH), 1)
213214
# @$(MAKE) -C kernel commonlibs || exit 1
214215
# @for d in $(DYNAMIC_CORE) ; \
215216
# do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
216217
# done
217218
# @echo DYNAMIC_ARCH=1 >> Makefile.conf_last
218219
#endif
220+
if (${DYNAMIC_ARCH})
221+
add_subdirectory(kernel)
222+
foreach(TARGET_CORE ${DYNAMIC_CORE})
223+
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:kernel_${DYNAMIC_CORE}>")
224+
endforeach()
225+
endif ()
226+
219227
#ifdef USE_THREAD
220228
# @echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
221229
#endif

cmake/arch.cmake

+4-4
Original file line numberDiff line numberDiff line change
@@ -64,16 +64,16 @@ endif ()
6464

6565
if (DYNAMIC_ARCH)
6666
if (${ARCH} STREQUAL "x86")
67-
set(DYNAMIC_CORE "KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO")
67+
set(DYNAMIC_CORE KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO)
6868
endif ()
6969

7070
if (${ARCH} STREQUAL "x86_64")
71-
set(DYNAMIC_CORE "PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO")
71+
set(DYNAMIC_CORE PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO)
7272
if (NOT NO_AVX)
73-
set(DYNAMIC_CORE "${DYNAMIC_CORE} SANDYBRIDGE BULLDOZER PILEDRIVER STEAMROLLER")
73+
set(DYNAMIC_CORE ${DYNAMIC_CORE} SANDYBRIDGE BULLDOZER PILEDRIVER STEAMROLLER)
7474
endif ()
7575
if (NOT NO_AVX2)
76-
set(DYNAMIC_CORE "${DYNAMIC_CORE} HASWELL ZEN")
76+
set(DYNAMIC_CORE ${DYNAMIC_CORE} HASWELL ZEN)
7777
endif ()
7878
endif ()
7979

cmake/prebuild.cmake

+9-1
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ if (DEFINED TARGET_CORE)
4646
set(GETARCH2_FLAGS "-DBUILD_KERNEL")
4747
set(TARGET_MAKE "Makefile_kernel.conf")
4848
set(TARGET_CONF "config_kernel.h")
49+
set(TARGET_CONF_DIR ${PROJECT_BINARY_DIR}/kernel_config/${TARGET_CORE})
4950
else()
5051
set(TARGET_MAKE "Makefile.conf")
5152
set(TARGET_CONF "config.h")
53+
set(TARGET_CONF_DIR ${PROJECT_BINARY_DIR})
5254
endif ()
5355

5456
set(TARGET_CONF_TEMP "${PROJECT_BINARY_DIR}/${TARGET_CONF}.tmp")
@@ -129,7 +131,13 @@ execute_process(COMMAND ${PROJECT_BINARY_DIR}/${GETARCH2_BIN} 1 OUTPUT_VARIABLE
129131

130132
# append config data from getarch_2nd to the TARGET file and read in CMake vars
131133
file(APPEND ${TARGET_CONF_TEMP} ${GETARCH2_CONF_OUT})
132-
configure_file(${TARGET_CONF_TEMP} ${PROJECT_BINARY_DIR}/${TARGET_CONF} COPYONLY)
134+
135+
if (${BUILD_KERNEL})
136+
configure_file(${TARGET_CONF_TEMP} ${PROJECT_BINARY_DIR}/kernel_config/${TARGET_CORE}/${TARGET_CONF} COPYONLY)
137+
else ()
138+
configure_file(${TARGET_CONF_TEMP} ${PROJECT_BINARY_DIR}/${TARGET_CONF} COPYONLY)
139+
endif ()
140+
133141
ParseGetArchVars(${GETARCH2_MAKE_OUT})
134142

135143
# compile get_config_h

cmake/system.cmake

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
## Author: Hank Anderson <hank@statease.com>
33
## Description: Ported from OpenBLAS/Makefile.system
44
##
5-
65
set(NETLIB_LAPACK_DIR "${PROJECT_SOURCE_DIR}/lapack-netlib")
76

87
# TODO: Makefile.system detects Darwin (mac) and switches to clang here -hpa

cmake/utils.cmake

+1-1
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ function(GenerateNamedObjects sources_in)
225225

226226
# create a copy of the source to avoid duplicate obj filename problem with ar.exe
227227
get_filename_component(source_extension ${source_file} EXT)
228-
set(new_source_file "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${obj_name}${source_extension}")
228+
set(new_source_file "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${obj_name}${TSUFFIX}${source_extension}")
229229
if (IS_ABSOLUTE ${source_file})
230230
set(old_source_file ${source_file})
231231
else ()

0 commit comments

Comments
 (0)