Ported more of Makefile.system to CMake.
authorHank Anderson <hank.p.anderson@gmail.com>
Tue, 3 Feb 2015 19:34:41 +0000 (13:34 -0600)
committerHank Anderson <hank.p.anderson@gmail.com>
Tue, 3 Feb 2015 19:34:41 +0000 (13:34 -0600)
cmake/system.cmake

index c81afb9..ad4a6f3 100644 (file)
@@ -117,13 +117,13 @@ endif ()
 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")
@@ -137,3 +137,193 @@ include("${CMAKE_SOURCE_DIR}/cmake/cc.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 ()
+
+