diff --git a/.gitignore b/.gitignore index bae3d057f..3e163abef 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,4 @@ test/zblat1 test/zblat2 test/zblat3 build +build.* diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bca1899e..25b88d565 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,3 +56,25 @@ foreach (BLAS_DIR ${BLASDIRS}) add_subdirectory(${BLAS_DIR}) endforeach () +#Save the config files for installation +# @cp Makefile.conf Makefile.conf_last +# @cp config.h config_last.h +#ifdef QUAD_PRECISION +# @echo "#define QUAD_PRECISION">> config_last.h +#endif +#ifeq ($(EXPRECISION), 1) +# @echo "#define EXPRECISION">> config_last.h +#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 +# @echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last +#endif +# @touch lib.grd + diff --git a/cmake/system.cmake b/cmake/system.cmake index dc5aec2f2..11f0c5cdd 100644 --- a/cmake/system.cmake +++ b/cmake/system.cmake @@ -128,3 +128,5 @@ set(DLLWRAP "$(CROSS_SUFFIX)dllwrap") set(OBJCOPY "$(CROSS_SUFFIX)objcopy") set(OBJCONV "$(CROSS_SUFFIX)objconv") +# TODO: convert rest of Makefile.system, left off at "OS dependent settings" + diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt new file mode 100644 index 000000000..62a889f49 --- /dev/null +++ b/interface/CMakeLists.txt @@ -0,0 +1,46 @@ + +include_directories(${CMAKE_SOURCE_DIR}) + +# TODO: Need to generate object files for S, D, C, Q and X - start with D for now. +# The sources are the same, but there are additional preprocessor definitions depending on the precision (see Makefile.tail). + +add_library(DBLAS1OBJS OBJECT + axpy.c swap.c + copy.c scal.c + dot.c + asum.c nrm2.c + max.c # amax/min/amin compiled later from same source + rot.c rotg.c rotm.c rotmg.c + axpby.c +) + +# N.B. The original Makefile passed in -UUSE_MIN and -UUSE_ABS (where appropriate), no way to do that at a source-level in cmake. REMOVE_DEFINITIONS removes a definition for the rest of the compilation. +add_library(AMAX_OBJ OBJECT max.c) +set_target_properties(AMAX_OBJ PROPERTIES COMPILE_DEFINITIONS USE_ABS) +add_library(AMIN_OBJ OBJECT max.c) +set_target_properties(AMIN_OBJ PROPERTIES COMPILE_DEFINITIONS USE_ABS) +set_target_properties(AMIN_OBJ PROPERTIES COMPILE_DEFINITIONS USE_MIN) +add_library(MIN_OBJ OBJECT max.c) +set_target_properties(MIN_OBJ PROPERTIES COMPILE_DEFINITIONS USE_MIN) + +# TODO: USE_NETLIB_GEMV shoudl switch gemv.c to netlib/*gemv.f +add_library(DBLAS2OBJS OBJECT + gemv.c ger.c + trsv.c trmv.c symv.c + syr.c syr2.c gbmv.c + sbmv.c spmv.c + spr.c spr2.c + tbsv.c tbmv.c + tpsv.c tpmv.c +) + +add_library(DBLAS3OBJS OBJECT + gemm.c symm.c + trsm.c syrk.c syr2k.c + omatcopy.c imatcopy.c +) + +# trmm is trsm with a compiler flag set +add_library(TRMM_OBJ OBJECT trsm.c) +set_target_properties(TRMM_OBJ PROPERTIES COMPILE_DEFINITIONS TRMM) +