Merge pull request #230 from wernsaar/develop
[platform/upstream/openblas.git] / Makefile.system
index 35cec17..abefcd5 100644 (file)
@@ -20,6 +20,12 @@ endif
 # - Default value is 'cc' which is not always a valid command (e.g. MinGW).
 ifeq ($(origin CC),default)
 CC = gcc
+# Change the default compile to clang on Mac OSX.
+# http://stackoverflow.com/questions/714100/os-detecting-makefile
+UNAME_S := $(shell uname -s)
+ifeq ($(UNAME_S),Darwin)
+     CC = clang
+endif
 endif
 
 # Default Fortran compiler (FC) is selected by f_check.
@@ -53,7 +59,7 @@ GETARCH_FLAGS += -DUSE64BITINT
 endif
 
 ifndef GEMM_MULTITHREAD_THRESHOLD
-GEMM_MULTITHREAD_THRESHOLD=50
+GEMM_MULTITHREAD_THRESHOLD=4
 endif
 GETARCH_FLAGS  += -DGEMM_MULTITHREAD_THRESHOLD=$(GEMM_MULTITHREAD_THRESHOLD) 
 
@@ -65,6 +71,10 @@ ifeq ($(DEBUG), 1)
 GETARCH_FLAGS  += -g
 endif
 
+ifndef NO_PARALLEL_MAKE
+NO_PARALLEL_MAKE=0
+endif
+GETARCH_FLAGS  += -DNO_PARALLEL_MAKE=$(NO_PARALLEL_MAKE)
 # This operation is expensive, so execution should be once.
 ifndef GOTOBLAS_MAKEFILE
 export GOTOBLAS_MAKEFILE = 1
@@ -148,7 +158,12 @@ EXTRALIB        += -defaultlib:advapi32
 
 SUFFIX  = obj
 PSUFFIX = pobj
-LIBSUFFIX = lib
+LIBSUFFIX = a
+
+ifeq ($(C_COMPILER), CLANG)
+CCOMMON_OPT    += -DMS_ABI
+endif
+
 ifeq ($(C_COMPILER), GCC)
 #Test for supporting MS_ABI
 GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
@@ -228,6 +243,11 @@ EXPRECISION        = 1
 CCOMMON_OPT    += -DEXPRECISION -m128bit-long-double
 FCOMMON_OPT    += -m128bit-long-double
 endif
+ifeq ($(C_COMPILER), CLANG)
+EXPRECISION    = 1
+CCOMMON_OPT    += -DEXPRECISION 
+FCOMMON_OPT    += -m128bit-long-double
+endif
 endif
 endif
 endif
@@ -240,6 +260,11 @@ EXPRECISION        = 1
 CCOMMON_OPT    += -DEXPRECISION -m128bit-long-double
 FCOMMON_OPT    += -m128bit-long-double
 endif
+ifeq ($(C_COMPILER), CLANG)
+EXPRECISION    = 1
+CCOMMON_OPT    += -DEXPRECISION 
+FCOMMON_OPT    += -m128bit-long-double
+endif
 endif
 endif
 endif
@@ -253,6 +278,11 @@ ifeq ($(C_COMPILER), GCC)
 CCOMMON_OPT    += -fopenmp
 endif
 
+ifeq ($(C_COMPILER), CLANG)
+$(error OpenBLAS: Clang didn't support OpenMP yet.)
+CCOMMON_OPT    += -fopenmp
+endif
+
 ifeq ($(C_COMPILER), INTEL)
 CCOMMON_OPT    += -openmp
 endif
@@ -318,7 +348,9 @@ endif
 #  C Compiler dependent settings
 #
 
-ifeq ($(C_COMPILER), GCC)
+# ifeq logical or. GCC or CLANG
+# http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or
+ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC CLANG))
 CCOMMON_OPT += -Wall
 COMMON_PROF += -fno-inline
 NO_UNINITIALIZED_WARN =  -Wno-uninitialized