diff --git a/MAINTENANCE b/MAINTENANCE index aff5bde8ba6f8b3dda8102da0fe39e1ef247991d..827b222fa4525a9909b461a97ad4cea269789691 100644 --- a/MAINTENANCE +++ b/MAINTENANCE @@ -1,47 +1,48 @@ MAINTENANCE DOCUMENTATION FOR ALBERTA PACKAGES + Daniel Koester, April 2005 koester@math.uni-augsburg.de -Claus-Justus Heine, December 2003 +Claus-Justus Heine, December 2003, May 2007 claus@mathematik.uni-freiburg.de I) Introduction and Maintenance =============================== -The alberta-2.0 package is currently distributed using GNU "autoconf 2.60", -"automake 1.9.6", and "libtool 1.5.22". Since some unusual compilation was -necessary, a few hints seemed like a good idea. Here is the general -structure of the alberta2-2.0 packages: - - __________ alberta/ __________ src/ ______|--- 1d/ - / \ |--- 2d/ - / -- doc/ |--- 3d/ - / |--- Nd/ - / |--- Common/ - /_____________ demo/ __ src/ _______|--- 1d/ |--- alberta*/ -alberta-2.0 / |--- 2d/ - \ |--- 3d/ - \ |--- 4d/ - \ |--- 5d/ - \ |--- Common/ - \ - \ - \__________ alberta_util/ ___ src/ - \ +The alberta2-2.0 package is currently distributed using GNU "autoconf +2.61", "automake 1.10", and "libtool 1.5.22". Since some unusual +compilation was necessary, a few hints seemed like a good idea. Here +is the general structure of the alberta2-2.0 packages: + + __________ alberta/ __________ src/ ______|--- 1d/ + / \ |--- 2d/ + / -- doc/ |--- 3d/ + / |--- Common/ + / |--- alberta2*/ + /_____________ demo/ __ src/ _______|--- 1d/ +alberta2-2.0 / |--- 2d/ + \ |--- 3d/ + \ |--- 4d/ + \ |--- 5d/ + \ |--- Common/ + \ + \ + \__________ alberta_util/ ___ src/ \ - \_______ add_ons/ ---- grape/ __ mesh/ ____|--- 2d/ - \ \ |--- 3d/ - \ \ |--- Common/ - \ \ - \ - meshtv/ ___|--- 1d/ - \ \ |--- 2d/ - \ \ |--- 3d/ - \ \ |--- Common/ - \ \ - \ \- geomview/ - \ - \_ configure.ac and other distribution - files + \ + \_______ add_ons/ ---- grape/ __ mesh/ ____|--- 2d/ + \ \ |--- 3d/ + \ \ |--- Common/ + \ \ + \ - meshtv/ ___|--- 1d/ + \ \ |--- 2d/ + \ \ |--- 3d/ + \ \ |--- Common/ + \ \ + \ \- geomview/ + \ + \_ configure.ac and other distribution + files We keep track of the "Makefile.am"s, which are processed by automake to create "Makefile.in"s. Two exceptions: @@ -52,13 +53,16 @@ produced by automake. 2) The "Makefile.alberta.in" in alberta/src/Common/, see below. -The file "configure.ac" is processed by autoconf to create "configure". The -script "configure" then processes "Makefile.in"s to create proper -Makefiles. The created Makefiles can then be used by us to test compilation -and the demo programs. All Makefiles can be called independently from any -subdirectory. The "install"-target is used to install a package (default -for maintenance: $installdir=./ ). There are also several variations of -"clean" targets. +The file "configure.ac" is processed by autoconf to create +"configure". The script "configure" then processes "Makefile.in"s to +create proper Makefiles. The created Makefiles can then be used by us +to test compilation and the demo programs. All Makefiles can be called +independently from any subdirectory. The command "make install" is +used to install a package. All files are installed below a common +prefix path ("configure --prefix=PREFIX"). PREFIX defaults to `./' if +`./configure' was run with the `--enable-maintainer-mode' +switch. Otherwise it defaults to `/usr/local/'. There are also several +variations of "clean" targets. For the portable building of shared libraries we use "libtool". This involves special compilation, e.g. @@ -70,25 +74,26 @@ and libtool --mode=link gcc ... By default we therefore install a configured version of "libtool", -"libtool.alberta", in the $install_dir/libexec directory. This behaviour can be -turned off. +`PREFIX/libexec/alberta2/' directory. This behaviour can be turned off +by running `configure' with the "--disable-install-libtool" switch. II) Package contents ==================== -The following subpackages are included in alberta-2.0: +The following subpackages are included in alberta2-2.0: -1) alberta +1) alberta2 The main package. 2) demo -A few demonstration programs meant to faciliate the first steps with ALBERTA. -This package is not touched by automake and includes several small -Makefile.in's in which "configure" substitutes values like installation paths -for libraries and headers. This directory is installed as a tarball in -$installdir/share/alberta, but can be copied by users to other locations. -The Makefiles in demo include "Makefile.alberta" which resides -in $installdir/share/alberta. + +A few demonstration programs meant to facilitate the first steps with +ALBERTA. This package is not touched by automake and includes several +small Makefile.in's in which "configure" substitutes values like +installation paths for libraries and headers. This directory is +installed as a tar-ball in `PREFIX/share/alberta2/', but can be copied +by users to other locations. The Makefiles in the demo package +include "Makefile.alberta" which resides in `PREFIX/libexec/alberta2/'. 3) alberta_util This package contains the old ALBERTA util.c file, now split into @@ -98,11 +103,11 @@ contains the former "SOLVER" library. It is compiled to form a separate utility library (message macros, ALBERTA memory allocation routines, BLAS solver routines and wrappers) and should linked to any program using the ALBERTA package. It can also be used as -a standalone utility library. +a stand-alone utility library. 4) add_ons add_ons contains extra tools built on top of ALBERTA. At the moment it contains -GRAPE and SILO/MESHTV data visualisation interfaces for ALBERTA. +GRAPE and SILO/MESHTV data visualization interfaces for ALBERTA. III) External packages ====================== @@ -116,7 +121,7 @@ Same thing applies for Open DX which is used for online visualization via the alberta/src/Common/dxtools.c interface. IV) Checking into Subversion directory tree -==================================== +=========================================== Step 0) Become familiar with Subversion. A very good source of information is @@ -138,7 +143,7 @@ Step 1) Step 2) svn update - This step will make sure that the changes made simulataneously by other + This step will make sure that the changes made simultaneously by other maintainers do not interfere with the new local changes. svn commit @@ -168,13 +173,13 @@ Step 1) package with the directory structure described right at the beginning of this file. - svn checkout svn+ssh://marbella.math.uni-augsburg.de/homes/andere/alberta/ALBERTA_SVN/trunk albertadist + svn checkout svn+ssh://malaga.math.uni-augsburg.de/homes/proj/alberta/ALBERTA_SVN/trunk/albertadist 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 - svn export svn+ssh://pizza.math.uni-augsburg.de/homes/andere/alberta/ALBERTA_SVN/trunk albertadist + svn export svn+ssh://malaga.math.uni-augsburg.de/homes/proj/alberta/ALBERTA_SVN/trunk/albertadist which is faster and strips the .svn directories. @@ -208,6 +213,13 @@ Step 4) where you have to replace foobar by the proper name of the program. +Step 3/4-alt) + Instead of step 3) and 4) run + + fromsvnreconf.sh + + This will execute the commands from step 3) and 4). + Step 5) Reconfigure ALBERTA with the additional switch "--enable-maintainer-mode": @@ -215,7 +227,7 @@ Step 5) ./configure BLABLABLA --enable-maintainer-mode Step 6) - Do "[g]make dist" at the top level. This creates alberta-?.?.tar.gz + Do "[g]make dist" at the top level. This creates alberta2-?.?.tar.gz in which all CVS-directories, ~-files, and other unnecessary components are stripped. To be a bit more precise: @@ -256,7 +268,8 @@ script "config.guess"): b) The GNU Fortran compiler g77 distributed by SGI produced n32-style code, which was not default for the gcc. Recommended solutions: - i) Adding -n32 option to "CFLAGS" and "LDFLAGS", if $CC == gcc and %F77 = g77. + i) Adding -n32 option to "CFLAGS" and "LDFLAGS", if $CC == gcc and + %F77 = g77. ii) Using the system compilers cc and f77. 2) i686-suse-linux: @@ -325,7 +338,7 @@ script "config.guess"): VII) Making rpm packages ======================== -This is still an experimental feature. We habe included an alberta-2.0.spec +This is still an experimental feature. We have included an alberta-2.0.spec file adapted for SUSE LINUX 9.2. Using "rpmbuild -ba alberta-2.0.spec" will process an "alberta-2.0.tar.gz" bundle in "/usr/src/packages/SOURCES". After unpacking, configuring, building, and installing you will (hopefully) have @@ -335,3 +348,9 @@ 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). + + LocalWords: alberta meshtv geomview automake autoconf libtool FOOBAR util yum + LocalWords: gltools albertadist automakefiles autoreconf foobar fromsvnreconf + LocalWords: BLABLABLA LTLIBRARIES config MesaGL gfortran xorg devel gcc vxfz + LocalWords: Ubuntu libc libx libxext sse sudo cd sparc SunOS xdr rpm SUSE usr + LocalWords: rpmbuild