Refs #227. Detected LLVM/Clang compiler.

This commit is contained in:
Zhang Xianyi 2013-06-06 23:43:40 +08:00
parent 65ffead0cf
commit 960b0c88a7
3 changed files with 32 additions and 1 deletions

View File

@ -153,6 +153,11 @@ EXTRALIB += -defaultlib:advapi32
SUFFIX = obj SUFFIX = obj
PSUFFIX = pobj PSUFFIX = pobj
LIBSUFFIX = a LIBSUFFIX = a
ifeq ($(C_COMPILER), CLANG)
CCOMMON_OPT += -DMS_ABI
endif
ifeq ($(C_COMPILER), GCC) ifeq ($(C_COMPILER), GCC)
#Test for supporting MS_ABI #Test for supporting MS_ABI
GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4) GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
@ -232,6 +237,11 @@ EXPRECISION = 1
CCOMMON_OPT += -DEXPRECISION -m128bit-long-double CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
FCOMMON_OPT += -m128bit-long-double FCOMMON_OPT += -m128bit-long-double
endif endif
ifeq ($(C_COMPILER), CLANG)
EXPRECISION = 1
CCOMMON_OPT += -DEXPRECISION
FCOMMON_OPT += -m128bit-long-double
endif
endif endif
endif endif
endif endif
@ -244,6 +254,11 @@ EXPRECISION = 1
CCOMMON_OPT += -DEXPRECISION -m128bit-long-double CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
FCOMMON_OPT += -m128bit-long-double FCOMMON_OPT += -m128bit-long-double
endif endif
ifeq ($(C_COMPILER), CLANG)
EXPRECISION = 1
CCOMMON_OPT += -DEXPRECISION
FCOMMON_OPT += -m128bit-long-double
endif
endif endif
endif endif
endif endif
@ -257,6 +272,11 @@ ifeq ($(C_COMPILER), GCC)
CCOMMON_OPT += -fopenmp CCOMMON_OPT += -fopenmp
endif endif
ifeq ($(C_COMPILER), CLANG)
$(error OpenBLAS: Clang didn't support OpenMP yet.)
CCOMMON_OPT += -fopenmp
endif
ifeq ($(C_COMPILER), INTEL) ifeq ($(C_COMPILER), INTEL)
CCOMMON_OPT += -openmp CCOMMON_OPT += -openmp
endif endif
@ -322,7 +342,9 @@ endif
# C Compiler dependent settings # 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 CCOMMON_OPT += -Wall
COMMON_PROF += -fno-inline COMMON_PROF += -fno-inline
NO_UNINITIALIZED_WARN = -Wno-uninitialized NO_UNINITIALIZED_WARN = -Wno-uninitialized

View File

@ -33,6 +33,7 @@ if ($ARGV[0] =~ /(.*)(-[.\d]+)/) {
} }
$compiler = ""; $compiler = "";
$compiler = CLANG if ($data =~ /COMPILER_CLANG/);
$compiler = PGI if ($data =~ /COMPILER_PGI/); $compiler = PGI if ($data =~ /COMPILER_PGI/);
$compiler = PATHSCALE if ($data =~ /COMPILER_PATHSCALE/); $compiler = PATHSCALE if ($data =~ /COMPILER_PATHSCALE/);
$compiler = INTEL if ($data =~ /COMPILER_INTEL/); $compiler = INTEL if ($data =~ /COMPILER_INTEL/);
@ -117,6 +118,10 @@ if ($compiler eq "OPEN64") {
$openmp = "-mp"; $openmp = "-mp";
} }
if ($compiler eq "CLANG") {
$openmp = "-fopenmp";
}
if ($compiler eq "GCC") { if ($compiler eq "GCC") {
$openmp = "-fopenmp"; $openmp = "-fopenmp";
} }

View File

@ -1,3 +1,7 @@
#if defined(__clang__)
COMPILER_CLANG
#endif
#if defined(__PGI) || defined(__PGIC__) #if defined(__PGI) || defined(__PGIC__)
COMPILER_PGI COMPILER_PGI
#endif #endif