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

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