- retry fortran compiler test with aix-specific option if generic -m32/-m64 fails - pass any custom ARFLAGS to lapack - no addition of -m32/-m64 to the CFLAGS and FFLAGS on AIXtags/v0.3.0
| @@ -28,9 +28,6 @@ SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench | |||||
| .PHONY : all libs netlib $(RELA) test ctest shared install | .PHONY : all libs netlib $(RELA) test ctest shared install | ||||
| .NOTPARALLEL : all libs $(RELA) prof lapack-test install blas-test | .NOTPARALLEL : all libs $(RELA) prof lapack-test install blas-test | ||||
| # source: https://stackoverflow.com/questions/52674/simplest-way-to-reverse-the-order-of-strings-in-a-make-variable/14260762#14260762 | |||||
| reverse = $(if $(wordlist 2,2,$(1)),$(call reverse,$(wordlist 2,$(words $(1)),$(1))) $(firstword $(1)),$(1)) | |||||
| all :: libs netlib $(RELA) tests shared | all :: libs netlib $(RELA) tests shared | ||||
| @echo | @echo | ||||
| @echo " OpenBLAS build complete. ($(LIB_COMPONENTS))" | @echo " OpenBLAS build complete. ($(LIB_COMPONENTS))" | ||||
| @@ -84,8 +81,8 @@ ifeq ($(OSNAME), Darwin) | |||||
| @echo "install_name_tool -id /new/absolute/path/to/$(LIBDYNNAME) $(LIBDYNNAME)" | @echo "install_name_tool -id /new/absolute/path/to/$(LIBDYNNAME) $(LIBDYNNAME)" | ||||
| endif | endif | ||||
| @echo | @echo | ||||
| @echo "To install the library, you can run" | |||||
| @echo " make $(call reverse,$(MAKEFLAGS)) PREFIX=/path/to/your/installation install" | |||||
| @echo "To install the library, you can run \"make PREFIX=/path/to/your/installation install\"." | |||||
| @echo | |||||
| shared : | shared : | ||||
| ifndef NO_SHARED | ifndef NO_SHARED | ||||
| @@ -245,7 +242,7 @@ ifndef NOFORTRAN | |||||
| -@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc | -@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc | ||||
| -@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc | -@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc | ||||
| -@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc | -@echo "ARCH = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc | ||||
| -@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc | |||||
| -@echo "ARCHFLAGS = $(ARFLAGS) -ru" >> $(NETLIB_LAPACK_DIR)/make.inc | |||||
| -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc | -@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc | ||||
| -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | -@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | ||||
| -@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | -@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc | ||||
| @@ -242,6 +242,10 @@ EXTRALIB += -lm | |||||
| NO_EXPRECISION = 1 | NO_EXPRECISION = 1 | ||||
| endif | endif | ||||
| ifeq ($(OSNAME), Android) | |||||
| EXTRALIB += -lm | |||||
| endif | |||||
| ifeq ($(OSNAME), AIX) | ifeq ($(OSNAME), AIX) | ||||
| EXTRALIB += -lm | EXTRALIB += -lm | ||||
| endif | endif | ||||
| @@ -571,12 +575,14 @@ endif | |||||
| endif | endif | ||||
| ifndef BINARY_DEFINED | ifndef BINARY_DEFINED | ||||
| ifneq ($(OSNAME), AIX) | |||||
| ifdef BINARY64 | ifdef BINARY64 | ||||
| CCOMMON_OPT += -m64 | CCOMMON_OPT += -m64 | ||||
| else | else | ||||
| CCOMMON_OPT += -m32 | CCOMMON_OPT += -m32 | ||||
| endif | endif | ||||
| endif | endif | ||||
| endif | |||||
| endif | endif | ||||
| @@ -621,6 +627,7 @@ ifeq ($(F_COMPILER), G77) | |||||
| CCOMMON_OPT += -DF_INTERFACE_G77 | CCOMMON_OPT += -DF_INTERFACE_G77 | ||||
| FCOMMON_OPT += -Wall | FCOMMON_OPT += -Wall | ||||
| ifndef NO_BINARY_MODE | ifndef NO_BINARY_MODE | ||||
| ifneq ($(OSNAME), AIX) | |||||
| ifdef BINARY64 | ifdef BINARY64 | ||||
| FCOMMON_OPT += -m64 | FCOMMON_OPT += -m64 | ||||
| else | else | ||||
| @@ -628,10 +635,12 @@ FCOMMON_OPT += -m32 | |||||
| endif | endif | ||||
| endif | endif | ||||
| endif | endif | ||||
| endif | |||||
| ifeq ($(F_COMPILER), G95) | ifeq ($(F_COMPILER), G95) | ||||
| CCOMMON_OPT += -DF_INTERFACE_G95 | CCOMMON_OPT += -DF_INTERFACE_G95 | ||||
| FCOMMON_OPT += -Wall | FCOMMON_OPT += -Wall | ||||
| ifneq ($(OSNAME), AIX) | |||||
| ifndef NO_BINARY_MODE | ifndef NO_BINARY_MODE | ||||
| ifdef BINARY64 | ifdef BINARY64 | ||||
| FCOMMON_OPT += -m64 | FCOMMON_OPT += -m64 | ||||
| @@ -640,6 +649,7 @@ FCOMMON_OPT += -m32 | |||||
| endif | endif | ||||
| endif | endif | ||||
| endif | endif | ||||
| endif | |||||
| ifeq ($(F_COMPILER), GFORTRAN) | ifeq ($(F_COMPILER), GFORTRAN) | ||||
| CCOMMON_OPT += -DF_INTERFACE_GFORT | CCOMMON_OPT += -DF_INTERFACE_GFORT | ||||
| @@ -660,16 +670,20 @@ FCOMMON_OPT += -mabi=32 | |||||
| endif | endif | ||||
| else | else | ||||
| ifdef BINARY64 | ifdef BINARY64 | ||||
| ifneq ($(OSNAME), AIX) | |||||
| FCOMMON_OPT += -m64 | FCOMMON_OPT += -m64 | ||||
| endif | |||||
| ifdef INTERFACE64 | ifdef INTERFACE64 | ||||
| ifneq ($(INTERFACE64), 0) | ifneq ($(INTERFACE64), 0) | ||||
| FCOMMON_OPT += -fdefault-integer-8 | FCOMMON_OPT += -fdefault-integer-8 | ||||
| endif | endif | ||||
| endif | endif | ||||
| else | else | ||||
| ifneq ($(OSNAME), AIX) | |||||
| FCOMMON_OPT += -m32 | FCOMMON_OPT += -m32 | ||||
| endif | endif | ||||
| endif | endif | ||||
| endif | |||||
| ifeq ($(USE_OPENMP), 1) | ifeq ($(USE_OPENMP), 1) | ||||
| FCOMMON_OPT += -fopenmp | FCOMMON_OPT += -fopenmp | ||||
| endif | endif | ||||
| @@ -71,7 +71,7 @@ if ($compiler eq "") { | |||||
| if ($data =~ /GNU/) { | if ($data =~ /GNU/) { | ||||
| $data =~ /(\d)\.(\d).(.)/; | |||||
| $data =~ /(\d)\.(\d).(\d)/; | |||||
| $major = $1; | $major = $1; | ||||
| $minor = $2; | $minor = $2; | ||||
| @@ -233,6 +233,10 @@ if (!$?) { | |||||
| if ($?) { | if ($?) { | ||||
| $link = `$compiler $openmp -q32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | $link = `$compiler $openmp -q32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | ||||
| } | } | ||||
| # for AIX | |||||
| if ($?) { | |||||
| $link = `$compiler $openmp -maix32 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | |||||
| } | |||||
| #For gfortran MIPS | #For gfortran MIPS | ||||
| if ($?) { | if ($?) { | ||||
| $mips_data = `$compiler_bin -E -dM - < /dev/null`; | $mips_data = `$compiler_bin -E -dM - < /dev/null`; | ||||
| @@ -250,6 +254,10 @@ if (!$?) { | |||||
| if ($?) { | if ($?) { | ||||
| $link = `$compiler $openmp -q64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | $link = `$compiler $openmp -q64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | ||||
| } | } | ||||
| # for AIX | |||||
| if ($?) { | |||||
| $link = `$compiler $openmp -maix64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | |||||
| } | |||||
| #For gfortran MIPS | #For gfortran MIPS | ||||
| if ($?) { | if ($?) { | ||||
| $link = `$compiler $openmp -mabi=64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | $link = `$compiler $openmp -mabi=64 -v ftest2.f 2>&1 && rm -f a.out a.exe`; | ||||
| @@ -1,6 +1,6 @@ | |||||
| SHELL = /bin/sh | SHELL = /bin/sh | ||||
| PLAT = _LINUX | PLAT = _LINUX | ||||
| DRVOPTS = $(NOOPT) | DRVOPTS = $(NOOPT) | ||||
| ARCHFLAGS= -ru | |||||
| #ARCHFLAGS= $(ARFLAGS) -ru | |||||
| #RANLIB = ranlib | #RANLIB = ranlib | ||||