22
22
dnl #@end cartouche
25
dnl #@toindex @code{make}
26
dnl #Successfull compilation and installation
27
dnl #require the GNU @code{make} command.
28
dnl # Check your installation by running a small test:
31
dnl # make installcheck
27
dnl #Successfull compilation and installation require the GNU @code{make} command.
34
29
dnl #READING THE DOCUMENTATION:
35
30
dnl #@fiindex @file{.info} GNU info
101
96
dnl # of your @file{.profile} or @file{.bash_profile} file:
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"
99
dnl # export PATH="$HOME/sys/bin:$PATH"
100
dnl # export LD_LIBRARY_PATH="$HOME/sys/lib:$LD_LIBRARY_PATH"
101
dnl # export MANPATH="$HOME/sys/man:$MANPATH"
107
102
dnl #@end example
112
107
dnl # at the bottom of your @file{.cshrc} file:
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"
110
dnl # set path = ($HOME/sys/bin $path)
111
dnl # setenv LD_LIBRARY_PATH "$HOME/sys/lib:$LD_LIBRARY_PATH"
112
dnl # setenv MANPATH "$HOME/sys/man:$MANPATH"
118
113
dnl #@end example
121
116
dnl # If you are unure about unix interpreter, get the SHELL value:
124
119
dnl #@end example
127
122
dnl # Then, you have to @emph{source} the modified file, e.g.:
130
dnl # source ~/.cshrc
125
dnl # source ~/.cshrc
131
126
dnl #@end example
133
128
dnl #@toindex hpux, operating system
244
239
dnl # Here is the @code{apt-get} commands to install these tools under Debian GNU/Linux and Ubuntu:
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
242
dnl # apt-get install cvs autoconf automake libtool
243
dnl # apt-get install flex bison
244
dnl # apt-get install pkg-config libginac-dev
245
dnl # apt-get install ghostscript gnuplot xfig transfig imagemagick graphviz
251
246
dnl #@end example
253
248
dnl #PORTABILITY ISSUES:
254
dnl #@toindex gnu c++ compiler
255
dnl #@toindex compacq c++ compiler
256
249
dnl #@cindex standard template library (STL)
258
dnl # Rheolef is based on STL. Therefore you need a compiler
251
dnl # Rheolef is based on STL and its extensions, the BOOST library. Therefore you need a compiler
259
252
dnl # that supports the ANSI C++ standards. STL and Rheolef especially depend
260
253
dnl # heavily on the template support of the compiler.
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
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)
272
dnl # on the following operating systems:
273
dnl #@toindex linux, operating system
274
dnl #@toindex mac os x, operating system
275
dnl #@toindex sun solaris, operating system
276
dnl #@toindex compacq, operating system
279
dnl # linux debian, pentium 3 and 4, using GNU C++
280
dnl # mac os x (i386-apple-darwin9.8.0), using GNU C++
281
dnl # sun solaris 2.8, ultrasparc, using GNU C++
282
dnl # compacq OSF1 alpha (V5.1, V4.0), using Compacq C++
254
dnl # Most recent c++ 2012 standard features are recommanded but still optional:
255
dnl # when available, it allows an elegant matrix concatenation syntax via
256
dnl # the @code{std::initializer_list} class.
258
dnl #@toindex gnu c++ compiler
259
dnl #@toindex intel c++ compiler
261
dnl # Current distributed version of Rheolef has been heavily tested with GNU C++
262
dnl # and INTEL C++ on debian, ubuntu and suse GNU/Linux systems for various 32 and 64 bits
263
dnl # architectures, up to 100 distributed memories and processes.
286
266
dnl # The GNU C++ compiler is a free software
290
270
dnl #@toindex kai c++ compiler
291
271
dnl #@toindex cray c++ compiler
272
dnl #@toindex mac osx, operating system
273
dnl #@toindex cray unicos, operating system
274
dnl #@toindex hpux, operating system
275
dnl #@toindex irix, operating system
276
dnl #@toindex irix, operating system
293
dnl # Older versions was tested also on the
278
dnl # Older 5.x versions was tested also on the
294
279
dnl # KAI C++ compiler (KCC-3.2b) and the
295
dnl # CRAY C++ compiler (CC-3.0.2.0).
280
dnl # CRAY C++ compiler (CC-3.0.2.0)
296
281
dnl # on the following operating systems:
297
dnl #@toindex aix ibm, operating system
298
dnl #@toindex cray unicos, operating system
299
dnl #@toindex hpux, operating system
300
dnl #@toindex irix, operating system
303
dnl # aix 4.1 ibm sp2, multiprocessor based on rs6000
304
dnl # cray unicos t3e, multiprocessor based on 64 bits dec alpha
305
dnl # cray unicos c94
306
dnl # hpux 9.05 and 10.20, hppa
307
dnl # linux (redhat, suze and slackware), pentium (2,3,pro)
308
dnl # sgi irix 6.3, mips
309
dnl # sun solaris 2.5.1, sparc
284
dnl # mac os x (i386-apple-darwin9.8.0), using GNU C++
285
dnl # sun solaris 2.8, ultrasparc, using GNU C++
286
dnl # compacq OSF1 alpha (V5.1, V4.0), using Compacq C++
287
dnl # aix 4.1 ibm sp2, multiprocessor based on rs6000
288
dnl # cray unicos t3e, multiprocessor based on 64 bits dec alpha
289
dnl # cray unicos c94
290
dnl # hpux 9.05 and 10.20, hppa
291
dnl # sgi irix 6.3, mips
292
dnl # sun solaris 2.5.1, sparc
310
293
dnl #@end example
315
298
dnl # Nevertheless, the current version has no more been tested
316
299
dnl # on these compilers and systems.
318
dnl #@toindex Makefile
302
dnl # If the required libraries are located in a non-standard directory, please use
303
dnl # the configure options:
306
dnl # ./configure --help
310
dnl # and also consider the CXX, CXXFLAGS and LIBS variables, as in the following more complex
311
dnl # configure command:
314
dnl # CXX=icpc CXXFLAGS=-I/usr/local/include LIBS="-L/usr/local/lib -lz" ./configure
318
dnl # Finaly, if troubles still persist after the configure step, you can also edit
319
dnl # directly the config/config.mk and config/config.h files. In these cases please also post
320
dnl # to the mailling list @code{rheolef@@grenet.fr} any portability problem.
322
dnl #@toindex Makefile
320
324
dnl # If you are running a another compiler and operating system combination,
321
325
dnl # please run the non-regression test suite:
326
330
dnl #@end cartouche
327
331
dnl #@end example
449
453
USER_CFLAGS=${CFLAGS-"-O2"}
450
454
USER_CXXFLAGS="$CXXFLAGS"
452
AC_PROG_CC(gcc-4.5 gcc cc cl)
456
AC_PROG_CC(gcc-4.5 gcc cc icc cl)
454
AC_PROG_CXX(g++-4.5 g++ c++ cxx KCC CC CC cc++ xlC aCC)
458
AC_PROG_CXX(g++-4.5 g++ c++ cxx icpc KCC CC CC cc++ xlC aCC)
457
461
# when GNU C/C++ is recognized, force "-O2 -g" => skip it
490
494
# TODO: check for g++ -std=c++0x option
492
496
if test x"${rheo_gxx2011}" = x"yes"; then
493
CXXFLAGS="${CXXFLAGS} -std=c++0x"
497
CXXFLAGS="${CXXFLAGS} -std=c++11"
495
CXXFLAGS="${CXXFLAGS} -ansi"
500
if test x"${rheo_gxx2011_pre}" = x"yes"; then
501
CXXFLAGS="${CXXFLAGS} -std=c++0x"
503
CXXFLAGS="${CXXFLAGS} -ansi"
497
506
CXXFLAGS="${CXXFLAGS} -Wall -Wno-unused -Werror -Wno-strict-aliasing"
949
958
dnl # Turns on/off the old code branch (before distributed computation features).
950
959
dnl # Default is off.
951
960
dnl-------------------------------------------------------------------------
961
rheo_enable_old_code=no
953
962
AC_ARG_ENABLE(old-code,
954
963
[ --enable-old-code for going back to old code branch (5.93 branch); default=no) ],
955
964
[ case "${enableval}" in
956
yes | no) enable_old_code=${enableval};;
957
*) enable_old_code=no;;
959
[ enable_old_code=no ]
965
yes | no) rheo_enable_old_code=${enableval} ;;
966
*) rheo_enable_old_code=no ;;
970
rheo_enable_old_code=no
961
if test x"${enable_old_code}" = x"yes"; then
973
if test x"${rheo_enable_old_code}" = x"yes"; then
974
rheo_enable_new_code=no
976
rheo_enable_new_code=yes
966
978
dnl-------------------------------------------------------------------------
1004
1016
if test x"$rheo_have_mpi" = x"yes"; then
1005
1017
# if mpi is set, then default is distributed version
1006
enable_new_code="yes"
1018
rheo_enable_new_code="yes"
1008
1020
rheo_use_distributed=no
1010
AM_CONDITIONAL(USE_NEW_CODE, test x"${enable_new_code}" = x"yes")
1022
AM_CONDITIONAL(USE_NEW_CODE, test x"${rheo_enable_new_code}" = x"yes")
1011
1023
AH_TEMPLATE([USE_NEW_CODE], Defines whether use the new code branch)
1012
if test x"$enable_new_code" = x"yes"; then
1024
AC_SUBST(USE_NEW_CODE)
1025
if test x"$rheo_enable_new_code" = x"yes"; then
1013
1026
AC_DEFINE(USE_NEW_CODE)
1015
1031
dnl-------------------------------------------------------------------------
1016
1032
dnl #@toindex scotch, distributed mesh partitioner