2011-11-28 15:31:46 +08:00
|
|
|
TOPDIR = .
|
2011-01-24 22:54:24 +08:00
|
|
|
include ./Makefile.system
|
2024-02-06 04:44:03 +08:00
|
|
|
LNCMD = ln -fs
|
|
|
|
|
ifeq ($(FIXED_LIBNAME), 1)
|
|
|
|
|
LNCMD = true
|
|
|
|
|
endif
|
2011-01-24 22:54:24 +08:00
|
|
|
|
|
|
|
|
BLASDIRS = interface driver/level2 driver/level3 driver/others
|
|
|
|
|
|
2012-07-07 12:12:24 +08:00
|
|
|
ifneq ($(DYNAMIC_ARCH), 1)
|
2014-06-28 03:05:18 +08:00
|
|
|
BLASDIRS += kernel
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifdef SANITY_CHECK
|
|
|
|
|
BLASDIRS += reference
|
|
|
|
|
endif
|
|
|
|
|
|
2011-03-04 11:51:32 +08:00
|
|
|
SUBDIRS = $(BLASDIRS)
|
|
|
|
|
ifneq ($(NO_LAPACK), 1)
|
|
|
|
|
SUBDIRS += lapack
|
|
|
|
|
endif
|
2011-01-24 22:54:24 +08:00
|
|
|
|
2017-06-29 00:15:21 +08:00
|
|
|
RELA =
|
2017-07-14 04:01:47 +08:00
|
|
|
ifeq ($(BUILD_RELAPACK), 1)
|
2017-06-29 00:15:21 +08:00
|
|
|
RELA = re_lapack
|
|
|
|
|
endif
|
|
|
|
|
|
2018-06-27 06:09:21 +08:00
|
|
|
ifeq ($(NO_FORTRAN), 1)
|
|
|
|
|
define NOFORTRAN
|
|
|
|
|
1
|
|
|
|
|
endef
|
2022-04-10 04:38:58 +08:00
|
|
|
ifneq ($(NO_LAPACK), 1)
|
|
|
|
|
define C_LAPACK
|
2018-06-27 06:09:21 +08:00
|
|
|
1
|
|
|
|
|
endef
|
2022-04-10 04:38:58 +08:00
|
|
|
endif
|
2018-06-27 06:09:21 +08:00
|
|
|
export NOFORTRAN
|
|
|
|
|
export NO_LAPACK
|
2022-04-10 04:38:58 +08:00
|
|
|
export C_LAPACK
|
2018-06-27 06:09:21 +08:00
|
|
|
endif
|
|
|
|
|
|
2023-11-10 22:19:11 +08:00
|
|
|
ifeq ($(F_COMPILER),CRAY)
|
|
|
|
|
LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast -Og -Os,$(LAPACK_FFLAGS))
|
|
|
|
|
else
|
2021-12-15 06:36:16 +08:00
|
|
|
LAPACK_NOOPT := $(filter-out -O0 -O1 -O2 -O3 -Ofast -O -Og -Os,$(LAPACK_FFLAGS))
|
2023-11-10 22:19:11 +08:00
|
|
|
endif
|
2015-04-22 16:42:50 +08:00
|
|
|
|
2024-08-06 23:30:17 +08:00
|
|
|
ifdef LAPACK_STRLEN
|
|
|
|
|
LAPACK_FFLAGS += -DLAPACK_STRLEN=$(LAPACK_STRLEN)
|
|
|
|
|
endif
|
|
|
|
|
|
2019-06-02 03:32:52 +08:00
|
|
|
SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench cpp_thread_test
|
2011-01-24 22:54:24 +08:00
|
|
|
|
2017-07-02 06:50:14 +08:00
|
|
|
.PHONY : all libs netlib $(RELA) test ctest shared install
|
2023-03-31 21:22:40 +08:00
|
|
|
.NOTPARALLEL : shared
|
2011-01-24 22:54:24 +08:00
|
|
|
|
2023-03-31 21:22:40 +08:00
|
|
|
all :: tests
|
2011-01-24 22:54:24 +08:00
|
|
|
@echo
|
2013-08-21 00:03:25 +08:00
|
|
|
@echo " OpenBLAS build complete. ($(LIB_COMPONENTS))"
|
2011-01-24 22:54:24 +08:00
|
|
|
@echo
|
|
|
|
|
@echo " OS ... $(OSNAME) "
|
|
|
|
|
@echo " Architecture ... $(ARCH) "
|
|
|
|
|
ifndef BINARY64
|
|
|
|
|
@echo " BINARY ... 32bit "
|
|
|
|
|
else
|
|
|
|
|
@echo " BINARY ... 64bit "
|
2011-07-14 00:54:23 +08:00
|
|
|
endif
|
2014-06-22 15:49:20 +08:00
|
|
|
|
|
|
|
|
ifdef INTERFACE64
|
2014-06-21 18:29:23 +08:00
|
|
|
ifneq ($(INTERFACE64), 0)
|
2011-07-14 00:54:23 +08:00
|
|
|
@echo " Use 64 bits int (equivalent to \"-i8\" in Fortran) "
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
2014-06-22 15:49:20 +08:00
|
|
|
endif
|
2020-03-07 10:14:33 +08:00
|
|
|
@$(CC) --version > /dev/null 2>&1;\
|
|
|
|
|
if [ $$? -eq 0 ]; then \
|
|
|
|
|
cverinfo=`$(CC) --version | sed -n '1p'`; \
|
2020-12-20 05:06:56 +08:00
|
|
|
if [ -z "$${cverinfo}" ]; then \
|
|
|
|
|
cverinfo=`$(CC) --version | sed -n '2p'`; \
|
|
|
|
|
fi; \
|
2020-03-07 10:14:33 +08:00
|
|
|
echo " C compiler ... $(C_COMPILER) (cmd & version : $${cverinfo})";\
|
|
|
|
|
else \
|
|
|
|
|
echo " C compiler ... $(C_COMPILER) (command line : $(CC))";\
|
|
|
|
|
fi
|
2018-06-27 06:00:27 +08:00
|
|
|
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
2020-03-07 10:14:33 +08:00
|
|
|
@$(FC) --version > /dev/null 2>&1;\
|
|
|
|
|
if [ $$? -eq 0 ]; then \
|
|
|
|
|
fverinfo=`$(FC) --version | sed -n '1p'`; \
|
2020-12-20 05:06:56 +08:00
|
|
|
if [ -z "$${fverinfo}" ]; then \
|
|
|
|
|
fverinfo=`$(FC) --version | sed -n '2p'`; \
|
|
|
|
|
fi; \
|
2020-03-07 10:14:33 +08:00
|
|
|
echo " Fortran compiler ... $(F_COMPILER) (cmd & version : $${fverinfo})";\
|
|
|
|
|
else \
|
|
|
|
|
echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))";\
|
|
|
|
|
fi
|
2013-08-21 00:03:25 +08:00
|
|
|
endif
|
2025-04-04 05:54:56 +08:00
|
|
|
|
|
|
|
|
ifeq ($(OSNAME), WINNT)
|
|
|
|
|
@-$(LNCMD) $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
|
|
|
|
endif
|
|
|
|
|
|
2011-01-24 22:54:24 +08:00
|
|
|
ifneq ($(OSNAME), AIX)
|
|
|
|
|
@echo -n " Library Name ... $(LIBNAME)"
|
|
|
|
|
else
|
|
|
|
|
@echo " Library Name ... $(LIBNAME)"
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
ifndef SMP
|
2020-03-04 16:47:23 +08:00
|
|
|
@echo " (Single-threading) "
|
2011-01-24 22:54:24 +08:00
|
|
|
else
|
2020-03-04 16:47:23 +08:00
|
|
|
@echo " (Multi-threading; Max num-threads is $(NUM_THREADS))"
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
2011-09-17 02:58:01 +08:00
|
|
|
|
2020-03-24 02:35:51 +08:00
|
|
|
ifeq ($(DYNAMIC_ARCH), 1)
|
|
|
|
|
@echo " Supporting multiple $(ARCH) cpu models with minimum requirement for the common code being $(CORE)"
|
|
|
|
|
endif
|
|
|
|
|
|
2011-10-09 15:14:48 +08:00
|
|
|
ifeq ($(USE_OPENMP), 1)
|
|
|
|
|
@echo
|
2014-05-02 14:54:22 +08:00
|
|
|
@echo " Use OpenMP in the multithreading. Because of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, "
|
2011-10-09 15:14:48 +08:00
|
|
|
@echo " you should use OMP_NUM_THREADS environment variable to control the number of threads."
|
|
|
|
|
@echo
|
|
|
|
|
endif
|
|
|
|
|
|
2011-09-17 02:58:01 +08:00
|
|
|
ifeq ($(OSNAME), Darwin)
|
2011-09-18 01:35:12 +08:00
|
|
|
@echo "WARNING: If you plan to use the dynamic library $(LIBDYNNAME), you must run:"
|
|
|
|
|
@echo
|
|
|
|
|
@echo "\"make PREFIX=/your_installation_path/ install\"."
|
|
|
|
|
@echo
|
|
|
|
|
@echo "(or set PREFIX in Makefile.rule and run make install."
|
2022-08-10 17:28:50 +08:00
|
|
|
@echo
|
|
|
|
|
@echo "Note that any flags passed to make during build should also be passed to make install"
|
|
|
|
|
@echo "to circumvent any install errors."
|
|
|
|
|
@echo
|
2011-09-18 01:35:12 +08:00
|
|
|
@echo "If you want to move the .dylib to a new location later, make sure you change"
|
|
|
|
|
@echo "the internal name of the dylib with:"
|
|
|
|
|
@echo
|
|
|
|
|
@echo "install_name_tool -id /new/absolute/path/to/$(LIBDYNNAME) $(LIBDYNNAME)"
|
2011-09-17 02:58:01 +08:00
|
|
|
endif
|
2011-01-24 22:54:24 +08:00
|
|
|
@echo
|
2017-09-18 07:29:21 +08:00
|
|
|
@echo "To install the library, you can run \"make PREFIX=/path/to/your/installation install\"."
|
|
|
|
|
@echo
|
2022-08-10 17:28:50 +08:00
|
|
|
@echo "Note that any flags passed to make during build should also be passed to make install"
|
|
|
|
|
@echo "to circumvent any install errors."
|
|
|
|
|
@echo
|
2011-01-24 22:54:24 +08:00
|
|
|
|
2023-02-08 19:52:22 +08:00
|
|
|
shared : libs netlib $(RELA)
|
2019-03-03 06:36:36 +08:00
|
|
|
ifneq ($(NO_SHARED), 1)
|
2020-04-03 12:20:42 +08:00
|
|
|
ifeq ($(OSNAME), $(filter $(OSNAME),Linux SunOS Android Haiku FreeBSD DragonFly))
|
2013-07-16 22:44:27 +08:00
|
|
|
@$(MAKE) -C exports so
|
2024-02-06 04:44:03 +08:00
|
|
|
@$(LNCMD) $(LIBSONAME) $(LIBPREFIX).so
|
|
|
|
|
@$(LNCMD) $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION)
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
2020-04-03 12:20:42 +08:00
|
|
|
ifeq ($(OSNAME), $(filter $(OSNAME),OpenBSD NetBSD))
|
2013-07-16 22:44:27 +08:00
|
|
|
@$(MAKE) -C exports so
|
2024-02-06 04:44:03 +08:00
|
|
|
@$(LNCMD) $(LIBSONAME) $(LIBPREFIX).so
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(OSNAME), Darwin)
|
2013-07-16 22:44:27 +08:00
|
|
|
@$(MAKE) -C exports dyn
|
2024-02-06 04:44:03 +08:00
|
|
|
@$(LNCMD) $(LIBDYNNAME) $(LIBPREFIX).dylib
|
|
|
|
|
@$(LNCMD) $(LIBDYNNAME) $(LIBPREFIX).$(MAJOR_VERSION).dylib
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(OSNAME), WINNT)
|
2013-07-16 22:44:27 +08:00
|
|
|
@$(MAKE) -C exports dll
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(OSNAME), CYGWIN_NT)
|
2013-07-16 22:44:27 +08:00
|
|
|
@$(MAKE) -C exports dll
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
2024-02-22 21:05:37 +08:00
|
|
|
ifeq ($(OSNAME), AIX)
|
|
|
|
|
@$(MAKE) -C exports so
|
|
|
|
|
endif
|
2012-11-08 22:08:01 +08:00
|
|
|
endif
|
2011-01-24 22:54:24 +08:00
|
|
|
|
2023-03-31 21:22:40 +08:00
|
|
|
tests : shared
|
2018-06-27 06:00:27 +08:00
|
|
|
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
2011-01-24 22:54:24 +08:00
|
|
|
touch $(LIBNAME)
|
|
|
|
|
ifndef NO_FBLAS
|
|
|
|
|
$(MAKE) -C test all
|
2011-02-16 17:33:06 +08:00
|
|
|
endif
|
2022-06-28 17:52:48 +08:00
|
|
|
endif
|
|
|
|
|
ifneq ($(ONLY_CBLAS), 1)
|
2019-05-24 19:02:23 +08:00
|
|
|
$(MAKE) -C utest all
|
2022-06-28 17:52:48 +08:00
|
|
|
endif
|
2020-08-11 19:40:40 +08:00
|
|
|
ifneq ($(NO_CBLAS), 1)
|
2022-06-28 17:52:48 +08:00
|
|
|
ifneq ($(ONLY_CBLAS), 1)
|
2011-01-24 22:54:24 +08:00
|
|
|
$(MAKE) -C ctest all
|
2022-06-28 17:52:48 +08:00
|
|
|
endif
|
2019-06-02 03:32:52 +08:00
|
|
|
ifeq ($(CPP_THREAD_SAFETY_TEST), 1)
|
|
|
|
|
$(MAKE) -C cpp_thread_test all
|
|
|
|
|
endif
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
libs :
|
2018-12-28 21:35:41 +08:00
|
|
|
ifeq ($(CORE), UNKNOWN)
|
2011-04-22 22:14:06 +08:00
|
|
|
$(error OpenBLAS: Detecting CPU failed. Please set TARGET explicitly, e.g. make TARGET=your_cpu_target. Please read README for the detail.)
|
2011-06-28 15:42:09 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(NOFORTRAN), 1)
|
2022-04-28 02:26:45 +08:00
|
|
|
$(info OpenBLAS: Detecting fortran compiler failed. Can only compile BLAS and f2c-converted LAPACK.)
|
2014-05-23 09:05:19 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(NO_STATIC), 1)
|
|
|
|
|
ifeq ($(NO_SHARED), 1)
|
|
|
|
|
$(error OpenBLAS: neither static nor shared are enabled.)
|
|
|
|
|
endif
|
2011-04-22 22:14:06 +08:00
|
|
|
endif
|
2013-07-16 22:44:27 +08:00
|
|
|
@for d in $(SUBDIRS) ; \
|
2011-01-24 22:54:24 +08:00
|
|
|
do if test -d $$d; then \
|
|
|
|
|
$(MAKE) -C $$d $(@F) || exit 1 ; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
2011-06-21 17:39:08 +08:00
|
|
|
#Save the config files for installation
|
2013-07-16 22:44:27 +08:00
|
|
|
@cp Makefile.conf Makefile.conf_last
|
|
|
|
|
@cp config.h config_last.h
|
2011-08-31 18:21:37 +08:00
|
|
|
ifdef QUAD_PRECISION
|
2013-07-16 22:44:27 +08:00
|
|
|
@echo "#define QUAD_PRECISION">> config_last.h
|
2011-08-31 18:21:37 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(EXPRECISION), 1)
|
2013-07-16 22:44:27 +08:00
|
|
|
@echo "#define EXPRECISION">> config_last.h
|
2011-08-31 18:21:37 +08:00
|
|
|
endif
|
2014-06-28 03:05:18 +08:00
|
|
|
##
|
2012-07-07 12:12:24 +08:00
|
|
|
ifeq ($(DYNAMIC_ARCH), 1)
|
2013-07-16 22:44:27 +08:00
|
|
|
@$(MAKE) -C kernel commonlibs || exit 1
|
|
|
|
|
@for d in $(DYNAMIC_CORE) ; \
|
2011-01-24 22:54:24 +08:00
|
|
|
do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
|
|
|
|
|
done
|
2013-07-16 22:44:27 +08:00
|
|
|
@echo DYNAMIC_ARCH=1 >> Makefile.conf_last
|
2018-06-09 22:29:17 +08:00
|
|
|
ifeq ($(DYNAMIC_OLDER), 1)
|
|
|
|
|
@echo DYNAMIC_OLDER=1 >> Makefile.conf_last
|
|
|
|
|
endif
|
2013-05-24 15:15:52 +08:00
|
|
|
endif
|
2023-11-06 07:03:33 +08:00
|
|
|
@echo TARGET=$(CORE) >> Makefile.conf_last
|
2013-05-24 15:15:52 +08:00
|
|
|
ifdef USE_THREAD
|
2013-07-16 22:44:27 +08:00
|
|
|
@echo USE_THREAD=$(USE_THREAD) >> Makefile.conf_last
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
2023-11-06 07:03:33 +08:00
|
|
|
ifdef SMP
|
|
|
|
|
ifdef NUM_THREADS
|
|
|
|
|
@echo NUM_THREADS=$(NUM_THREADS) >> Makefile.conf_last
|
|
|
|
|
else
|
|
|
|
|
@echo NUM_THREADS=$(NUM_CORES) >> Makefile.conf_last
|
|
|
|
|
endif
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(USE_OPENMP),1)
|
|
|
|
|
@echo USE_OPENMP=1 >> Makefile.conf_last
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(INTERFACE64),1)
|
|
|
|
|
@echo INTERFACE64=1 >> Makefile.conf_last
|
|
|
|
|
endif
|
|
|
|
|
@echo THELIBNAME=$(LIBNAME) >> Makefile.conf_last
|
|
|
|
|
@echo THELIBSONAME=$(LIBSONAME) >> Makefile.conf_last
|
2024-02-06 04:44:03 +08:00
|
|
|
@-$(LNCMD) $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
2013-07-16 22:44:27 +08:00
|
|
|
@touch lib.grd
|
2011-01-24 22:54:24 +08:00
|
|
|
|
|
|
|
|
prof : prof_blas prof_lapack
|
|
|
|
|
|
|
|
|
|
prof_blas :
|
2024-02-06 04:44:03 +08:00
|
|
|
$(LNCMD) $(LIBNAME_P) $(LIBPREFIX)_p.$(LIBSUFFIX)
|
2011-01-24 22:54:24 +08:00
|
|
|
for d in $(SUBDIRS) ; \
|
|
|
|
|
do if test -d $$d; then \
|
|
|
|
|
$(MAKE) -C $$d prof || exit 1 ; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
2012-07-07 12:12:24 +08:00
|
|
|
ifeq ($(DYNAMIC_ARCH), 1)
|
2011-01-24 22:54:24 +08:00
|
|
|
$(MAKE) -C kernel commonprof || exit 1
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
blas :
|
2024-02-06 04:44:03 +08:00
|
|
|
$(LNCMD) $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
2011-01-24 22:54:24 +08:00
|
|
|
for d in $(BLASDIRS) ; \
|
|
|
|
|
do if test -d $$d; then \
|
|
|
|
|
$(MAKE) -C $$d libs || exit 1 ; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
|
|
|
|
|
2014-06-28 03:05:18 +08:00
|
|
|
hpl :
|
2024-02-06 04:44:03 +08:00
|
|
|
$(LNCMD) $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
2011-01-24 22:54:24 +08:00
|
|
|
for d in $(BLASDIRS) ../laswp exports ; \
|
|
|
|
|
do if test -d $$d; then \
|
|
|
|
|
$(MAKE) -C $$d $(@F) || exit 1 ; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
2012-07-07 12:12:24 +08:00
|
|
|
ifeq ($(DYNAMIC_ARCH), 1)
|
2011-01-24 22:54:24 +08:00
|
|
|
$(MAKE) -C kernel commonlibs || exit 1
|
|
|
|
|
for d in $(DYNAMIC_CORE) ; \
|
|
|
|
|
do $(MAKE) GOTOBLAS_MAKEFILE= -C kernel TARGET_CORE=$$d kernel || exit 1 ;\
|
|
|
|
|
done
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
hpl_p :
|
2024-02-06 04:44:03 +08:00
|
|
|
$(LNCMD) $(LIBNAME_P) $(LIBPREFIX)_p.$(LIBSUFFIX)
|
2011-01-24 22:54:24 +08:00
|
|
|
for d in $(SUBDIRS) ../laswp exports ; \
|
|
|
|
|
do if test -d $$d; then \
|
|
|
|
|
$(MAKE) -C $$d $(@F) || exit 1 ; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
|
|
|
|
|
2013-07-09 17:00:02 +08:00
|
|
|
netlib : lapack_prebuild
|
2022-04-10 04:38:58 +08:00
|
|
|
ifneq ($(NO_LAPACK), 1)
|
2013-07-14 10:41:54 +08:00
|
|
|
@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib
|
2014-05-24 21:53:25 +08:00
|
|
|
@$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
2020-08-11 19:40:40 +08:00
|
|
|
ifneq ($(NO_LAPACKE), 1)
|
2013-07-14 10:41:54 +08:00
|
|
|
@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib
|
2012-04-07 16:40:46 +08:00
|
|
|
endif
|
|
|
|
|
|
2017-06-29 00:15:21 +08:00
|
|
|
ifeq ($(NO_LAPACK), 1)
|
|
|
|
|
re_lapack :
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
re_lapack :
|
|
|
|
|
@$(MAKE) -C relapack
|
|
|
|
|
endif
|
|
|
|
|
|
2013-07-09 17:00:02 +08:00
|
|
|
prof_lapack : lapack_prebuild
|
2013-07-14 10:41:54 +08:00
|
|
|
@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapack_prof
|
2012-04-07 16:40:46 +08:00
|
|
|
|
2013-07-09 17:00:02 +08:00
|
|
|
lapack_prebuild :
|
2022-04-10 04:38:58 +08:00
|
|
|
ifeq ($(NO_LAPACK), $(filter 0,$(NO_LAPACK)))
|
2020-01-01 20:18:53 +08:00
|
|
|
-@echo "FC = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
|
2022-10-13 15:12:23 +08:00
|
|
|
ifeq ($(F_COMPILER), GFORTRAN)
|
|
|
|
|
-@echo "override FFLAGS = $(LAPACK_FFLAGS) -fno-tree-vectorize" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
else
|
2021-09-30 15:14:15 +08:00
|
|
|
-@echo "override FFLAGS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2022-10-13 15:12:23 +08:00
|
|
|
endif
|
2020-05-09 00:06:12 +08:00
|
|
|
-@echo "FFLAGS_DRV = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2013-11-02 15:09:33 +08:00
|
|
|
-@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-01-01 20:18:53 +08:00
|
|
|
-@echo "FFLAGS_NOOPT = -O0 $(LAPACK_NOOPT)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2013-11-02 15:09:33 +08:00
|
|
|
-@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-12-04 04:28:10 +08:00
|
|
|
ifeq ($(C_COMPILER)$(F_COMPILER)$(USE_OPENMP), CLANGGFORTRAN1)
|
|
|
|
|
-@echo "LDFLAGS = $(FFLAGS) $(EXTRALIB) -lomp" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2024-02-27 02:46:05 +08:00
|
|
|
else
|
|
|
|
|
ifeq ($(C_COMPILER)$(F_COMPILER)$(USE_OPENMP), CLANGIBM1)
|
|
|
|
|
-@echo "LDFLAGS = $(FFLAGS) $(EXTRALIB) -lomp" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-12-04 04:28:10 +08:00
|
|
|
else
|
2020-01-01 20:18:53 +08:00
|
|
|
-@echo "LDFLAGS = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2024-02-27 02:46:05 +08:00
|
|
|
endif
|
2020-12-04 04:28:10 +08:00
|
|
|
endif
|
2012-04-23 04:38:10 +08:00
|
|
|
-@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2013-07-10 16:02:27 +08:00
|
|
|
-@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-01-01 20:18:53 +08:00
|
|
|
-@echo "AR = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
-@echo "ARFLAGS = $(ARFLAGS) -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2012-04-23 04:38:10 +08:00
|
|
|
-@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-01-01 20:18:53 +08:00
|
|
|
-@echo "LAPACKLIB = ../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
-@echo "TMGLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2014-05-24 21:53:25 +08:00
|
|
|
-@echo "BLASLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-01-01 20:18:53 +08:00
|
|
|
-@echo "LAPACKELIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2012-04-07 16:40:46 +08:00
|
|
|
-@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2012-04-23 04:38:10 +08:00
|
|
|
-@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
-@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2012-08-13 15:25:08 +08:00
|
|
|
-@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2015-11-21 17:48:37 +08:00
|
|
|
ifeq ($(F_COMPILER), GFORTRAN)
|
2014-05-24 21:53:25 +08:00
|
|
|
-@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2014-06-29 16:15:29 +08:00
|
|
|
ifdef SMP
|
2015-11-23 23:20:14 +08:00
|
|
|
ifeq ($(OSNAME), WINNT)
|
|
|
|
|
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2018-08-03 02:49:14 +08:00
|
|
|
else ifeq ($(OSNAME), Haiku)
|
|
|
|
|
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2015-11-23 23:20:14 +08:00
|
|
|
else
|
2014-06-29 16:15:29 +08:00
|
|
|
-@echo "LOADER = $(FC) -pthread" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2015-11-23 23:20:14 +08:00
|
|
|
endif
|
2014-06-29 16:15:29 +08:00
|
|
|
else
|
|
|
|
|
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
endif
|
2014-05-24 21:53:25 +08:00
|
|
|
else
|
|
|
|
|
-@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2014-06-29 16:15:29 +08:00
|
|
|
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2016-02-11 04:22:53 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(BUILD_LAPACK_DEPRECATED), 1)
|
|
|
|
|
-@echo "BUILD_DEPRECATED = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2020-10-11 21:11:15 +08:00
|
|
|
endif
|
|
|
|
|
ifeq ($(BUILD_SINGLE), 1)
|
|
|
|
|
-@echo "BUILD_SINGLE = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(BUILD_DOUBLE), 1)
|
|
|
|
|
-@echo "BUILD_DOUBLE = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(BUILD_COMPLEX), 1)
|
|
|
|
|
-@echo "BUILD_COMPLEX = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
endif
|
|
|
|
|
ifeq ($(BUILD_COMPLEX16), 1)
|
|
|
|
|
-@echo "BUILD_COMPLEX16 = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2014-05-24 21:53:25 +08:00
|
|
|
endif
|
2017-11-24 01:13:35 +08:00
|
|
|
-@echo "LAPACKE_WITH_TMG = 1" >> $(NETLIB_LAPACK_DIR)/make.inc
|
2012-04-07 16:40:46 +08:00
|
|
|
-@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
endif
|
|
|
|
|
|
2014-06-28 03:05:18 +08:00
|
|
|
large.tgz :
|
2018-06-27 06:00:27 +08:00
|
|
|
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
2013-03-23 02:45:11 +08:00
|
|
|
if [ ! -a $< ]; then
|
|
|
|
|
-wget http://www.netlib.org/lapack/timing/large.tgz;
|
|
|
|
|
fi
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
timing.tgz :
|
2018-06-27 06:00:27 +08:00
|
|
|
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
2013-03-23 02:45:11 +08:00
|
|
|
if [ ! -a $< ]; then
|
|
|
|
|
-wget http://www.netlib.org/lapack/timing/timing.tgz;
|
|
|
|
|
fi
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
|
2013-07-09 17:00:02 +08:00
|
|
|
lapack-timing : large.tgz timing.tgz
|
2018-06-27 06:00:27 +08:00
|
|
|
ifeq ($(NOFORTRAN), $(filter 0,$(NOFORTRAN)))
|
2012-04-07 16:40:46 +08:00
|
|
|
(cd $(NETLIB_LAPACK_DIR); $(TAR) zxf ../timing.tgz TIMING)
|
|
|
|
|
(cd $(NETLIB_LAPACK_DIR)/TIMING; $(TAR) zxf ../../large.tgz )
|
2016-12-15 06:38:23 +08:00
|
|
|
$(MAKE) -C $(NETLIB_LAPACK_DIR)/TIMING
|
2011-01-24 22:54:24 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lapack-test :
|
2014-05-23 16:55:39 +08:00
|
|
|
(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out)
|
2018-05-29 20:27:46 +08:00
|
|
|
$(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING/EIG xeigtstc xeigtstd xeigtsts xeigtstz
|
|
|
|
|
$(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING/LIN xlintstc xlintstd xlintstds xlintstrfd xlintstrfz xlintsts xlintstz xlintstzc xlintstrfs xlintstrfc
|
2015-11-21 17:48:37 +08:00
|
|
|
ifneq ($(CROSS), 1)
|
2020-03-06 22:37:26 +08:00
|
|
|
( cd $(NETLIB_LAPACK_DIR)/INSTALL; $(MAKE) all; ./testlsame; ./testslamch; ./testdlamch; \
|
2015-11-21 17:48:37 +08:00
|
|
|
./testsecond; ./testdsecnd; ./testieee; ./testversion )
|
2020-01-01 20:18:53 +08:00
|
|
|
(cd $(NETLIB_LAPACK_DIR); ./lapack_testing.py -r -b TESTING)
|
2015-11-21 17:48:37 +08:00
|
|
|
endif
|
|
|
|
|
|
2023-05-06 18:44:38 +08:00
|
|
|
lapack-runtest: lapack-test
|
2015-11-21 17:48:37 +08:00
|
|
|
( cd $(NETLIB_LAPACK_DIR)/INSTALL; ./testlsame; ./testslamch; ./testdlamch; \
|
|
|
|
|
./testsecond; ./testdsecnd; ./testieee; ./testversion )
|
2023-05-06 18:44:38 +08:00
|
|
|
(cd $(NETLIB_LAPACK_DIR); ./lapack_testing.py -r -b TESTING )
|
2015-11-21 17:48:37 +08:00
|
|
|
|
2014-05-14 21:16:21 +08:00
|
|
|
|
2014-06-27 16:12:19 +08:00
|
|
|
blas-test:
|
2018-05-29 20:27:46 +08:00
|
|
|
(cd $(NETLIB_LAPACK_DIR)/BLAS/TESTING && rm -f x* *.out)
|
2024-02-06 04:44:03 +08:00
|
|
|
|
2016-12-15 06:38:23 +08:00
|
|
|
$(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR) blas_testing
|
2018-05-29 20:27:46 +08:00
|
|
|
(cd $(NETLIB_LAPACK_DIR)/BLAS/TESTING && cat *.out)
|
2014-06-27 16:12:19 +08:00
|
|
|
|
2011-01-24 22:54:24 +08:00
|
|
|
|
|
|
|
|
dummy :
|
|
|
|
|
|
2011-06-21 17:39:08 +08:00
|
|
|
install :
|
|
|
|
|
$(MAKE) -f Makefile.install install
|
2011-06-20 18:35:35 +08:00
|
|
|
|
2024-12-31 22:55:13 +08:00
|
|
|
install_tests :
|
|
|
|
|
$(MAKE) -f Makefile.install install_tests
|
|
|
|
|
|
2011-01-24 22:54:24 +08:00
|
|
|
clean ::
|
|
|
|
|
@for d in $(SUBDIRS_ALL) ; \
|
|
|
|
|
do if test -d $$d; then \
|
|
|
|
|
$(MAKE) -C $$d $(@F) || exit 1 ; \
|
|
|
|
|
fi; \
|
|
|
|
|
done
|
2011-06-21 17:39:08 +08:00
|
|
|
#ifdef DYNAMIC_ARCH
|
2011-01-24 22:54:24 +08:00
|
|
|
@$(MAKE) -C kernel clean
|
2011-06-21 17:39:08 +08:00
|
|
|
#endif
|
2012-02-20 23:36:58 +08:00
|
|
|
@$(MAKE) -C reference clean
|
2020-07-31 22:03:33 +08:00
|
|
|
@rm -f *.$(LIBSUFFIX) *.so *~ *.exe getarch getarch_2nd *.dll *.lib *.$(SUFFIX) *.dwf $(LIBPREFIX).$(LIBSUFFIX) $(LIBPREFIX)_p.$(LIBSUFFIX) $(LIBPREFIX).so.$(MAJOR_VERSION) *.lnk myconfig.h *.so.renamed *.a.renamed *.so.0
|
2013-07-02 14:37:30 +08:00
|
|
|
ifeq ($(OSNAME), Darwin)
|
|
|
|
|
@rm -rf getarch.dSYM getarch_2nd.dSYM
|
|
|
|
|
endif
|
2013-08-28 22:52:24 +08:00
|
|
|
@rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
|
2020-07-31 22:03:33 +08:00
|
|
|
@rm -f cblas.tmp cblas.tmp2
|
2013-07-09 17:00:02 +08:00
|
|
|
@touch $(NETLIB_LAPACK_DIR)/make.inc
|
|
|
|
|
@$(MAKE) -C $(NETLIB_LAPACK_DIR) clean
|
2025-04-11 04:09:19 +08:00
|
|
|
@rm -f $(NETLIB_LAPACK_DIR)/make.inc
|
2017-07-02 06:50:14 +08:00
|
|
|
@$(MAKE) -C relapack clean
|
2011-06-21 17:39:08 +08:00
|
|
|
@rm -f *.grd Makefile.conf_last config_last.h
|
2014-05-23 16:55:39 +08:00
|
|
|
@(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out testing_results.txt)
|
2013-03-23 14:41:26 +08:00
|
|
|
@echo Done.
|