Browse Source

Refs #227. Detected LLVM/Clang compiler.

tags/v0.2.7
Zhang Xianyi 12 years ago
parent
commit
960b0c88a7
3 changed files with 32 additions and 1 deletions
  1. +23
    -1
      Makefile.system
  2. +5
    -0
      c_check
  3. +4
    -0
      ctest.c

+ 23
- 1
Makefile.system 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


+ 5
- 0
c_check 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";
} }


+ 4
- 0
ctest.c 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


Loading…
Cancel
Save