diff --git a/Makefile.am b/Makefile.am index 4d0db3f4c959e77e9dd64b7f675127bae715c2cb..e79179e0bb44a4c2a8891d797f6b55c5f9a2211c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,8 @@ # $Id$ # don't follow the full GNU-standard -AUTOMAKE_OPTIONS = foreign +# need automake >= 1.5 +AUTOMAKE_OPTIONS = foreign 1.5 SUBDIRS = common fem grid operator solver lib istl doc m4 diff --git a/README b/README index 2da7252a0b345c4abd6810ddda9ba4d534bc4dd9..69b1d19797f1c290317d74ea6751920b871af91c 100644 --- a/README +++ b/README @@ -1,21 +1,31 @@ DUNE-library ============ -[descriptional text missing] - - Getting started --------------- -The easiest way to use Dune is to rename this directory "dune" if it -has a different name and tell the application about it. That's -it. Really. :) +To compile a small library Dune has to check several components of +your system. Run + + ./configure + +to commence those tests. Don't worry about messages telling you that +libraries are missing: they are only needed for grid-self-checks we +need for developing. + +You can use + + ./configure --prefix=PATH + +if you don't want Dune to be installed into /usr/local -If you want to install the Dune-headers globally on your system run -the following as "root": +After configuration - ./configure && make install + make + make install +build and install Dune (you may need root-permissions for the install +part depending on the prefix set) License ------- diff --git a/README.CVS b/README.CVS index 72fee176ce50e29f0cc5a7c38c60263166238e1c..b690b852221ae02aca9f988fe2f10b85928e3a37 100644 --- a/README.CVS +++ b/README.CVS @@ -10,11 +10,87 @@ following programs installed on your system: libtool -Run the script +For the documentation to build you'll need doxygen and latex +installed. + +Dune also features a self-test. As some grid-components (e.g. Albert, +UG) depend on external libraries their self-tests will only run if +those libraries are found. The pathes would then need to be passed via +--with-...= parameters. + +Important! If you don't want to develop Dune itself you won't need to +provide external components! The Dune-library and -headers are +independent of other libraries, instead the applications can choose +what parts to use. + +Getting started +--------------- + +If these preliminaries are met, you should run the script ./autogen.sh -to get a ./configure-script. +which calls the GNU autoconf/automake to create a ./configure-script +and the Makefiles. The configure-script is automatically called and +you're ready to perform a + + make + +to build the library and documentation. Dune can be installed into +your system via + + make install + +You can provide a --prefix=PATH parameter to autogen to install the +components into PATH/lib, PATH/include, ... instead of the default +/usr/local/lib, /usr/local/include + +Passing options to ./configure +------------------------------ + +autogen.sh also calls the newly created configure-script to +conveniently pass on options about the used compiler. Thus you'll have +to provide autogen.sh any options you want configure to get, e.g. + + ./autogen.sh --with-albert=... --with-ug=... + + +Choosing the compiler and the options +------------------------------------- + +The selection of the compiler works as follows: if --gnu or --intel is +passed to autogen it reads the content of gcc.opts or icc.opts to get +the default compiler flags. With the option --optim you can switch the +compiler-specific optimization parameters on. + +If you want to change the compiler options to your favourites you can +either + + - adapt the appropriate .opts-file and rerun autogen.sh. Please don't + commit this changed file to CVS if you're not sure if the options + work for everybody. + + - copy an existing .opts-file to a new name, change the options and + use + + ./autogen.sh --opts=my.opts + + +More info +--------- + +See + + ./autogen.sh --help + +and (if it exists) + + ./configure --help + +for further options. + + +The full build-system is described in the doc/Buildsystem $Id$ diff --git a/autogen.sh b/autogen.sh index d8b43ef75bbe72023330bca85cb45bf2383beabb..ee1c714a77d09d140195d235deaf487e5bd9fe2e 100755 --- a/autogen.sh +++ b/autogen.sh @@ -88,7 +88,7 @@ libtoolize --force # prepare everything echo "--> aclocal..." -aclocal$AMVERS +aclocal$AMVERS -I m4 # applications should provide a config.h for now #echo "--> autoheader..." diff --git a/configure.ac b/configure.ac index 71263f30e3fd68b218968ecf477829dc559b8e88..15d5404b96c98654fa7cf1b60e99ca7c24e7e91a 100644 --- a/configure.ac +++ b/configure.ac @@ -9,6 +9,7 @@ AC_CONFIG_SRCDIR([grid/common/grid.hh]) # Checks for programs. AC_PROG_CXX +AC_LANG_PUSH([C++]) # don't build shared libs per default, this is way better for debugging... AC_DISABLE_SHARED @@ -21,6 +22,20 @@ AC_CHECK_PROGS([BIBTEX], [bibtex], [true]) AC_CHECK_PROGS([DVIPDF], [dvipdf], [true]) AC_CHECK_PROGS([DVIPS], [dvips], [true]) +echo +echo Checking for libraries the self-test could use: +echo + +# -- check for other grid-libs so that they may be included into tests +# Albert-check +DUNE_PATH_ALBERT +DUNE_PATH_ALBERTA +# UG-check +DUNE_PATH_UG +DUNE_PATH_AMIRAMESH +# Yaspgrid-check +DUNE_MPI + # create symlink for consistent paths even when $(top_srcdir) is not # called dune/ (if filesystem/OS supports symlinks) AC_PROG_LN_S @@ -61,6 +76,12 @@ fi # preset variable to path such that #include <dune/...> works AC_SUBST(AM_CPPFLAGS) +echo +echo Note: the libraries checked for above are only used for the self-test of Dune. +echo The library itself will build and the headers will work even if +echo Albert, UG, Amiramesh, MPI, etc. cannot be found. +echo + # write output AC_CONFIG_FILES([Makefile common/Makefile @@ -71,8 +92,11 @@ AC_CONFIG_FILES([Makefile fem/operator/Makefile grid/Makefile grid/albertgrid/Makefile + grid/bsgrid/Makefile grid/common/Makefile grid/sgrid/Makefile + grid/test/Makefile + grid/uggrid/Makefile grid/yaspgrid/Makefile istl/Makefile istl/doc/Makefile