Skip to content
Snippets Groups Projects
Commit f68a742d authored by Claus-Justus Heine's avatar Claus-Justus Heine
Browse files

Update, correct installation directories etc.

parent cbe0dad2
No related branches found
No related tags found
No related merge requests found
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment