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

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

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