From 58c4040cf70d88a3426bcbd021836c0c0766c5bb Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sun, 30 Jan 2000 23:17:05 +0000 Subject: [PATCH] Various large updates. git-svn-id: https://svn.dealii.org/trunk@2284 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/Makefile | 7 +- deal.II/doc/development/Makefile | 49 ++++ deal.II/doc/development/Makefile.large | 152 ++++++++++++ deal.II/doc/development/Makefile.small | 167 ++++++++++++++ deal.II/doc/development/index.html | 38 +++ deal.II/doc/development/logo.html | 33 +++ deal.II/doc/development/makefile2html | 62 +++++ deal.II/doc/development/makefiles.1.html | 242 ++++++++++++++++++++ deal.II/doc/development/makefiles.2.html | 94 ++++++++ deal.II/doc/development/navbar.html | 57 +++++ deal.II/doc/development/recent-changes.html | 150 ++++++++++++ deal.II/doc/development/title.html | 35 +++ deal.II/doc/development/toc.html | 51 +++++ deal.II/doc/index.html | 2 +- deal.II/doc/navbar.html | 4 +- deal.II/doc/readme.html | 31 ++- deal.II/doc/toc.html | 16 +- 17 files changed, 1178 insertions(+), 12 deletions(-) create mode 100644 deal.II/doc/development/Makefile create mode 100644 deal.II/doc/development/Makefile.large create mode 100644 deal.II/doc/development/Makefile.small create mode 100644 deal.II/doc/development/index.html create mode 100644 deal.II/doc/development/logo.html create mode 100644 deal.II/doc/development/makefile2html create mode 100644 deal.II/doc/development/makefiles.1.html create mode 100644 deal.II/doc/development/makefiles.2.html create mode 100644 deal.II/doc/development/navbar.html create mode 100644 deal.II/doc/development/recent-changes.html create mode 100644 deal.II/doc/development/title.html create mode 100644 deal.II/doc/development/toc.html diff --git a/deal.II/doc/Makefile b/deal.II/doc/Makefile index f3b40b2128..9cb5d5f0b6 100644 --- a/deal.II/doc/Makefile +++ b/deal.II/doc/Makefile @@ -2,7 +2,7 @@ # generic targets -default: autogen-doc tutorial +default: autogen-doc tutorial development all: default autogen-doc-all @@ -19,9 +19,12 @@ autogen-doc-all: tutorial: cd tutorial ; $(MAKE) +development: + cd development ; $(MAKE) clean: cd auto ; $(MAKE) clean cd tutorial ; $(MAKE) clean + cd development ; $(MAKE) clean -.PHONY: default all autogen-doc autogen-doc-all tutorial clean +.PHONY: default all autogen-doc autogen-doc-all tutorial clean development diff --git a/deal.II/doc/development/Makefile b/deal.II/doc/development/Makefile new file mode 100644 index 0000000000..e97b1f5404 --- /dev/null +++ b/deal.II/doc/development/Makefile @@ -0,0 +1,49 @@ +D = ../.. +include $D/common/Make.global_options + + +default: makefiles.html makefile.small.html makefile.large.html + + +makefiles.html: Makefile makefiles.1.html $D/common/Make.global_options makefiles.2.html + @cat makefiles.1.html > $@ + @echo '
  • CXX=$(CXX)' >> $@ + @echo '
  • CC=$(CC)' >> $@ + @echo '
  • PERL=$(PERL)' >> $@ + @echo '
  • lib-path-base=$(lib-path-base)' >> $@ + @echo '
  • lib-path-lac=$(lib-path-lac)' >> $@ + @echo '
  • lib-path-deal2=$(lib-path-deal2)' >> $@ + @echo '
  • LIBPATH=$(LIBPATH)' >> $@ + @echo '
  • lib-base.o=$(lib-base.o)' >> $@ + @echo '
  • lib-base.g=$(lib-base.g)' >> $@ + @echo '
  • lib-lac.o=$(lib-lac.o)' >> $@ + @echo '
  • lib-lac.g=$(lib-lac.g)' >> $@ + @echo '
  • lib-deal2-1d.o=$(lib-deal2-1d.o)' >> $@ + @echo '
  • lib-deal2-1d.g=$(lib-deal2-1d.g)' >> $@ + @echo '
  • lib-deal2-2d.o=$(lib-deal2-2d.o)' >> $@ + @echo '
  • lib-deal2-2d.g=$(lib-deal2-2d.g)' >> $@ + @echo '
  • lib-deal2-3d.o=$(lib-deal2-3d.o)' >> $@ + @echo '
  • lib-deal2-3d.g=$(lib-deal2-3d.g)' >> $@ + @echo '
  • include-path-base=$(include-path-base)' >> $@ + @echo '
  • include-path-lac=$(include-path-lac)' >> $@ + @echo '
  • include-path-deal2=$(include-path-deal2)' >> $@ + @echo '
  • INCLUDE=$(INCLUDE)' >> $@ + @echo '
  • CXXFLAGS.g=$(CXXFLAGS.g)' >> $@ + @echo '
  • CXXFLAGS.o=$(CXXFLAGS.o)' >> $@ + @echo '
  • ACE_ROOT=$(ACE_ROOT)' >> $@ + @echo '
  • lib-ACE=$(lib-ACE)' >> $@ + @echo '
  • with-multithreading=$(with-multithreading)' >> $@ + @cat makefiles.2.html >> $@ + + +makefile.small.html: Makefile.small + @$(PERL) makefile2html < $< > $@ + +makefile.large.html: Makefile.large + @$(PERL) makefile2html < $< > $@ + + +clean: + -rm -f makefiles.html makefile.small.html makefile.large.html + +.PHONY: default clean diff --git a/deal.II/doc/development/Makefile.large b/deal.II/doc/development/Makefile.large new file mode 100644 index 0000000000..e29b74a644 --- /dev/null +++ b/deal.II/doc/development/Makefile.large @@ -0,0 +1,152 @@ +# $Id$ + +# The large projects Makefile looks much like the one for small +# projects. Basically, only the following six parameters need to be +# set by you: + +# The first denotes the dimension for which the program is to be +# compiled: +deal_II_dimension = 2 + +# The second tells us the name of the executable. It is prefixed by +# `lib/' to designate its destination directory. Note that the program +# name depends on the dimension, so you can keep copies for the +# different dimensions around: +target = lib/application-name-$(deal_II_dimension)d + +# The `debug-mode' variable works as in the small projects Makefile: +debug-mode = off + +# And so does the following variable. You will have to set it to +# something more reasonable, of course. +clean-up-files = ... + +# Finally, here is a variable which tells the `run' rule which +# parameters to pass to the executable. Usually, this will be the name +# of an input file. +run-parameters = parameter-file.prm + +# Now, this is the last variable you need to set, namely the path to +# the deal.II toplevel directory: +D = ../../deal.II + + + +# +# +# Usually, you will not need to change something beyond this point. +# +# +# This tells `make' where to find the global settings and rules: +include $D/common/Make.global_options + + +# First get a list of files belonging to the project. Include files +# are expected in `include/', while implementation files are expected +# in `source/'. Object files are placed into `lib/[123]d', using the +# same base name as the `.cc' file. +cc-files = $(shell echo source/*.cc) +o-files = $(cc-files:source/%.cc=lib/$(deal_II_dimension)d/%.o) +go-files = $(cc-files:source/%.cc=lib/$(deal_II_dimension)d/%.go) +h-files = $(wildcard include/*.h) +lib-h-files = $(shell echo $(include-path-base)/*.h \ + $(include-path-lac)/*.h \ + $(include-path-deal2)/*/*.h) + +# As before, define a list of libraries. This, of course depends on +# the dimension in which we are working: +libs.g = $(lib-deal2-$(deal_II_dimension)d.g) \ + $(lib-lac.g) \ + $(lib-base.g) +libs.o = $(lib-deal2-$(deal_II_dimension)d.o) \ + $(lib-lac.o) \ + $(lib-base.o) + + + +# Define a nifty string to indicate in the output of the compile +# commands whether the program is compiled in multithread mode or not: +ifneq ($(with-multithreading),no) + MT = MT +else + MT = == +endif + + + + +# Now use the information from above to define the set of libraries to +# link with and the flags to be passed to the compiler: +ifeq ($(debug-mode),on) + libraries = $(go-files) $(libs.g) + flags = $(CXXFLAGS.g) +else + libraries = $(o-files) $(libs.o) + flags = $(CXXFLAGS.o) +endif + + +# Then augment the compiler flags by a specification of the dimension +# for which the program shall be compiled: +flags += -Ddeal_II_dimension=$(deal_II_dimension) + + +# If in multithread mode, add the ACE library to the libraries which +# we need to link with: +ifneq ($(with-multithreading),no) + libraries += $(lib-ACE) +endif + + +# The following two rules define how to compile C++ files into object +# files: +lib/$(deal_II_dimension)d/%.go : + @echo =====waves=======$(deal_II_dimension)d====debug=====$(MT)== $( lib/Makefile.dep + +include lib/Makefile.dep + diff --git a/deal.II/doc/development/Makefile.small b/deal.II/doc/development/Makefile.small new file mode 100644 index 0000000000..d8e0351ca2 --- /dev/null +++ b/deal.II/doc/development/Makefile.small @@ -0,0 +1,167 @@ +# $Id$ + + +# For the small projects Makefile, you basically need to fill in only +# four fields. +# +# The first is the name of the application. It is assumed that the +# application name is the same as the base file name of the single C++ +# file from which the application is generated. +target = application-name + +# The second field determines whether you want to run your program in +# debug or optimized mode. The latter is significantly faster, but no +# run-time checking of parameters and internal states is performed, so +# you should set this value to `on' while you develop your program, +# and to `off' when running production computations. +debug-mode = on + + +# As third field, we need to give the path to the top-level deal.II +# directory. You need to adjust this to your needs. Since this path is +# probably the most often needed one in the Makefile internals, it is +# designated by a single-character variable, since that can be +# reference using $D only, i.e. without the parentheses that are +# required for most other parameters, as e.g. in $(target). +D = ../../deal.II + + +# The last field specifies the names of data and other files that +# shall be deleted when calling `make clean'. Object and backup files, +# executables and the like are removed anyway. Here, we give a list of +# files in the various output formats that deal.II supports. +clean-up-files = *gmv *gnuplot *gpl *eps *pov + + + + +# +# +# Usually, you will not need to change something beyond this point. +# +# +# The next statement tell the `make' program where to find the +# deal.II top level directory and to include the file with the global +# settings +include $D/common/Make.global_options + + +# Since the whole project consists of only one file, we need not +# consider difficult dependencies. We only have to declare the +# libraries which we want to link to the object file, and there need +# to be two sets of libraries: one for the debug mode version of the +# application and one for the optimized mode. Here we have selected +# the versions for 2d. Note that the order in which the libraries are +# given here is important and that your applications won't link +# properly if they are given in another order. +# +# You may need to augment the lists of libraries when compiling your +# program for other dimensions, or when using third party libraries +libs.g = $(lib-deal2-2d.g) \ + $(lib-lac.g) \ + $(lib-base.g) +libs.o = $(lib-deal2-2d.o) \ + $(lib-lac.o) \ + $(lib-base.o) + + +# We now use the variable defined above which switch between debug and +# optimized mode to select the correct compiler flags and the set of +# libraries to link with. Included in the list of libraries is the +# name of the object file which we will produce from the single C++ +# file. Note that by default we use the extension .go for object files +# compiled in debug mode and .o for object files in optimized mode. +ifeq ($(debug-mode),on) + libraries = $(target).go $(libs.g) + flags = $(CXXFLAGS.g) +else + libraries = $(target).go $(libs.o) + flags = $(CXXFLAGS.o) +endif + + +# If in multithread mode, add the ACE library to the libraries which +# we need to link with: +ifneq ($(with-multithreading),no) + libraries += $(lib-ACE) +endif + + + +# Now comes the first production rule: how to link the single object +# file produced from the single C++ file into the executable. Since +# this is the first rule in the Makefile, it is the one `make' selects +# if you call it without arguments. +$(target) : $(libraries) + @echo ============================ Linking $@ + @$(CXX) $(flags) -o $@ $^ + + +# To make running the application somewhat independent of the actual +# program name, we usually declare a rule `run' which simply runs the +# program. You can then run it by typing `make run'. This is also +# useful if you want to call the executable with arguments which do +# not change frequently. You may then want to add them to the +# following rule: +run: $(target) + @echo ============================ Running $< + @./$(target) + + +# As a last rule to the `make' program, we define what to do when +# cleaning up a directory. This usually involves deleting object files +# and other automatically created files such as the executable itself, +# backup files, and data files. Since the latter are not usually quite +# diverse, you needed to declare them at the top of this file. +clean: + -rm -f *.o *.go *~ Makefile.dep $(target) $(clean-up-files) + + +# Since we have not yet stated how to make an object file from a C++ +# file, we should do so now. Since the many flags passed to the +# compiler are usually not of much interest, we suppress the actual +# command line using the `at' sign in the first column of the rules +# and write the string indicating what we do instead. +%.go : %.cc + @echo ==============debug========= $( Makefile.dep + +# To make the dependencies known to `make', we finally have to include +# them: +include Makefile.dep + + diff --git a/deal.II/doc/development/index.html b/deal.II/doc/development/index.html new file mode 100644 index 0000000000..1a7571b605 --- /dev/null +++ b/deal.II/doc/development/index.html @@ -0,0 +1,38 @@ + + + +deal.II Homepage + + + + + + + + + + + + + + + + + + + + + +<h1>The deal.II Homepage</h1> +Your browser does not seem to understand frames. A version of this +page that does not use frames can be found at +<a href="toc.html">toc.html</a>. + + + + + + + + diff --git a/deal.II/doc/development/logo.html b/deal.II/doc/development/logo.html new file mode 100644 index 0000000000..436652c3a5 --- /dev/null +++ b/deal.II/doc/development/logo.html @@ -0,0 +1,33 @@ + + + + + +deal.II tutorial: Logo + + + + + + + + + + + + +DEAL Logo + + + + + + + + + + + diff --git a/deal.II/doc/development/makefile2html b/deal.II/doc/development/makefile2html new file mode 100644 index 0000000000..859a812d4d --- /dev/null +++ b/deal.II/doc/development/makefile2html @@ -0,0 +1,62 @@ +# Copyright (C) 1999, 2000 by Wolfgang Bangerth, Univerisity of Heidelberg.de + + +# ignore the first few lines +$_ = <>; +while ( m!^#\*\s*\$Id$!) { + $_ = <>; +} + +# have two states, in which the program can be: +# comment-mode and program-mode +$comment_mode = 0; +$program_mode = 1; +$state = $comment_mode; + +print "

    \n"; + +while (<>) { + # ignore cvs tag + next if m!^#\*\s*\$Id:!; + + # substitute special characters + s/&/&/g; + s//>/g; + s/\t/ /g; + + if (($state == $program_mode) && m!^\s*#!) + { + $state = $comment_mode; + print "\n"; + print "\n"; + print "

    \n"; + } + # if in comment mode and no comment line: toggle state. + # don't do so, if only a blank line + elsif (($state == $comment_mode) && !m!^\s*#! && !m!^\s*$!) + { + $state = $program_mode; + print "

    \n"; + print "\n"; + print "
    \n";
    +    }
    +    
    +    if ($state == $comment_mode) 
    +    {
    +	m!\s*#\s*(.*)!;
    +	print $1, "\n";
    +	print "

    \n\n

    " if $1 =~ m!^\s*$!; + } + else + { + print " $_"; + } +} + +if ($state == $program_mode) { + print "

    \n"; +} + + + diff --git a/deal.II/doc/development/makefiles.1.html b/deal.II/doc/development/makefiles.1.html new file mode 100644 index 0000000000..fb7e8f88ef --- /dev/null +++ b/deal.II/doc/development/makefiles.1.html @@ -0,0 +1,242 @@ + + + + + + + The deal.II Homepage - Makefiles + + + + + +

    Makefiles for deal.II projects

    + +

    + The file common/Make.global_options exports several + make variables to other Makefiles which + include it. You will want to include this file into the Makefiles of + your project to use the same compiler flags and to access the pathes + to libraries. This page documents available + flags, documents the values which are used + in your local installation, and shows two + generic Makefiles which you may want to use + in your own projects. +

    + + +

    Available flags

    + +

    + Following is a list of all available flags which are exported to + other Makefiles, sorted into different categories: +

    + +
      +
    • General

      + +
      +
      CXX
      +

      + Executable name of the C++ compiler +

      +
      + + +
      CC
      +

      + Executable name of the C compiler, which + is used to generate shared libraries +

      +
      + + +
      PERL
      +

      + Executable name of the `perl' program +

      +
      +
      + + + +
    • Paths to libraries

      + +
      +
      lib-path-base
      +

      + Path to the library files of the /base library +

      +
      + + +
      lib-path-lac
      +

      + Same for the /lac library +

      +
      + + +
      lib-path-deal2
      +

      + Same for the /deal.II library +

      +
      + + +
      LIBPATH
      +

      + All the library pathes prefixed by -L, i.e. the + flags needed by the compiler to find the libraries + when they are linked in using -lbase -llac -ldeal_II_2d + (for example). These -L paths are appended to what + was in $(LIBPATH) before. +

      +
      +
      + + + +
    • Paths and filenames of libraries

      + +
      +
      lib-base.o
      +

      + Path and filename of the base library in optimized + mode. depending on whether shared libraries were + or were not enabled, the suffix of the value of this + variable is either .so or .a +

      +
      + + +
      lib-base.g
      +

      + Same, for the library in debug mode +

      +
      + + +
      lib-lac.o lib-lac.g
      +

      + Same for the lac libraries +

      +
      + +
      lib-deal2-1d.o lib-deal2-1d.g + lib-deal2-2d.o lib-deal2-2d.g + lib-deal2-3d.o lib-deal2-3d.g
      +

      + Same for the deal.II libraries in the various dimensions +

      +
      +
      + + + +
    • Pathes to include files

      + +
      +
      include-path-base
      +

      + Same as for lib-path-base, but contains the paths + to the include files of the /base library +

      +
      + + +
      include-path-lac
      +

      + Same for the /lac library +

      +
      + + +
      include-path-deal2
      +

      + Same for the /deal.II library +

      +
      + + +
      INCLUDE
      +

      + All the include pathes prefixed by -I +

      +
      +
      + + +
    • Compiler flags

      + +
      +
      CXXFLAGS.g
      +

      + Compiler flags for debug mode +

      +
      + + +
      CXXFLAGS.o
      +

      + Compiler flags for optimized mode +

      +
      +
      + + + +
    • Variables in multithreading mode

      + +

      + If --with-multithreading was given to ./configure, $(INCLUDE) and + $(LIBPATH) are augmented by the ACE include and library paths, and + the following symbols are meaningful: + +

      +
      ACE_ROOT
      +

      + Path to the ACE library as given to ./configure +

      +
      + + +
      lib-ACE
      +

      + Path and name of the ACE library +

      +
      + + +
      with-multithreading
      +

      + This symbol is 'no' if the flag was not given + to ./configure and not 'no' (it actually equals + $(ACE_ROOT)) if -with-multithreading=... was + given +

      +
      +
      + +

      + Note that in multithread mode, the compiler flags are augmented by + the definition of the preprocessor variable + DEAL_II_USE_MT, which you can use to find out whether + your program shall use multithreading or not. +

      + +
    + + + +
    +

    Values of available flags

    + + In the copy of the library (your local one, or the one on the + deal.II homepage) to which the file which you + are presently viewing belongs, the flags documented above have the + following values: + +
      + diff --git a/deal.II/doc/development/makefiles.2.html b/deal.II/doc/development/makefiles.2.html new file mode 100644 index 0000000000..e8a5f94a43 --- /dev/null +++ b/deal.II/doc/development/makefiles.2.html @@ -0,0 +1,94 @@ +
    + +
    +

    Generic Makefiles

    + +

    + In this section, we provide templates for Makefiles for + applications based on the deal.II + libraries. They show how to use the information provided by the + variables explained above. +

    + +

    + At present, we have two Makefiles, one for + small projects + consisting of only one C++ file, and one for + large projects. + Both Makefiles need slight modifications before they will work in + your project. The places for modifications are marked. + +

      +
    • + Small + projects: This Makefile is targeted at applications which + are written to simply try something, or prove an + assumption. Such applications are the + step-by-step + examples. These small problems are probably not the + usual case in real life, but you may want to take a look at + this file in order to get an idea on how it works, or you + go directly to the large projects file. +

      + +

      + You can find this Makefile + here. +

      + +
    • + Large + projects: This file is targeted at larger projects, and + for this file to work, we already assume a certain + subdirectory structure of your project. In particular, it + assumes that in your project directory the following + subdirectories exist (where project is the + directory in which the whole project is located): +

        +
      • project/source +
      • project/include +
      • project/lib +
          +
        • project/lib/1d +
        • project/lib/2d +
        • project/lib/3d +
        +
      + Include files need to be placed into + project/include, while implementation files + are to be in project/source. The executable + will be in project/lib and the compiled object + files will be in project/lib/?d, depending on + the dimension for which the project is compiled. Using this + directory structure, it is possible to quickly switch + between dimensions in which a program shall run in, + enabling us to develop applications which run in 1d, 2d, or + 3d without long compilation times. Furthermore, placing + object files in different directories prevents cluttering + directories with unnecessarily many files. +

      + +

      + The dimension for which the project shall be compiled is + not stated in the source code, as in the small projects + Makefile, but is determined by a flag which is given in the + Makefile. To determine the dimension for which a project is + compiled in your source file, use the preprocessor constant + `deal_II_dimension' which is set by the Makefile and passed + through the compiler. +

      + +

      + You can find this Makefile + here. +

      +
    + +
    + +
    + The deal.II group
    + + + + diff --git a/deal.II/doc/development/navbar.html b/deal.II/doc/development/navbar.html new file mode 100644 index 0000000000..1b7b659370 --- /dev/null +++ b/deal.II/doc/development/navbar.html @@ -0,0 +1,57 @@ + + + +deal.II Homepage + + + + + + + + +

    +Table of contents +

    +
      +
    1. +

      + Long table of contents +

      +
    2. + +
    3. +

      + Makefiles +

      +
    4. + +
    5. +

      + + Information about recent changes to the library + +

      +
    6. +
    + +

    + + Back to the deal.II homepage + +

    +
    +

    + Comments on deal.II +

    + + + + + + + + + + diff --git a/deal.II/doc/development/recent-changes.html b/deal.II/doc/development/recent-changes.html new file mode 100644 index 0000000000..bb66ed8347 --- /dev/null +++ b/deal.II/doc/development/recent-changes.html @@ -0,0 +1,150 @@ + + + + + + + The deal.II Homepage + + + + + +

    Information on recent changes

    + +

    + In case you want to stay informed about what has happened recently + to the library, we have some information for you. Note, however, + that this information is not available with the local version of + your library, but rather at the home server of the deal.II + repository. +

    + +

    + At present, the following information is available: +

    + +

      +
    • +

      + If you want to stay informed what file have been changed lately, + we keep lists which are updated each time a file is + commited. Each commit it categorized into the different parts of + the library. The files storing these files are (for the + different years): +

      + +

      +

      +
      Changes to the /base library:
      +
      + + 2000 + + | + + 1999 + +
      + +
      Changes to the /lac library:
      +
      + + 2000 + + | + + 1999 + +
      + +
      Changes to the main /deal.II library:
      +
      + + 2000 + + | + + 1999 + + | + + 1998 + +
      + +
      Changes to the documentation:
      +
      + + 2000 + + | + + 1999 + +
      + +
      Changes to the regression tests:
      +
      + + 2000 + + | + + 1999 + +
      + +
      Changes to the reports directory:
      +
      + + 2000 + + | + + 1999 + +
      + +
      All other changes:
      +
      + + 2000 + + | + + 1999 + + | + + 1998 + +
      + +
      +

      + +
    • +

      + A backlog + of changes made to the CVS archive in the last 100 days. +

      + +

      + This information is generated directly from the global CVS + archive and can be used to track what changes have been made to + individual files, since it shows the diffs between the different + versions. We generate this information using the + cvs2html + script. +

      +
    + +

    + All this information is updated automatically each night. +

    + + + + diff --git a/deal.II/doc/development/title.html b/deal.II/doc/development/title.html new file mode 100644 index 0000000000..58441e6c8e --- /dev/null +++ b/deal.II/doc/development/title.html @@ -0,0 +1,35 @@ + + + + + +deal.II Homepage + + + + + + + + + + + + +

    +Development with deal.II +

    + + + + + + + + + + + diff --git a/deal.II/doc/development/toc.html b/deal.II/doc/development/toc.html new file mode 100644 index 0000000000..395fc5ddbd --- /dev/null +++ b/deal.II/doc/development/toc.html @@ -0,0 +1,51 @@ + + + + + + + The deal.II Homepage + + + + + +

    Information on development with deal.II

    + +

    + Apart from the online API references and the tutorial, which ic + covered elsewhere, this page gathers some information that might + be of interest if you want to develop programs based on + deal.II yourself. +

    + +

    + At present, we have the following resources available: +

    + +
      +
    • Makefiles: + The library has a file which exports several make variables + to Makefiles which include it. This information may be used + to make writing Makefiles more portable and simple. The + exported variables are explained in this page and we show two + generic Makefiles, one for small and one for larger projects. +

      + +
    • Recent changes to + the library: If you want to stay informed about what is + going on with the library itself, your may want to take a + look at the page where we have some information about + recent changes to the library. +

      +
    + +
    + +
    + The deal.II group
    + + + + diff --git a/deal.II/doc/index.html b/deal.II/doc/index.html index 8e14d9b0c2..1a7571b605 100644 --- a/deal.II/doc/index.html +++ b/deal.II/doc/index.html @@ -24,7 +24,7 @@ -<h1>The deal.II Tutorial</h1> +<h1>The deal.II Homepage</h1> Your browser does not seem to understand frames. A version of this page that does not use frames can be found at <a href="toc.html">toc.html</a>. diff --git a/deal.II/doc/navbar.html b/deal.II/doc/navbar.html index 063ab74b0f..997b889e3a 100644 --- a/deal.II/doc/navbar.html +++ b/deal.II/doc/navbar.html @@ -18,7 +18,7 @@ <li> <p> <a href="readme.html" target="body"> - The README file for <acronym>deal.II</acronym>. + The README file for <acronym>deal.II</acronym> </a> </p> </li> @@ -68,7 +68,7 @@ <li> <p> - <a href="developers-page.html" target="body"> + <a href="development/index.html" target="_top"> Development information</a> </p> </li> diff --git a/deal.II/doc/readme.html b/deal.II/doc/readme.html index 097518d95f..b0e23b6cab 100644 --- a/deal.II/doc/readme.html +++ b/deal.II/doc/readme.html @@ -112,7 +112,8 @@ The most important result of <code>./configure</code> is the creation of the file <code>common/Make.global_options</code>. This file contains compiler options, paths, etc which you may want to - use in the Makefiles of your own projects. It is definitely a good + use in the <a href="development/index.html">Makefiles of your own + projects</a>. It is definitely a good idea to include it into your Makefile, to allow using the same flags for compilation between library files and the files of your project, and to access the paths of the library files. To find @@ -233,6 +234,7 @@ your application runs stably and are used in production mode. </ul> + <a name="options"> <h3>Configuration options</h3> @@ -297,6 +299,33 @@ experimental. </ul> + <p> + + Please note that running ./configure stores the paths to some + programs, such as the compilers or the Perl interpreter. The + compiler which will be used when compiling the library (or your + own application) is therefore selected at the time of + configuration and independent of the present setting of your $PATH + environment value. The reason for this is that presently there are + still too many incompatibilities between different versions of + compilers and that compiling different parts of programs with + different compilers often leads to hard-to-find problems. By + storing the absolute paths of compilers, we can at least catch + those problems where different compiler revisions are located in + different directories. + + <p> + + If you want to use a new compiler version, you will therefore have + to re-run ./configure with the new compiler being in the $PATH + environment variable. + + <p> + + It is in general a good idea to run `cd common ; make clean' + before re-configuring. + + <a name="compiler"> <h2>Compiler flags</h2> diff --git a/deal.II/doc/toc.html b/deal.II/doc/toc.html index 0872f3e2c2..8956a23b00 100644 --- a/deal.II/doc/toc.html +++ b/deal.II/doc/toc.html @@ -19,10 +19,18 @@ <li> <p>The <a href="readme.html" target="body">README</a> file of the library: this file explains installation, required programs and some other topics.</p> + <li> <p>The <a href="tutorial/index.html" target="_top">tutorial</a>: we have a tutorial for new users of the library which explains the basic elements of finite element programs based on the library, and provides some small example programs.</p> + + <li> <p> In case you want to develop your own applications using + <acronym>deal.II</acronym>, it might be worth to take a look + at <a href="development/index.html">this page</a> which has + some information regarding that subject. + </p> + <li> <p>Programming interface documentation: the classes and methods in the library are extensively documented (presently approximately 1250 pages if printed). We write this @@ -70,11 +78,6 @@ </ul> </p> - <li> <p> For developers, we have a - <a href="developers-page.html" target="body">little page with - up-to-date information</a> about the development process. - </p> - </ul> @@ -83,7 +86,8 @@ <acronym>deal.II</acronym> was originally designed and written by <a href="http://gaia.iwr.uni-heidelberg.de/~wolf/" target="_top">Wolfgang Bangerth</a>, starting in early 1998; he is still maintaining and - managing the library and contributing code. However, over time + managing the library, contributing code, and writing + documentation. However, over time other people have contributed as well, most notably <a href="http://gaia.iwr.uni-heidelberg.de/~kanschat/" target="_top">Guido Kanschat</a>, who wrote much of the code linking several finite elements -- 2.39.5