unset(ARFLAGS)
set(CPP "${COMPILER} -E")
set(AR "${CROSS_SUFFIX}ar")
-set(AS "$(CROSS_SUFFIX)as")
-set(LD "$(CROSS_SUFFIX)ld")
-set(RANLIB "$(CROSS_SUFFIX)ranlib")
-set(NM "$(CROSS_SUFFIX)nm")
-set(DLLWRAP "$(CROSS_SUFFIX)dllwrap")
-set(OBJCOPY "$(CROSS_SUFFIX)objcopy")
-set(OBJCONV "$(CROSS_SUFFIX)objconv")
+set(AS "${CROSS_SUFFIX}as")
+set(LD "${CROSS_SUFFIX}ld")
+set(RANLIB "${CROSS_SUFFIX}ranlib")
+set(NM "${CROSS_SUFFIX}nm")
+set(DLLWRAP "${CROSS_SUFFIX}dllwrap")
+set(OBJCOPY "${CROSS_SUFFIX}objcopy")
+set(OBJCONV "${CROSS_SUFFIX}objconv")
# OS dependent settings
include("${CMAKE_SOURCE_DIR}/cmake/os.cmake")
# Fortran Compiler dependent settings
include("${CMAKE_SOURCE_DIR}/cmake/fc.cmake")
+if (BINARY64)
+ if (INTERFACE64)
+ # CCOMMON_OPT += -DUSE64BITINT
+ endif ()
+endif ()
+
+if (NEED_PIC)
+ if (${CMAKE_C_COMPILER} STREQUAL "IBM")
+ set(CCOMMON_OPT "${CCOMMON_OPT} -qpic=large")
+ else ()
+ set(CCOMMON_OPT "${CCOMMON_OPT} -fPIC")
+ endif ()
+
+ if (${Fortran_COMPILER_NAME} STREQUAL "SUN")
+ set(FCOMMON_OPT "${FCOMMON_OPT} -pic")
+ else ()
+ set(FCOMMON_OPT "${FCOMMON_OPT} -fPIC")
+ endif ()
+endif ()
+
+if (DYNAMIC_ARCH)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_ARCH")
+endif ()
+
+if (NO_LAPACK)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_LAPACK")
+ #Disable LAPACK C interface
+ set(NO_LAPACKE 1)
+endif ()
+
+if (NO_LAPACKE)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_LAPACKE")
+endif ()
+
+if (NO_AVX)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX")
+endif ()
+
+if (${ARCH} STREQUAL "x86")
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX")
+endif ()
+
+if (NO_AVX2)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AVX2")
+endif ()
+
+if (SMP)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DSMP_SERVER")
+
+ if (${ARCH} STERQUAL "mips64")
+ if (NOT ${CORE} STREQUAL "LOONGSON3B")
+ set(USE_SIMPLE_THREADED_LEVEL3 1)
+ endif ()
+ endif ()
+
+ if (USE_OPENMP)
+ # USE_SIMPLE_THREADED_LEVEL3 = 1
+ # NO_AFFINITY = 1
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_OPENMP")
+ endif ()
+
+ if (BIGNUMA)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DBIGNUMA")
+ endif ()
+
+endif ()
+
+if (NO_WARMUP)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_WARMUP")
+endif ()
+
+if (CONSISTENT_FPCSR)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DCONSISTENT_FPCSR")
+endif ()
+
+# Only for development
+# set(CCOMMON_OPT "${CCOMMON_OPT} -DPARAMTEST")
+# set(CCOMMON_OPT "${CCOMMON_OPT} -DPREFETCHTEST")
+# set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_SWITCHING")
+# set(USE_PAPI 1)
+
+if (USE_PAPI)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_PAPI")
+ set(EXTRALIB "${EXTRALIB} -lpapi -lperfctr")
+endif ()
+
+if (DYNAMIC_THREADS)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DDYNAMIC_THREADS")
+endif ()
+
+set(CCOMMON_OPT "${CCOMMON_OPT} -DMAX_CPU_NUMBER=${NUM_THREADS}")
+
+if (USE_SIMPLE_THREADED_LEVEL3)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_SIMPLE_THREADED_LEVEL3")
+endif ()
+
+if (DEFINED LIBNAMESUFFIX)
+ set(LIBPREFIX "libopenblas_${LIBNAMESUFFIX}")
+else ()
+ set(LIBPREFIX "libopenblas")
+endif ()
+
+if (NOT DEFINED SYMBOLPREFIX)
+ set(SYMBOLPREFIX "")
+endif ()
+
+if (NOT DEFINED SYMBOLSUFFIX)
+ set(SYMBOLSUFFIX "")
+endif ()
+
+set(KERNELDIR "${CMAKE_SOURCE_DIR}/kernel/${ARCH}")
+
+# TODO: nead to convert these Makefiles
+# include ${CMAKE_SOURCE_DIR}/cmake/${ARCH}.cmake
+
+# TODO: Need to figure out how to get $(*F) in cmake
+set(CCOMMON_OPT "${CCOMMON_OPT} -DASMNAME=${FU}$(*F) -DASMFNAME=${FU}$(*F)${BU} -DNAME=$(*F)${BU} -DCNAME=$(*F) -DCHAR_NAME=\"$(*F)${BU}\" -DCHAR_CNAME=\"$(*F)\"")
+
+if (${CORE} STREQUAL "PPC440")
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_QALLOC")
+endif ()
+
+if (${CORE} STREQUAL "PPC440FP2")
+ set(STATIC_ALLOCATION 1)
+endif ()
+
+if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+ set(NO_AFFINITY 1)
+endif ()
+
+if (NOT ${ARCH} STREQUAL "x86_64" AND NOT ${ARCH} STREQUAL "x86" AND NOT ${CORE} STREQUAL "LOONGSON3B")
+ set(NO_AFFINITY 1)
+endif ()
+
+if (NO_AFFINITY)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DNO_AFFINITY")
+endif ()
+
+if (FUNCTION_PROFILE)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DFUNCTION_PROFILE")
+endif ()
+
+if (HUGETLB_ALLOCATION)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_HUGETLB")
+endif ()
+
+if (DEFINED HUGETLBFILE_ALLOCATION)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_HUGETLBFILE -DHUGETLB_FILE_NAME=${HUGETLBFILE_ALLOCATION})")
+endif ()
+
+if (STATIC_ALLOCATION)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_STATIC")
+endif ()
+
+if (DEVICEDRIVER_ALLOCATION)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DALLOC_DEVICEDRIVER -DDEVICEDRIVER_NAME=\"/dev/mapper\"")
+endif ()
+
+if (MIXED_MEMORY_ALLOCATION)
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DMIXED_MEMORY_ALLOCATION")
+endif ()
+
+if (${OSNAME} STREQUAL "SunOS")
+ set(TAR gtar)
+ set(PATCH gpatch)
+ set(GREP ggrep)
+else ()
+ set(TAR tar)
+ set(PATCH patch)
+ set(GREP grep)
+endif ()
+
+if (NOT DEFINED MD5SUM)
+ set(MD5SUM md5sum)
+endif ()
+
+set(AWK awk)
+
+set(REVISION "-r${VERSION}")
+string(REGEX MATCH "[0-9]+\\." MAJOR_VERSION "${VERSION}")
+
+if (DEBUG)
+ set(COMMON_OPT "${COMMON_OPT} -g")
+endif ()
+
+if (NOT DEFINED COMMON_OPT)
+ set(COMMON_OPT "-O2")
+endif ()
+
+