Skip to content
Snippets Groups Projects
Commit 0a981194 authored by Daniel Koester's avatar Daniel Koester
Browse files

*** TRANSITION TO SVN ***

Removed old directories, added new ones!
parent 4cb490c8
No related branches found
No related tags found
No related merge requests found
......@@ -2,19 +2,32 @@ Makefile
Makefile.in
aclocal.m4
alberta-*.tar.gz
alberta-1.2-pre8-demo
alberta-2.0-demo
autom4te.cache
bin
compile
build*
config.cache
config.guess
config.sub
config.h
config.h.in
config.log
config.status
config.sub
configure
depcomp
include
install-sh
lib
libexec
libtool
libtool.alberta
ltmain.sh
missing
mkinstalldirs
share
stamp-h1
g++
gcc
icc
icc
\ No newline at end of file
MAINTENANCE DOCUMENTATION FOR ALBERTA PACKAGES
Daniel Koester, April 2004
Daniel Koester, April 2005
koester@math.uni-augsburg.de
Claus-Justus Heine, December 2003
......@@ -8,96 +8,104 @@ claus@mathematik.uni-freiburg.de
I) Introduction and Maintenance
===============================
The alberta-x.x packages are now distributed using GNU autoconf 2.5*,
automake 1.7*, and libtool 1.5*. Since some unusual compilation was
The alberta-2.0 package is currently distributed using GNU "autoconf 2.59",
"automake 1.9.1", and "libtool 1.5.8". Since some unusual compilation was
necessary, a few hints seemed like a good idea. Here is the general
structure of the alberta-1.3 packages:
__________ ALBERTA/ __________ src/ _______|--- 1d/
/ \ |--- 2d/
/ -- doc/ |--- 3d/
/ |--- Common/
/_____________ DEMO/ __ src/ _______|--- 1d/ |--- ALBERTA?_??/
alberta-1.3/ * |--- 2d/
\_____________ ALBERTA_UTIL/ |--- 3d/
\ |--- Common/
\___________ PLOT_ANSI/ __ src/
structure of the alberta-2.0 packages:
__________ alberta/ __________ src/ _______|--- 1d/
/ \ |--- 2d/
/ -- doc/ |--- 3d/
/ |--- Common/
/_____________ demo/ __ src/ _______|--- 1d/ |--- alberta*/
alberta-2.0 / |--- 2d/
\ |--- 3d/
\ |--- Common/
\
\__________ alberta_util/ ___ src/
\
\_________ SOLVER/ __ src/
\
\_______ GRAPE/ __ mesh/ ____|--- 2d/
\ |--- 3d/
\ |--- Common/
\
\___ MESHTV/ ___|--- 1d/
\ |--- 2d/
\ |--- 3d/
\ |--- Common/
\
\_ configure.ac and other distribution
files
\
\_______ add_ons/ ---- GRAPE/ __ mesh/ ____|--- 2d/
\ \ |--- 3d/
\ \ |--- Common/
\ \
\ - MESHTV/ ___|--- 1d/
\ |--- 2d/
\ |--- 3d/
\ |--- Common/
\
\_ 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:
1) The "Makefile.in"s in DEMO/src/*d are independently
1) The "Makefile.in"s in demo/src/*d are independently
maintained. They have a simpler structure than "real" "Makefile.in"s
produced by automake.
2) The "Makefile.alberta.in" in ALBERTA/src/Common/, see below.
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 (defaults
for maintenance: alberta-x.x/lib/ and alberta-x.x/include/ as installation
paths for libraries and headers, no shared libraries). There are also
several variations of "clean" targets.
subdirectory. The "install"-target is used to install a package (default
for maintenance: $installdir=./ ). There are also several variations of
"clean" targets.
For the portable building of shared libraries we use "libtool". This involves
special compilation, e.g.
II) Package contents
====================
libtool --mode=compile gcc ...
The following subpackages are included in alberta-1.3:
1) ALBERTA
The main package.
and
2) DEMO
A few demonstration programs. 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 can be
copied elsewhere by the user after installation. The Makefiles include
"Makefile.alberta" which resides in $installdir/include together with the
C-header files. They are meant to faciliate the first steps with ALBERTA.
libtool --mode=link gcc ...
3) ALBERTA_UTIL
This package contains the old ALBERTA util.c file, now split into several
smaller source files. It is compiled to form a separate utility library
(message macros, ALBERTA memory allocation routines, etc.) and should linked
to any program using the ALBERTA package.
It can also be used as a standalone utility library.
By default we therefore install a configured version of "libtool",
"libtool.alberta", in the $install_dir/libexec directory. This behaviour can be
turned off.
4) PLOT_ANSI
PLOT_ANSI provides tools for displaying X11 graphics, if gltools is not used.
II) Package contents
====================
5) SOLVER
Linear and nonlinear solver routines for ALBERTA.
The following subpackages are included in alberta-2.0:
6) GRAPE
GRAPE interface for ALBERTA
1) alberta
The main package.
7) MESHTV
MeshTV interface for ALBERTA via the Silo library
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.
3) alberta_util
This package contains the old ALBERTA util.c file, now split into
several smaller source files. As of version 2.0, alberta_util also
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.
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.
III) External packages
======================
The gltools package is not part of ALBERTA. If it is detected during
installation, the file ALBERTA/src/Common/gltools.c is included in the ALBERTA
installation, the file alberta/src/Common/gltools.c is included in the ALBERTA
libraries. The user can specify the path of an already installed
gltools-package as a configure option, see INSTALL.
gltools-package as a "configure" option, see INSTALL.
IV) Checking into CVS directory tree
====================================
......@@ -128,9 +136,13 @@ Step 0a)
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 albert ."
directories. Also does "chgrp -R alberta ."
Step 2)
cvs update
This step will make sure that the changes made simulataneously by other
maintainers do not interfere with the new local changes.
cvs commit
NOTE: this commits _all_ changed files. It is probably better
to commit on a file-per-file basis:
......@@ -188,8 +200,8 @@ Step 0)
Become familiar with CVS.
Step 1)
At the moment, the subpackages ALBERTA, BLAS, DEMO, ALBERTA_UTIL,
PLOT_ANSI, GRAPE and SOLVER are maintained using the version control
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
distribution version of these packages. To this aim there exists an
"albertadist" module. Checking it out will create the ALBERTA
......@@ -199,7 +211,7 @@ Step 1)
cvs co albertadist
also checks out CVS administration directories in each module. This
is ok, since Makefiles produced by configure have a fixed set of
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
......@@ -219,16 +231,16 @@ Step 1)
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=0 or 1][EL_INDEX=0 or 1]" 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.
form "alberta[DIM_OF_WORLD]<_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.
Step 3)
Make sure you have a recent version of GNU automake, autoconf and
libtool and run "autoreconf" in the "albertadist" directory. At the
moment ALBERTA needs autoconf-2.5*, automake-1.7* and libtool-1.5*.
Make sure you have a recent version of GNU "automake", "autoconf" and
"libtool" and run "autoreconf" in the "albertadist" directory. We
recommend running "autoreconf --install --force" to be certain that
everything will work as expected.
The version numbers of GNU programs can be checked by running
......@@ -236,13 +248,6 @@ Step 3)
where you have to replace foobar by the proper name of the program.
The m4/ subdirectory contains (beside other files) modified versions
of the following standard libtool respectively autoconf macro files:
libtool.m4 -- changed the "-c -o" test (around line 946)
fortran.m4 -- needed to be changed to enable compilation on MacOS X
(Darwin)
Keep this in mind when upgrading to new versions of libtool and
autoconf. In particular, when upgrading one should check whether
those two hacks are still needed.
......@@ -278,7 +283,7 @@ Step 6)
installation problems can (hopefully) be corrected after feedback
with us.
If you have an already configure version of ALBERTA, then you can make
If you have an already configured version of ALBERTA, then you can make
a distribution by running
make generate-alberta-dist
......@@ -286,8 +291,8 @@ make generate-alberta-dist
which runs the steps 4.)-5.).
V) Possible problems and tested platforms
================================
VI) Possible problems and tested platforms
==========================================
Some things are already explained in "configure.ac". If not explicitly
stated otherwise below, "configure" will run without extra command
......@@ -306,10 +311,26 @@ would be to change all "LTLIBRARIES" to "LIBRARIES" in all
2) i686-suse-linux:
a) We used MesaGL and a BLAS lib included in our distribution. If MesaGL
is not found, "configure" will also try "GL". The BLAS lib needed -lg2c
to process FORTRAN code properly.
is not found, "configure" will also try "GL". The alberta_util lib needed
-lg2c to process FORTRAN code properly.
3) sparc-sun-SunOS:
a) For the xdr-Routines, the library -lnsl seemed necessary.
b) In our case, "configure" did not automatically recognize the canonical
system triplet. Calling "configure --build=sparc" worked.
VII) Making rpm packages
========================
This is still an experimental feature. We habe 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
"alberta-2.0-1.i586.rpm" as well as "alberta-2.0-1.src.rpm".
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).
SUBDIRS = gnu-compat ALBERTA_UTIL SOLVER PLOT_ANSI ALBERTA
if GRAPE
SUBDIRS += GRAPE
endif
if HAVE_SILO
SUBDIRS += MESHTV
endif
SUBDIRS = gnu-compat alberta_util alberta add_ons
ACLOCAL_AMFLAGS = -I ./m4
EXTRA_DIST = DEMO $(wildcard m4/*.m4)
EXTRA_DIST = demo m4
#
# install the libtool-script in the libexecdir s.t. Makefile.alberta
# can use it even if the ALBERTA _sources_ are deleted.
#
if INSTALL_LIBTOOL
libexec_SCRIPTS = libtool.alberta
libtool.alberta: libtool
cp libtool libtool.alberta
endif
#
# Install the code for the ALBERTA libs. This is useful if when making an
# rpm package including debug libs.
#
install_code:
mkdir -p $(prefix)/src/alberta
cp $(top_srcdir)/alberta/src/*/*.c $(prefix)/src/alberta/
uninstall_code:
rm -rf $(prefix)/src/alberta
#
# make a DEMO tar-ball and install it in pkgdatadir for later use
#
DEMO = @PACKAGE_NAME@-@PACKAGE_VERSION@-demo
pkgdata_DATA = $(DEMO).tar.gz
......@@ -29,9 +39,9 @@ demo-tarball: $(DEMO).tar.gz
$(DEMO).tar.gz: $(DEMO)
$(TAR_PROGRAM) cf - $(DEMO) | $(GZIP_PROGRAM) -9 > $@
$(DEMO): DEMO
$(DEMO): demo
mkdir $@ ; cd $@ ; \
( cd ../DEMO ; $(TAR_PROGRAM) cf - . ) | $(TAR_PROGRAM) xf -
( cd ../demo ; $(TAR_PROGRAM) cf - . ) | $(TAR_PROGRAM) xf -
rm -f $@/src/[0-9]d/Makefile.in
clean-local:
......@@ -39,18 +49,18 @@ clean-local:
distclean-local:
-rm -rf $(DEMO)
-rm -f stamp-automakefiles
if MAINTAINER_MODE
# This target only makes sense for maintainers!!
# These targets only makes sense for maintainers!!
cvs-clean:
@echo Fixing package for cvs commit...
find . -name \*~ -exec rm -rf {} \;
find ./ALBERTA ./ALBERTA_UTIL ./PLOT_ANSI ./SOLVER -name Makefile.in -exec rm -rf {} \;
find ./DEMO ./ALBERTA ./ALBERTA_UTIL ./PLOT_ANSI ./SOLVER -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 Makefile -exec /bin/rm -f {} \;
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 Makefile -exec /bin/rm -f {} \;
cp -f .cvsignore admin/
cp -f configure.ac admin/
cp -f Makefile.am admin/
cp -f config.h.in admin/
......@@ -61,19 +71,17 @@ cvs-clean:
cp -f NEWS admin/
cp -f README admin/
cp -f INSTALL admin/
chgrp -R albert .
chgrp -R alberta .
dist-hook:
@echo Deleting CVS directories in $(distdir)
rm -rf `find $(distdir) -name CVS`
@echo Deleting .cvsignore file in $(distdir)
rm -f `find $(distdir) -name '.cvsignore'`
@echo Cleaning up DEMO directory in $(distdir)
find $(distdir)/DEMO \( -name \*~ -o -name \*.o -o -name \*.lo \) -exec /bin/rm -f {} \;
find $(distdir)/DEMO \( -name ellipt -o -name heat -o -name nonlin \) -exec /bin/rm -f {} \;
find $(distdir)/DEMO -name Makefile -exec /bin/rm -f {} \;
@echo Cleaning up demo directory in $(distdir)
find $(distdir)/demo \( -name \*~ -o -name \*.o -o -name \*.lo \) -exec /bin/rm -f {} \;
find $(distdir)/demo \( -name ellipt -o -name heat -o -name nonlin \) -exec /bin/rm -f {} \;
find $(distdir)/demo -name Makefile -exec /bin/rm -f {} \;
#
# NOTE: you better have GRAPE installed properly before doing this.
......@@ -83,15 +91,33 @@ dist-hook:
# otherwise the grape-interface will not be included into the
# distribution.
#
automakefiles: stamp-automakefiles
stamp-automakefiles: Makefile.am.template generate-alberta-automakefiles.sh
cd $(top_srcdir) && ./generate-alberta-automakefiles.sh
cd $(top_srcdir) && autoreconf
date > stamp-automakefiles
generate-alberta-dist: automakefiles
generate-alberta-dist:
./generate-alberta-automakefiles.sh
autoreconf
./configure --enable-maintainer-mode --prefix=@prefix@
make dist
#
# The documentation is available as book.
#
# EXTRA_DIST = doc/alberta.pdf
#
# this one requires write access to the source directory. One day one might
# want to automakify alberta/doc/ ...
#
#doc/alberta.ps:
# make -C $(srcdir)/doc/ vclean
# make -C $(srcdir)/doc/ alberta.ps
doc/alberta.pdf:
make -C $(srcdir)/doc/ vclean
make -C $(srcdir)/doc/ alberta.pdf
documentation: doc/alberta.pdf
#dist-hook: documentation
endif
# Makefile.am for libALBERTA%LIBCODE%
###############################################################################
#
# DO NOT EDIT!
#
# Generated automatically from Makefile.am.template in the top-level
# ALBERTA distribution directory.
#
###############################################################################
## Makefile.am for libalberta%LIBCODE%
DIM_OF_WORLD = %DIM_OF_WORLD%
EL_INDEX = %EL_INDEX%
DEBUG= %DEBUG%
DEBUG = %DEBUG%
lib_LTLIBRARIES = libALBERTA%LIBCODE%.la
lib_LTLIBRARIES = libalberta%LIBCODE%.la
include $(srcdir)/../Common/Makefile.am.include
AM_CFLAGS = $(ALBERTA_%EFLAGS%_CFLAGS)
nodist_libALBERTA%LIBCODE%_la_SOURCES = $(sources)
nodist_libalberta%LIBCODE%_la_SOURCES = $(sources)
if HAVE_GLTOOLS
nodist_libALBERTA%LIBCODE%_la_SOURCES += ../Common/gltools.c
nodist_libalberta%LIBCODE%_la_SOURCES += ../Common/gltools.c
endif
# NOTE: versioning should _not_ reflect the package release number.
#
# This is CURRENT:REVISION:AGE, meaning that this library supports ABI
# (CURRENT - AGE) to CURRENT, and REVISION is just incremented any
# time something is changed (e.g. bug-fixes). When CURRENT is
# incremented, REVISION is reset to 0. See libtool info manual.
#
libALBERTA%LIBCODE%_la_LDFLAGS = -version-info 0:0:0
......@@ -32,7 +32,7 @@ IV. Compiler flags (with examples)
I) Introduction
===============
This is ALBERTA Version 1.2. Generic installation instructions can be
This is ALBERTA Version 2.0. Generic installation instructions can be
found in the file `INSTALL' in this directory. ALBERTA has a web-page
at
......@@ -44,56 +44,50 @@ ALBERTA.
The directory layout
Contained in the package are the following sub-packages:
__________ ALBERTA/ __________ src/ ______|--- 1d/
/ \ |--- 2d/
/ -- doc/ |--- 3d/
/ |--- Common/
/_____________ DEMO/ __ src/ _______|--- 1d/ |--- ALBERTA?_??/
alberta-1.2/| |--- 2d/
\_____________ ALBERTA_UTIL/ |--- 3d/
\ |--- Common/
\___________ PLOT_ANSI/ __ src/
__________ alberta/ __________ src/ _______|--- 1d/
/ \ |--- 2d/
/ -- doc/ |--- 3d/
/ |--- Common/
/_____________ demo/ __ src/ _______|--- 1d/ |--- alberta*/
alberta-2.0 / |--- 2d/
\ |--- 3d/
\ |--- Common/
\
\__________ alberta_util/ ___ src/
\
\_________ SOLVER/ __ src/
\
\_______ GRAPE/ __ mesh/ ____|--- 2d/
\ |--- 3d/
\ |--- Common/
\
\___ MESHTV/ ___|--- 1d/
\ |--- 2d/
\ |--- 3d/
\ |--- Common/
\
\_ configure.ac and other distribution
files
1) ALBERTA
\
\_______ add_ons/ ---- grape/ __ mesh/ ____|--- 2d/
\ \ |--- 3d/
\ \ |--- Common/
\ \
\___ - meshtv/ ___|--- 1d/
\ |--- 2d/
\ |--- 3d/
\ |--- Common/
\
\_ configure.ac and other distribution
files
1) alberta
The main package.
2) DEMO
The sub-directory DEMO/ contains a few demonstration programs. After
2) demo
The sub-directory demo/ contains a few demonstration programs. After
running "make install" (see file ./INSTALL) a tar-ball containing all
demo programs will be installed in PREFIX/share/alberta/. The tar-ball
can be extracted elsewhere; the make-files contained in the tar-ball
have apropriate defaults for the location of the (installed) ALBERTA
libraries and header files.
3) ALBERTA_UTIL
3) alberta_util
This package contains the old ALBERTA util.c file, now split into
several smaller source files. It is compiled to form a separate
utility library (message macros, ALBERTA memory allocation routines,
etc.) and should linked to any program using the ALBERTA package. It
several smaller source files. As of version 2.0 it also contains the former
SOLVER library. It is compiled to form a separate utility library
(message macros, ALBERTA memory allocation routines, BLAS routines and
wrappers, etc.) and should linked to any program using the ALBERTA package. It
can also be used as a standalone utility library.
4) PLOT_ANSI
PLOT_ANSI provides tools for displaying X11 graphics, if gltools is
not used.
5) SOLVER
Linear and nonlinear solver routines for ALBERTA.
6) GRAPE
4) grape
GRAPE interface for ALBERTA. Only for non-parametric FE of dimension 2
and 3. The GRAPE-interface consists of "make" will create
"alberta_grapeXX" and alberta_moviXX" where XX is in {22, 33}. "make
......@@ -104,7 +98,7 @@ header file are available on your system (determined at configure
time, use "configure --help" for appropriate command line switches for
"configure").
7) MESHTV
5) meshtv
MeshTV interface for ALBERTA. Only for non-parametric FE. The MeshTV interface
consists of the programs "alberta_meshtvX" with X in {1,2,3}. These are
installed in PREFIX/bin as well.
......@@ -274,15 +268,15 @@ layout is like follows:
When compiling ALBERTA below
/usr/people/claus/alberta-1.2/
/usr/people/claus/alberta-2.0/
then the libraries will go to
/usr/people/claus/alberta-1.2/lib/
/usr/people/claus/alberta-2.0/lib/
the header-files and Makefile.alberta will end up in
/usr/people/claus/alberta-1.2/include/
/usr/people/claus/alberta-2.0/include/
libtool.alberta will reside in
......@@ -291,7 +285,7 @@ libtool.alberta will reside in
and finally the demo package (under the name alberta-1.2.demo.tar.gz)
will be copied to
/usr/people/claus/alberta-1.2/share/
/usr/people/claus/alberta-2.0/share/alberta
This will be the layout after running "make install".
......@@ -302,7 +296,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)$(EL_INDEX)
libalberta<DIM_OF_WORLD>[_debug]
The options below control which of them are actually created.
......@@ -318,11 +312,6 @@ The options below control which of them are actually created.
Disable building of an ALBERTA library for Finite Elements of
dimension 3. (default: enabled)
--enable-el-index
Additionally build ALBERTA libraries which assigns an unique
index to each element. Normally, this is not needed but it can
be handy for debugging purposes. (default: disabled)
--disable-debug
Disable building of ALBERTA libraries with debugging
information. On some systems (or better: with some compilers)
......@@ -332,7 +321,6 @@ The options below control which of them are actually created.
versions which are compiled without optimization, but with
debugging. (default: enabled)
3.) Options controlling the search-path for external libraries
--------------------------------------------------------------
......@@ -510,7 +498,7 @@ example 1.)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PLEASE LEAVE HERE FOR ISPELL:
LocalWords: src alberta UTIL ac in's installdir util gltools FE grapeXX SGI's
LocalWords: moviXX OpenGL API MesaGL BLAS AMD's Athlon Opteron acml movi gcc
LocalWords: libtool libALBERTA PKG GL cxml blas libNAME libPKG dir DIR opengl
LocalWords: moviXX OpenGL API MesaGL AMD's Athlon Opteron acml movi gcc
LocalWords: libtool libalberta PKG GL cxml blas libNAME libPKG dir DIR opengl
LocalWords: EPREFIX gr CFLAGS FFLAGS ggdb fno inline pentium sse
LocalWords: mfpmath
#
# spec file for alberta-2.0 under SUSE LINUX 9.2
# Daniel Koester, 2005
#
Summary: an adaptive finite element toolbox for scientific applications.
Name: alberta
Version: 2.0
Release: 1
Copyright: GPL
Group: Productivity/Scientific/Math
Source: alberta-2.0.tar.gz
URL: http:/www.alberta-fem.de
Packager: Daniel Koester <koester@math.uni-augsburg.de>
Requires: aaa_base glibc glibc-devel libgcc make gcc rpm blas xorg-x11 xorg-x11-devel xorg-x11-libs xorg-x11-Mesa
Prefix: /usr/local
%description
ALBERTA is an Adaptive multi-Level finite element toolbox using
Bisectioning refinement and Error control by Residual
Techniques for scientific Applications.
This is version 2.0 with many new features. Please see %{_datadir}/alberta
for a demonstration package.
Authors:
-------
Alfred Schmidt <schmidt@math.uni-bremen.de>
Kunibert G. Siebert <siebert@math.uni-augsburg.de>
Daniel Koester <koester@math.uni-augsburg.de>
Oliver Kriessl <kriessl@math.uni-augsburg.de>
Claus-Justus Heine <claus@mathematik.uni-freiburg.de>
%prep
%setup
#
# This is the configure command that worked on SuSE Linux 9.2
#
# We do not want to install libtool.alberta, since an "ldconfig" is sufficient
# here.
#
%build
./configure --prefix=%prefix \
--bindir=%prefix/bin \
--libdir=%prefix/lib \
--datadir=%prefix/share \
--includedir=%prefix/include \
--disable-install-libtool \
--disable-debug \
ALBERTA_OPTIMIZE_CFLAGS=-O2 \
FFLAGS=-O2
make
%install
make install
%post
%run_ldconfig
%postun
%run_ldconfig
%files
%defattr(-,root,root)
/usr/local/lib/libalberta1.a
/usr/local/lib/libalberta1.la
/usr/local/lib/libalberta1.so
/usr/local/lib/libalberta1.so.0
/usr/local/lib/libalberta1.so.0.0.0
#/usr/local/lib/libalberta1_debug.a
#/usr/local/lib/libalberta1_debug.la
#/usr/local/lib/libalberta1_debug.so
#/usr/local/lib/libalberta1_debug.so.0
#/usr/local/lib/libalberta1_debug.so.0.0.0
/usr/local/lib/libalberta2.a
/usr/local/lib/libalberta2.la
/usr/local/lib/libalberta2.so
/usr/local/lib/libalberta2.so.0
/usr/local/lib/libalberta2.so.0.0.0
#/usr/local/lib/libalberta2_debug.a
#/usr/local/lib/libalberta2_debug.la
#/usr/local/lib/libalberta2_debug.so
#/usr/local/lib/libalberta2_debug.so.0
#/usr/local/lib/libalberta2_debug.so.0.0.0
/usr/local/lib/libalberta3.a
/usr/local/lib/libalberta3.la
/usr/local/lib/libalberta3.so
/usr/local/lib/libalberta3.so.0
/usr/local/lib/libalberta3.so.0.0.0
#/usr/local/lib/libalberta3_debug.a
#/usr/local/lib/libalberta3_debug.la
#/usr/local/lib/libalberta3_debug.so
#/usr/local/lib/libalberta3_debug.so.0
#/usr/local/lib/libalberta3_debug.so.0.0.0
/usr/local/lib/libalberta_util.a
/usr/local/lib/libalberta_util.la
/usr/local/lib/libalberta_util.so
/usr/local/lib/libalberta_util.so.0
/usr/local/lib/libalberta_util.so.0.0.0
/usr/local/include/alberta_inlines.h
/usr/local/include/alberta.h
/usr/local/include/alberta_util.h
/usr/local/share/alberta/Makefile.alberta
/usr/local/share/alberta/alberta-2.0-demo.tar.gz
\ No newline at end of file
......@@ -3,27 +3,51 @@
AC_PREREQ(2.52)
AC_INIT([alberta2], [2.0], [claus@mathematik.uni-freiburg.de,koester@math.uni-augsburg.de])
AC_CONFIG_SRCDIR([ALBERTA/src/Common/alberta.h])
AC_CONFIG_SRCDIR([alberta/src/Common/alberta.h])
AM_MAINTAINER_MODE
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CONFIG_FILES([Makefile ALBERTA_UTIL/Makefile
gnu-compat/Makefile
GRAPE/Makefile GRAPE/mesh/Makefile
GRAPE/mesh/2d/Makefile
GRAPE/mesh/3d/Makefile
GRAPE/mesh/Common/Makefile
MESHTV/Makefile
MESHTV/1d/Makefile
MESHTV/2d/Makefile
MESHTV/3d/Makefile
SOLVER/Makefile SOLVER/src/Makefile
PLOT_ANSI/Makefile PLOT_ANSI/src/Makefile
DEMO/src/Makefile
DEMO/src/1d/Makefile DEMO/src/2d/Makefile DEMO/src/3d/Makefile
ALBERTA/Makefile ALBERTA/src/Makefile
ALBERTA/src/Common/Makefile ALBERTA/src/Common/Makefile.alberta])
AC_CONFIG_FILES([Makefile gnu-compat/Makefile
alberta_util/Makefile alberta_util/src/Makefile
alberta_util/src/alberta_util_inlines.h.in
add_ons/Makefile
add_ons/grape/Makefile
add_ons/grape/mesh/Makefile
add_ons/grape/mesh/2d/Makefile
add_ons/grape/mesh/3d/Makefile
add_ons/meshtv/Makefile
add_ons/meshtv/1d/Makefile
add_ons/meshtv/2d/Makefile
add_ons/meshtv/3d/Makefile
demo/src/Makefile
demo/src/1d/Makefile demo/src/2d/Makefile demo/src/3d/Makefile
alberta/Makefile alberta/src/Makefile
alberta/src/Common/Makefile alberta/src/Common/Makefile.alberta])
AC_CONFIG_COMMANDS([demo],
[if ! test "$srcdir" = \. ; then
AC_MSG_CHECKING([Copying $srcdir/demo sources to current directory])
( cd $srcdir && tar cf - demo ) | tar xf -
AC_MSG_RESULT([done])
fi])
#
# A special command that checks whether alberta_util_inlines.h exists
# and is identical to alberta_util_inlines.h.in. Then do nothing. If
# something has changed, copy albert_util_inlines.h.in to
# alberta_util_inlines.h
#
AC_CONFIG_COMMANDS([alberta_util/src/alberta_util_inlines.h],
[if cmp alberta_util/src/alberta_util_inlines.h alberta_util/src/alberta_util_inlines.h.in
then
AC_MSG_CHECKING([alberta_util/src/alberta_util_inlines.h is unchanged])
else
AC_MSG_CHECKING([Creating alberta_util/src/alberta_util_inlines.h])
cp \
alberta_util/src/alberta_util_inlines.h.in \
alberta_util/src/alberta_util_inlines.h
fi])
dnl
dnl all CONFIG_FILES for the ALBERTA libraries are added through the
......@@ -67,16 +91,37 @@ dnl ****************************************************************************
dnl
dnl now check for compilers
dnl
AC_PROG_CC
AC_C_INLINE
AC_PROG_F77
dnl
dnl Mmmh. Quite elaborated nowadays. This is not used, but left in to
dnl demonstrate what could (and should) be done some day.
dnl Support for FORTRAN code in ALBERTA
dnl
AC_F77_WRAPPERS
AC_F77_MAIN
AC_F77_LIBRARY_LDFLAGS
AC_F77_FUNC([dnrm2],[DNRM2_F77_FUNC])
AC_F77_FUNC([daxpy],[DAXPY_F77_FUNC])
AC_F77_FUNC([dexpy],[DEXPY_F77_FUNC])
AC_F77_FUNC([dmxpy],[DMXPY_F77_FUNC])
AC_F77_FUNC([dcopy],[DCOPY_F77_FUNC])
AC_F77_FUNC([ddot],[DDOT_F77_FUNC])
AC_F77_FUNC([dscal],[DSCAL_F77_FUNC])
AC_F77_FUNC([dswap],[DSWAP_F77_FUNC])
AC_F77_FUNC([dxpay],[DXPAY_F77_FUNC])
AC_F77_FUNC([drandn],[DRANDN_F77_FUNC])
AC_SUBST([DNRM2_F77_FUNC])
AC_SUBST([DAXPY_F77_FUNC])
AC_SUBST([DEXPY_F77_FUNC])
AC_SUBST([DMXPY_F77_FUNC])
AC_SUBST([DCOPY_F77_FUNC])
AC_SUBST([DDOT_F77_FUNC])
AC_SUBST([DSCAL_F77_FUNC])
AC_SUBST([DSWAP_F77_FUNC])
AC_SUBST([DXPAY_F77_FUNC])
AC_SUBST([DRANDN_F77_FUNC])
dnl
dnl ****************************************************************************
dnl
......@@ -90,10 +135,12 @@ dnl work around a bug in libtool which pulls in the C++ compiler which
dnl we do not want at the moment. Remove the next two lines when this
dnl changes!
dnl
AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG],[:])
AC_DEFUN([AC_LIBTOOL_CXX],[:])
dnl AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG],[:])
dnl AC_DEFUN([AC_LIBTOOL_CXX],[:])
dnl *********************** end CXX hack ***************************************
AC_PROG_LIBTOOL
if test `basename $CC` = icc; then
GCC=no
fi
......@@ -147,9 +194,9 @@ dnl
# Replace `main' with a function in -lm:
AC_CHECK_LIB([m],[main],,
[AC_MSG_ERROR([no math library, exiting...!])] )
[AC_MSG_ERROR([no math library, exiting...!])])
AC_CHECK_FUNCS([alarm pow sqrt strdup strchr strstr],,
AC_CHECK_FUNCS([alarm pow sqrt strdup strchr strstr random srandom],,
[AC_MSG_ERROR([Sorry, these are needed..])])
AC_FUNC_MALLOC
......@@ -173,22 +220,9 @@ AC_C_CONST
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
# ******************************************************************************
# These are our own tests
# ******************************************************************************
case "$host_vendor" in
*sun*) AC_MSG_RESULT([Building for a SUN system, affects xdr-routines...])
AC_CHECK_LIB(nsl, main)
;;
esac
#
# PLOT_ANSI stuff
#
ALBERTA_PLOT_ANSI_STUFF
dnl -----------------------
dnl THESE ARE OUR OWN TESTS
dnl -----------------------
dnl
dnl check for BLAS library. The BLAS may come under different names. We default
dnl to -lblas, but other possibilities are sunperf, atlas, cxml (Alpha AXP)
......@@ -197,7 +231,6 @@ dnl
dnl Let the user decide what it wants (handled by ALBERTA_CHECK_PACKAGE()
dnl
ALBERTA_CHECK_PACKAGE(blas, blas, , ${FLIBS},,,,required)
MANGLE_F77_FUNCTIONS(dnrm2, dset, daxpy, dexpy, dmxpy, dcopy, ddot, dscal, dswap, dxpay, drandn)
dnl
dnl check for X11
......@@ -227,20 +260,15 @@ dnl MeshTV interface stuff
dnl
ALBERTA_CHECK_PACKAGE(silo, silo, ,, silo.h, , ,optional)
#
# EL_INDEX
#
SIMPLE_ENABLE_FLAG([el-index], [additionally build ALBERTA libraries using EL_INDEX=1.], 0)
#
# NEIGH_IN_EL, probably buggy
#
dnl SIMPLE_ENABLE_FLAG([neigh-in-el],
dnl [additionally build ALBERTA libraries using NEIGH_IN_EL=1.
dnl NOTA BENE: using NEIGH_IN_EL=1 is probably buggy.], 0)
#
# Debugging
#
SIMPLE_ENABLE_FLAG([debug], [disable building of ALBERTA libraries with debugging information.], 1)
dnl
dnl Debugging
dnl
ALBERTA_ENABLE_FLAG([debug], [disable building of ALBERTA libraries with debugging information.], 1)
dnl
dnl Install libtool.alberta for shared libraries?
dnl
ALBERTA_ENABLE_FLAG([install-libtool], [disable installation of libtool.alberta], 1)
# building of all versions is enabled by default, but can be
# disabled using --disable-DOW-dimension switches (the macros
......@@ -254,14 +282,7 @@ ALBERTA_DIMENSION_DISABLE(1)
ALBERTA_DIMENSION_DISABLE(2)
ALBERTA_DIMENSION_DISABLE(3)
AC_CONFIG_COMMANDS_POST([
if ! test "$srcdir" = \. ; then
AC_MSG_CHECKING([Copying $srcdir/DEMO to current directory])
( cd $srcdir && tar cf - DEMO ) | tar xf -
AC_MSG_RESULT([done])
fi])
#
# flush everything to disk
#
AC_OUTPUT
AC_OUTPUT
\ No newline at end of file
#!/bin/sh
#
# Generate all ALBERTA Makefile.am's from a template. I was just fed
# up with changing 12 different files which looked essentially the
# up with changing 6 different files which looked essentially the
# same.
#
for DEBUG in 0 1; do
for EL_INDEX in 0 1; do
for DIM_OF_WORLD in 1 2 3; do
LIBCODE=${DIM_OF_WORLD}_${DEBUG}${EL_INDEX}
for DIM_OF_WORLD in 1 2 3; do
if test $DEBUG -eq 0; then
LIBCODE=${DIM_OF_WORLD}
EFLAGS=OPTIMIZE
else
LIBCODE=${DIM_OF_WORLD}_debug
EFLAGS=DEBUG
fi
if test $DEBUG -eq 0; then
EFLAGS=OPTIMIZE
else
EFLAGS=DEBUG
fi
sed -e "s/%DIM_OF_WORLD%/$DIM_OF_WORLD/g" Makefile.am.template -e "s/%DEBUG%/$DEBUG/g" -e "s/%EL_INDEX%/$EL_INDEX/g" -e "s/%LIBCODE%/$LIBCODE/g" -e "s/%EFLAGS%/$EFLAGS/g" > ALBERTA/src/ALBERTA$LIBCODE/Makefile.am
done
mkdir -p alberta/src/alberta$LIBCODE
sed -e "s/%DIM_OF_WORLD%/$DIM_OF_WORLD/g" Makefile.am.template -e "s/%DEBUG%/$DEBUG/g" -e "s/%LIBCODE%/$LIBCODE/g" -e "s/%EFLAGS%/$EFLAGS/g" > alberta/src/alberta$LIBCODE/Makefile.am
done
done
done
\ No newline at end of file
Makefile
Makefile.in
#
# Define mangled versions of some blas functions
#
AC_DEFUN([MANGLE_AN_F77_FUNCTION],[
AC_REQUIRE([AC_F77_WRAPPERS])
m4_define([UPNAME],[F77_[]m4_toupper([$1])])
AC_F77_FUNC($1,UPNAME)
#
# just the default so that things become not worse than before in case
# configure fails
#
if test "$UPNAME" = unknown; then
UPNAME=m4_tolower([$1])_
fi
AC_DEFINE_UNQUOTED(UPNAME, $UPNAME, [Mangled version of F77 function $1])
AC_SUBST(UPNAME)
])
AC_DEFUN([MANGLE_F77_FUNCTIONS],
[
MANGLE_AN_F77_FUNCTION([$1])
m4_if($#,1,[],[MANGLE_F77_FUNCTIONS(m4_shift($@))])
])
This diff is collapsed.
This diff is collapsed.
AC_DEFUN([ALBERTA_PLOT_ANSI_STUFF],
[
plot_for_sun=false
plot_for_all=false
plot_for_ibm=false
plot_for_tit=false
if test "$G77" = yes; then
AC_MSG_RESULT([Using generic Fortran F77 interface for PLOT_ansi])
#
# just use both ...
#
plot_for_all=true
plot_for_sun=false
else
#
# Actually, PLOT_for_STUFF should be chosen based on the Compiler
# in use, not the vendor. However, it isn't used anyway, so what.
#
case "$host_vendor" in
# *sgi*) AC_MSG_RESULT([Building for SGI system, affects PLOT_Ansi...])
# ;;
*ibm*) AC_MSG_RESULT([Building for IBM system, affects PLOT_Ansi...])
plot_for_ibm=true
;;
*sun*) AC_MSG_RESULT([Building fo a SUN system, affects PLOT_Ansi...])
plot_for_sun=true
;;
*) AC_MSG_RESULT([Using generic Fortran F77 interface for PLOT_ansi])
plot_for_all=true
;;
esac
case "$host" in
*titan*) AC_MSG_RESULT([Building for TITAN cpu/vendor/system?, affects PLOT_Ansi...])
plot_for_tit=true
;;
esac
fi
AM_CONDITIONAL(PLOT_FOR_ALL, test x$plot_for_all = xtrue)
AM_CONDITIONAL(PLOT_FOR_SUN, test x$plot_for_sun = xtrue)
AM_CONDITIONAL(PLOT_FOR_IBM, test x$plot_for_ibm = xtrue)
AM_CONDITIONAL(PLOT_FOR_TIT, test x$plot_for_tit = xtrue)
if test "$plot_for_all" = true; then
MANGLE_F77_FUNCTIONS(plot_create_window,
plot_destroy_window,
plot_get_std_window,
plot_set_std_window,
plot_expose,
plot_title,
plot_alarm,
plot_set_icolor,
plot_get_icolor,
plot_set_backgroundcolor,
plot_get_backgroundcolor,
plot_set_linecolor,
plot_get_linecolor,
plot_set_patchcolor,
plot_get_patchcolor,
plot_set_textcolor,
plot_get_textcolor,
plot_flush,
plot_clear,
plot_set_transform2d,
plot_get_transform2d,
plot_world2d,
plot_move2d,
plot_vmove2d,
plot_draw2d,
plot_vdraw2d,
plot_line2d,
plot_vline2d,
plot_triangle2d,
plot_vtriangle2d,
plot_trianglergb2d,
plot_vtrianglergb2d,
plot_text2d,
plot_vtext2d)
AC_CONFIG_FILES([PLOT_ANSI/src/PLOT_for_all.c])
fi # PLOT_for_all
])
This is a test.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment