endif
ifeq ($(C_COMPILER), CLANG)
-$(error OpenBLAS: Clang didn't support OpenMP yet.)
CCOMMON_OPT += -fopenmp
endif
# Fortran Compiler dependent settings
#
+ifeq ($(F_COMPILER), FLANG)
+CCOMMON_OPT += -DF_INTERFACE_FLANG
+ifdef BINARY64
+ifdef INTERFACE64
+ifneq ($(INTERFACE64), 0)
+FCOMMON_OPT += -i8
+endif
+endif
+FCOMMON_OPT += -Wall
+else
+FCOMMON_OPT += -Wall
+endif
+ifeq ($(USE_OPENMP), 1)
+FCOMMON_OPT += -fopenmp
+endif
+endif
+
ifeq ($(F_COMPILER), G77)
CCOMMON_OPT += -DF_INTERFACE_G77
FCOMMON_OPT += -Wall
## Description: Ported from portion of OpenBLAS/Makefile.system
## Sets Fortran related variables.
+if (${F_COMPILER} STREQUAL "FLANG")
+ set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FLANG")
+ if (BINARY64)
+ if (INTERFACE64)
+ set(FCOMMON_OPT "${FCOMMON_OPT} -i8")
+ endif ()
+ set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
+ else ()
+ set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
+ endif ()
+ if (USE_OPENMP)
+ set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
+ endif ()
+endif ()
+
if (${F_COMPILER} STREQUAL "G77")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77")
set(FCOMMON_OPT "${FCOMMON_OPT} -Wall")
#define INLINE inline
+#ifdef F_INTERFACE_FLANG
+#define RETURN_BY_STACK
+#else
#define RETURN_BY_COMPLEX
+#endif
#ifndef ASSEMBLER
"ppuf77", "ppuf95", "ppuf90", "ppuxlf",
"pathf90", "pathf95",
"pgf95", "pgf90", "pgf77",
+ "flang",
"ifort");
OUTER:
$vendor = GFORTRAN;
$openmp = "-fopenmp";
} else {
- $vendor = G77;
- $openmp = "";
+ if ($compiler =~ /flang/) {
+ $vendor = FLANG;
+ $openmp = "-fopenmp";
+ } else {
+ $vendor = G77;
+ $openmp = "";
+ }
}
}
$openmp = "-mp";
}
+ if ($compiler =~ /flang/) {
+ $vendor = FLANG;
+ $bu = "_";
+ $openmp = "-fopenmp";
+ }
+
if ($vendor eq "") {
$nofortran = 1;
$compiler = "gfortran";
$linker_a .= "-lgfortran"
}
+if ($vendor eq "FLANG"){
+ $linker_a .= "-lflang"
+}
+
open(MAKEFILE, ">> $makefile") || die "Can't append $makefile";
open(CONFFILE, ">> $config" ) || die "Can't append $config";