2 # Include user definition
5 # TO suppress recursive includes
12 NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib
15 # - Only set if not specified on the command line or inherited from the environment.
16 # - CC is an implicit variable so neither '?=' or 'ifndef' can be used.
17 # http://stackoverflow.com/questions/4029274/mingw-and-make-variables
18 # - Default value is 'cc' which is not always a valid command (e.g. MinGW).
19 ifeq ($(origin CC),default)
21 # Change the default compile to clang on Mac OSX.
22 # http://stackoverflow.com/questions/714100/os-detecting-makefile
23 UNAME_S := $(shell uname -s)
24 ifeq ($(UNAME_S),Darwin)
26 # EXTRALIB += -Wl,-no_compact_unwind
30 # Default Fortran compiler (FC) is selected by f_check.
33 include $(TOPDIR)/Makefile.rule
35 include $(TOPDIR)/$(MAKEFILE_RULE)
39 # Beginning of system configuration
47 GETARCH_FLAGS := -DFORCE_$(TARGET)
50 # Force fallbacks for 32bit
53 ifeq ($(TARGET), HASWELL)
54 GETARCH_FLAGS := -DFORCE_NEHALEM
56 ifeq ($(TARGET), SANDYBRIDGE)
57 GETARCH_FLAGS := -DFORCE_NEHALEM
59 ifeq ($(TARGET), BULLDOZER)
60 GETARCH_FLAGS := -DFORCE_BARCELONA
62 ifeq ($(TARGET), PILEDRIVER)
63 GETARCH_FLAGS := -DFORCE_BARCELONA
65 ifeq ($(TARGET), STEAMROLLER)
66 GETARCH_FLAGS := -DFORCE_BARCELONA
68 ifeq ($(TARGET), EXCAVATOR)
69 GETARCH_FLAGS := -DFORCE_BARCELONA
72 GETARCH_FLAGS := -DFORCE_BARCELONA
77 #TARGET_CORE will override TARGET which is used in DYNAMIC_ARCH=1.
80 GETARCH_FLAGS := -DFORCE_$(TARGET_CORE)
83 # Force fallbacks for 32bit
86 ifeq ($(TARGET_CORE), HASWELL)
87 GETARCH_FLAGS := -DFORCE_NEHALEM
89 ifeq ($(TARGET_CORE), SANDYBRIDGE)
90 GETARCH_FLAGS := -DFORCE_NEHALEM
92 ifeq ($(TARGET_CORE), BULLDOZER)
93 GETARCH_FLAGS := -DFORCE_BARCELONA
95 ifeq ($(TARGET_CORE), PILEDRIVER)
96 GETARCH_FLAGS := -DFORCE_BARCELONA
98 ifeq ($(TARGET_CORE), STEAMROLLER)
99 GETARCH_FLAGS := -DFORCE_BARCELONA
101 ifeq ($(TARGET_CORE), EXCAVATOR)
102 GETARCH_FLAGS := -DFORCE_BARCELONA
104 ifeq ($(TARGET_CORE), ZEN)
105 GETARCH_FLAGS := -DFORCE_BARCELONA
113 ifneq ($(INTERFACE64), 0)
114 GETARCH_FLAGS += -DUSE64BITINT
118 ifndef GEMM_MULTITHREAD_THRESHOLD
119 GEMM_MULTITHREAD_THRESHOLD=4
121 GETARCH_FLAGS += -DGEMM_MULTITHREAD_THRESHOLD=$(GEMM_MULTITHREAD_THRESHOLD)
124 GETARCH_FLAGS += -DNO_AVX
128 GETARCH_FLAGS += -DNO_AVX
132 GETARCH_FLAGS += -DNO_AVX2
139 ifeq ($(QUIET_MAKE), 1)
143 ifndef NO_PARALLEL_MAKE
146 GETARCH_FLAGS += -DNO_PARALLEL_MAKE=$(NO_PARALLEL_MAKE)
149 GETARCH_FLAGS += -DMAKE_NB_JOBS=$(MAKE_NB_JOBS)
152 ifeq ($(HOSTCC), loongcc)
153 GETARCH_FLAGS += -static
156 #if don't use Fortran, it will only compile CBLAS.
157 ifeq ($(ONLY_CBLAS), 1)
163 # This operation is expensive, so execution should be once.
164 ifndef GOTOBLAS_MAKEFILE
165 export GOTOBLAS_MAKEFILE = 1
167 # Generating Makefile.conf and config.h
168 DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.prebuild CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" CFLAGS="$(GETARCH_FLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) ONLY_CBLAS=$(ONLY_CBLAS) TARGET=$(TARGET) all)
171 include $(TOPDIR)/Makefile.conf
173 include $(TOPDIR)/Makefile_kernel.conf
179 NUM_THREADS = $(NUM_CORES)
182 ifeq ($(NUM_THREADS), 1)
183 override USE_THREAD = 0
187 ifeq ($(USE_THREAD), 0)
193 ifeq ($(NUM_THREAD), 1)
206 AR = $(CROSS_SUFFIX)ar
207 AS = $(CROSS_SUFFIX)as
208 LD = $(CROSS_SUFFIX)ld
209 RANLIB = $(CROSS_SUFFIX)ranlib
210 NM = $(CROSS_SUFFIX)nm
211 DLLWRAP = $(CROSS_SUFFIX)dllwrap
212 OBJCOPY = $(CROSS_SUFFIX)objcopy
213 OBJCONV = $(CROSS_SUFFIX)objconv
216 # For detect fortran failed, only build BLAS.
217 ifeq ($(NOFORTRAN), 1)
222 # OS dependent settings
225 ifeq ($(OSNAME), Darwin)
226 ifndef MACOSX_DEPLOYMENT_TARGET
227 export MACOSX_DEPLOYMENT_TARGET=10.6
232 ifeq ($(OSNAME), FreeBSD)
236 ifeq ($(OSNAME), NetBSD)
240 ifeq ($(OSNAME), Linux)
245 ifeq ($(OSNAME), Android)
249 ifeq ($(OSNAME), AIX)
253 ifeq ($(OSNAME), WINNT)
257 EXTRALIB += -defaultlib:advapi32
263 ifeq ($(C_COMPILER), CLANG)
264 CCOMMON_OPT += -DMS_ABI
267 ifeq ($(C_COMPILER), GCC)
268 #Test for supporting MS_ABI
269 GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
270 GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
271 GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
272 ifeq ($(GCCVERSIONGT4), 1)
273 # GCC Majar version > 4
274 # It is compatible with MSVC ABI.
275 CCOMMON_OPT += -DMS_ABI
278 ifeq ($(GCCVERSIONGTEQ4), 1)
279 ifeq ($(GCCMINORVERSIONGTEQ7), 1)
281 # It is compatible with MSVC ABI.
282 CCOMMON_OPT += -DMS_ABI
287 # Ensure the correct stack alignment on Win32
288 # http://permalink.gmane.org/gmane.comp.lib.openblas.general/97
290 CCOMMON_OPT += -mincoming-stack-boundary=2
291 FCOMMON_OPT += -mincoming-stack-boundary=2
296 ifeq ($(OSNAME), Interix)
300 INTERIX_TOOL_DIR = /opt/gcc.3.3/i586-pc-interix3/bin
303 ifeq ($(OSNAME), CYGWIN_NT)
308 ifneq ($(OSNAME), WINNT)
309 ifneq ($(OSNAME), CYGWIN_NT)
310 ifneq ($(OSNAME), Interix)
311 ifneq ($(OSNAME), Android)
313 EXTRALIB += -lpthread
321 ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT Interix))
326 CCOMMON_OPT += -DQUAD_PRECISION
331 ifneq ($(ARCH), x86_64)
337 CCOMMON_OPT += -DUTEST_CHECK
342 CCOMMON_OPT += -DSANITY_CHECK -DREFNAME=$(*F)f$(BU)
345 MAX_STACK_ALLOC ?= 2048
346 ifneq ($(MAX_STACK_ALLOC), 0)
347 CCOMMON_OPT += -DMAX_STACK_ALLOC=$(MAX_STACK_ALLOC)
351 # Architecture dependent settings
359 ifeq ($(CORE), generic)
363 ifndef NO_EXPRECISION
364 ifeq ($(F_COMPILER), GFORTRAN)
365 # ifeq logical or. GCC or LSB
366 ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC LSB))
368 CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
369 FCOMMON_OPT += -m128bit-long-double
371 ifeq ($(C_COMPILER), CLANG)
373 CCOMMON_OPT += -DEXPRECISION
374 FCOMMON_OPT += -m128bit-long-double
380 ifeq ($(ARCH), x86_64)
382 ifeq ($(CORE), generic)
386 ifndef NO_EXPRECISION
387 ifeq ($(F_COMPILER), GFORTRAN)
388 # ifeq logical or. GCC or LSB
389 ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC LSB))
391 CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
392 FCOMMON_OPT += -m128bit-long-double
394 ifeq ($(C_COMPILER), CLANG)
396 CCOMMON_OPT += -DEXPRECISION
397 FCOMMON_OPT += -m128bit-long-double
403 ifeq ($(C_COMPILER), INTEL)
404 CCOMMON_OPT += -wd981
408 ifeq ($(USE_OPENMP), 1)
411 ifeq ($(USE_THREAD), 0)
412 $(error OpenBLAS: Cannot set both USE_OPENMP=1 and USE_THREAD=0. The USE_THREAD=0 is only for building single thread version.)
415 # ifeq logical or. GCC or LSB
416 ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC LSB))
417 CCOMMON_OPT += -fopenmp
420 ifeq ($(C_COMPILER), CLANG)
421 CCOMMON_OPT += -fopenmp
424 ifeq ($(C_COMPILER), INTEL)
425 CCOMMON_OPT += -openmp
428 ifeq ($(C_COMPILER), PGI)
432 ifeq ($(C_COMPILER), OPEN64)
434 CEXTRALIB += -lstdc++
437 ifeq ($(C_COMPILER), PATHSCALE)
443 ifeq ($(DYNAMIC_ARCH), 1)
445 DYNAMIC_CORE = KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS \
446 CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
449 ifeq ($(ARCH), x86_64)
450 DYNAMIC_CORE = PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
452 DYNAMIC_CORE += SANDYBRIDGE BULLDOZER PILEDRIVER STEAMROLLER EXCAVATOR
454 ifneq ($(NO_AVX2), 1)
455 DYNAMIC_CORE += HASWELL ZEN
459 # If DYNAMIC_CORE is not set, DYNAMIC_ARCH cannot do anything, so force it to empty
461 override DYNAMIC_ARCH=
469 ifeq ($(F_COMPILER), GFORTRAN)
470 ifeq ($(C_COMPILER), GCC)
472 # CCOMMON_OPT += -DEXPRECISION
477 ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
481 ifeq ($(ARCH), alpha)
493 # If softfp abi is mentioned on the command line, force it.
494 ifeq ($(ARM_SOFTFP_ABI), 1)
495 CCOMMON_OPT += -mfloat-abi=softfp
496 FCOMMON_OPT += -mfloat-abi=softfp
499 ifeq ($(OSNAME), Android)
500 ifeq ($(ARM_SOFTFP_ABI), 1)
503 EXTRALIB += -Wl,-lm_hard
508 ifeq ($(ARCH), arm64)
517 # C Compiler dependent settings
521 # ifeq logical or. GCC or CLANG or LSB
522 # http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or
523 ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC CLANG LSB))
525 COMMON_PROF += -fno-inline
526 NO_UNINITIALIZED_WARN = -Wno-uninitialized
528 ifeq ($(QUIET_MAKE), 1)
529 CCOMMON_OPT += $(NO_UNINITIALIZED_WARN) -Wno-unused
534 ifeq ($(ARCH), $(filter $(ARCH),mips64))
536 CCOMMON_OPT += -mabi=64
538 CCOMMON_OPT += -mabi=n32
541 else ifeq ($(ARCH), $(filter $(ARCH),mips))
542 CCOMMON_OPT += -mabi=32
546 ifeq ($(CORE), LOONGSON3A)
547 CCOMMON_OPT += -march=mips64
548 FCOMMON_OPT += -march=mips64
551 ifeq ($(CORE), LOONGSON3B)
552 CCOMMON_OPT += -march=mips64
553 FCOMMON_OPT += -march=mips64
556 ifeq ($(CORE), P5600)
557 CCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS)
558 FCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS)
561 ifeq ($(CORE), I6400)
562 CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
563 FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
566 ifeq ($(CORE), P6600)
567 CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS)
568 FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS)
571 ifeq ($(OSNAME), AIX)
577 ifndef BINARY_DEFINED
587 ifeq ($(C_COMPILER), PGI)
589 CCOMMON_OPT += -tp p7-64
591 CCOMMON_OPT += -tp p7
595 ifeq ($(C_COMPILER), PATHSCALE)
604 # Fortran Compiler dependent settings
607 ifeq ($(F_COMPILER), FLANG)
608 CCOMMON_OPT += -DF_INTERFACE_FLANG
611 ifneq ($(INTERFACE64), 0)
619 ifeq ($(USE_OPENMP), 1)
620 FCOMMON_OPT += -fopenmp
624 ifeq ($(F_COMPILER), G77)
625 CCOMMON_OPT += -DF_INTERFACE_G77
627 ifndef NO_BINARY_MODE
636 ifeq ($(F_COMPILER), G95)
637 CCOMMON_OPT += -DF_INTERFACE_G95
639 ifndef NO_BINARY_MODE
648 ifeq ($(F_COMPILER), GFORTRAN)
649 CCOMMON_OPT += -DF_INTERFACE_GFORT
651 #Don't include -lgfortran, when NO_LAPACK=1 or lsbcc
652 ifneq ($(NO_LAPACK), 1)
653 EXTRALIB += -lgfortran
656 ifeq ($(ARCH), $(filter $(ARCH),mips64))
658 FCOMMON_OPT += -mabi=64
660 FCOMMON_OPT += -mabi=n32
662 else ifeq ($(ARCH), $(filter $(ARCH),mips))
663 FCOMMON_OPT += -mabi=32
669 ifneq ($(INTERFACE64), 0)
670 FCOMMON_OPT += -fdefault-integer-8
677 ifeq ($(USE_OPENMP), 1)
678 FCOMMON_OPT += -fopenmp
682 ifeq ($(F_COMPILER), INTEL)
683 CCOMMON_OPT += -DF_INTERFACE_INTEL
685 ifneq ($(INTERFACE64), 0)
689 ifeq ($(USE_OPENMP), 1)
690 FCOMMON_OPT += -openmp
694 ifeq ($(F_COMPILER), FUJITSU)
695 CCOMMON_OPT += -DF_INTERFACE_FUJITSU
696 ifeq ($(USE_OPENMP), 1)
697 FCOMMON_OPT += -openmp
701 ifeq ($(F_COMPILER), IBM)
702 CCOMMON_OPT += -DF_INTERFACE_IBM
703 # FCOMMON_OPT += -qarch=440
707 ifneq ($(INTERFACE64), 0)
708 FCOMMON_OPT += -qintsize=8
714 ifeq ($(USE_OPENMP), 1)
715 FCOMMON_OPT += -openmp
719 ifeq ($(F_COMPILER), PGI)
720 CCOMMON_OPT += -DF_INTERFACE_PGI
721 COMMON_PROF += -DPGICOMPILER
724 ifneq ($(INTERFACE64), 0)
728 FCOMMON_OPT += -tp p7-64
730 FCOMMON_OPT += -tp p7
732 ifeq ($(USE_OPENMP), 1)
737 ifeq ($(F_COMPILER), PATHSCALE)
738 CCOMMON_OPT += -DF_INTERFACE_PATHSCALE
741 ifneq ($(INTERFACE64), 0)
747 ifeq ($(USE_OPENMP), 1)
752 ifeq ($(F_COMPILER), OPEN64)
753 CCOMMON_OPT += -DF_INTERFACE_OPEN64
756 ifneq ($(INTERFACE64), 0)
762 ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
768 ifeq ($(CORE), LOONGSON3A)
769 FCOMMON_OPT += -loongson3 -static
772 ifeq ($(CORE), LOONGSON3B)
773 FCOMMON_OPT += -loongson3 -static
784 ifeq ($(USE_OPENMP), 1)
785 FEXTRALIB += -lstdc++
790 ifeq ($(C_COMPILER), OPEN64)
792 ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
798 ifeq ($(CORE), LOONGSON3A)
799 CCOMMON_OPT += -loongson3 -static
802 ifeq ($(CORE), LOONGSON3B)
803 CCOMMON_OPT += -loongson3 -static
816 ifeq ($(C_COMPILER), SUN)
825 ifeq ($(F_COMPILER), SUN)
826 CCOMMON_OPT += -DF_INTERFACE_SUN
832 ifeq ($(USE_OPENMP), 1)
833 FCOMMON_OPT += -xopenmp=parallel
837 ifeq ($(F_COMPILER), COMPAQ)
838 CCOMMON_OPT += -DF_INTERFACE_COMPAQ
839 ifeq ($(USE_OPENMP), 1)
840 FCOMMON_OPT += -openmp
846 ifneq ($(INTERFACE64), 0)
853 ifeq ($(NEED_PIC), 1)
854 ifeq ($(C_COMPILER), IBM)
855 CCOMMON_OPT += -qpic=large
859 ifeq ($(F_COMPILER), SUN)
866 ifeq ($(DYNAMIC_ARCH), 1)
867 CCOMMON_OPT += -DDYNAMIC_ARCH
870 ifeq ($(NO_LAPACK), 1)
871 CCOMMON_OPT += -DNO_LAPACK
872 #Disable LAPACK C interface
876 ifeq ($(NO_LAPACKE), 1)
877 CCOMMON_OPT += -DNO_LAPACKE
881 CCOMMON_OPT += -DNO_AVX
885 CCOMMON_OPT += -DNO_AVX
889 CCOMMON_OPT += -DNO_AVX2
893 CCOMMON_OPT += -DSMP_SERVER
895 ifeq ($(ARCH), mips64)
896 ifneq ($(CORE), LOONGSON3B)
897 USE_SIMPLE_THREADED_LEVEL3 = 1
901 ifeq ($(USE_OPENMP), 1)
902 # USE_SIMPLE_THREADED_LEVEL3 = 1
904 CCOMMON_OPT += -DUSE_OPENMP
908 CCOMMON_OPT += -DBIGNUMA
913 ifeq ($(NO_WARMUP), 1)
914 CCOMMON_OPT += -DNO_WARMUP
917 ifeq ($(CONSISTENT_FPCSR), 1)
918 CCOMMON_OPT += -DCONSISTENT_FPCSR
921 # Only for development
922 # CCOMMON_OPT += -DPARAMTEST
923 # CCOMMON_OPT += -DPREFETCHTEST
924 # CCOMMON_OPT += -DNO_SWITCHING
928 CCOMMON_OPT += -DUSE_PAPI
929 EXTRALIB += -lpapi -lperfctr
932 ifdef DYNAMIC_THREADS
933 CCOMMON_OPT += -DDYNAMIC_THREADS
936 CCOMMON_OPT += -DMAX_CPU_NUMBER=$(NUM_THREADS)
938 ifdef USE_SIMPLE_THREADED_LEVEL3
939 CCOMMON_OPT += -DUSE_SIMPLE_THREADED_LEVEL3
951 LIBPREFIX = lib$(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX)
953 LIBPREFIX = lib$(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX)_$(LIBNAMESUFFIX)
956 KERNELDIR = $(TOPDIR)/kernel/$(ARCH)
958 include $(TOPDIR)/Makefile.$(ARCH)
960 CCOMMON_OPT += -DASMNAME=$(FU)$(*F) -DASMFNAME=$(FU)$(*F)$(BU) -DNAME=$(*F)$(BU) -DCNAME=$(*F) -DCHAR_NAME=\"$(*F)$(BU)\" -DCHAR_CNAME=\"$(*F)\"
962 ifeq ($(CORE), PPC440)
963 CCOMMON_OPT += -DALLOC_QALLOC
966 ifeq ($(CORE), PPC440FP2)
967 STATIC_ALLOCATION = 1
970 ifneq ($(OSNAME), Linux)
974 ifneq ($(ARCH), x86_64)
976 ifneq ($(CORE), LOONGSON3B)
983 CCOMMON_OPT += -DNO_AFFINITY
986 ifdef FUNCTION_PROFILE
987 CCOMMON_OPT += -DFUNCTION_PROFILE
990 ifdef HUGETLB_ALLOCATION
991 CCOMMON_OPT += -DALLOC_HUGETLB
994 ifdef HUGETLBFILE_ALLOCATION
995 CCOMMON_OPT += -DALLOC_HUGETLBFILE -DHUGETLB_FILE_NAME=$(HUGETLBFILE_ALLOCATION)
998 ifdef STATIC_ALLOCATION
999 CCOMMON_OPT += -DALLOC_STATIC
1002 ifdef DEVICEDRIVER_ALLOCATION
1003 CCOMMON_OPT += -DALLOC_DEVICEDRIVER -DDEVICEDRIVER_NAME=\"/dev/mapper\"
1006 ifdef MIXED_MEMORY_ALLOCATION
1007 CCOMMON_OPT += -DMIXED_MEMORY_ALLOCATION
1010 ifeq ($(OSNAME), SunOS)
1027 REVISION = -r$(VERSION)
1028 MAJOR_VERSION = $(word 1,$(subst ., ,$(VERSION)))
1043 FCOMMON_OPT = -O2 -frecursive
1048 override CFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR)
1049 override PFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR) -DPROFILE $(COMMON_PROF)
1051 override FFLAGS += $(COMMON_OPT) $(FCOMMON_OPT)
1052 override FPFLAGS += $(FCOMMON_OPT) $(COMMON_PROF)
1055 #For LAPACK Fortran codes.
1056 #Disable -fopenmp for LAPACK Fortran codes on Windows.
1058 LAPACK_FFLAGS := $(filter-out -fopenmp -mp -openmp -xopenmp=parallel,$(FFLAGS))
1059 LAPACK_FPFLAGS := $(filter-out -fopenmp -mp -openmp -xopenmp=parallel,$(FPFLAGS))
1061 LAPACK_FFLAGS := $(FFLAGS)
1062 LAPACK_FPFLAGS := $(FPFLAGS)
1065 LAPACK_CFLAGS = $(CFLAGS)
1066 LAPACK_CFLAGS += -DHAVE_LAPACK_CONFIG_H
1068 ifneq ($(INTERFACE64), 0)
1069 LAPACK_CFLAGS += -DLAPACK_ILP64
1074 LAPACK_CFLAGS += -DOPENBLAS_OS_WINDOWS
1076 ifeq ($(C_COMPILER), LSB)
1077 LAPACK_CFLAGS += -DLAPACK_COMPLEX_STRUCTURE
1092 ifneq ($(DYNAMIC_ARCH), 1)
1094 LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
1095 LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
1097 LIBNAME = $(LIBPREFIX)_$(LIBCORE)p$(REVISION).$(LIBSUFFIX)
1098 LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)p$(REVISION)_p.$(LIBSUFFIX)
1102 LIBNAME = $(LIBPREFIX)$(REVISION).$(LIBSUFFIX)
1103 LIBNAME_P = $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX)
1105 LIBNAME = $(LIBPREFIX)p$(REVISION).$(LIBSUFFIX)
1106 LIBNAME_P = $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX)
1111 LIBDLLNAME = $(LIBPREFIX).dll
1112 LIBSONAME = $(LIBNAME:.$(LIBSUFFIX)=.so)
1113 LIBDYNNAME = $(LIBNAME:.$(LIBSUFFIX)=.dylib)
1114 LIBDEFNAME = $(LIBNAME:.$(LIBSUFFIX)=.def)
1115 LIBEXPNAME = $(LIBNAME:.$(LIBSUFFIX)=.exp)
1116 LIBZIPNAME = $(LIBNAME:.$(LIBSUFFIX)=.zip)
1118 LIBS = $(TOPDIR)/$(LIBNAME)
1119 LIBS_P = $(TOPDIR)/$(LIBNAME_P)
1122 LIB_COMPONENTS = BLAS
1123 ifneq ($(NO_CBLAS), 1)
1124 LIB_COMPONENTS += CBLAS
1127 ifneq ($(NO_LAPACK), 1)
1128 LIB_COMPONENTS += LAPACK
1129 ifneq ($(NO_LAPACKE), 1)
1130 LIB_COMPONENTS += LAPACKE
1132 ifeq ($(BUILD_RELAPACK), 1)
1133 LIB_COMPONENTS += ReLAPACK
1137 ifeq ($(ONLY_CBLAS), 1)
1138 LIB_COMPONENTS = CBLAS
1151 export NEED2UNDERSCORES
1156 export MAKEFILE_RULE
1187 export FUNCTION_PROFILE
1190 export SGEMM_UNROLL_M
1191 export SGEMM_UNROLL_N
1192 export DGEMM_UNROLL_M
1193 export DGEMM_UNROLL_N
1194 export QGEMM_UNROLL_M
1195 export QGEMM_UNROLL_N
1196 export CGEMM_UNROLL_M
1197 export CGEMM_UNROLL_N
1198 export ZGEMM_UNROLL_M
1199 export ZGEMM_UNROLL_N
1200 export XGEMM_UNROLL_M
1201 export XGEMM_UNROLL_N
1202 export CGEMM3M_UNROLL_M
1203 export CGEMM3M_UNROLL_N
1204 export ZGEMM3M_UNROLL_M
1205 export ZGEMM3M_UNROLL_N
1206 export XGEMM3M_UNROLL_M
1207 export XGEMM3M_UNROLL_N
1217 .SUFFIXES: .$(PSUFFIX) .$(SUFFIX) .f
1220 $(FC) $(FFLAGS) -c $< -o $(@F)
1223 $(FC) $(FPFLAGS) -pg -c $< -o $(@F)
1227 PATHSCALEPATH = /opt/pathscale/lib/3.1
1228 PGIPATH = /opt/pgi/linux86-64/7.1-5/lib
1230 PATHSCALEPATH = /opt/pathscale/lib/3.1/32
1231 PGIPATH = /opt/pgi/linux86/7.1-5/lib
1234 ACMLPATH = /opt/acml/4.3.0
1235 ifneq ($(OSNAME), Darwin)
1236 MKLPATH = /opt/intel/mkl/10.2.2.025/lib
1238 MKLPATH = /Library/Frameworks/Intel_MKL.framework/Versions/10.0.1.014/lib
1240 ATLASPATH = /opt/atlas/3.9.17/opteron
1241 FLAMEPATH = $(HOME)/flame/lib
1242 ifneq ($(OSNAME), SunOS)
1243 SUNPATH = /opt/sunstudio12.1
1245 SUNPATH = /opt/SUNWspro