You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile.system 23 kB

13 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290
  1. #
  2. # Include user definition
  3. #
  4. # TO suppress recursive includes
  5. INCLUDED = 1
  6. ifndef TOPDIR
  7. TOPDIR = .
  8. endif
  9. NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib
  10. # Default C compiler
  11. # - Only set if not specified on the command line or inherited from the environment.
  12. # - CC is an implicit variable so neither '?=' or 'ifndef' can be used.
  13. # http://stackoverflow.com/questions/4029274/mingw-and-make-variables
  14. # - Default value is 'cc' which is not always a valid command (e.g. MinGW).
  15. ifeq ($(origin CC),default)
  16. # Check if $(CC) refers to a valid command and set the value to gcc if not
  17. ifneq ($(findstring cmd.exe,$(SHELL)),)
  18. ifeq ($(shell where $(CC) 2>NUL),)
  19. CC = gcc
  20. endif
  21. else # POSIX-ish
  22. ifeq ($(shell command -v $(CC) 2>/dev/null),)
  23. ifeq ($(shell uname -s),Darwin)
  24. CC = clang
  25. # EXTRALIB += -Wl,-no_compact_unwind
  26. else
  27. CC = gcc
  28. endif # Darwin
  29. endif # CC exists
  30. endif # Shell is sane
  31. endif # CC is set to default
  32. # Default Fortran compiler (FC) is selected by f_check.
  33. ifndef MAKEFILE_RULE
  34. include $(TOPDIR)/Makefile.rule
  35. else
  36. include $(TOPDIR)/$(MAKEFILE_RULE)
  37. endif
  38. #
  39. # Beginning of system configuration
  40. #
  41. ifndef HOSTCC
  42. HOSTCC = $(CC)
  43. endif
  44. ifdef TARGET
  45. GETARCH_FLAGS := -DFORCE_$(TARGET)
  46. endif
  47. # Force fallbacks for 32bit
  48. ifeq ($(BINARY), 32)
  49. ifeq ($(TARGET), HASWELL)
  50. GETARCH_FLAGS := -DFORCE_NEHALEM
  51. endif
  52. ifeq ($(TARGET), SANDYBRIDGE)
  53. GETARCH_FLAGS := -DFORCE_NEHALEM
  54. endif
  55. ifeq ($(TARGET), BULLDOZER)
  56. GETARCH_FLAGS := -DFORCE_BARCELONA
  57. endif
  58. ifeq ($(TARGET), PILEDRIVER)
  59. GETARCH_FLAGS := -DFORCE_BARCELONA
  60. endif
  61. ifeq ($(TARGET), STEAMROLLER)
  62. GETARCH_FLAGS := -DFORCE_BARCELONA
  63. endif
  64. ifeq ($(TARGET), EXCAVATOR)
  65. GETARCH_FLAGS := -DFORCE_BARCELONA
  66. endif
  67. ifeq ($(TARGET), ZEN)
  68. GETARCH_FLAGS := -DFORCE_BARCELONA
  69. endif
  70. endif
  71. #TARGET_CORE will override TARGET which is used in DYNAMIC_ARCH=1.
  72. #
  73. ifdef TARGET_CORE
  74. GETARCH_FLAGS := -DFORCE_$(TARGET_CORE)
  75. endif
  76. # Force fallbacks for 32bit
  77. ifeq ($(BINARY), 32)
  78. ifeq ($(TARGET_CORE), HASWELL)
  79. GETARCH_FLAGS := -DFORCE_NEHALEM
  80. endif
  81. ifeq ($(TARGET_CORE), SANDYBRIDGE)
  82. GETARCH_FLAGS := -DFORCE_NEHALEM
  83. endif
  84. ifeq ($(TARGET_CORE), BULLDOZER)
  85. GETARCH_FLAGS := -DFORCE_BARCELONA
  86. endif
  87. ifeq ($(TARGET_CORE), PILEDRIVER)
  88. GETARCH_FLAGS := -DFORCE_BARCELONA
  89. endif
  90. ifeq ($(TARGET_CORE), STEAMROLLER)
  91. GETARCH_FLAGS := -DFORCE_BARCELONA
  92. endif
  93. ifeq ($(TARGET_CORE), EXCAVATOR)
  94. GETARCH_FLAGS := -DFORCE_BARCELONA
  95. endif
  96. ifeq ($(TARGET_CORE), ZEN)
  97. GETARCH_FLAGS := -DFORCE_BARCELONA
  98. endif
  99. endif
  100. ifdef INTERFACE64
  101. ifneq ($(INTERFACE64), 0)
  102. GETARCH_FLAGS += -DUSE64BITINT
  103. endif
  104. endif
  105. ifndef GEMM_MULTITHREAD_THRESHOLD
  106. GEMM_MULTITHREAD_THRESHOLD=4
  107. endif
  108. GETARCH_FLAGS += -DGEMM_MULTITHREAD_THRESHOLD=$(GEMM_MULTITHREAD_THRESHOLD)
  109. ifeq ($(NO_AVX), 1)
  110. GETARCH_FLAGS += -DNO_AVX
  111. endif
  112. ifeq ($(BINARY), 32)
  113. GETARCH_FLAGS += -DNO_AVX
  114. endif
  115. ifeq ($(NO_AVX2), 1)
  116. GETARCH_FLAGS += -DNO_AVX2
  117. endif
  118. ifeq ($(DEBUG), 1)
  119. GETARCH_FLAGS += -g
  120. endif
  121. ifeq ($(QUIET_MAKE), 1)
  122. MAKE += -s
  123. endif
  124. ifndef NO_PARALLEL_MAKE
  125. NO_PARALLEL_MAKE=0
  126. endif
  127. GETARCH_FLAGS += -DNO_PARALLEL_MAKE=$(NO_PARALLEL_MAKE)
  128. ifdef MAKE_NB_JOBS
  129. GETARCH_FLAGS += -DMAKE_NB_JOBS=$(MAKE_NB_JOBS)
  130. endif
  131. ifeq ($(HOSTCC), loongcc)
  132. GETARCH_FLAGS += -static
  133. endif
  134. #if don't use Fortran, it will only compile CBLAS.
  135. ifeq ($(ONLY_CBLAS), 1)
  136. NO_LAPACK = 1
  137. else
  138. ONLY_CBLAS = 0
  139. endif
  140. # This operation is expensive, so execution should be once.
  141. ifndef GOTOBLAS_MAKEFILE
  142. export GOTOBLAS_MAKEFILE = 1
  143. # Generating Makefile.conf and config.h
  144. 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)
  145. ifndef TARGET_CORE
  146. include $(TOPDIR)/Makefile.conf
  147. else
  148. include $(TOPDIR)/Makefile_kernel.conf
  149. endif
  150. endif
  151. ifndef NUM_PARALLEL
  152. NUM_PARALLEL = 1
  153. endif
  154. ifndef NUM_THREADS
  155. NUM_THREADS = $(NUM_CORES)
  156. endif
  157. ifeq ($(NUM_THREADS), 1)
  158. override USE_THREAD = 0
  159. override USE_OPENMP = 0
  160. endif
  161. ifdef USE_THREAD
  162. ifeq ($(USE_THREAD), 0)
  163. SMP =
  164. else
  165. SMP = 1
  166. endif
  167. else
  168. ifeq ($(NUM_THREAD), 1)
  169. SMP =
  170. else
  171. SMP = 1
  172. endif
  173. endif
  174. ifndef NEED_PIC
  175. NEED_PIC = 1
  176. endif
  177. ARFLAGS =
  178. CPP = $(COMPILER) -E
  179. AR = $(CROSS_SUFFIX)ar
  180. AS = $(CROSS_SUFFIX)as
  181. LD = $(CROSS_SUFFIX)ld
  182. RANLIB = $(CROSS_SUFFIX)ranlib
  183. NM = $(CROSS_SUFFIX)nm
  184. DLLWRAP = $(CROSS_SUFFIX)dllwrap
  185. OBJCOPY = $(CROSS_SUFFIX)objcopy
  186. OBJCONV = $(CROSS_SUFFIX)objconv
  187. # For detect fortran failed, only build BLAS.
  188. ifeq ($(NOFORTRAN), 1)
  189. NO_LAPACK = 1
  190. endif
  191. #
  192. # OS dependent settings
  193. #
  194. ifeq ($(OSNAME), Darwin)
  195. ifndef MACOSX_DEPLOYMENT_TARGET
  196. export MACOSX_DEPLOYMENT_TARGET=10.6
  197. endif
  198. MD5SUM = md5 -r
  199. endif
  200. ifneq (,$(findstring $(OSNAME), FreeBSD OpenBSD DragonFly))
  201. MD5SUM = md5 -r
  202. endif
  203. ifeq ($(OSNAME), NetBSD)
  204. MD5SUM = md5 -n
  205. endif
  206. ifeq ($(OSNAME), Linux)
  207. EXTRALIB += -lm
  208. NO_EXPRECISION = 1
  209. endif
  210. ifeq ($(OSNAME), Android)
  211. EXTRALIB += -lm
  212. endif
  213. ifeq ($(OSNAME), AIX)
  214. EXTRALIB += -lm
  215. endif
  216. ifeq ($(OSNAME), WINNT)
  217. NEED_PIC = 0
  218. NO_EXPRECISION = 1
  219. EXTRALIB += -defaultlib:advapi32
  220. SUFFIX = obj
  221. PSUFFIX = pobj
  222. LIBSUFFIX = a
  223. ifeq ($(C_COMPILER), CLANG)
  224. CCOMMON_OPT += -DMS_ABI
  225. endif
  226. ifeq ($(C_COMPILER), GCC)
  227. #Test for supporting MS_ABI
  228. GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4)
  229. GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
  230. GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
  231. ifeq ($(GCCVERSIONGT4), 1)
  232. # GCC Majar version > 4
  233. # It is compatible with MSVC ABI.
  234. CCOMMON_OPT += -DMS_ABI
  235. endif
  236. ifeq ($(GCCVERSIONGTEQ4), 1)
  237. ifeq ($(GCCMINORVERSIONGTEQ7), 1)
  238. # GCC Version >=4.7
  239. # It is compatible with MSVC ABI.
  240. CCOMMON_OPT += -DMS_ABI
  241. endif
  242. endif
  243. endif
  244. # Ensure the correct stack alignment on Win32
  245. # http://permalink.gmane.org/gmane.comp.lib.openblas.general/97
  246. ifeq ($(ARCH), x86)
  247. CCOMMON_OPT += -mincoming-stack-boundary=2
  248. FCOMMON_OPT += -mincoming-stack-boundary=2
  249. endif
  250. endif
  251. ifeq ($(OSNAME), Interix)
  252. NEED_PIC = 0
  253. NO_EXPRECISION = 1
  254. INTERIX_TOOL_DIR = /opt/gcc.3.3/i586-pc-interix3/bin
  255. endif
  256. ifeq ($(OSNAME), CYGWIN_NT)
  257. NEED_PIC = 0
  258. NO_EXPRECISION = 1
  259. OS_CYGWIN_NT = 1
  260. endif
  261. ifneq ($(OSNAME), WINNT)
  262. ifneq ($(OSNAME), CYGWIN_NT)
  263. ifneq ($(OSNAME), Interix)
  264. ifneq ($(OSNAME), Android)
  265. ifdef SMP
  266. EXTRALIB += -lpthread
  267. endif
  268. endif
  269. endif
  270. endif
  271. endif
  272. # ifeq logical or
  273. ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT Interix))
  274. OS_WINDOWS=1
  275. endif
  276. ifdef QUAD_PRECISION
  277. CCOMMON_OPT += -DQUAD_PRECISION
  278. NO_EXPRECISION = 1
  279. endif
  280. ifneq ($(ARCH), x86)
  281. ifneq ($(ARCH), x86_64)
  282. NO_EXPRECISION = 1
  283. endif
  284. endif
  285. ifdef UTEST_CHECK
  286. CCOMMON_OPT += -DUTEST_CHECK
  287. SANITY_CHECK = 1
  288. endif
  289. ifdef SANITY_CHECK
  290. CCOMMON_OPT += -DSANITY_CHECK -DREFNAME=$(*F)f$(BU)
  291. endif
  292. MAX_STACK_ALLOC ?= 2048
  293. ifneq ($(MAX_STACK_ALLOC), 0)
  294. CCOMMON_OPT += -DMAX_STACK_ALLOC=$(MAX_STACK_ALLOC)
  295. endif
  296. #
  297. # Architecture dependent settings
  298. #
  299. ifeq ($(ARCH), x86)
  300. ifndef BINARY
  301. NO_BINARY_MODE = 1
  302. endif
  303. ifeq ($(CORE), generic)
  304. NO_EXPRECISION = 1
  305. endif
  306. ifndef NO_EXPRECISION
  307. ifeq ($(F_COMPILER), GFORTRAN)
  308. # ifeq logical or. GCC or LSB
  309. ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC LSB))
  310. EXPRECISION = 1
  311. CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
  312. FCOMMON_OPT += -m128bit-long-double
  313. endif
  314. ifeq ($(C_COMPILER), CLANG)
  315. EXPRECISION = 1
  316. CCOMMON_OPT += -DEXPRECISION
  317. FCOMMON_OPT += -m128bit-long-double
  318. endif
  319. endif
  320. endif
  321. endif
  322. ifeq ($(ARCH), x86_64)
  323. ifeq ($(CORE), generic)
  324. NO_EXPRECISION = 1
  325. endif
  326. ifndef NO_EXPRECISION
  327. ifeq ($(F_COMPILER), GFORTRAN)
  328. # ifeq logical or. GCC or LSB
  329. ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC LSB))
  330. EXPRECISION = 1
  331. CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
  332. FCOMMON_OPT += -m128bit-long-double
  333. endif
  334. ifeq ($(C_COMPILER), CLANG)
  335. EXPRECISION = 1
  336. CCOMMON_OPT += -DEXPRECISION
  337. FCOMMON_OPT += -m128bit-long-double
  338. endif
  339. endif
  340. endif
  341. endif
  342. ifeq ($(C_COMPILER), INTEL)
  343. CCOMMON_OPT += -wd981
  344. endif
  345. ifeq ($(USE_OPENMP), 1)
  346. #check
  347. ifeq ($(USE_THREAD), 0)
  348. $(error OpenBLAS: Cannot set both USE_OPENMP=1 and USE_THREAD=0. The USE_THREAD=0 is only for building single thread version.)
  349. endif
  350. # ifeq logical or. GCC or LSB
  351. ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC LSB))
  352. CCOMMON_OPT += -fopenmp
  353. endif
  354. ifeq ($(C_COMPILER), CLANG)
  355. CCOMMON_OPT += -fopenmp
  356. endif
  357. ifeq ($(C_COMPILER), INTEL)
  358. CCOMMON_OPT += -fopenmp
  359. endif
  360. ifeq ($(C_COMPILER), PGI)
  361. CCOMMON_OPT += -mp
  362. endif
  363. ifeq ($(C_COMPILER), OPEN64)
  364. CCOMMON_OPT += -mp
  365. CEXTRALIB += -lstdc++
  366. endif
  367. ifeq ($(C_COMPILER), PATHSCALE)
  368. CCOMMON_OPT += -mp
  369. endif
  370. endif
  371. ifeq ($(DYNAMIC_ARCH), 1)
  372. ifeq ($(ARCH), x86)
  373. DYNAMIC_CORE = KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS \
  374. CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
  375. endif
  376. ifeq ($(ARCH), x86_64)
  377. DYNAMIC_CORE = PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
  378. ifneq ($(NO_AVX), 1)
  379. DYNAMIC_CORE += SANDYBRIDGE BULLDOZER PILEDRIVER STEAMROLLER EXCAVATOR
  380. endif
  381. ifneq ($(NO_AVX2), 1)
  382. DYNAMIC_CORE += HASWELL ZEN
  383. endif
  384. endif
  385. # If DYNAMIC_CORE is not set, DYNAMIC_ARCH cannot do anything, so force it to empty
  386. ifndef DYNAMIC_CORE
  387. override DYNAMIC_ARCH=
  388. endif
  389. endif
  390. ifeq ($(ARCH), ia64)
  391. NO_BINARY_MODE = 1
  392. BINARY_DEFINED = 1
  393. ifeq ($(F_COMPILER), GFORTRAN)
  394. ifeq ($(C_COMPILER), GCC)
  395. # EXPRECISION = 1
  396. # CCOMMON_OPT += -DEXPRECISION
  397. endif
  398. endif
  399. endif
  400. ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
  401. NO_BINARY_MODE = 1
  402. endif
  403. ifeq ($(ARCH), alpha)
  404. NO_BINARY_MODE = 1
  405. BINARY_DEFINED = 1
  406. endif
  407. ifeq ($(ARCH), arm)
  408. NO_BINARY_MODE = 1
  409. BINARY_DEFINED = 1
  410. CCOMMON_OPT += -marm
  411. FCOMMON_OPT += -marm
  412. # If softfp abi is mentioned on the command line, force it.
  413. ifeq ($(ARM_SOFTFP_ABI), 1)
  414. CCOMMON_OPT += -mfloat-abi=softfp
  415. FCOMMON_OPT += -mfloat-abi=softfp
  416. endif
  417. ifeq ($(OSNAME), Android)
  418. ifeq ($(ARM_SOFTFP_ABI), 1)
  419. EXTRALIB += -lm
  420. else
  421. EXTRALIB += -Wl,-lm_hard
  422. endif
  423. endif
  424. endif
  425. ifeq ($(ARCH), arm64)
  426. NO_BINARY_MODE = 1
  427. BINARY_DEFINED = 1
  428. endif
  429. #
  430. # C Compiler dependent settings
  431. #
  432. # ifeq logical or. GCC or CLANG or LSB
  433. # http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or
  434. ifeq ($(C_COMPILER), $(filter $(C_COMPILER),GCC CLANG LSB))
  435. CCOMMON_OPT += -Wall
  436. COMMON_PROF += -fno-inline
  437. NO_UNINITIALIZED_WARN = -Wno-uninitialized
  438. ifeq ($(QUIET_MAKE), 1)
  439. CCOMMON_OPT += $(NO_UNINITIALIZED_WARN) -Wno-unused
  440. endif
  441. ifdef NO_BINARY_MODE
  442. ifeq ($(ARCH), $(filter $(ARCH),mips64))
  443. ifdef BINARY64
  444. CCOMMON_OPT += -mabi=64
  445. else
  446. CCOMMON_OPT += -mabi=n32
  447. endif
  448. BINARY_DEFINED = 1
  449. else ifeq ($(ARCH), $(filter $(ARCH),mips))
  450. CCOMMON_OPT += -mabi=32
  451. BINARY_DEFINED = 1
  452. endif
  453. ifeq ($(CORE), LOONGSON3A)
  454. CCOMMON_OPT += -march=mips64
  455. FCOMMON_OPT += -march=mips64
  456. endif
  457. ifeq ($(CORE), LOONGSON3B)
  458. CCOMMON_OPT += -march=mips64
  459. FCOMMON_OPT += -march=mips64
  460. endif
  461. ifeq ($(CORE), 1004K)
  462. CCOMMON_OPT += -mips32r2 $(MSA_FLAGS)
  463. FCOMMON_OPT += -mips32r2 $(MSA_FLAGS)
  464. endif
  465. ifeq ($(CORE), P5600)
  466. CCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS)
  467. FCOMMON_OPT += -mips32r5 -mnan=2008 -mtune=p5600 $(MSA_FLAGS)
  468. endif
  469. ifeq ($(CORE), I6400)
  470. CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
  471. FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
  472. endif
  473. ifeq ($(CORE), P6600)
  474. CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS)
  475. FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS)
  476. endif
  477. ifeq ($(CORE), I6500)
  478. CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
  479. FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
  480. endif
  481. ifeq ($(OSNAME), AIX)
  482. BINARY_DEFINED = 1
  483. endif
  484. endif
  485. ifndef BINARY_DEFINED
  486. ifneq ($(OSNAME), AIX)
  487. ifdef BINARY64
  488. CCOMMON_OPT += -m64
  489. else
  490. CCOMMON_OPT += -m32
  491. endif
  492. endif
  493. endif
  494. endif
  495. ifeq ($(C_COMPILER), PGI)
  496. ifdef BINARY64
  497. CCOMMON_OPT += -tp p7-64
  498. else
  499. CCOMMON_OPT += -tp p7
  500. endif
  501. endif
  502. ifeq ($(C_COMPILER), PATHSCALE)
  503. ifdef BINARY64
  504. CCOMMON_OPT += -m64
  505. else
  506. CCOMMON_OPT += -m32
  507. endif
  508. endif
  509. #
  510. # Fortran Compiler dependent settings
  511. #
  512. ifeq ($(F_COMPILER), FLANG)
  513. CCOMMON_OPT += -DF_INTERFACE_FLANG
  514. ifdef BINARY64
  515. ifdef INTERFACE64
  516. ifneq ($(INTERFACE64), 0)
  517. FCOMMON_OPT += -i8
  518. endif
  519. endif
  520. FCOMMON_OPT += -Wall
  521. else
  522. FCOMMON_OPT += -Wall
  523. endif
  524. ifeq ($(USE_OPENMP), 1)
  525. FCOMMON_OPT += -fopenmp
  526. endif
  527. endif
  528. ifeq ($(F_COMPILER), G77)
  529. CCOMMON_OPT += -DF_INTERFACE_G77
  530. FCOMMON_OPT += -Wall
  531. ifndef NO_BINARY_MODE
  532. ifneq ($(OSNAME), AIX)
  533. ifdef BINARY64
  534. FCOMMON_OPT += -m64
  535. else
  536. FCOMMON_OPT += -m32
  537. endif
  538. endif
  539. endif
  540. endif
  541. ifeq ($(F_COMPILER), G95)
  542. CCOMMON_OPT += -DF_INTERFACE_G95
  543. FCOMMON_OPT += -Wall
  544. ifneq ($(OSNAME), AIX)
  545. ifndef NO_BINARY_MODE
  546. ifdef BINARY64
  547. FCOMMON_OPT += -m64
  548. else
  549. FCOMMON_OPT += -m32
  550. endif
  551. endif
  552. endif
  553. endif
  554. ifeq ($(F_COMPILER), GFORTRAN)
  555. CCOMMON_OPT += -DF_INTERFACE_GFORT
  556. FCOMMON_OPT += -Wall
  557. #Don't include -lgfortran, when NO_LAPACK=1 or lsbcc
  558. ifneq ($(NO_LAPACK), 1)
  559. EXTRALIB += -lgfortran
  560. endif
  561. ifdef NO_BINARY_MODE
  562. ifeq ($(ARCH), $(filter $(ARCH),mips64))
  563. ifdef BINARY64
  564. FCOMMON_OPT += -mabi=64
  565. else
  566. FCOMMON_OPT += -mabi=n32
  567. endif
  568. else ifeq ($(ARCH), $(filter $(ARCH),mips))
  569. FCOMMON_OPT += -mabi=32
  570. endif
  571. else
  572. ifdef BINARY64
  573. ifneq ($(OSNAME), AIX)
  574. FCOMMON_OPT += -m64
  575. endif
  576. ifdef INTERFACE64
  577. ifneq ($(INTERFACE64), 0)
  578. FCOMMON_OPT += -fdefault-integer-8
  579. endif
  580. endif
  581. else
  582. ifneq ($(OSNAME), AIX)
  583. FCOMMON_OPT += -m32
  584. endif
  585. endif
  586. endif
  587. ifeq ($(USE_OPENMP), 1)
  588. FCOMMON_OPT += -fopenmp
  589. endif
  590. endif
  591. ifeq ($(F_COMPILER), INTEL)
  592. CCOMMON_OPT += -DF_INTERFACE_INTEL
  593. ifdef INTERFACE64
  594. ifneq ($(INTERFACE64), 0)
  595. FCOMMON_OPT += -i8
  596. endif
  597. endif
  598. ifeq ($(USE_OPENMP), 1)
  599. FCOMMON_OPT += -fopenmp
  600. endif
  601. endif
  602. ifeq ($(F_COMPILER), FUJITSU)
  603. CCOMMON_OPT += -DF_INTERFACE_FUJITSU
  604. ifeq ($(USE_OPENMP), 1)
  605. FCOMMON_OPT += -openmp
  606. endif
  607. endif
  608. ifeq ($(F_COMPILER), IBM)
  609. CCOMMON_OPT += -DF_INTERFACE_IBM
  610. # FCOMMON_OPT += -qarch=440
  611. ifdef BINARY64
  612. FCOMMON_OPT += -q64
  613. ifdef INTERFACE64
  614. ifneq ($(INTERFACE64), 0)
  615. FCOMMON_OPT += -qintsize=8
  616. endif
  617. endif
  618. else
  619. FCOMMON_OPT += -q32
  620. endif
  621. ifeq ($(USE_OPENMP), 1)
  622. FCOMMON_OPT += -openmp
  623. endif
  624. endif
  625. ifeq ($(F_COMPILER), PGI)
  626. CCOMMON_OPT += -DF_INTERFACE_PGI
  627. COMMON_PROF += -DPGICOMPILER
  628. ifdef BINARY64
  629. ifdef INTERFACE64
  630. ifneq ($(INTERFACE64), 0)
  631. FCOMMON_OPT += -i8
  632. endif
  633. endif
  634. FCOMMON_OPT += -tp p7-64
  635. else
  636. FCOMMON_OPT += -tp p7
  637. endif
  638. ifeq ($(USE_OPENMP), 1)
  639. FCOMMON_OPT += -mp
  640. endif
  641. endif
  642. ifeq ($(F_COMPILER), PATHSCALE)
  643. CCOMMON_OPT += -DF_INTERFACE_PATHSCALE
  644. ifdef BINARY64
  645. ifdef INTERFACE64
  646. ifneq ($(INTERFACE64), 0)
  647. FCOMMON_OPT += -i8
  648. endif
  649. endif
  650. endif
  651. ifeq ($(USE_OPENMP), 1)
  652. FCOMMON_OPT += -mp
  653. endif
  654. endif
  655. ifeq ($(F_COMPILER), OPEN64)
  656. CCOMMON_OPT += -DF_INTERFACE_OPEN64
  657. ifdef BINARY64
  658. ifdef INTERFACE64
  659. ifneq ($(INTERFACE64), 0)
  660. FCOMMON_OPT += -i8
  661. endif
  662. endif
  663. endif
  664. ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
  665. ifndef BINARY64
  666. FCOMMON_OPT += -n32
  667. else
  668. FCOMMON_OPT += -n64
  669. endif
  670. ifeq ($(CORE), LOONGSON3A)
  671. FCOMMON_OPT += -loongson3 -static
  672. endif
  673. ifeq ($(CORE), LOONGSON3B)
  674. FCOMMON_OPT += -loongson3 -static
  675. endif
  676. else
  677. ifndef BINARY64
  678. FCOMMON_OPT += -m32
  679. else
  680. FCOMMON_OPT += -m64
  681. endif
  682. endif
  683. ifeq ($(USE_OPENMP), 1)
  684. FEXTRALIB += -lstdc++
  685. FCOMMON_OPT += -mp
  686. endif
  687. endif
  688. ifeq ($(C_COMPILER), OPEN64)
  689. ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
  690. ifndef BINARY64
  691. CCOMMON_OPT += -n32
  692. else
  693. CCOMMON_OPT += -n64
  694. endif
  695. ifeq ($(CORE), LOONGSON3A)
  696. CCOMMON_OPT += -loongson3 -static
  697. endif
  698. ifeq ($(CORE), LOONGSON3B)
  699. CCOMMON_OPT += -loongson3 -static
  700. endif
  701. else
  702. ifndef BINARY64
  703. CCOMMON_OPT += -m32
  704. else
  705. CCOMMON_OPT += -m64
  706. endif
  707. endif
  708. endif
  709. ifeq ($(C_COMPILER), SUN)
  710. CCOMMON_OPT += -w
  711. ifeq ($(ARCH), x86)
  712. CCOMMON_OPT += -m32
  713. else
  714. FCOMMON_OPT += -m64
  715. endif
  716. endif
  717. ifeq ($(F_COMPILER), SUN)
  718. CCOMMON_OPT += -DF_INTERFACE_SUN
  719. ifeq ($(ARCH), x86)
  720. FCOMMON_OPT += -m32
  721. else
  722. FCOMMON_OPT += -m64
  723. endif
  724. ifeq ($(USE_OPENMP), 1)
  725. FCOMMON_OPT += -xopenmp=parallel
  726. endif
  727. endif
  728. ifeq ($(F_COMPILER), COMPAQ)
  729. CCOMMON_OPT += -DF_INTERFACE_COMPAQ
  730. ifeq ($(USE_OPENMP), 1)
  731. FCOMMON_OPT += -openmp
  732. endif
  733. endif
  734. ifdef BINARY64
  735. ifdef INTERFACE64
  736. ifneq ($(INTERFACE64), 0)
  737. CCOMMON_OPT +=
  738. #-DUSE64BITINT
  739. endif
  740. endif
  741. endif
  742. ifeq ($(NEED_PIC), 1)
  743. ifeq ($(C_COMPILER), IBM)
  744. CCOMMON_OPT += -qpic=large
  745. else
  746. CCOMMON_OPT += -fPIC
  747. endif
  748. ifeq ($(F_COMPILER), SUN)
  749. FCOMMON_OPT += -pic
  750. else
  751. FCOMMON_OPT += -fPIC
  752. endif
  753. endif
  754. ifeq ($(DYNAMIC_ARCH), 1)
  755. CCOMMON_OPT += -DDYNAMIC_ARCH
  756. endif
  757. ifeq ($(NO_LAPACK), 1)
  758. CCOMMON_OPT += -DNO_LAPACK
  759. #Disable LAPACK C interface
  760. NO_LAPACKE = 1
  761. endif
  762. ifeq ($(NO_LAPACKE), 1)
  763. CCOMMON_OPT += -DNO_LAPACKE
  764. endif
  765. ifeq ($(NO_AVX), 1)
  766. CCOMMON_OPT += -DNO_AVX
  767. endif
  768. ifeq ($(ARCH), x86)
  769. CCOMMON_OPT += -DNO_AVX
  770. endif
  771. ifeq ($(NO_AVX2), 1)
  772. CCOMMON_OPT += -DNO_AVX2
  773. endif
  774. ifdef SMP
  775. CCOMMON_OPT += -DSMP_SERVER
  776. ifeq ($(ARCH), mips64)
  777. ifneq ($(CORE), LOONGSON3B)
  778. USE_SIMPLE_THREADED_LEVEL3 = 1
  779. endif
  780. endif
  781. ifeq ($(USE_OPENMP), 1)
  782. # USE_SIMPLE_THREADED_LEVEL3 = 1
  783. # NO_AFFINITY = 1
  784. CCOMMON_OPT += -DUSE_OPENMP
  785. endif
  786. ifeq ($(BIGNUMA), 1)
  787. CCOMMON_OPT += -DBIGNUMA
  788. endif
  789. endif
  790. ifeq ($(NO_WARMUP), 1)
  791. CCOMMON_OPT += -DNO_WARMUP
  792. endif
  793. ifeq ($(CONSISTENT_FPCSR), 1)
  794. CCOMMON_OPT += -DCONSISTENT_FPCSR
  795. endif
  796. # Only for development
  797. # CCOMMON_OPT += -DPARAMTEST
  798. # CCOMMON_OPT += -DPREFETCHTEST
  799. # CCOMMON_OPT += -DNO_SWITCHING
  800. # USE_PAPI = 1
  801. ifdef USE_PAPI
  802. CCOMMON_OPT += -DUSE_PAPI
  803. EXTRALIB += -lpapi -lperfctr
  804. endif
  805. ifdef DYNAMIC_THREADS
  806. CCOMMON_OPT += -DDYNAMIC_THREADS
  807. endif
  808. CCOMMON_OPT += -DMAX_CPU_NUMBER=$(NUM_THREADS)
  809. CCOMMON_OPT += -DMAX_PARALLEL_NUMBER=$(NUM_PARALLEL)
  810. ifdef USE_SIMPLE_THREADED_LEVEL3
  811. CCOMMON_OPT += -DUSE_SIMPLE_THREADED_LEVEL3
  812. endif
  813. ifndef SYMBOLPREFIX
  814. SYMBOLPREFIX =
  815. endif
  816. ifndef SYMBOLSUFFIX
  817. SYMBOLSUFFIX =
  818. endif
  819. ifndef LIBNAMESUFFIX
  820. LIBNAMEBASE = $(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX)
  821. else
  822. LIBNAMEBASE = $(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX)_$(LIBNAMESUFFIX)
  823. endif
  824. ifeq ($(OSNAME), CYGWIN_NT)
  825. LIBPREFIX = cyg$(LIBNAMEBASE)
  826. else
  827. LIBPREFIX = lib$(LIBNAMEBASE)
  828. endif
  829. KERNELDIR = $(TOPDIR)/kernel/$(ARCH)
  830. include $(TOPDIR)/Makefile.$(ARCH)
  831. CCOMMON_OPT += -DASMNAME=$(FU)$(*F) -DASMFNAME=$(FU)$(*F)$(BU) -DNAME=$(*F)$(BU) -DCNAME=$(*F) -DCHAR_NAME=\"$(*F)$(BU)\" -DCHAR_CNAME=\"$(*F)\"
  832. ifeq ($(CORE), PPC440)
  833. CCOMMON_OPT += -DALLOC_QALLOC
  834. endif
  835. ifeq ($(CORE), PPC440FP2)
  836. STATIC_ALLOCATION = 1
  837. endif
  838. ifneq ($(OSNAME), Linux)
  839. NO_AFFINITY = 1
  840. endif
  841. ifneq ($(ARCH), x86_64)
  842. ifneq ($(ARCH), x86)
  843. ifneq ($(CORE), LOONGSON3B)
  844. NO_AFFINITY = 1
  845. endif
  846. endif
  847. endif
  848. ifdef NO_AFFINITY
  849. CCOMMON_OPT += -DNO_AFFINITY
  850. endif
  851. ifdef FUNCTION_PROFILE
  852. CCOMMON_OPT += -DFUNCTION_PROFILE
  853. endif
  854. ifdef HUGETLB_ALLOCATION
  855. CCOMMON_OPT += -DALLOC_HUGETLB
  856. endif
  857. ifdef HUGETLBFILE_ALLOCATION
  858. CCOMMON_OPT += -DALLOC_HUGETLBFILE -DHUGETLB_FILE_NAME=$(HUGETLBFILE_ALLOCATION)
  859. endif
  860. ifdef STATIC_ALLOCATION
  861. CCOMMON_OPT += -DALLOC_STATIC
  862. endif
  863. ifdef DEVICEDRIVER_ALLOCATION
  864. CCOMMON_OPT += -DALLOC_DEVICEDRIVER -DDEVICEDRIVER_NAME=\"/dev/mapper\"
  865. endif
  866. ifdef MIXED_MEMORY_ALLOCATION
  867. CCOMMON_OPT += -DMIXED_MEMORY_ALLOCATION
  868. endif
  869. ifeq ($(OSNAME), SunOS)
  870. TAR = gtar
  871. PATCH = gpatch
  872. GREP = ggrep
  873. AWK = nawk
  874. else
  875. TAR = tar
  876. PATCH = patch
  877. GREP = grep
  878. AWK = awk
  879. endif
  880. ifndef MD5SUM
  881. MD5SUM = md5sum
  882. endif
  883. REVISION = -r$(VERSION)
  884. MAJOR_VERSION = $(word 1,$(subst ., ,$(VERSION)))
  885. ifeq ($(DEBUG), 1)
  886. COMMON_OPT += -g
  887. endif
  888. ifeq ($(DEBUG), 1)
  889. FCOMMON_OPT += -g
  890. endif
  891. ifndef COMMON_OPT
  892. COMMON_OPT = -O2
  893. endif
  894. ifndef FCOMMON_OPT
  895. FCOMMON_OPT = -O2 -frecursive
  896. endif
  897. override CFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR)
  898. override PFLAGS += $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR) -DPROFILE $(COMMON_PROF)
  899. override FFLAGS += $(COMMON_OPT) $(FCOMMON_OPT)
  900. override FPFLAGS += $(FCOMMON_OPT) $(COMMON_PROF)
  901. #MAKEOVERRIDES =
  902. #For LAPACK Fortran codes.
  903. #Disable -fopenmp for LAPACK Fortran codes on Windows.
  904. ifdef OS_WINDOWS
  905. LAPACK_FFLAGS := $(filter-out -fopenmp -mp -openmp -xopenmp=parallel,$(FFLAGS))
  906. LAPACK_FPFLAGS := $(filter-out -fopenmp -mp -openmp -xopenmp=parallel,$(FPFLAGS))
  907. else
  908. LAPACK_FFLAGS := $(FFLAGS)
  909. LAPACK_FPFLAGS := $(FPFLAGS)
  910. endif
  911. LAPACK_CFLAGS = $(CFLAGS)
  912. LAPACK_CFLAGS += -DHAVE_LAPACK_CONFIG_H
  913. ifdef INTERFACE64
  914. ifneq ($(INTERFACE64), 0)
  915. LAPACK_CFLAGS += -DLAPACK_ILP64
  916. endif
  917. endif
  918. ifdef OS_WINDOWS
  919. LAPACK_CFLAGS += -DOPENBLAS_OS_WINDOWS
  920. endif
  921. ifeq ($(C_COMPILER), LSB)
  922. LAPACK_CFLAGS += -DLAPACK_COMPLEX_STRUCTURE
  923. endif
  924. ifndef SUFFIX
  925. SUFFIX = o
  926. endif
  927. ifndef PSUFFIX
  928. PSUFFIX = po
  929. endif
  930. ifndef LIBSUFFIX
  931. LIBSUFFIX = a
  932. endif
  933. ifneq ($(DYNAMIC_ARCH), 1)
  934. ifndef SMP
  935. LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
  936. LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
  937. else
  938. LIBNAME = $(LIBPREFIX)_$(LIBCORE)p$(REVISION).$(LIBSUFFIX)
  939. LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)p$(REVISION)_p.$(LIBSUFFIX)
  940. endif
  941. else
  942. ifndef SMP
  943. LIBNAME = $(LIBPREFIX)$(REVISION).$(LIBSUFFIX)
  944. LIBNAME_P = $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX)
  945. else
  946. LIBNAME = $(LIBPREFIX)p$(REVISION).$(LIBSUFFIX)
  947. LIBNAME_P = $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX)
  948. endif
  949. endif
  950. LIBDLLNAME = $(LIBPREFIX).dll
  951. IMPLIBNAME = lib$(LIBNAMEBASE).dll.a
  952. LIBSONAME = $(LIBNAME:.$(LIBSUFFIX)=.so)
  953. LIBDYNNAME = $(LIBNAME:.$(LIBSUFFIX)=.dylib)
  954. LIBDEFNAME = $(LIBNAME:.$(LIBSUFFIX)=.def)
  955. LIBEXPNAME = $(LIBNAME:.$(LIBSUFFIX)=.exp)
  956. LIBZIPNAME = $(LIBNAME:.$(LIBSUFFIX)=.zip)
  957. LIBS = $(TOPDIR)/$(LIBNAME)
  958. LIBS_P = $(TOPDIR)/$(LIBNAME_P)
  959. LIB_COMPONENTS = BLAS
  960. ifneq ($(NO_CBLAS), 1)
  961. LIB_COMPONENTS += CBLAS
  962. endif
  963. ifneq ($(NO_LAPACK), 1)
  964. LIB_COMPONENTS += LAPACK
  965. ifneq ($(NO_LAPACKE), 1)
  966. LIB_COMPONENTS += LAPACKE
  967. endif
  968. ifeq ($(BUILD_RELAPACK), 1)
  969. LIB_COMPONENTS += ReLAPACK
  970. endif
  971. endif
  972. ifeq ($(ONLY_CBLAS), 1)
  973. LIB_COMPONENTS = CBLAS
  974. endif
  975. export OSNAME
  976. export ARCH
  977. export CORE
  978. export LIBCORE
  979. export PGCPATH
  980. export CONFIG
  981. export CC
  982. export FC
  983. export BU
  984. export FU
  985. export NEED2UNDERSCORES
  986. export USE_THREAD
  987. export NUM_THREADS
  988. export NUM_CORES
  989. export SMP
  990. export MAKEFILE_RULE
  991. export NEED_PIC
  992. export BINARY
  993. export BINARY32
  994. export BINARY64
  995. export F_COMPILER
  996. export C_COMPILER
  997. export USE_OPENMP
  998. export CROSS
  999. export CROSS_SUFFIX
  1000. export NOFORTRAN
  1001. export NO_FBLAS
  1002. export EXTRALIB
  1003. export CEXTRALIB
  1004. export FEXTRALIB
  1005. export HAVE_SSE
  1006. export HAVE_SSE2
  1007. export HAVE_SSE3
  1008. export HAVE_SSSE3
  1009. export HAVE_SSE4_1
  1010. export HAVE_SSE4_2
  1011. export HAVE_SSE4A
  1012. export HAVE_SSE5
  1013. export HAVE_AVX
  1014. export HAVE_VFP
  1015. export HAVE_VFPV3
  1016. export HAVE_VFPV4
  1017. export HAVE_NEON
  1018. export HAVE_MSA
  1019. export MSA_FLAGS
  1020. export KERNELDIR
  1021. export FUNCTION_PROFILE
  1022. export TARGET_CORE
  1023. export SGEMM_UNROLL_M
  1024. export SGEMM_UNROLL_N
  1025. export DGEMM_UNROLL_M
  1026. export DGEMM_UNROLL_N
  1027. export QGEMM_UNROLL_M
  1028. export QGEMM_UNROLL_N
  1029. export CGEMM_UNROLL_M
  1030. export CGEMM_UNROLL_N
  1031. export ZGEMM_UNROLL_M
  1032. export ZGEMM_UNROLL_N
  1033. export XGEMM_UNROLL_M
  1034. export XGEMM_UNROLL_N
  1035. export CGEMM3M_UNROLL_M
  1036. export CGEMM3M_UNROLL_N
  1037. export ZGEMM3M_UNROLL_M
  1038. export ZGEMM3M_UNROLL_N
  1039. export XGEMM3M_UNROLL_M
  1040. export XGEMM3M_UNROLL_N
  1041. ifdef USE_CUDA
  1042. export CUDADIR
  1043. export CUCC
  1044. export CUFLAGS
  1045. export CULIB
  1046. endif
  1047. .SUFFIXES: .$(PSUFFIX) .$(SUFFIX) .f
  1048. .f.$(SUFFIX):
  1049. $(FC) $(FFLAGS) -c $< -o $(@F)
  1050. .f.$(PSUFFIX):
  1051. $(FC) $(FPFLAGS) -pg -c $< -o $(@F)
  1052. ifdef BINARY64
  1053. PATHSCALEPATH = /opt/pathscale/lib/3.1
  1054. PGIPATH = /opt/pgi/linux86-64/7.1-5/lib
  1055. else
  1056. PATHSCALEPATH = /opt/pathscale/lib/3.1/32
  1057. PGIPATH = /opt/pgi/linux86/7.1-5/lib
  1058. endif
  1059. ACMLPATH = /opt/acml/4.3.0
  1060. ifneq ($(OSNAME), Darwin)
  1061. MKLPATH = /opt/intel/mkl/10.2.2.025/lib
  1062. else
  1063. MKLPATH = /Library/Frameworks/Intel_MKL.framework/Versions/10.0.1.014/lib
  1064. endif
  1065. ATLASPATH = /opt/atlas/3.9.17/opteron
  1066. FLAMEPATH = $(HOME)/flame/lib
  1067. ifneq ($(OSNAME), SunOS)
  1068. SUNPATH = /opt/sunstudio12.1
  1069. else
  1070. SUNPATH = /opt/SUNWspro
  1071. endif