Merge pull request #390 from wernsaar/develop
[platform/upstream/openblas.git] / Makefile.rule
1 #
2 #  Beginning of user configuration 
3 #
4
5 # This library's version
6 VERSION = 0.2.9
7
8 # If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a
9 # and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library 
10 # is libopenblas_$(LIBNAMESUFFIX).so.0.
11 # LIBNAMESUFFIX = omp
12
13 # You can specify the target architecture, otherwise it's
14 # automatically detected.
15 # TARGET = PENRYN
16
17 # If you want to support multiple architecture in one binary
18 # DYNAMIC_ARCH = 1
19
20 # C compiler including binary type(32bit / 64bit). Default is gcc.
21 # Don't use Intel Compiler or PGI, it won't generate right codes as I expect.
22 # CC = gcc
23
24 # Fortran compiler. Default is g77.
25 # FC = gfortran
26
27 # Even you can specify cross compiler. Meanwhile, please set HOSTCC.
28 # CC = x86_64-w64-mingw32-gcc
29 # FC = x86_64-w64-mingw32-gfortran
30
31 # If you use the cross compiler, please set this host compiler.
32 # HOSTCC = gcc
33
34 # If you need 32bit binary, define BINARY=32, otherwise define BINARY=64
35 # BINARY=64
36
37 # About threaded BLAS. It will be automatically detected if you don't
38 # specify it.
39 # For force setting for single threaded, specify USE_THREAD = 0
40 # For force setting for multi  threaded, specify USE_THREAD = 1
41 # USE_THREAD = 0
42
43 # If you're going to use this library with OpenMP, please comment it in.
44 # USE_OPENMP = 1
45
46 # You can define maximum number of threads. Basically it should be
47 # less than actual number of cores. If you don't specify one, it's
48 # automatically detected by the the script.
49 # NUM_THREADS = 24
50
51 # if you don't need to install the static library, please comment it in.
52 # NO_STATIC = 1
53
54 # if you don't need generate the shared library, please comment it in.
55 # NO_SHARED = 1
56
57 # If you don't need CBLAS interface, please comment it in.
58 # NO_CBLAS = 1
59
60 # If you only want CBLAS interface without installing Fortran compiler, 
61 # please comment it in.
62 # ONLY_CBLAS = 1
63
64 # If you don't need LAPACK, please comment it in. 
65 # If you set NO_LAPACK=1, the library automatically sets NO_LAPACKE=1.
66 # NO_LAPACK = 1
67
68 # If you don't need LAPACKE (C Interface to LAPACK), please comment it in.
69 # NO_LAPACKE = 1
70
71 # If you want to use legacy threaded Level 3 implementation.
72 # USE_SIMPLE_THREADED_LEVEL3 = 1
73
74 # If you want to drive whole 64bit region by BLAS. Not all Fortran
75 # compiler supports this. It's safe to keep comment it out if you
76 # are not sure(equivalent to "-i8" option).
77 # INTERFACE64 = 1
78
79 # Unfortunately most of kernel won't give us high quality buffer.
80 # BLAS tries to find the best region before entering main function,
81 # but it will consume time. If you don't like it, you can disable one.
82 NO_WARMUP = 1
83
84 # If you want to disable CPU/Memory affinity on Linux.
85 NO_AFFINITY = 1
86
87 # Don't use AVX kernel on Sandy Bridge. It is compatible with old compilers 
88 # and OS. However, the performance is low.
89 # NO_AVX = 1
90
91 # Don't use parallel make.
92 # NO_PARALLEL_MAKE = 1
93
94 # If you would like to know minute performance report of GotoBLAS.
95 # FUNCTION_PROFILE = 1
96
97 # Support for IEEE quad precision(it's *real* REAL*16)( under testing)
98 # QUAD_PRECISION = 1
99
100 # Theads are still working for a while after finishing BLAS operation
101 # to reduce thread activate/deactivate overhead. You can determine
102 # time out to improve performance. This number should be from 4 to 30
103 # which corresponds to (1 << n) cycles. For example, if you set to 26,
104 # thread will be running for (1 << 26) cycles(about 25ms on 3.0GHz
105 # system). Also you can control this mumber by THREAD_TIMEOUT
106 # CCOMMON_OPT   += -DTHREAD_TIMEOUT=26
107
108 # Using special device driver for mapping physically contigous memory
109 # to the user space. If bigphysarea is enabled, it will use it.
110 # DEVICEDRIVER_ALLOCATION = 1
111
112 # If you need to synchronize FP CSR between threads (for x86/x86_64 only).
113 # CONSISTENT_FPCSR = 1
114
115 # If any gemm arguement m, n or k is less or equal this threshold, gemm will be execute 
116 # with single thread. You can use this flag to avoid the overhead of multi-threading 
117 # in small matrix sizes. The default value is 4.
118 # GEMM_MULTITHREAD_THRESHOLD = 4
119
120 # If you need santy check by comparing reference BLAS. It'll be very
121 # slow (Not implemented yet).
122 # SANITY_CHECK = 1
123
124 # Run testcases in utest/ . When you enable UTEST_CHECK, it would enable
125 # SANITY_CHECK to compare the result with reference BLAS.
126 # UTEST_CHECK = 1
127
128 # The installation directory.
129 # PREFIX = /opt/OpenBLAS
130
131 # Common Optimization Flag; 
132 # The default -O2 is enough.
133 # COMMON_OPT = -O2
134
135 # gfortran option for LAPACK
136 # enable this flag only on 64bit Linux and if you need a thread safe lapack library
137 # FCOMMON_OPT = -frecursive
138
139 # Profiling flags
140 COMMON_PROF = -pg
141
142 # Build Debug version
143 # DEBUG = 1
144
145 #
146 #  End of user configuration 
147 #