diff --git a/MAINTENANCE b/MAINTENANCE index c2d5df90c0a80c0be7490b053f61930e0e789ba3..a627286bc0dd91c4c981502a83f48ea649afd418 100644 --- a/MAINTENANCE +++ b/MAINTENANCE @@ -111,127 +111,73 @@ IV) Checking into CVS directory tree ==================================== Step 0) - Become familiar with CVS. There is a very fine Info manual available. You - can view it with "info cvs", or -- better -- use Emacs as Info-reader. + Become familiar with Subversion. A very good source of information is - Another very good source of information is - - http://www.cvshome.org/ + http://svnbook.red-bean.com/ with the online-manual and online-FAQ at - http://www.cvshome.org/docs/manual/ - http://ccvs.cvshome.org/fom//cache/1.html - - (the latter link seems to be a bit funky, maybe better use the CVS - home page as entry point.) - - There are a couple of front-end for CVS, e.g. an Emacs mode and many - others. + http://subversion.tigris.org/faq.html Step 0a) Make sure the stuff you are checking in at least builds without errors. Step 1) - Do [g]make clean cvs-clean. This deletes all files which are not - part of the CVS directory tree, but are in the CVS-maintained - directories. Also does "chgrp -R alberta ." + Do [g]make clean svn-clean. This deletes all files which are not + part of the Subversion directory tree, but are in the Subversion-maintained + directories. Step 2) - cvs update + svn update This step will make sure that the changes made simulataneously by other maintainers do not interfere with the new local changes. - cvs commit + svn commit NOTE: this commits _all_ changed files. It is probably better to commit on a file-per-file basis: - cvs commit FILE1 .... FILEN + svn commit FILE1 .... FILEN with a selected collection of file you really want to commit. ALSO: it is required that all commits are properly documented. The comments must be written in a way that other people can understand them. -Another possibility (avoiding Step 1) from above) is the following: - - Check out the "cvs.sh" script: - - cvs co admin-utils/cvs.sh - - Then do the follwing - - mkdir $HOME/bin - mv admin-utils/cvs.sh $HOME/bin/cvs - - Then edit your rc-scripts and modify your PATH variable: - - bash-flavour: add the following to the end of $HOME/.bashrc - - export PATH=$HOME/bin:$PATH - - csh or tcsh flavour: add the following to the end of $HOME/.cshrc - - setenv PATH ${HOME}/bin:${PATH} - - For the settings to take affect you have to re-source the rc-files: - - bash: - . ~/.bashrc - - tcsh: - source ~/.cshrc - - Then run cvs like follows: - - cvs -d :ext:USER@COMPUTER.mathematik.uni-freiburg.de:/net/sauron/graid/ALBERTA_CVS/ commit FILE1 ... FILEN - - This will take care of setting the correct permissions and group - id's in the ALBERTA CVS repository. It will fail if you are not a - member of the access group "alberta", but then you shouldn't attempt - to commit changes at all, ask one of the ALBERTA maintainers for - help. V) How to create a distribution =============================== Step 0) - Become familiar with CVS. + Become familiar with Subversion. Step 1) At the moment, the subpackages alberta, demo, alberta_util, and add_ons are maintained using the version control - system CVS. To prepare a distribution, one must first check out the + system Subversion. To prepare a distribution, one must first check out the distribution version of these packages. To this aim there exists an "albertadist" module. Checking it out will create the ALBERTA package with the directory structure described right at the beginning of this file. - cvs co albertadist + svn checkout svn+ssh://pizza.math.uni-augsburg.de/homes/andere/alberta/ALBERTA_SVN/trunk albertadist - also checks out CVS administration directories in each module. This + also checks out administration directories in each module. This is ok, since Makefiles produced by "configure" have a fixed set of directories to be included in a distribution. Another possibility is - cvs export albertadist + svn export svn+ssh://pizza.math.uni-augsburg.de/homes/andere/alberta/ALBERTA_SVN/trunk albertadist - which strips the CVS directories. + which is faster and strips the .svn directories. Actually, when making a _real_ distribution (i.e. you are not only - playing with "make dist", you should set a symbolic tag with cvs - _first_, e.g. - - cvs rtag ALBERTA_2_0 albertadist - - Afterwards, check out _that_ version of ALBERTA - - cvs co -r ALBERTA_2_0 albertadist + playing with "make dist", you should set a tag with svn + _first_. Afterwards, check out _that_ version of ALBERTA Step 2) The next step is to adjust the desired libraries, especially the ALBERTA libraries. Each ALBERTA library has its own directory of the - form "alberta[DIM_OF_WORLD]<_debug>" since compilation is different for + form "alberta2_[DIM_OF_WORLD]d[_debug]" since compilation is different for each library version. If these settings are to be changed, make a new directory, and adapt the files "Makefile.am.template" and "generate-alberta-automakefiles.sh" in the top directory. @@ -332,5 +278,3 @@ The first package will install the libraries in "/usr/local/lib", headers in "/usr/local/include", the programs in "usr/local/bin", and the demo package in "/usr/local/share/alberta". The installation directories can be changed by passing options to "rpm" (we have tried to build "relocatable" rpms). - - diff --git a/Makefile.am b/Makefile.am index 94be4c4053d1f77498a76e4ed1f5b5a6068be78e..76c0d535f7079376b5726cf233a3a66851db50ec 100644 --- a/Makefile.am +++ b/Makefile.am @@ -58,13 +58,13 @@ distclean-local: if MAINTAINER_MODE # These targets only makes sense for maintainers!! -cvs-clean: - @echo Fixing package for cvs commit... +svn-clean: + @echo Fixing package for svn commit... find . -name \*~ -exec rm -rf {} \; find ./alberta ./alberta_util -name Makefile.in -exec rm -rf {} \; find ./demo ./alberta ./alberta_util -name Makefile -exec rm -rf {} \; find ./demo \( -name \*~ -o -name \*.o -o -name \*.lo \) -exec /bin/rm -f {} \; - find ./demo \( -name ellipt -o -name heat -o -name nonlin \) -exec /bin/rm -f {} \; + find ./demo \( -name ellipt -o -name ellipt2 -o -name heat -o -name nonlin \) -exec /bin/rm -f {} \; find ./demo -name Makefile -exec /bin/rm -f {} \; cp -f .cvsignore admin/ cp -f configure.ac admin/ @@ -77,7 +77,6 @@ cvs-clean: cp -f NEWS admin/ cp -f README admin/ cp -f INSTALL admin/ - chgrp -R alberta . dist-hook: @echo Copying demo directory to $(distdir) diff --git a/README b/README index 6cb15a566382ca50db60a1d67c09276320ea4960..ef4fca36142c2f7edbe61e7a6f81e0df848cc27c 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -ALBERTA is an Adaptive multi-Level finite element toolbox using + is an Adaptive multi-Level finite element toolbox using Bisectioning refinement and Error control by Residual Techniques for scientific Applications. @@ -26,6 +26,8 @@ III. Configure Options IV. Compiler flags (with examples) +V. Some platform dependent notes and examples + ------------------------------------------------------------------------------- @@ -140,57 +142,14 @@ BLAS -- "Basic Linear Algebra Subprograms" and Opteron CPUs you should have a look at AMD's web-site (www.amd.com) and search for "acml". - Known quirks and specific BLAS implementations: - Compiler dependence ------------------- In general, you need a version of the BLAS which was compiled by the Fortran compiler you are using to compile (parts of) the ALBERTA package. Sometimes it is possible to get around this restriction by linking in additional libraries, as shown - in some of the examples listed below. - - Intel's "math core library" libmkl: - ------------------------------------ - Make sure to also link with libguide, this can be achieved by the - following configure switches: - - --with-blas-lib=/opt/intel/mkl61/lib/32/ --with-blas-name="mkl -lguide" - - You also need to set the LD_LIBRARY_PATH variable appropriately: - - export LD_LIBRARY_PATH=/opt/intel/mkl61/lib/32 - - or - - setenv LD_LIBRARY_PATH /opt/intel/mkl61/lib/32 - - - g77-compiled libblas on Linux, but Intel's ifc compiler for ALBERTA - ------------------------------------------------------------------- - NOTE: this probably doesn't make to much sense, but you can - try the following - - --with-blas-name="blas -lg2c" - - - SunOS (Solaris), using libsunperf: - ---------------------------------- - Find out about the location of libsunperf, then using Sun's f77 - compiler you need the following switches: - - --with-blas-lib=LOCATION --with-blas-name=sunperf - - However, with gcc the following might work: - - --with-blas-lib=LOCATION --with-blas-name="sunperf -lfui -lfsu -lsunmath" - + in some of the platform dependent examples listed below. - Alpha AXP with Compaq's extended math-library libcxml: - ------------------------------------------------------ - The following might work (UNTESTED!!!) - - --with-blas-lib=LOCATION --with-blas-name="cxml -lcpml" 2) Optional Packages -------------------- @@ -296,7 +255,7 @@ This will be the layout after running "make install". Compiling all flavours of the ALBERTA libraries takes a long time. The ALBERTA libraries are all named - libalberta<DIM_OF_WORLD>[_debug] + libalberta2_<DIM_OF_WORLD>d[_debug] The options below control which of them are actually created. @@ -494,6 +453,62 @@ implementation) or set environment variables or use arguments to "make" as shown in example 1.) +V. Some platform dependent notes and examples +============================================= + +1) Intel's "math core library" libmkl: +------------------------------------ +Make sure to also link with libguide, this can be achieved by the +following configure switches: + + --with-blas-lib=/opt/intel/mkl61/lib/32/ --with-blas-name="mkl -lguide" + +You also need to set the LD_LIBRARY_PATH variable appropriately: + + export LD_LIBRARY_PATH=/opt/intel/mkl61/lib/32 + +or + + setenv LD_LIBRARY_PATH /opt/intel/mkl61/lib/32 + + +2) g77-compiled libblas on Linux, but Intel's ifc compiler for ALBERTA +------------------------------------------------------------------- +NOTE: this probably doesn't make to much sense, but you can +try the following + + --with-blas-name="blas -lg2c" + + +3) SunOS (Solaris), using libsunperf: +---------------------------------- +Find out about the location of libsunperf, then using Sun's f77 +compiler you need the following switches: + + --with-blas-lib=LOCATION --with-blas-name=sunperf + +However, with gcc the following might work: + + --with-blas-lib=LOCATION --with-blas-name="sunperf -lfui -lfsu -lsunmath" + + +4) Alpha AXP with Compaq's extended math-library libcxml: +------------------------------------------------------ +The following might work (UNTESTED!!!) + + --with-blas-lib=LOCATION --with-blas-name="cxml -lcpml" + + +5) MAC OS X using the Accelerate library: +-------------------------------------- +The following switch has been reported to work: + + --with-blas-name=Accelerate + +The following location was used for the OpenGL library: + + --with-opengl-lib=/usr/X11R6/lib --with-opengl-headers=/usr/X11R6/include + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PLEASE LEAVE HERE FOR ISPELL: