Signed-off-by: Paul Osmialowski <pawel.osmialowski@arm.com>tags/v0.2.20^2
| @@ -414,7 +414,6 @@ CCOMMON_OPT += -fopenmp | |||||
| endif | endif | ||||
| ifeq ($(C_COMPILER), CLANG) | ifeq ($(C_COMPILER), CLANG) | ||||
| $(error OpenBLAS: Clang didn't support OpenMP yet.) | |||||
| CCOMMON_OPT += -fopenmp | CCOMMON_OPT += -fopenmp | ||||
| endif | endif | ||||
| @@ -584,6 +583,23 @@ endif | |||||
| # Fortran Compiler dependent settings | # 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) | ifeq ($(F_COMPILER), G77) | ||||
| CCOMMON_OPT += -DF_INTERFACE_G77 | CCOMMON_OPT += -DF_INTERFACE_G77 | ||||
| FCOMMON_OPT += -Wall | FCOMMON_OPT += -Wall | ||||
| @@ -3,6 +3,21 @@ | |||||
| ## Description: Ported from portion of OpenBLAS/Makefile.system | ## Description: Ported from portion of OpenBLAS/Makefile.system | ||||
| ## Sets Fortran related variables. | ## 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") | if (${F_COMPILER} STREQUAL "G77") | ||||
| set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77") | set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_G77") | ||||
| set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") | set(FCOMMON_OPT "${FCOMMON_OPT} -Wall") | ||||
| @@ -39,7 +39,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #define INLINE inline | #define INLINE inline | ||||
| #ifdef F_INTERFACE_FLANG | |||||
| #define RETURN_BY_STACK | |||||
| #else | |||||
| #define RETURN_BY_COMPLEX | #define RETURN_BY_COMPLEX | ||||
| #endif | |||||
| #ifndef ASSEMBLER | #ifndef ASSEMBLER | ||||
| @@ -33,6 +33,7 @@ if ($compiler eq "") { | |||||
| "ppuf77", "ppuf95", "ppuf90", "ppuxlf", | "ppuf77", "ppuf95", "ppuf90", "ppuxlf", | ||||
| "pathf90", "pathf95", | "pathf90", "pathf95", | ||||
| "pgf95", "pgf90", "pgf77", | "pgf95", "pgf90", "pgf77", | ||||
| "flang", | |||||
| "ifort"); | "ifort"); | ||||
| OUTER: | OUTER: | ||||
| @@ -78,8 +79,13 @@ if ($compiler eq "") { | |||||
| $vendor = GFORTRAN; | $vendor = GFORTRAN; | ||||
| $openmp = "-fopenmp"; | $openmp = "-fopenmp"; | ||||
| } else { | } else { | ||||
| $vendor = G77; | |||||
| $openmp = ""; | |||||
| if ($compiler =~ /flang/) { | |||||
| $vendor = FLANG; | |||||
| $openmp = "-fopenmp"; | |||||
| } else { | |||||
| $vendor = G77; | |||||
| $openmp = ""; | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| @@ -197,6 +203,12 @@ if ($compiler eq "") { | |||||
| $openmp = "-mp"; | $openmp = "-mp"; | ||||
| } | } | ||||
| if ($compiler =~ /flang/) { | |||||
| $vendor = FLANG; | |||||
| $bu = "_"; | |||||
| $openmp = "-fopenmp"; | |||||
| } | |||||
| if ($vendor eq "") { | if ($vendor eq "") { | ||||
| $nofortran = 1; | $nofortran = 1; | ||||
| $compiler = "gfortran"; | $compiler = "gfortran"; | ||||
| @@ -331,6 +343,10 @@ if ($vendor eq "INTEL"){ | |||||
| $linker_a .= "-lgfortran" | $linker_a .= "-lgfortran" | ||||
| } | } | ||||
| if ($vendor eq "FLANG"){ | |||||
| $linker_a .= "-lflang" | |||||
| } | |||||
| open(MAKEFILE, ">> $makefile") || die "Can't append $makefile"; | open(MAKEFILE, ">> $makefile") || die "Can't append $makefile"; | ||||
| open(CONFFILE, ">> $config" ) || die "Can't append $config"; | open(CONFFILE, ">> $config" ) || die "Can't append $config"; | ||||