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

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

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