~ubuntu-branches/ubuntu/trusty/rheolef/trusty

« back to all changes in this revision

Viewing changes to configure.ac

  • Committer: Package Import Robot
  • Author(s): Pierre Saramito
  • Date: 2012-04-06 09:12:21 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20120406091221-m58me99p1nxqui49
Tags: 6.0-1
* New upstream release 6.0 (major changes):
  - massively distributed and parallel support
  - full FEM characteristic method (Lagrange-Gakerkin method) support
  - enhanced users documentation 
  - source code supports g++-4.7 (closes: #667356)
* debian/control: dependencies for MPI distributed solvers added
* debian/rules: build commands simplified
* debian/librheolef-dev.install: man1/* to man9/* added
* debian/changelog: package description rewritted (closes: #661689)

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
dnl #        make install
22
22
dnl #@end cartouche
23
23
dnl #@end example
24
 
dnl #@noindent
25
 
dnl #  Successfull compilation and installation
26
 
dnl #  require the GNU @code{make} command.
27
 
dnl #  Check your installation by running a small test:
28
 
dnl #@noindent
 
24
dnl #
 
25
dnl #@noindent
 
26
dnl #Successfull compilation and installation
 
27
dnl #require the GNU @code{make} command.
 
28
dnl # Check your installation by running a small test:
 
29
dnl #
29
30
dnl #@example
30
31
dnl #        make installcheck
31
32
dnl #@end example
39
40
dnl #@toindex @code{man}
40
41
dnl #
41
42
dnl #@noindent
42
 
dnl #  @code{rheolef} comes with three documentations:
 
43
dnl # Rheolef comes with three documentations:
43
44
dnl #
44
45
dnl #@noindent
45
46
dnl #  @itemize @bullet
49
50
dnl #  @end itemize
50
51
dnl #
51
52
dnl #@noindent
52
 
dnl #  All these documentations are downloadable in various formats from the 
53
 
dnl #  @code{rheolef} home page.
54
 
dnl #  These files are also locally installed
55
 
dnl #  during the @code{make install} stage.
56
 
dnl #@noindent
57
 
dnl #The users guide is generated in @code{pdf} format:
58
 
dnl #@noindent
 
53
dnl # All these documentations are downloadable in various formats from the Rheolef home page.
 
54
dnl # These files are also locally installed during the @code{make install} stage.
 
55
dnl #@noindent
 
56
dnl # The users guide is generated in @code{pdf} format:
 
57
dnl #
59
58
dnl #@example
60
59
dnl #@cartouche
61
 
dnl #         evince usrman.pdf
 
60
dnl #         evince http://ljk.imag.fr/membres/Pierre.Saramito/rheolef/rheolef.pdf
62
61
dnl #@end cartouche
63
62
dnl #@end example
64
63
dnl #
65
64
dnl #@noindent
66
 
dnl #The reference manual is generated in @code{html} format:
67
 
dnl #@noindent
 
65
dnl # The reference manual is generated in @code{html} format:
 
66
dnl #
68
67
dnl #@example
69
 
dnl #         firefox http://ljk.imag.fr/membres/Pierre.Saramito/rheolef/rheolef.html
 
68
dnl #         firefox http://ljk.imag.fr/membres/Pierre.Saramito/rheolef/rheolef-refman.html
70
69
dnl #@end example
71
 
dnl #@noindent
72
 
dnl #  and you could add it to your bookmarks.
73
 
dnl #  Moreover, after performing @code{make install}, 
74
 
dnl #  unix manuals are available for commands and classes:
75
 
dnl #
76
 
dnl #@noindent
 
70
dnl #
 
71
dnl #@noindent
 
72
dnl #and you could add it to your bookmarks.
 
73
dnl # Moreover, after performing @code{make install}, unix manuals are available for commands and classes:
 
74
dnl #
77
75
dnl #@example
78
76
dnl #         man field
79
 
dnl #         man 3 field
 
77
dnl #         man 2rheolef field
80
78
dnl #@end example
81
 
dnl #@noindent
82
 
dnl #The browsable source code is generated in @code{html} format:
83
 
dnl #@noindent
 
79
dnl #
 
80
dnl #@noindent
 
81
dnl # The browsable source code is generated in @code{html} format:
 
82
dnl #
84
83
dnl #@example
85
84
dnl #         firefox http://ljk.imag.fr/membres/Pierre.Saramito/rheolef/source_html/
86
85
dnl #@end example
90
89
dnl #@toindex @code{bash}
91
90
dnl #@toindex @code{csh}
92
91
dnl #@noindent
93
 
dnl #   The default install prefix is @file{/usr/local}.
94
 
dnl #   If you prefer an alternative directory, e.g. @file{HOME/sys},
95
 
dnl #   you should enter:
96
 
dnl #@noindent
 
92
dnl # The default install prefix is @file{/usr/local}.
 
93
dnl # If you prefer an alternative directory, e.g. @file{HOME/sys}, you should enter:
 
94
dnl #
97
95
dnl #@example
98
96
dnl #         ./configure --prefix=$HOME/sys
99
97
dnl #@end example
100
 
dnl #@noindent
101
 
dnl #   In that case, you have to add the folowing lines at the end
102
 
dnl #   of your @file{.profile} or @file{.bash_profile} file:
103
 
dnl #@noindent
104
 
dnl #@example
105
 
dnl #         export PATH="$PATH:$HOME/sys/bin"
106
 
dnl #         export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/sys/lib"
107
 
dnl #         export MANPATH="$MANPATH:$HOME/man"
108
 
dnl #@end example
109
 
dnl #@noindent
110
 
dnl #   assuming you are using the @code{sh} or the @code{bash} unix interpreter.
111
 
dnl #   Conversely, if you are using @code{csh} or @code{tcsh}, add
112
 
dnl #   at the bottom of your @file{.cshrc} file:
113
 
dnl #@noindent
114
 
dnl #@example
115
 
dnl #         set path = ($path $HOME/sys/bin)
116
 
dnl #         setenv LD_LIBRARY_PATH "$LD_LIBRARY_PATH:$HOME/sys/lib"
117
 
dnl #         setenv MANPATH "$MANPATH:$HOME/sys/man"
118
 
dnl #@end example
119
 
dnl #   If you are unure about unix interpreter, get the SHELL value:
 
98
dnl #
 
99
dnl #@noindent
 
100
dnl # In that case, you have to add the folowing lines at the end
 
101
dnl # of your @file{.profile} or @file{.bash_profile} file:
 
102
dnl #
 
103
dnl #@example
 
104
dnl #         export PATH="$HOME/sys/bin:$PATH"
 
105
dnl #         export LD_LIBRARY_PATH="$HOME/sys/lib:$LD_LIBRARY_PATH"
 
106
dnl #         export MANPATH="$HOME/sys/man:$MANPATH"
 
107
dnl #@end example
 
108
dnl #
 
109
dnl #@noindent
 
110
dnl # assuming you are using the @code{sh} or the @code{bash} unix interpreter.
 
111
dnl # Conversely, if you are using @code{csh} or @code{tcsh}, add
 
112
dnl # at the bottom of your @file{.cshrc} file:
 
113
dnl #
 
114
dnl #@example
 
115
dnl #         set path = ($HOME/sys/bin $path)
 
116
dnl #         setenv LD_LIBRARY_PATH "$HOME/sys/lib:$LD_LIBRARY_PATH"
 
117
dnl #         setenv MANPATH "$HOME/sys/man:$MANPATH"
 
118
dnl #@end example
 
119
dnl #
 
120
dnl #@noindent
 
121
dnl # If you are unure about unix interpreter, get the SHELL value:
120
122
dnl #@example
121
123
dnl #         echo $SHELL
122
124
dnl #@end example
123
 
dnl #@noindent
124
 
dnl #   Then, you have to @emph{source} the modified file, e.g.: 
125
 
dnl #@noindent
 
125
dnl #
 
126
dnl #@noindent
 
127
dnl # Then, you have to @emph{source} the modified file, e.g.: 
 
128
dnl #
126
129
dnl #@example
127
130
dnl #         source ~/.cshrc
128
131
dnl #@end example
 
132
dnl #
129
133
dnl #@toindex hpux, operating system
130
134
dnl #@pindex rheolef-config
131
135
dnl #@noindent
132
 
dnl #   hpux users should replace @code{LD_LIBRARY_PATH} by @code{SHLIB_PATH}.
133
 
dnl #   If you are unure, get the shared library path variable:
 
136
dnl # hpux users should replace @code{LD_LIBRARY_PATH} by @code{SHLIB_PATH}.
 
137
dnl # If you are unure, get the shared library path variable:
 
138
dnl #
134
139
dnl #@example
135
140
dnl #         rheolef-config --shlibpath-var
136
141
dnl #@end example
 
142
dnl #
137
143
dnl #@noindent
138
 
dnl #   Check also your installation by compiling a sample
139
 
dnl #   program with the installed library:
 
144
dnl # Check also your installation by compiling a sample
 
145
dnl # program with the installed library:
 
146
dnl #
140
147
dnl #@example
141
148
dnl #         make installcheck
142
149
dnl #@end example
 
150
dnl #
143
151
dnl #@noindent
144
 
dnl #   Since it is a common mistake, you can later, at each time, test
145
 
dnl #   your run-time environment sanity with:
 
152
dnl # Since it is a common mistake, you can later, at each time, test
 
153
dnl # your run-time environment sanity with:
 
154
dnl #
146
155
dnl #@example
147
156
dnl #         rheolef-config --check
148
157
dnl #@end example
149
158
dnl #
150
 
dnl #RECOMMANDED LIBRARY:
151
 
dnl #@toindex spooles, multifrontal solver library
152
 
dnl #@toindex taucs, out-of-core sparse solver library
 
159
dnl #REQUIERED LIBRARIES:
 
160
dnl #@noindent
 
161
dnl # All the required libraries have precompiled packages under Debian GNU/Linux and Ubuntu systems.
 
162
dnl # If you are running a system where these libraries are not available, 
 
163
dnl # please consult the corresponding home pages and install instructions.
 
164
dnl #
 
165
dnl #@toindex boost, extensions of the c++ standard template library
 
166
dnl #@noindent
 
167
dnl # a) Rheolef widely uses the @code{boost} library, that
 
168
dnl # provides usefull extensions of the c++ standard template library.
 
169
dnl # @code{boost} at @url{http://www.boost.org} .
 
170
dnl #
 
171
dnl #@toindex mumps, multifrontal massively distributed sparse direct solver
153
172
dnl #@cindex multifrontal linear solver
154
 
dnl #@cindex out-of-core sparse linear solver
155
173
dnl #@cindex sparse matrix
156
 
dnl #@cindex factorization of sparse matrix
157
 
dnl #@noindent
158
 
dnl #  The use of implicit numerical schemes leads to the 
159
 
dnl #  resolution of large sparse linear systems.
160
 
dnl #  @code{rheolef} installation optionally recognizes both
161
 
dnl #  @code{umfpack} and @code{spooles}, two multifrontal direct solvers libraries, and 
162
 
dnl #  @code{taucs}, an out-of-core sparse direct solver,
163
 
dnl #  When no efficient sparse direct solver library is not available,
164
 
dnl #  rheolef uses a direct solver based upon a traditionnal skyline Choleski factorisation
165
 
dnl #  combined with a reverse Cuthill-Mc Kee reordering.
166
 
dnl #@noindent
167
 
dnl #  Here is the time complexity for 2d and 3d regular grid-based 
168
 
dnl #  Poisson problems.
169
 
dnl #  @example
170
 
dnl #                         skyline     multifrontal
171
 
dnl #        factorization    N^2         N log N
172
 
dnl #    2d
173
 
dnl #        resolution       N^3/2       N log N
174
 
dnl #
175
 
dnl #        factorization    N^7/3       N^2
176
 
dnl #    3d
177
 
dnl #        resolution       N^5/2       N^4/3
178
 
dnl #  @end example
179
 
dnl #@noindent
180
 
dnl #  The out-of-core strategy is efficient for very large problems
181
 
dnl #  or if your computer has few memory.
182
 
dnl #  The complexity estimation has been shown by A. George,
183
 
dnl #  @var{Nested dissection of a regular finite element mesh},
184
 
dnl #  SIAM J. Numer. Anal., 10:345-363, 1973.
185
 
dnl #THE UMFPACK LIBRARY:
186
 
dnl #  The @code{umfpack} library, if present, is auto-detected and used.
187
 
dnl #  It is widely available, as a debian package.
188
 
dnl #THE SPOOLES LIBRARY:
189
 
dnl #@noindent
190
 
dnl #  The optional @code{spooles-2.2} multifrontal linear solver
191
 
dnl #  from A. George, october 1998, is recommended for solving efficiently
192
 
dnl #  large linear systems. 
193
 
dnl #
194
 
dnl #@noindent
195
 
dnl #  It is available at @url{http://www.netlib.org/linalg/spooles/}.
196
 
dnl #  This library is free software. 
197
 
dnl #  A default skyline strategy is used when
198
 
dnl #  it is not founded by @code{configure}.
199
 
dnl #  Both the version 2.2. and the older @code{2.0} library interface are supported
200
 
dnl #  by @code{rheolef}.
201
 
dnl #
202
 
dnl #@noindent
203
 
dnl #    First build the spooles library:
204
 
dnl #@noindent
205
 
dnl #@example
206
 
dnl #         cd /usr/local/src
207
 
dnl #         mkdir spooles-2.2 
208
 
dnl #         gzip -dc < ../spooles.2.2.tar.gz | tar xvf -
209
 
dnl #         make CC=gcc CFLAGS="-O9" lib
210
 
dnl #@end example
211
 
dnl #@noindent
212
 
dnl #    Better, you can build spooles as a shared library, as follow 
213
 
dnl #    (assuming GNU C++):
214
 
dnl #@noindent
215
 
dnl #@example
216
 
dnl #         make CC=gcc CFLAGS="-O9 -fPIC" lib
217
 
dnl #         mkdir tmp
218
 
dnl #         cd tmp/
219
 
dnl #         ar x ../spooles.a
220
 
dnl #         gcc -shared -o ../libspooles.so *.o
221
 
dnl #         cd ..
222
 
dnl #         rm -rf tmp spooles.a
223
 
dnl #         make clean
224
 
dnl #@end example
225
 
dnl #@toindex hpux, operating system
226
 
dnl #@noindent
227
 
dnl #    Note that on @code{hpux} systems, the @file{.sl} suffix is used
228
 
dnl #    instead of the @file{.so} one.
229
 
dnl #@noindent
230
 
dnl #    Then, go to the rheolef directory:
231
 
dnl #@noindent
232
 
dnl #@example
233
 
dnl #         ./configure --with-spooles=/usr/local/src/spooles-2.2
234
 
dnl #         make
235
 
dnl #         make install
236
 
dnl #@end example
237
 
dnl #THE TAUCS LIBRARY:
238
 
dnl #@noindent
239
 
dnl #  The optional @code{taucs-2.0} out-of-core sparse linear solver
240
 
dnl #  from S. Toledo and D. Chen, may 2002, is recommended
241
 
dnl #  for very large linear systems
242
 
dnl #  or if your computer has few memory.
243
 
dnl #  @code{taucs} can factor a matrix whose factors are larger than
244
 
dnl #  the main memory by storing the factors on disk files.
245
 
dnl #  In that case, this strategy is significantly faster than paging activity
246
 
dnl #  when running an in-core algorithm such as @code{spooles}.
247
 
dnl #
248
 
dnl #@noindent
249
 
dnl #  It is available at @url{http://www.tau.ac.il/~stoledo/taucs/}.
250
 
dnl #  This library is free software. 
251
 
dnl #
252
 
dnl #@toindex blas, basic linear algebra subroutines
253
 
dnl #@toindex atlas, alternativ for blas (basic linear algebra subroutines)
254
 
dnl #@toindex lapack, linear algebra package
255
 
dnl #@toindex metis, computing fill-in ordering of sparse matrix
256
 
dnl #@noindent
257
 
dnl #  The @code{taucs} installation requires @code{metis}, @code{lapack} and @code{blas}
258
 
dnl #  libraries. Assuming all these libraries are installed in @code{/usr/local/lib}
259
 
dnl #  and the taucs header @file{taucs.h} is located in @code{/usr/local/include},
260
 
dnl #  the configuration for @code{rheolef} writes:
261
 
dnl #
262
 
dnl #@example
263
 
dnl #         ./configure --with-taucs-ldadd='-ltaucs -llapack -lblas -lmetis -lg2c'
264
 
dnl #@end example
265
 
dnl #@noindent
266
 
dnl #  An alternative is to @code{blas} is to use the more efficient @code{atlas} libraries.
267
 
dnl #  See the installation notes for the taucs library.
268
 
dnl #TOO LONG COMPILATIONS:
269
 
dnl #
270
 
dnl #@noindent
271
 
dnl # On platforms with small memory, the @code{c++} compilation could be long.
272
 
dnl # By default, the @code{configure} scripts uses a @code{-O2}
273
 
dnl # compilation level. Turn it off either by:
274
 
dnl #
275
 
dnl #@example
276
 
dnl #         setenv CXXFLAGS "-O0"
277
 
dnl #         ./configure
278
 
dnl #         make
279
 
dnl #@end example
280
 
dnl #@noindent
281
 
dnl # or by editing directly @file{config/config.mk}.
 
174
dnl #@noindent
 
175
dnl # b) The use of implicit numerical schemes leads to the 
 
176
dnl # resolution of large sparse linear systems.
 
177
dnl # Rheolef installation optionally requieres
 
178
dnl # @code{mumps} as direct solver library.
 
179
dnl # @code{mumps} is available at @url{http://graal.ens-lyon.fr/MUMPS} .
 
180
dnl #
 
181
dnl #@toindex cgal, computational geometry library
 
182
dnl #@noindent
 
183
dnl # c) Rheolef implements the characteristic method and interpolation from one mesh to another:
 
184
dnl # these features leads to sophisticated algorithms and octree-type data structures.
 
185
dnl # The @code{cgal} library provide easy access to efficient and reliable geometric algorithms 
 
186
dnl # in the form of a C++ library.
 
187
dnl # @code{cgal} is available at @url{http://www.cgal.org} .
 
188
dnl #
 
189
dnl #HIGHLY RECOMMENDED LIBRARIES:
 
190
dnl #@noindent
 
191
dnl # All the highly recommended libraries have precompiled packages under Debian GNU/Linux and Ubuntu systems.
 
192
dnl # With all these libraries, Rheolef with run optimally. Otherwise, it will build and run
 
193
dnl # also, but with some loss of performances.
 
194
dnl #
 
195
dnl #@toindex mpi, message passing interface
 
196
dnl #@noindent
 
197
dnl # a) Rheolef bases on @code{mpi}, the message passing interface standard.
 
198
dnl # When no @code{mpi} libraries are available, the distributed features are turned off.
 
199
dnl #
 
200
dnl #@toindex scotch, mesh partitioner
 
201
dnl #@noindent
 
202
dnl # b) Rheolef bases on @code{scotch} for distributed mesh partitioning. 
 
203
dnl # @code{scotch} is available at @url{http://www.labri.fr/perso/pelegrin/scotch} .
 
204
dnl # When the @code{scotch} library is not available, the distributed features are turned off.
 
205
dnl #
 
206
dnl #@toindex trilinos, large-scale object-oriented solvers framework
 
207
dnl #@noindent
 
208
dnl # c) Rheolef installation optionally uses
 
209
dnl # @code{trilinos/ifpack} as a library of preconditioner used for iterative solvers.
 
210
dnl # @code{trilinos} is available at @url{http://trilinos.sandia.gov} .
 
211
dnl # When @code{trilinos} is not available, a less efficient builtin IC0 preconditioner is used.
 
212
dnl #
 
213
dnl #RUN-TIME OPTIONAL TOOLS:
 
214
dnl #
 
215
dnl #@toindex @code{gmsh}
 
216
dnl #@toindex @code{gnuplot}
 
217
dnl #@toindex @code{mayavi}
 
218
dnl #@toindex @code{paraview}
 
219
dnl #@noindent
 
220
dnl # Using Rheolef suggests the use of the following optional tools
 
221
dnl # for pre- and post-processing purpose:
 
222
dnl #
 
223
dnl #@example
 
224
dnl #          gmsh
 
225
dnl #          gnuplot
 
226
dnl #          mayavi
 
227
dnl #          paraview
 
228
dnl #@end example
 
229
dnl #
 
230
dnl #@noindent
 
231
dnl # None of these tools are required when building and installing Rheolef. 
 
232
dnl #
 
233
dnl #BUILD-TIME EXTRA TOOLS FOR RHEOLEF DEVELOPPERS:
 
234
dnl #
 
235
dnl #@toindex ginac, not a computer algebra system
 
236
dnl #@noindent
 
237
dnl # These tools are required if you build from the development version (under CVS).
 
238
dnl # Re-generating some source files, as initiated with the "bootstrap" command,
 
239
dnl # requiers autotools @code{autoconf}, @code{automake} and @code{libtool}
 
240
dnl # and also @code{flex} and @code{bison}.
 
241
dnl # It requiers also @code{ginac} for polynomial basis management.
 
242
dnl # @code{ginac} is available at @url{http://www.ginac.de} .
 
243
dnl # It requiers finaly latex figure management tools to.
 
244
dnl # Here is the @code{apt-get} commands to install these tools under Debian GNU/Linux and Ubuntu:
 
245
dnl #
 
246
dnl #@example
 
247
dnl #    apt-get install cvs autoconf automake libtool
 
248
dnl #    apt-get install flex bison
 
249
dnl #    apt-get install pkg-config libginac-dev
 
250
dnl #    apt-get install ghostscript gnuplot xfig transfig imagemagick graphviz
 
251
dnl #@end example
282
252
dnl #
283
253
dnl #PORTABILITY ISSUES:
284
254
dnl #@toindex gnu c++ compiler
285
255
dnl #@toindex compacq c++ compiler
286
256
dnl #@cindex  standard template library (STL)
287
 
dnl #    @noindent
288
 
dnl #    @PACKAGE@ is based on STL. Therefore you need a compiler
289
 
dnl #    that supports the ANSI C++ standards. STL and @PACKAGE@ especially depend
290
 
dnl #    heavily on the template support of the compiler.
291
 
dnl #
292
 
dnl #    @noindent
293
 
dnl #    current version of @PACKAGE@ has only been tested with 
 
257
dnl #@noindent
 
258
dnl # Rheolef is based on STL. Therefore you need a compiler
 
259
dnl # that supports the ANSI C++ standards. STL and Rheolef especially depend
 
260
dnl # heavily on the template support of the compiler.
 
261
dnl #
 
262
dnl #@noindent
 
263
dnl # Current distributed version of Rheolef has been tested only with GCC.
 
264
dnl # Previous seqsuential 5.93 version of Rheolef has been tested with 
 
265
dnl #
294
266
dnl #@example
295
 
dnl #    GNU  C++ compiler (g++-2.95.4, 2.96, 3.0.2, 3.0.4, 4.0, 4.3)
296
 
dnl #    Compaq C++ compiler (V6.3, V6.5)
 
267
dnl #    GNU  C++ compiler (g++-2.95.4, 2.96, 3.0.2, 3.0.4, 4.0, 4.3, 4.4, 4.5, 4.6)
 
268
dnl #    Intel C++ compiler (version 11)
297
269
dnl #@end example
298
 
dnl #    on the following operating systems:
 
270
dnl #
 
271
dnl #@noindent
 
272
dnl # on the following operating systems:
299
273
dnl #@toindex linux, operating system
300
274
dnl #@toindex mac os x, operating system
301
275
dnl #@toindex sun solaris, operating system
302
276
dnl #@toindex compacq, operating system
 
277
dnl #
303
278
dnl #@example
304
279
dnl #         linux debian, pentium 3 and 4, using GNU C++
305
280
dnl #         mac os x (i386-apple-darwin9.8.0), using GNU C++
306
281
dnl #         sun solaris 2.8, ultrasparc, using GNU C++
307
282
dnl #         compacq OSF1 alpha (V5.1, V4.0), using Compacq C++
308
283
dnl #@end example
309
 
dnl #  @noindent
310
 
dnl #  The GNU C++ compiler is a free software
311
 
dnl #  available at @url{http://www.gnu.org}.
312
 
dnl #  The Compacq C++ compiler is available on Compacq (DEC) platforms.
 
284
dnl #
 
285
dnl #@noindent
 
286
dnl # The GNU C++ compiler is a free software
 
287
dnl # available at @url{http://www.gnu.org}.
 
288
dnl # The Intel C++ compiler is a privative software.
313
289
dnl #
314
290
dnl #@toindex kai c++ compiler
315
291
dnl #@toindex cray c++ compiler
316
 
dnl #  @noindent
317
 
dnl #    Previous versions was tested also on the
318
 
dnl #    KAI  C++ compiler (KCC-3.2b) and the
319
 
dnl #    CRAY C++ compiler (CC-3.0.2.0).
320
 
dnl #    on the following operating systems:
 
292
dnl #@noindent
 
293
dnl # Older versions was tested also on the
 
294
dnl # KAI  C++ compiler (KCC-3.2b) and the
 
295
dnl # CRAY C++ compiler (CC-3.0.2.0).
 
296
dnl # on the following operating systems:
321
297
dnl #@toindex aix ibm, operating system
322
298
dnl #@toindex cray unicos, operating system
323
299
dnl #@toindex hpux, operating system
324
300
dnl #@toindex irix, operating system
 
301
dnl #
325
302
dnl #@example
326
303
dnl #         aix 4.1 ibm sp2, multiprocessor based on rs6000
327
304
dnl #         cray unicos t3e, multiprocessor based on 64 bits dec alpha
331
308
dnl #         sgi irix 6.3, mips
332
309
dnl #         sun solaris 2.5.1, sparc
333
310
dnl #@end example
334
 
dnl #  @noindent
335
 
dnl #    The KAI C++ is available at @url{http://www.kai.com}.
336
 
dnl #    The CRAY C++ is available on CRAY platforms.
337
 
dnl #    Nevertheless, the current version has no more been tested
338
 
dnl #    on these compilers and systems.
 
311
dnl #
 
312
dnl #@noindent
 
313
dnl # The KAI C++ is available at @url{http://www.kai.com}.
 
314
dnl # The CRAY C++ is available on CRAY platforms.
 
315
dnl # Nevertheless, the current version has no more been tested
 
316
dnl # on these compilers and systems.
339
317
dnl #
340
318
dnl #@toindex   Makefile
341
319
dnl #@noindent
342
 
dnl #  If you are running a another compiler and operating system combination,
343
 
dnl #  please run the non-regression test suite:
344
 
dnl #@noindent
 
320
dnl # If you are running a another compiler and operating system combination,
 
321
dnl # please run the non-regression test suite:
 
322
dnl #
345
323
dnl #@example
346
324
dnl #@cartouche
347
325
dnl #         make check
348
326
dnl #@end cartouche
349
327
dnl #@end example
350
 
dnl #@noindent
351
 
dnl #  and reports us the result. If all is ok, please, send us a mail, 
352
 
dnl #  and we will add your configuration to the 
353
 
dnl #  list, and else we will try to circumvent the problem.
354
 
dnl #
355
 
dnl #KNOWN PORTABILITY LIMITATIONS:
356
 
dnl #@toindex hpux, operating system
357
 
dnl #@toindex compacq, operating system
358
 
dnl #@cindex portability limitation
359
 
dnl #@noindent
360
 
dnl #  On compacq alpha, the old cxx V6.1 (DIGITAL UNIX V4.0)
361
 
dnl #  compiles well but scratches on 
362
 
dnl #  non-regression tests, due to a bug in shared libraries managment.
363
 
dnl #  Please, update to cxx V6.3 or more, it will work well.
364
 
dnl #
365
 
dnl #  On some hpux and GNU C++ version combinations, 
366
 
dnl #  building shared libraries could be broken.
367
 
dnl #  Uses instead:
368
 
dnl #@noindent
369
 
dnl #@example
370
 
dnl #         ./configure --disable-shared
371
 
dnl #@end example
372
 
dnl #@noindent
373
 
dnl #  It should work. Building static libraries leads to larger executable
374
 
dnl #  files, and then more disk space available. This limitation depends upon
375
 
dnl #  compilers and systems compatibilities, not upon @PACKAGE@ source code portability.
376
 
dnl #
377
 
dnl #@noindent
378
 
dnl #  Please read @url{http://www.gnu.org/software/gcc/install/specific.html}. 
379
 
dnl #  A recent version of @code{binutils} and a hpux patch are recommended.
380
 
dnl #
381
 
dnl #@noindent
382
 
dnl #  Osman F. Buyukisik <@email{osman.buyukisik@@ae.ge.com}> reported that
383
 
dnl #@noindent
384
 
dnl #@example
385
 
dnl #         export LIBS=" -ldce -static "
386
 
dnl #         ./configure
387
 
dnl #@end example
388
 
dnl #@noindent
389
 
dnl #  works also well on hpux-10.20.
390
 
dnl #
391
 
dnl #@noindent
392
 
dnl #
393
 
dnl #RELATED TOOLS:
394
 
dnl #@toindex @code{bamg}
395
 
dnl #@toindex @code{grummp}
396
 
dnl #@toindex @code{qmg}
397
 
dnl #@toindex @code{gnuplot}
398
 
dnl #@toindex @code{plotmtv}
399
 
dnl #@toindex @code{vtk}
400
 
dnl #@toindex @code{geomview}
401
 
dnl #@toindex @code{x3d}
402
 
dnl #  @noindent
403
 
dnl #  Using @PACKAGE@ suggests the use of the following optional tools:
404
 
dnl #
405
 
dnl #  @example
406
 
dnl #          gnuplot
407
 
dnl #          plotmtv
408
 
dnl #          mayavi
409
 
dnl #          paraview
410
 
dnl #          vtk
411
 
dnl #          geomview
412
 
dnl #          qmg
413
 
dnl #          grummp
414
 
dnl #  @end example
415
 
dnl #  @noindent
416
 
dnl #
417
 
dnl #ADVANCED CONFIGURATION:
418
 
dnl #  @noindent
419
 
dnl #    Note that each @code{--with} option has a corresponding
420
 
dnl #    @code{--without} option.
 
328
dnl #
 
329
dnl #@noindent
 
330
dnl # and reports us the result. If all is ok, please, send us a mail, 
 
331
dnl # and we will add your configuration to the 
 
332
dnl # list, and else we will try to circumvent the problem.
421
333
dnl #
422
334
dnl #@noindent
423
335
dnl #@table @code
480
392
# fi
481
393
echo "configuring $PACKAGE $VERSION..."
482
394
 
 
395
# by default; try to activate distributed features
 
396
rheo_use_distributed=yes
483
397
dnl-------------------------------------------------------------------------
484
398
dnl   checking for autotools
485
399
dnl-------------------------------------------------------------------------
535
449
USER_CFLAGS=${CFLAGS-"-O2"}
536
450
USER_CXXFLAGS="$CXXFLAGS"
537
451
 
538
 
AC_PROG_CC(gcc cc cl)
 
452
AC_PROG_CC(gcc-4.5 gcc cc cl)
539
453
AC_PROG_CPP
540
 
AC_PROG_CXX(g++ c++ cxx KCC CC CC cc++ xlC aCC)
 
454
AC_PROG_CXX(g++-4.5 g++ c++ cxx KCC CC CC cc++ xlC aCC)
541
455
AC_PROG_CXXCPP
542
456
 
543
457
# when GNU C/C++ is recognized, force "-O2 -g" => skip it
573
487
RHEO_RECOGNIZE_CXX
574
488
 
575
489
if test x"${rheo_cxx}" = x"gnu"; then
576
 
    CXXFLAGS="${CXXFLAGS} -ansi -Wall -Wno-unused -Werror"
 
490
    # TODO: check for g++ -std=c++0x option
 
491
    RHEO_GXX2011
 
492
    if test x"${rheo_gxx2011}" = x"yes"; then
 
493
      CXXFLAGS="${CXXFLAGS} -std=c++0x"
 
494
    else
 
495
      CXXFLAGS="${CXXFLAGS} -ansi"
 
496
    fi
 
497
    CXXFLAGS="${CXXFLAGS} -Wall -Wno-unused -Werror -Wno-strict-aliasing"
577
498
fi
578
499
dnl-------------------------------------------------------------------------
579
500
dnl #
580
501
dnl #    @itemx --enable-optim
581
502
dnl #        Turns compile-time optimization to maximum available.
 
503
dnl #        Include architecture-dependent compilation (e.g. on intel, executable
 
504
dnl #        are less portable accross intel variants).
582
505
dnl #        Default is on.
583
506
dnl-------------------------------------------------------------------------
584
507
AC_ARG_ENABLE(optim,
585
 
    [  --enable-optim          compile-time optimization mode (default=yes) ],
 
508
    [  --enable-optim          compile-time architecture-dependent optimization mode (default=yes) ],
586
509
    [  case "${enableval}" in
587
510
          yes | no) enable_optim=${enableval};;
588
511
          *)        enable_optim=yes;;
589
512
       esac],
590
 
    [ enable_optim=no ]
 
513
    [ enable_optim=yes ]
591
514
)
592
515
if test x"${enable_optim}" = x"yes"; then
593
516
    RHEO_OPTIMIZE_CXX
 
517
else
 
518
    # TODO: architecture-independent optim, when no debug
 
519
    if false && test x"${enable_debug}" != x"yes"; then
 
520
      CXXFLAGS="${CXXFLAGS} -O2"
 
521
    fi
594
522
fi
595
523
dnl-------------------------------------------------------------------------
 
524
dnl   for backward compatibility tests (with old rheolef versions)
 
525
dnl-------------------------------------------------------------------------
 
526
AH_TEMPLATE([MAJOR_VERSION], Defines the package major version)
 
527
AC_DEFINE_UNQUOTED(MAJOR_VERSION,${MAJOR_VERSION})
 
528
 
 
529
AH_TEMPLATE([MINOR_VERSION], Defines the package minor version)
 
530
AC_DEFINE_UNQUOTED(MINOR_VERSION,${MINOR_VERSION})
 
531
 
 
532
dnl-------------------------------------------------------------------------
596
533
dnl   check some commands
597
534
dnl-------------------------------------------------------------------------
598
535
 
729
666
dnl obsolete:
730
667
dnl RHEO_CHECK_TEMPLATE_FULL_SPECIALIZATION
731
668
dnl RHEO_CHECK_NAMESPACE
732
 
dnl RHEO_CHECK_STD_NAMESPACE
 
669
 
 
670
dnl C++ 2011 standard:
 
671
RHEO_CHECK_STD_INITIALIZER_LIST
 
672
AM_CONDITIONAL(HAVE_STD_INITIALIZER_LIST, test x"${rheo_have_std_initializer_list}" = x"yes")
733
673
 
734
674
dnl-------------------------------------------------------------------------
735
675
dnl   check C++ system library
838
778
dnl #@clindex   Float
839
779
dnl #
840
780
dnl #    @itemx --with-doubledouble
841
 
dnl #        Uses @code{doubledouble} class as the default @PACKAGE@ @code{Float} type.
 
781
dnl #        Uses @code{doubledouble} class as the default Rheolef @code{Float} type.
842
782
dnl #        This option is usefull for a quadruple-like precision on
843
783
dnl #        machines where this feature is not or incorrectly available.
844
784
dnl #        Default is off.
901
841
dnl #    @itemx --enable-debian-packaging=@var{debian_packaging} 
902
842
dnl #        Generate files the debian way 
903
843
dnl #        by respecting the `Debian Policy Manual`.
 
844
dnl 
 
845
dnl TODO: suppress this option (to be managed by debian/rules)
904
846
dnl-------------------------------------------------------------------------
905
847
pkglibdir="$libdir/$PACKAGE"
906
848
AC_SUBST(pkglibdir)
908
850
    [  --enable-debian-packaging  Only if you are creating deb packages (default=no) ],
909
851
    [  case "${enableval}" in
910
852
          yes)  debian_packaging="yes"
911
 
                doc_dir="librheolef-doc"
 
853
                doc_dir="rheolef-doc"
912
854
                   ;;
913
855
          *)    debian_packaging=""
914
856
                doc_dir="rheolef"
929
871
dnl #        dense and sparse matrix library.
930
872
dnl #        This library is required by rheolef.
931
873
dnl-------------------------------------------------------------------------
932
 
AC_ARG_WITH(boost-irncludes,
 
874
AC_ARG_WITH(boost-incdir,
933
875
    [  --with-boost-incdir[=DIR]      the boost includes directory (required; default=autodetect) ],
934
876
    [  case "${withval}" in
935
877
          yes|no)  rheo_incdir_boost=""
1003
945
 
1004
946
dnl-------------------------------------------------------------------------
1005
947
dnl #
1006
 
dnl #    @itemx --enable-distributed
1007
 
dnl #        Turns on/off the distributed memory and parallel computation features.
1008
 
dnl #        Default is off. This feature is currently in development.
1009
 
dnl #        When on, configure try to detect either the mpi, and cotch or the parmetis libraries.
 
948
dnl #    @itemx --enable-old-code
 
949
dnl #        Turns on/off the old code branch (before distributed computation features).
 
950
dnl #        Default is off.
1010
951
dnl-------------------------------------------------------------------------
1011
 
AC_ARG_ENABLE(distributed,
1012
 
    [  --enable-distributed            for distributed memory feature; default=no) ],
 
952
enable_old_code=no
 
953
AC_ARG_ENABLE(old-code,
 
954
    [  --enable-old-code            for going back to old code branch (5.93 branch); default=no) ],
1013
955
    [  case "${enableval}" in
1014
 
          yes | no) enable_distributed=${enableval};;
1015
 
          *)        enable_distributed=yes;;
 
956
          yes | no) enable_old_code=${enableval};;
 
957
          *)        enable_old_code=no;;
1016
958
       esac],
1017
 
    [ enable_distributed=no ]
 
959
    [ enable_old_code=no ]
1018
960
)
 
961
if test x"${enable_old_code}" = x"yes"; then
 
962
  enable_new_code=no
 
963
else
 
964
  enable_new_code=yes
 
965
fi
1019
966
dnl-------------------------------------------------------------------------
1020
967
dnl #
1021
968
dnl #    @itemx --enable-mpi
1022
 
dnl #        Turns on/off the distributed memory and parallel computation features.
 
969
dnl #        Turns on/off the distributed computation features.
1023
970
dnl #        Default is on when distributed is on. This feature is currently in development.
1024
971
dnl #        When on, configure try to detect either the scotch or the parmetis libraries.
1025
972
dnl-------------------------------------------------------------------------
1029
976
          yes | no) enable_mpi="${enableval}";;
1030
977
          *)        enable_mpi="yes";;
1031
978
       esac],
1032
 
    [ enable_mpi="${enable_distributed}" ]
 
979
    [ enable_mpi="${enable_new_code}" ]
1033
980
)
1034
981
AC_ARG_WITH(mpi-incdir,
1035
982
    [  --with-mpi-incdir[=DIR]        the mpi includes directory (default=autodetect) ],
1056
1003
fi
1057
1004
if test x"$rheo_have_mpi" = x"yes"; then
1058
1005
    # if mpi is set, then default is distributed version
1059
 
    enable_distributed="yes"
 
1006
    enable_new_code="yes"
1060
1007
else
1061
 
    MPIRUN=""
 
1008
    rheo_use_distributed=no
1062
1009
fi
1063
 
AM_CONDITIONAL(USE_DISTRIBUTED, test x"${enable_distributed}" = x"yes")
1064
 
AH_TEMPLATE([USE_DISTRIBUTED], Defines whether use the distributed version)
1065
 
if test x"$enable_distributed" = x"yes"; then
1066
 
    AC_DEFINE(USE_DISTRIBUTED)
 
1010
AM_CONDITIONAL(USE_NEW_CODE, test x"${enable_new_code}" = x"yes")
 
1011
AH_TEMPLATE([USE_NEW_CODE], Defines whether use the new code branch)
 
1012
if test x"$enable_new_code" = x"yes"; then
 
1013
    AC_DEFINE(USE_NEW_CODE)
1067
1014
fi
1068
1015
dnl-------------------------------------------------------------------------
1069
 
dnl #@toindex scotch, distributed mesh partitionner
 
1016
dnl #@toindex scotch, distributed mesh partitioner
1070
1017
dnl #
1071
1018
dnl #    @itemx --with-scotch
1072
1019
dnl #    @itemx --with-scotch=@var{libdir_scotch} 
1073
 
dnl #        Turns on/off the @code{scotch} distributed mesh partitionner.
 
1020
dnl #        Turns on/off the @code{scotch} distributed mesh partitioner.
1074
1021
dnl #        Check in @var{libdir_scotch} for @code{libptscotchparmetis.so}, 
1075
1022
dnl #        @code{libptscotch.so} and @code{libptscotcherrexit.so} or
1076
1023
dnl #        corresponding @code{.a} libraries.
1078
1025
dnl-------------------------------------------------------------------------
1079
1026
with_scotch=""
1080
1027
AC_ARG_WITH(scotch-incdir,
1081
 
    [  --with-scotch-incdir[=DIR]     the scotch distributed mesh partitionner includes directory (default=autodetect) ],
 
1028
    [  --with-scotch-incdir[=DIR]     the scotch distributed mesh partitioner includes directory (default=autodetect) ],
1082
1029
    [  case "${withval}" in
1083
1030
          yes|no)  rheo_incdir_scotch=""
1084
1031
                   with_scotch=${withval}
1090
1037
    [  rheo_incdir_scotch="" ]
1091
1038
)
1092
1039
AC_ARG_WITH(scotch-libdir,
1093
 
    [  --with-scotch-libdir[=DIR]     the scotch distributed mesh partitionner library directory (default=autodetect) ],
 
1040
    [  --with-scotch-libdir[=DIR]     the scotch distributed mesh partitioner library directory (default=autodetect) ],
1094
1041
    [  case "${withval}" in
1095
1042
          yes|no)  rheo_libdir_scotch=""
1096
1043
                   with_scotch=${withval}
1102
1049
    [  rheo_libdir_scotch="" ]
1103
1050
)
1104
1051
dnl-------------------------------------------------------------------------
1105
 
dnl #@toindex parmetis, distributed mesh partitionner
 
1052
dnl #@toindex parmetis, distributed mesh partitioner
1106
1053
dnl #
1107
1054
dnl #    @itemx --with-parmetis
1108
1055
dnl #    @itemx --with-parmetis=@var{libdir_parmetis} 
1109
 
dnl #        Turns on/off the @code{parmetis} distributed mesh partitionner.
 
1056
dnl #        Turns on/off the @code{parmetis} distributed mesh partitioner.
1110
1057
dnl #        Check in @var{libdir_parmetis} for @code{libparmetis.so},
1111
1058
dnl #        @code{libparmetis.a} and also @code{libmetis.a}
1112
1059
dnl #        @code{libmetis.so}.
1113
1060
dnl #        Default is to autodetect when mpi is available and scotch unavailable.
1114
1061
dnl-------------------------------------------------------------------------
1115
1062
AC_ARG_WITH(parmetis,
1116
 
    [  --with-parmetis[=LIBDIR]       the parmetis distributed mesh partitionner (default=autodetect) ],
 
1063
    [  --with-parmetis[=LIBDIR]       the parmetis distributed mesh partitioner (default=autodetect) ],
1117
1064
    [  case "${withval}" in
1118
1065
          no)        with_parmetis="no";;
1119
1066
          yes | /*)  with_parmetis="yes"
1123
1070
       esac],
1124
1071
    [  with_parmetis="depend" ]
1125
1072
)
1126
 
if test x"${enable_distributed}" = x"yes"; then
1127
 
  if test x"${rheo_have_mpi}" = x"yes"; then
1128
 
    if test x"${with_scotch}" != x"no" -a x"${with_parmetis}" != x"yes"; then
1129
 
        RHEO_CHECK_SCOTCH
1130
 
    fi
1131
 
    if test x"${rheo_have_scotch}" != x"yes"; then
1132
 
        RHEO_CHECK_PARMETIS
1133
 
    fi
1134
 
  else
1135
 
    # sequential version: scoth, required for the pastix solver
 
1073
if test x"${rheo_use_distributed}" = x"yes"; then
 
1074
  if test x"${with_scotch}" != x"no" -a x"${with_parmetis}" != x"yes"; then
1136
1075
    RHEO_CHECK_SCOTCH
1137
1076
  fi
 
1077
  if test x"${rheo_have_scotch}" != x"yes"; then
 
1078
    RHEO_CHECK_PARMETIS
 
1079
  fi
 
1080
  if test x"${rheo_have_scotch}" != x"yes" && test x"${rheo_have_parmetis}" != x"yes"; then
 
1081
    rheo_use_distributed=no
 
1082
  fi
1138
1083
fi
1139
1084
dnl-------------------------------------------------------------------------
1140
1085
dnl #@toindex blas, basic linear algebra subroutines
1172
1117
       esac],
1173
1118
    [  rheo_ldadd_blas="" ]
1174
1119
)
1175
 
if test x"${enable_distributed}" = x"yes"; then
 
1120
if test x"${enable_new_code}" = x"yes"; then
1176
1121
    RHEO_CHECK_BLAS
1177
1122
fi
1178
1123
dnl-------------------------------------------------------------------------
 
1124
dnl #@toindex mumps, distributed direct solver
 
1125
dnl #
 
1126
dnl #    @itemx --with-mumps
 
1127
dnl #    @itemx --with-mumps=@var{libdir_mumps} 
 
1128
dnl #        Turns on/off the @code{mumps} distributed solver.
 
1129
dnl #        Check in @var{libdir_mumps} for @code{libmumps.so}, 
 
1130
dnl #        or the corresponding @code{.a} libraries.
 
1131
dnl #        Default is to auto-detect when mpi is available.
 
1132
dnl-------------------------------------------------------------------------
 
1133
with_mumps="yes"
 
1134
AC_ARG_WITH(mumps-incdir,
 
1135
    [  --with-mumps-incdir[=DIR]     the mumps distributed direct solver includes directory (default=autodetect) ],
 
1136
    [  case "${withval}" in
 
1137
          yes|no)  rheo_incdir_mumps=""
 
1138
                   with_mumps=${withval}
 
1139
                   ;;
 
1140
          *)       rheo_incdir_mumps=${withval}
 
1141
                   with_mumps=yes
 
1142
                   ;;
 
1143
       esac],
 
1144
    [  rheo_incdir_mumps="" ]
 
1145
)
 
1146
AC_ARG_WITH(mumps-libdir,
 
1147
    [  --with-mumps-libdir[=DIR]     the mumps distributed direct solver library directory (default=autodetect) ],
 
1148
    [  case "${withval}" in
 
1149
          yes|no)  rheo_libdir_mumps=""
 
1150
                   with_mumps=${withval}
 
1151
                   ;;
 
1152
          *)       rheo_libdir_mumps=${withval}
 
1153
                   with_mumps=yes
 
1154
                   ;;
 
1155
       esac],
 
1156
    [  rheo_libdir_mumps="" ]
 
1157
)
 
1158
if test x"${with_mumps}" = x"yes" && test x"${enable_new_code}" = x"yes"; then
 
1159
    RHEO_CHECK_MUMPS
 
1160
fi
 
1161
dnl-------------------------------------------------------------------------
 
1162
dnl #@toindex trilinos, distributed incomplete choleski factorization
 
1163
dnl #
 
1164
dnl #    @itemx --with-trilinos
 
1165
dnl #    @itemx --with-trilinos=@var{libdir_trilinos} 
 
1166
dnl #        Turns on/off the @code{trilinos} distributed preconditioner library.
 
1167
dnl #        Check in @var{libdir_trilinos} for @code{libtrilinos_ifpack.so}, 
 
1168
dnl #        or the corresponding @code{.a} libraries.
 
1169
dnl #        Default is to auto-detect when mpi is available.
 
1170
dnl-------------------------------------------------------------------------
 
1171
with_trilinos="yes"
 
1172
AC_ARG_WITH(trilinos-incdir,
 
1173
    [  --with-trilinos-incdir[=DIR]     the trilinos distributed preconditioner includes directory (default=autodetect) ],
 
1174
    [  case "${withval}" in
 
1175
          yes|no)  rheo_incdir_trilinos=""
 
1176
                   with_trilinos=${withval}
 
1177
                   ;;
 
1178
          *)       rheo_incdir_trilinos=${withval}
 
1179
                   with_trilinos=yes
 
1180
                   ;;
 
1181
       esac],
 
1182
    [  rheo_incdir_trilinos="" ]
 
1183
)
 
1184
AC_ARG_WITH(trilinos-libdir,
 
1185
    [  --with-trilinos-libdir[=DIR]     the trilinos distributed preconditioner library directory (default=autodetect) ],
 
1186
    [  case "${withval}" in
 
1187
          yes|no)  rheo_libdir_trilinos=""
 
1188
                   with_trilinos=${withval}
 
1189
                   ;;
 
1190
          *)       rheo_libdir_trilinos=${withval}
 
1191
                   with_trilinos=yes
 
1192
                   ;;
 
1193
       esac],
 
1194
    [  rheo_libdir_trilinos="" ]
 
1195
)
 
1196
if test x"${with_trilinos}" = x"yes" && test x"${rheo_use_distributed}" = x"yes" -a x"${enable_new_code}" = x"yes"; then
 
1197
    # TRILIONOS requires mpi
 
1198
    RHEO_CHECK_TRILINOS
 
1199
fi
 
1200
dnl-------------------------------------------------------------------------
1179
1201
dnl #@toindex pastix, distributed direct solver
1180
1202
dnl #
1181
1203
dnl #    @itemx --with-pastix
1182
1204
dnl #    @itemx --with-pastix=@var{libdir_pastix} 
1183
 
dnl #        Turns on/off the @code{scotch} distributed mesh partitionner.
1184
 
dnl #        Check in @var{libdir_scotch} for @code{libptscotchparmetis.so}, 
1185
 
dnl #        @code{libptscotch.so} and @code{libptscotcherrexit.so} or
1186
 
dnl #        corresponding @code{.a} libraries.
 
1205
dnl #        Turns on/off the @code{pastix} distributed solver.
 
1206
dnl #        Check in @var{libdir_pastix} for @code{libpastix.so}, 
 
1207
dnl #        or the corresponding @code{.a} libraries.
1187
1208
dnl #        Default is to auto-detect when mpi is available.
1188
1209
dnl-------------------------------------------------------------------------
 
1210
dnl pastix is now obsolete: no debian & bug on small matrix (size < np)
 
1211
dnl => waiting for a debian package and bug fixes
 
1212
dnl note: implementation could replace a missing trilinos or mumps
 
1213
dnl
1189
1214
with_pastix=""
1190
1215
AC_ARG_WITH(pastix-incdir,
1191
1216
    [  --with-pastix-incdir[=DIR]     the pastix distributed direct solver includes directory (default=autodetect) ],
1211
1236
       esac],
1212
1237
    [  rheo_libdir_pastix="" ]
1213
1238
)
1214
 
if test x"${enable_distributed}" = x"yes" && test x"${rheo_have_scotch}" = x"yes" && test x"${rheo_have_blas}" = x"yes"; then
 
1239
if test x"${with_pastix}" != x"no" && test x"${use_distributed}" = x"yes" \
 
1240
&& test x"${rheo_have_scotch}" = x"yes" && test x"${rheo_have_blas}" = x"yes" \
 
1241
&& test x"${rheo_have_mumps}" != x"yes" -o x"${rheo_have_trilinos}" != x"yes"; then
1215
1242
    RHEO_CHECK_PASTIX
1216
1243
fi
1217
1244
dnl-------------------------------------------------------------------------
1231
1258
dnl #        combined with a reverse Cuthill-Mc Kee reordering.
1232
1259
dnl-------------------------------------------------------------------------
1233
1260
rheo_incdir_umfpack=""
1234
 
AC_ARG_WITH(umfpack,
 
1261
AC_ARG_WITH(umfpack-libdir,
1235
1262
    [  --with-umfpack-libdir[=DIR]    the umfpack multifrontal direct solver (recommended; default=yes) ],
1236
1263
    [  case "${withval}" in
1237
1264
          no)  with_umfpack="no";;
1249
1276
              with_umfpack=yes;;
1250
1277
       esac]
1251
1278
)
1252
 
if test x"$enable_distributed" != x"yes"; then
 
1279
dnl TODO: use also in distributed
 
1280
if test x"$enable_new_code" != x"yes"; then
1253
1281
  if test x"${with_umfpack}" = x"yes" && test x"${with_bigfloat}" != x"yes" -a x"${with_doubledouble}" != x"yes" ; then
1254
1282
    RHEO_CHECK_UMFPACK
1255
1283
  else
1271
1299
dnl-------------------------------------------------------------------------
1272
1300
try_taucs=no
1273
1301
AC_ARG_WITH(taucs-ldadd,
1274
 
    [  --with-taucs-ldadd=LDFLAGS   the taucs out-of-core sparse direct solver (optional) ],
 
1302
    [  --with-taucs-ldadd=LIBS   the taucs out-of-core sparse direct solver (optional) ],
1275
1303
    [  case "${withval}" in
1276
1304
          yes | no) try_taucs=${withval};;
1277
1305
          *)  rheo_ldadd_taucs=${withval}
1286
1314
              try_taucs=yes;;
1287
1315
       esac]
1288
1316
)
1289
 
if test x"$enable_distributed" != x"yes"; then
 
1317
if test x"$enable_new_code" != x"yes"; then
1290
1318
  if test x"${rheo_have_mpi}" != x"yes" && test x"${try_taucs}" = x"yes" -a x"$rheo_have_umfpack" != x"yes"; then
1291
1319
    if test x"${rheo_have_doubledouble}" = x"yes"; then
1292
1320
        echo "    ERROR: incompatible options doubledouble and spooles"; exit 1
1352
1380
    [  rheo_incdir_spooles="" # will try to auto-detect from incdir
1353
1381
    ]
1354
1382
)
1355
 
if test x"$enable_distributed" != x"yes"; then
 
1383
if test x"$enable_new_code" != x"yes"; then
1356
1384
  if test x"${rheo_have_mpi}" != x"yes" && test x"${with_spooles}" = x"yes" -a x"$rheo_have_umfpack" != x"yes" -a x"$rheo_have_taucs" != x"yes"; then
1357
1385
      # compiled spooles works with double...
1358
1386
      RHEO_CHECK_SPOOLES
1363
1391
    rheo_have_spooles="no"
1364
1392
fi
1365
1393
dnl-------------------------------------------------------------------------
 
1394
dnl #@toindex cgal, computational geometry library
 
1395
dnl #
 
1396
dnl #    @itemx --with-cgal-incdir=@var{incdir_cgal}
 
1397
dnl #    @itemx --with-cgal-libdir=@var{libdir_cgal} 
 
1398
dnl #        Turns on/off the @code{cgal} distributed solver.
 
1399
dnl #        Check in @var{libdir_cgal} for @code{libcgal.so}, 
 
1400
dnl #        or the corresponding @code{.a} libraries.
 
1401
dnl #        Default is to auto-detect when mpi is available.
 
1402
dnl-------------------------------------------------------------------------
 
1403
with_cgal=""
 
1404
AC_ARG_WITH(cgal-incdir,
 
1405
    [  --with-cgal-incdir[=DIR]     the cgal computational geometry includes directory (default=autodetect) ],
 
1406
    [  case "${withval}" in
 
1407
          yes|no)  rheo_incdir_cgal=""
 
1408
                   with_cgal=${withval}
 
1409
                   ;;
 
1410
          *)       rheo_incdir_cgal=${withval}
 
1411
                   with_cgal=yes
 
1412
                   ;;
 
1413
       esac],
 
1414
    [  rheo_incdir_cgal="" ]
 
1415
)
 
1416
AC_ARG_WITH(cgal-libdir,
 
1417
    [  --with-cgal-libdir[=DIR]     the cgal computational geometry library directory (default=autodetect) ],
 
1418
    [  case "${withval}" in
 
1419
          yes|no)  rheo_libdir_cgal=""
 
1420
                   with_cgal=${withval}
 
1421
                   ;;
 
1422
          *)       rheo_libdir_cgal=${withval}
 
1423
                   with_cgal=yes
 
1424
                   ;;
 
1425
       esac],
 
1426
    [  rheo_libdir_cgal="" ]
 
1427
)
 
1428
#if test x"${enable_new_code}" = x"yes"; then
 
1429
RHEO_CHECK_CGAL
 
1430
#fi
 
1431
dnl-------------------------------------------------------------------------
 
1432
dnl determine here if we use the distributed environment:
 
1433
dnl-------------------------------------------------------------------------
 
1434
AH_TEMPLATE([HAVE_MPI], Defines if you have distributed environment)
 
1435
AC_SUBST(USE_DISTRIBUTED)
 
1436
if test x"${rheo_use_distributed}" = x"yes"; then
 
1437
    AC_DEFINE(HAVE_MPI)
 
1438
    USE_DISTRIBUTED=true
 
1439
else
 
1440
    USE_DISTRIBUTED=false
 
1441
    # un-activate: MPI, BOOST_MPI, SCOTCH & PARMETIS
 
1442
dnl AC_MSG_RESULT(** WARNING: the distributed feature is turned off)
 
1443
    MPIRUN=""
 
1444
    INCLUDES_MPI=""
 
1445
    LDADD_MPI=""
 
1446
    INCLUDES_BOOST_MPI=""
 
1447
    LDADD_BOOST_MPI=""
 
1448
    INCLUDES_SCOTCH="" 
 
1449
    LDADD_SCOTCH=""
 
1450
    INCLUDES_PARMETIS="" 
 
1451
    LDADD_PARMETIS="" 
 
1452
fi
 
1453
dnl-------------------------------------------------------------------------
1366
1454
dnl # Generic or hardware-dependant optimization
1367
1455
dnl use previous enable_optim and enable_debug
1368
1456
dnl => may be after debug and optim
1371
1459
m4_include(config/acoptim.m4)
1372
1460
 
1373
1461
dnl-------------------------------------------------------------------------
1374
 
dnl Activates new code : nfem instead of fem (will be deleted later)
1375
 
dnl-------------------------------------------------------------------------
1376
 
 
1377
 
AM_CONDITIONAL(USE_OLD_CODE, false)
1378
 
 
1379
 
dnl-------------------------------------------------------------------------
1380
1462
dnl   other options, not yet implemented
1381
1463
dnl-------------------------------------------------------------------------
1382
1464
dnl #  @end table
1387
1469
dnl #@table @code
1388
1470
dnl #    @itemx --with-long-double
1389
1471
dnl #        Defines @code{long double} as the default
1390
 
dnl #        @PACKAGE@ @code{Float} type. Default is off and defines @code{double} as 
 
1472
dnl #        Rheolef @code{Float} type. Default is off and defines @code{double} as 
1391
1473
dnl #        @code{Float} type.
1392
1474
dnl #        Warning: most of architectures does not provides mathematical library in
1393
1475
dnl #        @code{long double}, e.g. @code{sqrt((long double)2)} returns only double precision
1419
1501
        Makefile                        \
1420
1502
        config/Makefile                 \
1421
1503
        config/config.mk                \
1422
 
        config/rheolef-config           \
1423
1504
        util/Makefile                   \
1424
1505
        util/dmallocxx/Makefile         \
1425
1506
        util/doubledouble/Makefile      \
1437
1518
        nfem/Makefile                   \
1438
1519
        nfem/data/Makefile              \
1439
1520
        nfem/quadrature/Makefile        \
 
1521
        nfem/geo_element/Makefile       \
 
1522
        nfem/lib/Makefile               \
 
1523
        nfem/plib/Makefile              \
1440
1524
        nfem/basis/Makefile             \
1441
1525
        nfem/form_element/Makefile      \
1442
1526
        nfem/pform_element/Makefile     \
1443
 
        nfem/lib/Makefile               \
 
1527
        nfem/sbin/Makefile              \
1444
1528
        nfem/bin/Makefile               \
 
1529
        nfem/pbin/Makefile              \
1445
1530
        nfem/vtk/Makefile               \
1446
1531
        nfem/tst/Makefile               \
1447
 
        nfem/plib/Makefile              \
1448
1532
        nfem/ptst/Makefile              \
1449
1533
        doc/Makefile                    \
1450
1534
        doc/refman/Makefile             \
 
1535
        doc/usrman/Makefile             \
1451
1536
        doc/pexamples/Makefile          \
1452
 
        doc/usrman/Makefile             \
 
1537
        doc/pusrman/Makefile            \
1453
1538
        doc/doxygen/Makefile            \
1454
1539
)
1455
1540
dnl-------------------------------------------------------------------------
1456
1541
dnl libtool, 2nd pass
1457
1542
dnl-------------------------------------------------------------------------
1458
1543
dnl this 2nd pass may be after the AC_OUTPUT command, that generates the "libtool" script
1459
 
dnl since we use this script here
 
1544
dnl since we use this script here. Also, the "config.status" output was generated before 
 
1545
dnl "libtool" was created, and the two variables calculated here cannot be added to "config.status"
 
1546
dnl So, create an additional "config2.status"...
1460
1547
 
1461
1548
AC_MSG_CHECKING(for shlibpath variable name)
1462
 
SHLIBPATH_VAR=`./libtool --config | grep "^shlibpath_var=" | sed -e 's/.*=//'`
1463
 
AC_SUBST(SHLIBPATH_VAR)
1464
 
AC_MSG_RESULT($SHLIBPATH_VAR)
 
1549
RHEOLEF_SHLIBPATH_VAR=`./libtool --config | grep -i "^shlibpath_var=" | sed -e 's/.*=//'`
 
1550
AC_MSG_RESULT(${RHEOLEF_SHLIBPATH_VAR})
1465
1551
 
1466
1552
# add optional -rpath flag to linker ?
1467
1553
AC_MSG_CHECKING(for hardcode libdir flag spec)
1468
1554
libtool_rpath_sh="/tmp/libtool-rpath-$$.sh"
1469
1555
./libtool --config > $libtool_rpath_sh
1470
1556
echo "eval \"echo \$hardcode_libdir_flag_spec\"" >> $libtool_rpath_sh
1471
 
HARDCODE_LIBDIR_FLAG_SPEC=`exec_prefix=${exec_prefix} libdir=${libdir} sh $libtool_rpath_sh`
 
1557
RHEOLEF_HARDCODE_LIBDIR_FLAG_SPEC=`exec_prefix=${exec_prefix} libdir=${libdir} sh $libtool_rpath_sh`
1472
1558
rm -f $libtool_rpath_sh
1473
 
AC_SUBST(HARDCODE_LIBDIR_FLAG_SPEC)
1474
 
AC_MSG_RESULT($HARDCODE_LIBDIR_FLAG_SPEC)
 
1559
AC_MSG_RESULT(${RHEOLEF_HARDCODE_LIBDIR_FLAG_SPEC})
 
1560
 
 
1561
dnl if test x"$debian_packaging" = x"yes"; then
 
1562
dnl  # rpath issue for debian package: seems to be buggy with DESTDIR!=""
 
1563
dnl   RHEO_DEBIAN_FIX_LIBTOOL
 
1564
dnl fi
 
1565
 
 
1566
# then output results to "config2.status"
 
1567
output2="${srcdir}/config2.status"
 
1568
rm -f $output2
 
1569
echo "#!/bin/sh" >> $output2
 
1570
echo "# File automatically generated by configure." >> $output2
 
1571
echo "exec_prefix=\"${exec_prefix}\"" >> $output2
 
1572
echo "RHEOLEF_SHLIBPATH_VAR=\"${RHEOLEF_SHLIBPATH_VAR}\"" >> $output2
 
1573
echo "RHEOLEF_HARDCODE_LIBDIR_FLAG_SPEC=\"${RHEOLEF_HARDCODE_LIBDIR_FLAG_SPEC}\"" >> $output2
 
1574
echo "configure: creating $output2"
1475
1575
 
1476
1576
dnl-------------------------------------------------------------------------
1477
1577
dnl add a _RHEOLEF_ prefix to #defined macros
1483
1583
 
1484
1584
if test -f config/config.h.cache && diff config/config.h.cache config/config.h.new >/dev/null; then
1485
1585
    cp -a config/config.h.cache config/config.h
1486
 
    echo "configure: config.h is unchanged"
 
1586
    echo "configure: ${srcdir}/config/config.h is unchanged"
1487
1587
else
1488
1588
    mv config/config.h.new config/config.h
1489
 
    echo "configure: creating config.h"
 
1589
    echo "configure: creating ${srcdir}/config/config.h"
1490
1590
fi
 
1591
echo "configure: creating ${srcdir}/config/config.mk"
1491
1592
 
1492
1593
dnl-------------------------------------------------------------------------
1493
1594
dnl summary
1495
1596
status=0
1496
1597
echo "--------------------------------------"
1497
1598
echo "summary:"
1498
 
echo "  prefix       : ${prefix}"
1499
 
echo "  boost        : ${rheo_have_boost}"
1500
 
echo "  ginac        : ${rheo_have_ginac}"
1501
 
if test x"${enable_distributed}" = x"yes"; then
1502
 
  if test x"${rheo_have_mpi}" = x"yes"; then
1503
 
    if test x"${rheo_recognized_mpi}" != x"no"; then
1504
 
      echo "    mpi          : ${rheo_recognized_mpi}"
1505
 
    else
1506
 
      echo "    mpi          : yes"
1507
 
    fi
1508
 
  else
1509
 
      echo "    mpi          : *NONE*"
1510
 
      status=1
1511
 
  fi
1512
 
  if test x"${rheo_have_parmetis}" = x"yes"; then
1513
 
      echo "    partitionner : parmetis"
1514
 
  elif test x"${rheo_have_scotch}" = x"yes"; then
1515
 
      echo "    partitionner : scotch"
1516
 
  else
1517
 
      echo "    partitionner : *NONE*"
1518
 
      status=1
1519
 
  fi
1520
 
  if test x"${rheo_have_pastix}" = x"yes"; then
1521
 
      echo "    solver       : pastix"
1522
 
  else
1523
 
      echo "    solver       : *NONE*"
1524
 
      status=1
1525
 
  fi
 
1599
echo "  prefix           : ${prefix}"
 
1600
if test x"${enable_optim}" = x"yes"; then
 
1601
  echo "        optimization     : machine-dependent"
 
1602
else
 
1603
  echo "        optimization     : machine-independent"
 
1604
fi
 
1605
if test x"${rheo_have_boost}" = x"yes"; then
 
1606
  echo "        boost            : yes"
 
1607
else
 
1608
  echo "        boost            : *NO*"
 
1609
  status=1
 
1610
fi
 
1611
echo "  ginac            : ${rheo_have_ginac}"
 
1612
# new code case:
 
1613
if test x"${enable_new_code}" = x"yes"; then
 
1614
  if test x"${rheo_have_cgal}" = x"yes"; then
 
1615
      echo "    geometry         : cgal"
 
1616
  else
 
1617
      echo "    geometry         : *NONE*"
 
1618
      status=1
 
1619
  fi
 
1620
  if test x"${rheo_have_mumps}" = x"yes"; then
 
1621
      echo "    direct solver    : mumps"
 
1622
  elif test x"${rheo_have_pastix}" = x"yes"; then
 
1623
      echo "    direct solver    : pastix"
 
1624
  else
 
1625
      echo "    direct solver    : *NONE*"
 
1626
      # TODO: builtin
 
1627
      status=1
 
1628
  fi
 
1629
  if test x"${rheo_have_trilinos}" = x"yes"; then
 
1630
      echo "    preconditioners  : trilinos/ifpack"
 
1631
  elif test x"${rheo_have_pastix}" = x"yes"; then
 
1632
      echo "    preconditioners  : pastix"
 
1633
  else
 
1634
      echo "    preconditioners  : builtin"
 
1635
  fi
 
1636
  if test x"${rheo_use_distributed}" = x"yes"; then
 
1637
    if test x"${rheo_have_scotch}" = x"yes"; then
 
1638
      echo "    partitioner      : scotch"
 
1639
    elif test x"${rheo_have_parmetis}" = x"yes"; then
 
1640
      echo "    partitioner      : parmetis"
 
1641
    else
 
1642
      echo "    partitioner      : *NONE*"
 
1643
      status=1
 
1644
    fi
 
1645
    if test x"${rheo_have_mpi}" = x"yes"; then
 
1646
      if test x"${rheo_recognized_mpi}" != x"no"; then
 
1647
        echo "  mpi              : ${rheo_recognized_mpi}"
 
1648
      else
 
1649
        echo "  mpi              : yes"
 
1650
      fi
 
1651
    else
 
1652
      echo "    mpi              : *NONE*"
 
1653
      status=1
 
1654
    fi
 
1655
  fi
 
1656
  echo "        distributed      : ${rheo_use_distributed}"
1526
1657
else # old sequential case:
 
1658
  echo "        old code branch  : yes"
1527
1659
  if test x"${rheo_have_umfpack}" = x"yes"; then
1528
 
      echo "    solver       : umfpack"
 
1660
      echo "    solver           : umfpack"
1529
1661
  elif test x"${rheo_have_spooles}" = x"yes"; then
1530
 
      echo "    solver       : spooles"
 
1662
      echo "    solver           : spooles"
1531
1663
  elif test x"${rheo_have_taucs}" = x"yes"; then
1532
 
      echo "    solver       : taucs"
 
1664
      echo "    solver           : taucs"
1533
1665
  else
1534
 
      echo "    solver       : builtin"
 
1666
      echo "    solver           : *NONE*"
1535
1667
      status=1
1536
1668
  fi
1537
1669
fi
 
1670
if test $status -ne 0; then
 
1671
  AC_MSG_ERROR(some required library are not found)
 
1672
fi
1538
1673
echo "--------------------------------------"
1539
1674
dnl-------------------------------------------------------------------------
1540
1675
dnl   End of configure script: rest of the documenttion
1541
1676
dnl-------------------------------------------------------------------------
1542
 
dnl #
1543
 
dnl #REBUILDING THE DOCUMENTATION:
1544
 
dnl #@toindex   @code{tex}
1545
 
dnl #@toindex   @code{latex}
1546
 
dnl #@toindex   @code{latex2html}
1547
 
dnl #@toindex   @code{texinfo}
1548
 
dnl #@toindex   @code{dvips}
1549
 
dnl #@toindex   @code{makeinfo}
1550
 
dnl #@toindex   @code{texi2html}
1551
 
dnl #@toindex   @code{gnuplot}
1552
 
dnl #@toindex   @code{fig2dev}
1553
 
dnl #@fiindex   @file{.dvi} device independent (latex)
1554
 
dnl #@fiindex   @file{.html} hyper-text markup language
1555
 
dnl #@fiindex   @file{.pdf} acrobat
1556
 
dnl #@fiindex   @file{.txt} simple ascii text
1557
 
dnl #@toindex   @code{xdvi}
1558
 
dnl #@toindex   @code{xpdf}
1559
 
dnl #@toindex   @code{lynx}
1560
 
dnl #
1561
 
dnl #@noindent
1562
 
dnl #  You can rebuild the documentation by entering:
1563
 
dnl #@noindent
1564
 
dnl #@example
1565
 
dnl #@cartouche
1566
 
dnl #         make dvi
1567
 
dnl #@end cartouche
1568
 
dnl #@end example
1569
 
dnl #
1570
 
dnl #@noindent
1571
 
dnl # The user's manual goes into @file{doc/usrman/} and the
1572
 
dnl # the reference manual into @file{doc/refman/}.
1573
 
dnl #
1574
 
dnl #@noindent
1575
 
dnl # The user's manual becomes available in @file{.dvi},
1576
 
dnl # @file{.ps} and @file{.pdf} formats.
1577
 
dnl #
1578
 
dnl #@noindent
1579
 
dnl # Regenerating the full documention requires also optional tools.
1580
 
dnl #
1581
 
dnl #@noindent
1582
 
dnl #@example
1583
 
dnl #         xdvi      doc/usrman/usrman.dvi
1584
 
dnl #         ghostview doc/usrman/usrman.ps
1585
 
dnl #         xpdf      doc/usrman/usrman.pdf
1586
 
dnl #@end example
1587
 
dnl #
1588
 
dnl #@noindent
1589
 
dnl # The reference manual is available in @file{.info}, @file{.dvi},
1590
 
dnl # @file{.ps}, @file{.pdf}, @file{.html} and @file{.txt} formats:
1591
 
dnl #
1592
 
dnl #@noindent
1593
 
dnl #@example
1594
 
dnl #         info -f   doc/refman/rheolef.info
1595
 
dnl #         xdvi      doc/refman/rheolef.dvi
1596
 
dnl #         ghostview doc/refman/rheolef.ps
1597
 
dnl #         xpdf      doc/refman/rheolef.pdf
1598
 
dnl #         lynx      doc/refman/rheolef_toc.html
1599
 
dnl #         vi        doc/refman/rheolef.txt
1600
 
dnl #@end example
1601
 
dnl #
1602
 
dnl #DOCUMENTATION USING DOXYGEN:
1603
 
dnl #@cindex  inheritance diagrams for classes
1604
 
dnl #@toindex   @code{doxygen}
1605
 
dnl #@toindex   @code{dot}
1606
 
dnl #@fiindex   @file{.html} hyper-text markup language
1607
 
dnl #@toindex   @code{mozilla}
1608
 
dnl #
1609
 
dnl #@noindent
1610
 
dnl # @code{doxygen} is a documentation system
1611
 
dnl # and can be found at  @url{http://www.doxygen.org}.
1612
 
dnl #
1613
 
dnl #@noindent
1614
 
dnl # @code{doxygen} has built-in support to generate inheritance diagrams for C++ classes.
1615
 
dnl # @code{doxygen} can use the @code{dot} tool from @code{graphviz} to generate
1616
 
dnl # more advanced diagrams 
1617
 
dnl # and graphs. @code{graphviz} is an open-sourced, cross-platform graph drawing toolkit
1618
 
dnl # from AT&T and Lucent Bell Labs and can be found at 
1619
 
dnl # @url{http://www.research.att.com/sw/tools/graphviz/}.
1620
 
dnl #
1621
 
dnl #@noindent
1622
 
dnl #@example
1623
 
dnl #         mozilla file:`pwd`/doc/doxygen/html/index.html
1624
 
dnl #@end example
1625
 
dnl #
1626
 
dnl #COMPILE-TIME OPTIONAL TOOLS:
1627
 
dnl #@toindex doubledouble, quadruple precision library
1628
 
dnl #@toindex dmalloc, debug library
1629
 
dnl #@toindex cln, arbitrary precision float library
1630
 
dnl #
1631
 
dnl #@noindent
1632
 
dnl #  Installation has been tested with the indicated version number.
1633
 
dnl #  Later version should also work well.
1634
 
dnl #  
1635
 
dnl #@noindent
1636
 
dnl #@table @code
1637
 
dnl #  @itemx doubledouble-2.2
1638
 
dnl #    The definitive site for this code is
1639
 
dnl #
1640
 
dnl #    @url{http://www-epidem.plantsci.cam.ac.uk/~kbriggs/doubledouble.html}.
1641
 
dnl #
1642
 
dnl #    The 2.2 version is included in this distribution for convenience.
1643
 
dnl #
1644
 
dnl #  @itemx cln-1.0.2
1645
 
dnl #    Bruno Haible's arbitrary precision float library.
1646
 
dnl #    
1647
 
dnl #    See @url{http://clisp.cons.org/~haible/packages-cln.html}.
1648
 
dnl #    
1649
 
dnl #  @itemx dmalloc-4.8.2
1650
 
dnl #     For dynamic allocation checking in conjuction
1651
 
dnl #     with @code{configure --with-debug}.
1652
 
dnl #
1653
 
dnl #@end table
1654
1677
dnl #THE DIRECTORY STRUCTURE:
1655
1678
dnl #@table @code
1656
1679
dnl #  @itemx config
1660
1683
dnl #           and functions for smart pointers,
1661
1684
dnl #           handling files and directories, using strings, timing.
1662
1685
dnl #  @itemx skit
1663
 
dnl #           sparse matrix library, renumbering and factorization,
1664
 
dnl #           linear solvers.
1665
 
dnl #  @itemx fem
 
1686
dnl #           sparse matrix library, linear solvers.
 
1687
dnl #  @itemx nfem
1666
1688
dnl #           finite element library, mesh, spaces and forms.
1667
1689
dnl #  @itemx doc
1668
 
dnl #           reference manual, user's guide, web site.
1669
 
dnl #  @itemx examples
1670
 
dnl #           demonstrations as in users'guide.
 
1690
dnl #           reference manual, user's guide and examples.
1671
1691
dnl #@end table
1672
1692
dnl #
1673
 
dnl #COMPILING FROM DEVELOPMENT VERSION:
1674
 
dnl #@pindex    configure
1675
 
dnl #@toindex @code{automake}
1676
 
dnl #@toindex @code{autoconf}
1677
 
dnl #@toindex @code{libtool}
1678
 
dnl #@toindex @code{m4}
1679
 
dnl #@toindex @code{gperf}
1680
 
dnl #@toindex @code{flex}
1681
 
dnl #@toindex @code{bison}
1682
 
dnl #@toindex @code{octave}
1683
 
dnl #
1684
 
dnl #@noindent
1685
 
dnl #  The installation process is preceeded by an extra @code{bootstrap} stage,
1686
 
dnl #  and the @code{configure} stage takes an extra @code{--enable-ginac} flag.
1687
 
dnl #  An example writes:
1688
 
dnl #@example
1689
 
dnl #@cartouche
1690
 
dnl #        ./bootstrap
1691
 
dnl #        ./configure --enable-ginac
1692
 
dnl #        make
1693
 
dnl #        make install
1694
 
dnl #@end cartouche
1695
 
dnl #@end example
1696
 
dnl #@noindent
1697
 
dnl #@noindent
1698
 
dnl #  You will need some extra-development tools that are used
1699
 
dnl #  by maintainers.
1700
 
dnl #
1701
 
dnl #@noindent
1702
 
dnl #@bullet{} for configuration files:
1703
 
dnl #  
1704
 
dnl #@noindent
1705
 
dnl #@example
1706
 
dnl #        autoconf-2.59
1707
 
dnl #        automake-1.7.9
1708
 
dnl #        m4-1.4 (GNU m4)
1709
 
dnl #@end example
1710
 
dnl #  
1711
 
dnl #@noindent
1712
 
dnl #@bullet{} for automatically builted files:
1713
 
dnl #  
1714
 
dnl #@noindent
1715
 
dnl #@example
1716
 
dnl #        ginac-1.1.6
1717
 
dnl #        flex-2.5.4
1718
 
dnl #        bison-1.875a
1719
 
dnl #@end example
1720
 
dnl #  
1721
 
dnl #@noindent
1722
 
dnl #@bullet{} for maintaining documentation:
1723
 
dnl #  
1724
 
dnl #@noindent
1725
 
dnl #@example
1726
 
dnl #         makeinfo-4.6
1727
 
dnl #         texi2html-1.65
1728
 
dnl #         tex-3.14159
1729
 
dnl #         texinfo-4.6
1730
 
dnl #         latex 2e (2001/06/01)
1731
 
dnl #         dvips-5.92b
1732
 
dnl #         gnuplot-3.7
1733
 
dnl #         transfig-3.2
1734
 
dnl #         doxygen-1.2.13.1
1735
 
dnl #@end example
1736
 
dnl #  
1737
 
dnl #@noindent
1738
 
dnl #@bullet{} Version numbers are indicative: others versionnumbers sould also work.
1739
 
dnl #    Nevertheless, these version numbers are known to work well.
1740
 
dnl #
1741
 
dnl #@noindent
1742
 
dnl #@bullet{} For participating to the @PACKAGE@ concurrent development,
1743
 
dnl #  please contact also @email{Pierre.Saramito@@imag.fr} for concurrent
1744
 
dnl #  development.
1745
 
dnl #
1746
1693
dnl #AUTHOR:
1747
1694
dnl #    LMC-IMAG, 38041 Grenoble cedex 9, France
1748
1695
dnl #    @email{Pierre.Saramito@@imag.fr}