SCM

SCM Repository

[matrix] Annotation of /pkg/src/UFconfig/UFconfig.mk
ViewVC logotype

Annotation of /pkg/src/UFconfig/UFconfig.mk

Parent Directory Parent Directory | Revision Log Revision Log


Revision 912 - (view) (download)

1 : bates 912 #===============================================================================
2 :     # UFconfig.mk: common configuration file for all UF sparse matrix packages
3 :     #===============================================================================
4 :    
5 :     # This file contains all configuration settings for all packages authored or
6 :     # co-authored by Tim Davis at the University of Florida:
7 :     #
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 2.4 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)
19 :     #
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.
22 :     #
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.
25 :    
26 :     #------------------------------------------------------------------------------
27 :     # Generic configuration
28 :     #------------------------------------------------------------------------------
29 :    
30 :     # C compiler and compiler flags:
31 :     CC = cc
32 :     CFLAGS = -O
33 :    
34 :     # ranlib, and ar, for generating libraries
35 :     RANLIB = ranlib
36 :     AR = ar cr
37 :    
38 :     # delete and rename a file
39 :     RM = rm -f
40 :     MV = mv -f
41 :    
42 :     # Fortran compiler (not normally required)
43 :     F77 = f77
44 :     F77FLAGS = -O
45 :     F77LIB =
46 :    
47 :     # C and Fortran libraries
48 :     LIB = -lm
49 :    
50 :     # For compiling MATLAB mexFunctions
51 :     #MEX = mex -O
52 :    
53 :     #------------------------------------------------------------------------------
54 :     # BLAS and LAPACK configuration:
55 :     #------------------------------------------------------------------------------
56 :    
57 :     # UMFPACK and CHOLMOD both require the BLAS. CHOLMOD also requires LAPACK.
58 :     # See Kazushige Goto's BLAS at http://www.cs.utexas.edu/users/flame/goto/ or
59 :     # http://www.tacc.utexas.edu/~kgoto/ for the best BLAS to use with CHOLMOD.
60 :     # LAPACK is at http://www.netlib.org/lapack/ . You can use the standard
61 :     # Fortran LAPACK along with Goto's BLAS to obtain very good performance.
62 :     # CHOLMOD gets a peak numeric factorization rate of 3.6 Gflops on a 3.2 GHz
63 :     # Pentium 4 (512K cache, 4GB main memory) with the Goto BLAS.
64 :     #
65 :     # Don't use the Intel MKL BLAS, you may get NaNs! (See
66 :     # http://www.mathworks.com/support/bugreports/details.html?rp=252103
67 :     # for more details. I get NaN's on a Pentium 4 with the Intel MKL BLAS).
68 :    
69 :     # These settings will probably not work, since their is no fixed convention for
70 :     # nameing the BLAS and LAPACK library (*.a or *.so) files.
71 :     BLAS = -lblas
72 :     LAPACK = -llapack
73 :    
74 :     # The BLAS might not contain xerbla, an error-handling routine for LAPACK and
75 :     # the BLAS. Also, the standard xerbla requires the Fortran I/O library, and
76 :     # stops the application program if an error occurs. A C version of xerbla
77 :     # distributed with this software (UFconfig/xerbla/libcerbla.a) includes a
78 :     # Fortran-callable xerbla routine that prints nothing and does not stop the
79 :     # application program.
80 :     XERBLA = ../../UFconfig/xerbla/libcerbla.a
81 :    
82 :     # If you wish to use the XERBLA in LAPACK instead, use this option:
83 :     # XERBLA =
84 :    
85 :     # If you wish to use the Fortran UFconfig/xerbla/xerbla.f instead, use this:
86 :     # XERBLA = ../../UFconfig/xerbla/libxerbla.a
87 :    
88 :     #------------------------------------------------------------------------------
89 :     # METIS, used by CHOLMOD
90 :     #------------------------------------------------------------------------------
91 :    
92 :     # The path is relative to where it is used, in CHOLMOD/Lib, CHOLMOD/MATLAB, etc.
93 :     # You may wish to use an absolute path.
94 :     METIS_PATH = ../../Metis
95 :     METIS = ../../Metis/libmetis.a
96 :    
97 :     # If you use CHOLMOD_CONFIG = -DNPARTITION then use the following options:
98 :     # METIS_PATH =
99 :     # METIS =
100 :    
101 :     #------------------------------------------------------------------------------
102 :     # UMFPACK configuration:
103 :     #------------------------------------------------------------------------------
104 :    
105 :     # Configuration flags for UMFPACK. See UMFPACK/Source/umf_config.h for details.
106 :     #
107 :     # -DNBLAS do not use the BLAS. UMFPACK will be very slow.
108 :     # -DCBLAS use the C-BLAS interface to the BLAS
109 :     # -DLP64 UMFPACK is being compiled in 64-bit mode
110 :     # -DLONGBLAS use "long" integers for the BLAS
111 :     # -DNSUNPERF do not use the Sun Perf. Library (default is use it on Solaris)
112 :     # -DNSCSL do not use the SGI SCSL BLAS (default is to use it on SGI)
113 :     # -DNPOSIX do not use POSIX routines sysconf and times.
114 :     # -DGETRUSAGE use getrusage
115 :     # -DNO_TIMER do not use any timing routines
116 :     # -DNRECIPROCAL do not multiply by the reciprocal
117 :     # -DNO_DIVIDE_BY_ZERO do not divide by zero
118 :    
119 :     UMFPACK_CONFIG =
120 :    
121 :     #------------------------------------------------------------------------------
122 :     # CHOLMOD configuration
123 :     #------------------------------------------------------------------------------
124 :    
125 :     # CHOLMOD Library Modules, which appear in libcholmod.a:
126 :     # Core requires: none
127 :     # Check requires: Core
128 :     # Cholesky requires: Core, AMD, COLAMD. optional: Partition, Supernodal
129 :     # MatrixOps requires: Core
130 :     # Modify requires: Core
131 :     # Partition requires: Core, CCOLAMD, METIS. optional: Cholesky
132 :     # Supernodal requires: Core, BLAS, LAPACK
133 :     #
134 :     # CHOLMOD test/demo Modules (all are GNU GPL, do not appear in libcholmod.a):
135 :     # Tcov requires: Core, Check, Cholesky, MatrixOps, Modify, Supernodal
136 :     # optional: Partition
137 :     # Valgrind same as Tcov
138 :     # Demo requires: Core, Check, Cholesky, MatrixOps, Supernodal
139 :     # optional: Partition
140 :     #
141 :     # Configuration flags:
142 :     # -DNCHECK do not include the Check module. License GNU LGPL
143 :     # -DNCHOLESKY do not include the Cholesky module. License GNU LGPL
144 :     # -DNPARTITION do not include the Partition module. License GNU LGPL
145 :     # -DNGPL do not include any GNU GPL Modules in the CHOLMOD library:
146 :     # -DNMATRIXOPS do not include the MatrixOps module. License GNU GPL
147 :     # -DNMODIFY do not include the Modify module. License GNU GPL
148 :     # -DNSUPERNODAL do not include the Supernodal module. License GNU GPL
149 :     #
150 :     # -DNPRINT do not print anything.
151 :     # -D'LONGBLAS=long' or -DLONGBLAS='long long' defines the integers used by
152 :     # LAPACK and the BLAS (defaults to 'int')
153 :     # -DNSUNPERF for Solaris only. If defined, do not use the Sun
154 :     # Performance Library
155 :    
156 :     CHOLMOD_CONFIG =
157 :    
158 :     #------------------------------------------------------------------------------
159 :     # Linux
160 :     #------------------------------------------------------------------------------
161 :    
162 :     # Using default compilers:
163 :     CC = gcc
164 :     # CFLAGS = -O3 -fexceptions \
165 :     # -Wall -W -Werror -Wshadow -Wmissing-prototypes -Wstrict-prototypes \
166 :     # -Wredundant-decls -Wnested-externs -Wdisabled-optimization -ansi
167 :     # CFLAGS = -g -fexceptions
168 :     CFLAGS = -O3 -fexceptions
169 :     BLAS = -lgoto -lfrtbegin -lg2c $(XERBLA)
170 :    
171 :     # Using Intel's icc and ifc compilers (untested)
172 :     # F77 = ifc
173 :     # CC = icc
174 :     # CFLAGS = -ansi -O3 -ip -tpp7 -xW -vec_report0
175 :    
176 :     # 64bit
177 :     # F77FLAGS = -O -m64
178 :     # CFLAGS = -O3 -fexceptions -m64
179 :     # BLAS = -lgoto64 -lfrtbegin -lg2c -lpthread $(XERBLA)
180 :     # LAPACK = -llapack64
181 :    
182 :    
183 :     #------------------------------------------------------------------------------
184 :     # Solaris
185 :     #------------------------------------------------------------------------------
186 :    
187 :     # 32-bit
188 :     # CFLAGS = -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil
189 :    
190 :     # 64-bit
191 :     # CFLAGS = -KPIC -dalign -xc99=%none -Xc -xlibmieee -xO5 -xlibmil -xarch=v9
192 :    
193 :     # BLAS = -xlic_lib=sunperf
194 :     # LAPACK =
195 :    
196 :     #------------------------------------------------------------------------------
197 :     # Compaq Alpha
198 :     #------------------------------------------------------------------------------
199 :    
200 :     # 64-bit mode only
201 :     # CFLAGS = -O2 -std1 -DLP64
202 :     # BLAS = -ldxml
203 :     # LAPACK =
204 :    
205 :     #------------------------------------------------------------------------------
206 :     # Macintosh (untested)
207 :     #------------------------------------------------------------------------------
208 :    
209 :     # CC = gcc-3.3
210 :     # CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
211 :     # LIB = -lstdc++
212 :    
213 :     #------------------------------------------------------------------------------
214 :     # IBM RS 6000
215 :     #------------------------------------------------------------------------------
216 :    
217 :     # BLAS = -lessl
218 :     # LAPACK =
219 :    
220 :     # 32-bit mode:
221 :     # CFLAGS = -O4 -qipa -qmaxmem=16384 -qproto
222 :     # F77FLAGS = -O4 -qipa -qmaxmem=16384
223 :    
224 :     # 64-bit mode:
225 :     # CFLAGS = -O4 -qipa -qmaxmem=16384 -q64 -DLP64 -qproto
226 :     # F77FLAGS = -O4 -qipa -qmaxmem=16384 -q64 -DLP64
227 :     # AR = ar -X64
228 :    
229 :     #------------------------------------------------------------------------------
230 :     # SGI IRIX
231 :     #------------------------------------------------------------------------------
232 :    
233 :     # BLAS = -lscsl
234 :     # LAPACK =
235 :    
236 :     # 32-bit mode
237 :     # CFLAGS = -O
238 :    
239 :     # 64-bit mode (32 bit int's and 64-bit long's):
240 :     # CFLAGS = -DLP64 -64
241 :     # F77FLAGS = -64
242 :    
243 :     # SGI doesn't have ranlib
244 :     # RANLIB = echo
245 :    
246 :     #------------------------------------------------------------------------------
247 :     # remove object files and profile output
248 :     #------------------------------------------------------------------------------
249 :     include ${R_HOME}/etc/Makeconf
250 :     BLAS = ${BLAS_LIBS}
251 :     LAPACK = ${LAPACK_LIBS}
252 :     CHOLMOD_CONFIG = ${CPICFLAGS}
253 :    
254 :     clean:
255 :     - $(RM) *.o *.obj *.ln *.bb *.bbg *.da *.tcov *.gcov gmon.out *.bak *.d

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business Powered By FusionForge