1 #===============================================================================
2 # UFconfig.mk: common configuration file for all UF sparse matrix packages
3 #===============================================================================
5 # This file contains all configuration settings for all packages authored or
6 # co-authored by Tim Davis at the University of Florida:
8 # Package Version Description
9 # ------- ------- -----------
10 # AMD 1.2 or later approximate minimum degree ordering
11 # COLAMD 2.4 or later column approximate minimum degree ordering
12 # CCOLAMD 1.0 or later constrained approximate minimum degree ordering
13 # UMFPACK 4.5 or later sparse LU factorization, with the BLAS
14 # CHOLMOD any sparse Cholesky factorization, update/downdate
15 # KLU 1.0 or later sparse LU factorization, BLAS-free
16 # BTF 1.0 or later permutation to block triangular form
17 # LDL 1.2 or later concise sparse LDL'
18 # LPDASA any linear program solve (dual active set algorithm)
20 # The UFconfig directory and the above packages should all appear in a single
21 # directory, in order for the Makefile's within each package to find this file.
23 # To enable an option of the form "# OPTION = ...", edit this file and
24 # delete the "#" in the first column of the option you wish to use.
26 #------------------------------------------------------------------------------
27 # Generic configuration
28 #------------------------------------------------------------------------------
30 # C compiler and compiler flags: These will normally not give you optimal
31 # performance. You should select the optimization parameters that are best
32 # for your system. On Linux, use "CFLAGS = -O3 -fexceptions" for example.
36 # ranlib, and ar, for generating libraries
40 # delete and rename a file
44 # Fortran compiler (not normally required)
49 # C and Fortran libraries
52 # For compiling MATLAB mexFunctions
55 # Which version of MAKE you are using (default is "make")
59 #------------------------------------------------------------------------------
60 # BLAS and LAPACK configuration:
61 #------------------------------------------------------------------------------
63 # UMFPACK and CHOLMOD both require the BLAS. CHOLMOD also requires LAPACK.
64 # See Kazushige Goto's BLAS at http://www.cs.utexas.edu/users/flame/goto/ or
65 # http://www.tacc.utexas.edu/~kgoto/ for the best BLAS to use with CHOLMOD.
66 # LAPACK is at http://www.netlib.org/lapack/ . You can use the standard
67 # Fortran LAPACK along with Goto's BLAS to obtain very good performance.
68 # CHOLMOD gets a peak numeric factorization rate of 3.6 Gflops on a 3.2 GHz
69 # Pentium 4 (512K cache, 4GB main memory) with the Goto BLAS, and 6 Gflops
70 # on a 2.5Ghz dual-core AMD Opteron.
72 # Don't use the Intel MKL BLAS, you may get NaNs! (See
73 # http://www.mathworks.com/support/bugreports/details.html?rp=252103
74 # for more details. I get NaN's on a Pentium 4 with the Intel MKL BLAS).
76 # These settings will probably not work, since there is no fixed convention for
77 # naming the BLAS and LAPACK library (*.a or *.so) files.
78 BLAS
= -Lusr
/lib
-lblas
-lgfortran
-lgfortranbegin
$(XERBLA
)
79 LAPACK
= -llapack
-lgfortran
81 # The BLAS might not contain xerbla, an error-handling routine for LAPACK and
82 # the BLAS. Also, the standard xerbla requires the Fortran I/O library, and
83 # stops the application program if an error occurs. A C version of xerbla
84 # distributed with this software (UFconfig/xerbla/libcerbla.a) includes a
85 # Fortran-callable xerbla routine that prints nothing and does not stop the
86 # application program.
87 #XERBLA = ../../UFconfig/xerbla/libcerbla.a
90 # If you wish to use the XERBLA in LAPACK instead, use this option:
93 # If you wish to use the Fortran UFconfig/xerbla/xerbla.f instead, use this:
94 # XERBLA = ../../UFconfig/xerbla/libxerbla.a
96 #------------------------------------------------------------------------------
97 # METIS, optionally used by CHOLMOD
98 #------------------------------------------------------------------------------
100 # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
101 # You may wish to use an absolute path. METIS is optional. Compile
102 # CHOLMOD with -DNPARTITION if you do not wish to use METIS.
103 METIS_PATH
= ..
/..
/metis-4.0
104 METIS
= ..
/..
/metis-4.0
/libmetis.a
106 # If you use CHOLMOD_CONFIG = -DNPARTITION then use the following options:
110 #------------------------------------------------------------------------------
111 # UMFPACK configuration:
112 #------------------------------------------------------------------------------
114 # Configuration flags for UMFPACK. See UMFPACK/Source/umf_config.h for details.
116 # -DNBLAS do not use the BLAS. UMFPACK will be very slow.
117 # -DCBLAS use the C-BLAS interface to the BLAS
118 # -DLP64 UMFPACK is being compiled in 64-bit mode
119 # -DLONGBLAS use "long" integers for the BLAS
120 # -DNSUNPERF do not use the Sun Perf. Library (default is use it on Solaris)
121 # -DNSCSL do not use the SGI SCSL BLAS (default is to use it on SGI)
122 # -DNPOSIX do not use POSIX routines sysconf and times.
123 # -DGETRUSAGE use getrusage
124 # -DNO_TIMER do not use any timing routines
125 # -DNRECIPROCAL do not multiply by the reciprocal
126 # -DNO_DIVIDE_BY_ZERO do not divide by zero
130 #------------------------------------------------------------------------------
131 # CHOLMOD configuration
132 #------------------------------------------------------------------------------
134 # CHOLMOD Library Modules, which appear in libcholmod.a:
135 # Core requires: none
136 # Check requires: Core
137 # Cholesky requires: Core, AMD, COLAMD. optional: Partition, Supernodal
138 # MatrixOps requires: Core
139 # Modify requires: Core
140 # Partition requires: Core, CCOLAMD, METIS. optional: Cholesky
141 # Supernodal requires: Core, BLAS, LAPACK
143 # CHOLMOD test/demo Modules (all are GNU GPL, do not appear in libcholmod.a):
144 # Tcov requires: Core, Check, Cholesky, MatrixOps, Modify, Supernodal
145 # optional: Partition
146 # Valgrind same as Tcov
147 # Demo requires: Core, Check, Cholesky, MatrixOps, Supernodal
148 # optional: Partition
150 # Configuration flags:
151 # -DNCHECK do not include the Check module. License GNU LGPL
152 # -DNCHOLESKY do not include the Cholesky module. License GNU LGPL
153 # -DNPARTITION do not include the Partition module. License GNU LGPL
154 # -DNGPL do not include any GNU GPL Modules in the CHOLMOD library:
155 # -DNMATRIXOPS do not include the MatrixOps module. License GNU GPL
156 # -DNMODIFY do not include the Modify module. License GNU GPL
157 # -DNSUPERNODAL do not include the Supernodal module. License GNU GPL
159 # -DNPRINT do not print anything.
160 # -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by
161 # LAPACK and the BLAS (defaults to 'int')
162 # -DNSUNPERF for Solaris only. If defined, do not use the Sun
163 # Performance Library
167 #------------------------------------------------------------------------------
169 #------------------------------------------------------------------------------
171 # Using default compilers:
173 CFLAGS
= -O3
-fPIC
-fexceptions
-m64
176 # CFLAGS = -g -fexceptions \
177 -Wall
-W
-Wshadow
-Wmissing-prototypes
-Wstrict-prototypes \
178 -Wredundant-decls
-Wnested-externs
-Wdisabled-optimization
-ansi
179 # CFLAGS = -O3 -fexceptions \
180 -Wall
-W
-Werror
-Wshadow
-Wmissing-prototypes
-Wstrict-prototypes \
181 -Wredundant-decls
-Wnested-externs
-Wdisabled-optimization
-ansi
182 # CFLAGS = -g -fexceptions
186 # -fforce-addr -fmove-all-movables -freduce-all-givs -ftsp-ordering
187 # -frename-registers -ffast-math -funroll-loops
189 # Using the Goto BLAS:
190 # BLAS = -lgoto -lfrtbegin -lgfortran $(XERBLA) -lpthread
192 # Using Intel's icc and ifc compilers:
193 # (does not work for mexFunctions unless you add a mexopts.sh file)
197 # old (broken): CFLAGS = -ansi -O3 -ip -tpp7 -xW -vec_report0
201 # CFLAGS = -O3 -fexceptions -m64
202 # BLAS = -lgfortran -lpthread -Lusr/lib -lf77blas -latlas $(XERBLA)
203 # LAPACK = -llapack64 -lgfortran
206 #------------------------------------------------------------------------------
208 #------------------------------------------------------------------------------
211 # CFLAGS = -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil
214 # CFLAGS = -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil -xarch=v9
216 # BLAS = -xlic_lib=sunperf
219 #------------------------------------------------------------------------------
221 #------------------------------------------------------------------------------
224 # CFLAGS = -O2 -std1 -DLP64
228 #------------------------------------------------------------------------------
229 # Macintosh (untested)
230 #------------------------------------------------------------------------------
233 # CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
236 #------------------------------------------------------------------------------
238 #------------------------------------------------------------------------------
244 # CFLAGS = -O4 -qipa -qmaxmem=16384 -qproto
245 # F77FLAGS = -O4 -qipa -qmaxmem=16384
248 # CFLAGS = -O4 -qipa -qmaxmem=16384 -q64 -DLP64 -qproto
249 # F77FLAGS = -O4 -qipa -qmaxmem=16384 -q64 -DLP64
252 #------------------------------------------------------------------------------
254 #------------------------------------------------------------------------------
262 # 64-bit mode (32 bit int's and 64-bit long's):
263 # CFLAGS = -DLP64 -64
266 # SGI doesn't have ranlib
269 #------------------------------------------------------------------------------
270 # remove object files and profile output
271 #------------------------------------------------------------------------------
273 CLEAN
= *.o
*.obj
*.ln
*.bb
*.bbg
*.da
*.tcov
*.gcov gmon.out
*.bak
*.d