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 13 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. #
  2. # Include user definition
  3. #
  4. # TO suppress recursive includes
  5. INCLUDED = 1
  6. ifndef TOPDIR
  7. TOPDIR = .
  8. endif
  9. # Default C compiler
  10. CC = gcc
  11. ifndef MAKEFILE_RULE
  12. include $(TOPDIR)/Makefile.rule
  13. else
  14. include $(TOPDIR)/$(MAKEFILE_RULE)
  15. endif
  16. #
  17. # Beginning of system configuration
  18. #
  19. ifndef HOSTCC
  20. HOSTCC = $(CC)
  21. endif
  22. ifdef TARGET
  23. GETARCH_FLAGS += -DFORCE_$(TARGET)
  24. endif
  25. ifdef INTERFACE64
  26. GETARCH_FLAGS += -DUSE64BITINT
  27. endif
  28. # This operation is expensive, so execution should be once.
  29. ifndef GOTOBLAS_MAKEFILE
  30. export GOTOBLAS_MAKEFILE = 1
  31. # Generating Makefile.conf and config.h
  32. DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.getarch CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" CFLAGS="$(GETARCH_FLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) all)
  33. ifndef TARGET_CORE
  34. include $(TOPDIR)/Makefile.conf
  35. else
  36. include $(TOPDIR)/Makefile_kernel.conf
  37. endif
  38. endif
  39. ifndef NUM_THREADS
  40. NUM_THREADS = $(NUM_CORES)
  41. endif
  42. ifeq ($(NUM_THREADS), 1)
  43. override USE_THREAD = 0
  44. endif
  45. ifdef USE_THREAD
  46. ifeq ($(USE_THREAD), 0)
  47. SMP =
  48. else
  49. SMP = 1
  50. endif
  51. else
  52. ifeq ($(NUM_THREAD), 1)
  53. SMP =
  54. else
  55. SMP = 1
  56. endif
  57. endif
  58. ifndef NEED_PIC
  59. NEED_PIC = 1
  60. endif
  61. ARFLAGS =
  62. CPP = $(COMPILER) -E
  63. AR = $(CROSS_SUFFIX)ar
  64. AS = $(CROSS_SUFFIX)as
  65. LD = $(CROSS_SUFFIX)ld
  66. RANLIB = $(CROSS_SUFFIX)ranlib
  67. NM = $(CROSS_SUFFIX)nm
  68. DLLWRAP = $(CROSS_SUFFIX)dllwrap
  69. #
  70. # OS dependent settings
  71. #
  72. ifeq ($(OSNAME), Darwin)
  73. EXTRALIB += -lSystemStubs
  74. export MACOSX_DEPLOYMENT_TARGET=10.2
  75. endif
  76. ifeq ($(OSNAME), Linux)
  77. EXTRALIB += -lm
  78. endif
  79. ifeq ($(OSNAME), AIX)
  80. EXTRALIB += -lm
  81. endif
  82. ifeq ($(OSNAME), WINNT)
  83. NEED_PIC = 0
  84. NO_EXPRECISION = 1
  85. EXTRALIB += -defaultlib:advapi32
  86. SUFFIX = obj
  87. PSUFFIX = pobj
  88. LIBSUFFIX = lib
  89. endif
  90. ifeq ($(OSNAME), Interix)
  91. NEED_PIC = 0
  92. NO_EXPRECISION = 1
  93. INTERIX_TOOL_DIR = /opt/gcc.3.3/i586-pc-interix3/bin
  94. endif
  95. ifeq ($(OSNAME), CYGWIN_NT)
  96. NEED_PIC = 0
  97. NO_EXPRECISION = 1
  98. endif
  99. ifneq ($(OSNAME), WINNT)
  100. ifneq ($(OSNAME), CYGWIN_NT)
  101. ifneq ($(OSNAME), Interix)
  102. ifdef SMP
  103. EXTRALIB += -lpthread
  104. endif
  105. endif
  106. endif
  107. endif
  108. ifdef QUAD_PRECISION
  109. CCOMMON_OPT += -DQUAD_PRECISION
  110. NO_EXPRECISION = 1
  111. endif
  112. ifneq ($(ARCH), x86)
  113. ifneq ($(ARCH), x86_64)
  114. NO_EXPRECISION = 1
  115. endif
  116. endif
  117. ifdef UTEST_CHECK
  118. CCOMMON_OPT += -DUTEST_CHECK
  119. SANITY_CHECK = 1
  120. endif
  121. ifdef SANITY_CHECK
  122. CCOMMON_OPT += -DSANITY_CHECK -DREFNAME=$(*F)f$(BU)
  123. endif
  124. #
  125. # Architecture dependent settings
  126. #
  127. ifeq ($(ARCH), x86)
  128. ifndef BINARY
  129. NO_BINARY_MODE = 1
  130. endif
  131. ifndef NO_EXPRECISION
  132. ifeq ($(F_COMPILER), GFORTRAN)
  133. ifeq ($(C_COMPILER), GCC)
  134. EXPRECISION = 1
  135. CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
  136. FCOMMON_OPT += -m128bit-long-double
  137. endif
  138. endif
  139. endif
  140. endif
  141. ifeq ($(ARCH), x86_64)
  142. ifndef NO_EXPRECISION
  143. ifeq ($(F_COMPILER), GFORTRAN)
  144. ifeq ($(C_COMPILER), GCC)
  145. EXPRECISION = 1
  146. CCOMMON_OPT += -DEXPRECISION -m128bit-long-double
  147. FCOMMON_OPT += -m128bit-long-double
  148. endif
  149. endif
  150. endif
  151. endif
  152. ifeq ($(C_COMPILER), INTEL)
  153. CCOMMON_OPT += -wd981
  154. endif
  155. ifeq ($(USE_OPENMP), 1)
  156. ifeq ($(C_COMPILER), GCC)
  157. CCOMMON_OPT += -fopenmp
  158. endif
  159. ifeq ($(C_COMPILER), INTEL)
  160. CCOMMON_OPT += -openmp
  161. endif
  162. ifeq ($(C_COMPILER), PGI)
  163. CCOMMON_OPT += -mp
  164. endif
  165. ifeq ($(C_COMPILER), OPEN64)
  166. CCOMMON_OPT += -mp
  167. CEXTRALIB += -lstdc++
  168. endif
  169. ifeq ($(C_COMPILER), PATHSCALE)
  170. CCOMMON_OPT += -mp
  171. endif
  172. endif
  173. ifdef DYNAMIC_ARCH
  174. ifeq ($(ARCH), x86)
  175. DYNAMIC_CORE = KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS \
  176. CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA ATOM NANO
  177. endif
  178. ifeq ($(ARCH), x86_64)
  179. DYNAMIC_CORE = PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BARCELONA ATOM NANO
  180. endif
  181. ifndef DYNAMIC_CORE
  182. DYNAMIC_ARCH =
  183. endif
  184. endif
  185. ifeq ($(ARCH), ia64)
  186. NO_BINARY_MODE = 1
  187. BINARY_DEFINED = 1
  188. ifeq ($(F_COMPILER), GFORTRAN)
  189. ifeq ($(C_COMPILER), GCC)
  190. # EXPRECISION = 1
  191. # CCOMMON_OPT += -DEXPRECISION
  192. endif
  193. endif
  194. endif
  195. ifeq ($(ARCH), mips64)
  196. NO_BINARY_MODE = 1
  197. endif
  198. ifeq ($(ARCH), alpha)
  199. NO_BINARY_MODE = 1
  200. BINARY_DEFINED = 1
  201. endif
  202. #
  203. # C Compiler dependent settings
  204. #
  205. ifeq ($(C_COMPILER), GCC)
  206. CCOMMON_OPT += -Wall
  207. COMMON_PROF += -fno-inline
  208. NO_UNINITIALIZED_WARN = -Wno-uninitialized
  209. ifdef NO_BINARY_MODE
  210. ifeq ($(ARCH), mips64)
  211. ifdef BINARY64
  212. CCOMMON_OPT += -mabi=64
  213. else
  214. CCOMMON_OPT += -mabi=n32
  215. endif
  216. BINARY_DEFINED = 1
  217. endif
  218. ifeq ($(CORE), LOONGSON3A)
  219. CCOMMON_OPT += -march=mips64
  220. FCOMMON_OPT += -march=mips64
  221. endif
  222. ifeq ($(OSNAME), AIX)
  223. BINARY_DEFINED = 1
  224. endif
  225. endif
  226. ifndef BINARY_DEFINED
  227. ifdef BINARY64
  228. CCOMMON_OPT += -m64
  229. else
  230. CCOMMON_OPT += -m32
  231. endif
  232. endif
  233. endif
  234. ifeq ($(C_COMPILER), PGI)
  235. ifdef BINARY64
  236. CCOMMON_OPT += -tp p7-64
  237. else
  238. CCOMMON_OPT += -tp p7
  239. endif
  240. endif
  241. ifeq ($(C_COMPILER), PATHSCALE)
  242. ifdef BINARY64
  243. CCOMMON_OPT += -m64
  244. else
  245. CCOMMON_OPT += -m32
  246. endif
  247. endif
  248. #
  249. # Fortran Compiler dependent settings
  250. #
  251. ifeq ($(F_COMPILER), G77)
  252. CCOMMON_OPT += -DF_INTERFACE_G77
  253. FCOMMON_OPT += -Wall
  254. ifndef NO_BINARY_MODE
  255. ifdef BINARY64
  256. FCOMMON_OPT += -m64
  257. else
  258. FCOMMON_OPT += -m32
  259. endif
  260. endif
  261. endif
  262. ifeq ($(F_COMPILER), G95)
  263. CCOMMON_OPT += -DF_INTERFACE_G95
  264. FCOMMON_OPT += -Wall
  265. ifndef NO_BINARY_MODE
  266. ifdef BINARY64
  267. FCOMMON_OPT += -m64
  268. else
  269. FCOMMON_OPT += -m32
  270. endif
  271. endif
  272. endif
  273. ifeq ($(F_COMPILER), GFORTRAN)
  274. CCOMMON_OPT += -DF_INTERFACE_GFORT
  275. FCOMMON_OPT += -Wall
  276. ifdef NO_BINARY_MODE
  277. ifeq ($(ARCH), mips64)
  278. ifdef BINARY64
  279. FCOMMON_OPT += -mabi=64
  280. else
  281. FCOMMON_OPT += -mabi=n32
  282. endif
  283. endif
  284. else
  285. ifdef BINARY64
  286. FCOMMON_OPT += -m64
  287. ifdef INTERFACE64
  288. FCOMMON_OPT += -fdefault-integer-8
  289. endif
  290. else
  291. FCOMMON_OPT += -m32
  292. endif
  293. endif
  294. ifdef USE_OPENMP
  295. FCOMMON_OPT += -fopenmp
  296. endif
  297. endif
  298. ifeq ($(F_COMPILER), INTEL)
  299. CCOMMON_OPT += -DF_INTERFACE_INTEL
  300. ifdef INTERFACE64
  301. FCOMMON_OPT += -i8
  302. endif
  303. ifdef USE_OPENMP
  304. FCOMMON_OPT += -openmp
  305. endif
  306. endif
  307. ifeq ($(F_COMPILER), FUJITSU)
  308. CCOMMON_OPT += -DF_INTERFACE_FUJITSU
  309. ifdef USE_OPENMP
  310. FCOMMON_OPT += -openmp
  311. endif
  312. endif
  313. ifeq ($(F_COMPILER), IBM)
  314. CCOMMON_OPT += -DF_INTERFACE_IBM
  315. # FCOMMON_OPT += -qarch=440
  316. ifdef BINARY64
  317. FCOMMON_OPT += -q64
  318. ifdef INTERFACE64
  319. FCOMMON_OPT += -qintsize=8
  320. endif
  321. else
  322. FCOMMON_OPT += -q32
  323. endif
  324. ifdef USE_OPENMP
  325. FCOMMON_OPT += -openmp
  326. endif
  327. endif
  328. ifeq ($(F_COMPILER), PGI)
  329. CCOMMON_OPT += -DF_INTERFACE_PGI
  330. COMMON_PROF += -DPGICOMPILER
  331. ifdef BINARY64
  332. ifdef INTERFACE64
  333. FCOMMON_OPT += -i8
  334. endif
  335. FCOMMON_OPT += -tp p7-64
  336. else
  337. FCOMMON_OPT += -tp p7
  338. endif
  339. ifdef USE_OPENMP
  340. FCOMMON_OPT += -mp
  341. endif
  342. endif
  343. ifeq ($(F_COMPILER), PATHSCALE)
  344. CCOMMON_OPT += -DF_INTERFACE_PATHSCALE
  345. ifdef BINARY64
  346. ifdef INTERFACE64
  347. FCOMMON_OPT += -i8
  348. endif
  349. endif
  350. ifneq ($(ARCH), mips64)
  351. ifndef BINARY64
  352. FCOMMON_OPT += -m32
  353. else
  354. FCOMMON_OPT += -m64
  355. endif
  356. else
  357. ifdef BINARY64
  358. FCOMMON_OPT += -mabi=64
  359. else
  360. FCOMMON_OPT += -mabi=n32
  361. endif
  362. endif
  363. ifdef USE_OPENMP
  364. FCOMMON_OPT += -mp
  365. endif
  366. endif
  367. ifeq ($(F_COMPILER), OPEN64)
  368. CCOMMON_OPT += -DF_INTERFACE_OPEN64
  369. ifdef BINARY64
  370. ifdef INTERFACE64
  371. FCOMMON_OPT += -i8
  372. endif
  373. endif
  374. ifndef BINARY64
  375. FCOMMON_OPT += -m32
  376. else
  377. FCOMMON_OPT += -m64
  378. endif
  379. ifdef USE_OPENMP
  380. FEXTRALIB += -lstdc++
  381. FCOMMON_OPT += -mp
  382. endif
  383. endif
  384. ifeq ($(C_COMPILER), OPEN64)
  385. ifndef BINARY64
  386. CCOMMON_OPT += -m32
  387. else
  388. CCOMMON_OPT += -m64
  389. endif
  390. endif
  391. ifeq ($(C_COMPILER), SUN)
  392. CCOMMON_OPT += -w
  393. ifeq ($(ARCH), x86)
  394. CCOMMON_OPT += -m32
  395. else
  396. FCOMMON_OPT += -m64
  397. endif
  398. endif
  399. ifeq ($(F_COMPILER), SUN)
  400. CCOMMON_OPT += -DF_INTERFACE_SUN
  401. ifeq ($(ARCH), x86)
  402. FCOMMON_OPT += -m32
  403. else
  404. FCOMMON_OPT += -m64
  405. endif
  406. ifdef USE_OPENMP
  407. FCOMMON_OPT += -xopenmp=parallel
  408. endif
  409. endif
  410. ifeq ($(F_COMPILER), COMPAQ)
  411. CCOMMON_OPT += -DF_INTERFACE_COMPAQ
  412. ifdef USE_OPENMP
  413. FCOMMON_OPT += -openmp
  414. endif
  415. endif
  416. ifdef BINARY64
  417. ifdef INTERFACE64
  418. CCOMMON_OPT +=
  419. #-DUSE64BITINT
  420. endif
  421. endif
  422. ifeq ($(NEED_PIC), 1)
  423. ifeq ($(C_COMPILER), IBM)
  424. CCOMMON_OPT += -qpic=large
  425. else
  426. CCOMMON_OPT += -fPIC
  427. endif
  428. ifeq ($(F_COMPILER), SUN)
  429. FCOMMON_OPT += -pic
  430. else
  431. FCOMMON_OPT += -fPIC
  432. endif
  433. endif
  434. ifeq ($(DYNAMIC_ARCH), 1)
  435. CCOMMON_OPT += -DDYNAMIC_ARCH
  436. endif
  437. ifeq ($(NO_LAPACK), 1)
  438. CCOMMON_OPT += -DNO_LAPACK
  439. endif
  440. ifdef SMP
  441. CCOMMON_OPT += -DSMP_SERVER
  442. ifeq ($(ARCH), mips64)
  443. USE_SIMPLE_THREADED_LEVEL3 = 1
  444. endif
  445. ifeq ($(USE_OPENMP), 1)
  446. # USE_SIMPLE_THREADED_LEVEL3 = 1
  447. # NO_AFFINITY = 1
  448. CCOMMON_OPT += -DUSE_OPENMP
  449. endif
  450. endif
  451. ifeq ($(NO_WARMUP), 1)
  452. CCOMMON_OPT += -DNO_WARMUP
  453. endif
  454. ifeq ($(CONSISTENT_FPCSR), 1)
  455. CCOMMON_OPT += -DCONSISTENT_FPCSR
  456. endif
  457. # Only for development
  458. # CCOMMON_OPT += -DPARAMTEST
  459. # CCOMMON_OPT += -DPREFETCHTEST
  460. # CCOMMON_OPT += -DNO_SWITCHING
  461. # USE_PAPI = 1
  462. ifdef USE_PAPI
  463. CCOMMON_OPT += -DUSE_PAPI
  464. EXTRALIB += -lpapi -lperfctr
  465. endif
  466. ifdef DYNAMIC_THREADS
  467. CCOMMON_OPT += -DDYNAMIC_THREADS
  468. endif
  469. CCOMMON_OPT += -DMAX_CPU_NUMBER=$(NUM_THREADS)
  470. ifdef USE_SIMPLE_THREADED_LEVEL3
  471. CCOMMON_OPT += -DUSE_SIMPLE_THREADED_LEVEL3
  472. endif
  473. LIBPREFIX = libopenblas
  474. KERNELDIR = $(TOPDIR)/kernel/$(ARCH)
  475. include $(TOPDIR)/Makefile.$(ARCH)
  476. CCOMMON_OPT += -DASMNAME=$(FU)$(*F) -DASMFNAME=$(FU)$(*F)$(BU) -DNAME=$(*F)$(BU) -DCNAME=$(*F) -DCHAR_NAME=\"$(*F)$(BU)\" -DCHAR_CNAME=\"$(*F)\"
  477. ifeq ($(CORE), PPC440)
  478. CCOMMON_OPT += -DALLOC_QALLOC
  479. endif
  480. ifeq ($(CORE), PPC440FP2)
  481. STATIC_ALLOCATION = 1
  482. endif
  483. ifneq ($(OSNAME), Linux)
  484. NO_AFFINITY = 1
  485. endif
  486. ifneq ($(ARCH), x86_64)
  487. ifneq ($(ARCH), x86)
  488. NO_AFFINITY = 1
  489. endif
  490. endif
  491. ifdef NO_AFFINITY
  492. CCOMMON_OPT += -DNO_AFFINITY
  493. endif
  494. ifdef FUNCTION_PROFILE
  495. CCOMMON_OPT += -DFUNCTION_PROFILE
  496. endif
  497. ifdef HUGETLB_ALLOCATION
  498. CCOMMON_OPT += -DALLOC_HUGETLB
  499. endif
  500. ifdef HUGETLBFILE_ALLOCATION
  501. CCOMMON_OPT += -DALLOC_HUGETLBFILE -DHUGETLB_FILE_NAME=$(HUGETLBFILE_ALLOCATION)
  502. endif
  503. ifdef STATIC_ALLOCATION
  504. CCOMMON_OPT += -DALLOC_STATIC
  505. endif
  506. ifdef DEVICEDRIVER_ALLOCATION
  507. CCOMMON_OPT += -DALLOC_DEVICEDRIVER -DDEVICEDRIVER_NAME=\"/dev/mapper\"
  508. endif
  509. ifdef MIXED_MEMORY_ALLOCATION
  510. CCOMMON_OPT += -DMIXED_MEMORY_ALLOCATION
  511. endif
  512. ifeq ($(OSNAME), SunOS)
  513. TAR = gtar
  514. PATCH = gpatch
  515. GREP = ggrep
  516. else
  517. TAR = tar
  518. PATCH = patch
  519. GREP = grep
  520. endif
  521. MD5SUM = md5sum
  522. AWK = awk
  523. REVISION = -r$(VERSION)
  524. CFLAGS = $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR)
  525. PFLAGS = $(COMMON_OPT) $(CCOMMON_OPT) -I$(TOPDIR) -DPROFILE $(COMMON_PROF)
  526. FFLAGS = $(COMMON_OPT) $(FCOMMON_OPT)
  527. FPFLAGS = $(COMMON_OPT) $(FCOMMON_OPT) $(COMMON_PROF)
  528. ifndef SUFFIX
  529. SUFFIX = o
  530. endif
  531. ifndef PSUFFIX
  532. PSUFFIX = po
  533. endif
  534. ifndef LIBSUFFIX
  535. LIBSUFFIX = a
  536. endif
  537. ifndef DYNAMIC_ARCH
  538. ifndef SMP
  539. LIBNAME = $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
  540. LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
  541. else
  542. LIBNAME = $(LIBPREFIX)_$(LIBCORE)p$(REVISION).$(LIBSUFFIX)
  543. LIBNAME_P = $(LIBPREFIX)_$(LIBCORE)p$(REVISION)_p.$(LIBSUFFIX)
  544. endif
  545. else
  546. ifndef SMP
  547. LIBNAME = $(LIBPREFIX)$(REVISION).$(LIBSUFFIX)
  548. LIBNAME_P = $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX)
  549. else
  550. LIBNAME = $(LIBPREFIX)p$(REVISION).$(LIBSUFFIX)
  551. LIBNAME_P = $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX)
  552. endif
  553. endif
  554. LIBSONAME = $(LIBNAME:.$(LIBSUFFIX)=.so)
  555. LIBDLLNAME = $(LIBNAME:.$(LIBSUFFIX)=.dll)
  556. LIBDYNNAME = $(LIBNAME:.$(LIBSUFFIX)=.dylib)
  557. LIBDEFNAME = $(LIBNAME:.$(LIBSUFFIX)=.def)
  558. LIBEXPNAME = $(LIBNAME:.$(LIBSUFFIX)=.exp)
  559. LIBZIPNAME = $(LIBNAME:.$(LIBSUFFIX)=.zip)
  560. LIBS = $(TOPDIR)/$(LIBNAME)
  561. LIBS_P = $(TOPDIR)/$(LIBNAME_P)
  562. export OSNAME
  563. export ARCH
  564. export CORE
  565. export LIBCORE
  566. export PGCPATH
  567. export CONFIG
  568. export CC
  569. export FC
  570. export BU
  571. export FU
  572. export USE_THREAD
  573. export NUM_THREADS
  574. export NUM_CORES
  575. export SMP
  576. export MAKEFILE_RULE
  577. export NEED_PIC
  578. export BINARY
  579. export BINARY32
  580. export BINARY64
  581. export F_COMPILER
  582. export C_COMPILER
  583. export USE_OPENMP
  584. export CROSS
  585. export CROSS_SUFFIX
  586. export NOFORTRAN
  587. export EXTRALIB
  588. export CEXTRALIB
  589. export FEXTRALIB
  590. export HAVE_SSE
  591. export HAVE_SSE2
  592. export HAVE_SSE3
  593. export HAVE_SSSE3
  594. export HAVE_SSE4_1
  595. export HAVE_SSE4_2
  596. export HAVE_SSE4A
  597. export HAVE_SSE5
  598. export KERNELDIR
  599. export FUNCTION_PROFILE
  600. export TARGET_CORE
  601. export SGEMM_UNROLL_M
  602. export SGEMM_UNROLL_N
  603. export DGEMM_UNROLL_M
  604. export DGEMM_UNROLL_N
  605. export QGEMM_UNROLL_M
  606. export QGEMM_UNROLL_N
  607. export CGEMM_UNROLL_M
  608. export CGEMM_UNROLL_N
  609. export ZGEMM_UNROLL_M
  610. export ZGEMM_UNROLL_N
  611. export XGEMM_UNROLL_M
  612. export XGEMM_UNROLL_N
  613. ifdef USE_CUDA
  614. export CUDADIR
  615. export CUCC
  616. export CUFLAGS
  617. export CULIB
  618. endif
  619. .SUFFIXES: .$(PSUFFIX) .$(SUFFIX) .f
  620. .f.$(SUFFIX):
  621. $(FC) $(FFLAGS) -c $< -o $(@F)
  622. .f.$(PSUFFIX):
  623. $(FC) $(FPFLAGS) -pg -c $< -o $(@F)
  624. ifdef BINARY64
  625. PATHSCALEPATH = /opt/pathscale/lib/3.1
  626. PGIPATH = /opt/pgi/linux86-64/7.1-5/lib
  627. else
  628. PATHSCALEPATH = /opt/pathscale/lib/3.1/32
  629. PGIPATH = /opt/pgi/linux86/7.1-5/lib
  630. endif
  631. ACMLPATH = /opt/acml/4.3.0
  632. ifneq ($(OSNAME), Darwin)
  633. MKLPATH = /opt/intel/mkl/10.2.2.025/lib
  634. else
  635. MKLPATH = /Library/Frameworks/Intel_MKL.framework/Versions/10.0.1.014/lib
  636. endif
  637. ATLASPATH = /opt/atlas/3.9.17/opteron
  638. FLAMEPATH = $(HOME)/flame/lib
  639. ifneq ($(OSNAME), SunOS)
  640. SUNPATH = /opt/sunstudio12.1
  641. else
  642. SUNPATH = /opt/SUNWspro
  643. endif

OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.