]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Various large updates.
authorWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 30 Jan 2000 23:17:05 +0000 (23:17 +0000)
committerWolfgang Bangerth <bangerth@math.tamu.edu>
Sun, 30 Jan 2000 23:17:05 +0000 (23:17 +0000)
git-svn-id: https://svn.dealii.org/trunk@2284 0785d39b-7218-0410-832d-ea1e28bc413d

17 files changed:
deal.II/doc/Makefile
deal.II/doc/development/Makefile [new file with mode: 0644]
deal.II/doc/development/Makefile.large [new file with mode: 0644]
deal.II/doc/development/Makefile.small [new file with mode: 0644]
deal.II/doc/development/index.html [new file with mode: 0644]
deal.II/doc/development/logo.html [new file with mode: 0644]
deal.II/doc/development/makefile2html [new file with mode: 0644]
deal.II/doc/development/makefiles.1.html [new file with mode: 0644]
deal.II/doc/development/makefiles.2.html [new file with mode: 0644]
deal.II/doc/development/navbar.html [new file with mode: 0644]
deal.II/doc/development/recent-changes.html [new file with mode: 0644]
deal.II/doc/development/title.html [new file with mode: 0644]
deal.II/doc/development/toc.html [new file with mode: 0644]
deal.II/doc/index.html
deal.II/doc/navbar.html
deal.II/doc/readme.html
deal.II/doc/toc.html

index f3b40b21281e78469d488baa48d9488d259f79d2..9cb5d5f0b69f80986b5aeae4fb692df1f5d321f6 100644 (file)
@@ -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 (file)
index 0000000..e97b1f5
--- /dev/null
@@ -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 '<li><code>CXX=$(CXX)</code>' >> $@
+       @echo '<li><code>CC=$(CC)</code>' >> $@
+       @echo '<li><code>PERL=$(PERL)</code>' >> $@
+       @echo '<li><code>lib-path-base=$(lib-path-base)</code>' >> $@
+       @echo '<li><code>lib-path-lac=$(lib-path-lac)</code>' >> $@
+       @echo '<li><code>lib-path-deal2=$(lib-path-deal2)</code>' >> $@
+       @echo '<li><code>LIBPATH=$(LIBPATH)</code>' >> $@
+       @echo '<li><code>lib-base.o=$(lib-base.o)</code>' >> $@
+       @echo '<li><code>lib-base.g=$(lib-base.g)</code>' >> $@
+       @echo '<li><code>lib-lac.o=$(lib-lac.o)</code>' >> $@
+       @echo '<li><code>lib-lac.g=$(lib-lac.g)</code>' >> $@
+       @echo '<li><code>lib-deal2-1d.o=$(lib-deal2-1d.o)</code>' >> $@
+       @echo '<li><code>lib-deal2-1d.g=$(lib-deal2-1d.g)</code>' >> $@
+       @echo '<li><code>lib-deal2-2d.o=$(lib-deal2-2d.o)</code>' >> $@
+       @echo '<li><code>lib-deal2-2d.g=$(lib-deal2-2d.g)</code>' >> $@
+       @echo '<li><code>lib-deal2-3d.o=$(lib-deal2-3d.o)</code>' >> $@
+       @echo '<li><code>lib-deal2-3d.g=$(lib-deal2-3d.g)</code>' >> $@
+       @echo '<li><code>include-path-base=$(include-path-base)</code>' >> $@
+       @echo '<li><code>include-path-lac=$(include-path-lac)</code>' >> $@
+       @echo '<li><code>include-path-deal2=$(include-path-deal2)</code>' >> $@
+       @echo '<li><code>INCLUDE=$(INCLUDE)</code>' >> $@
+       @echo '<li><code>CXXFLAGS.g=$(CXXFLAGS.g)</code>' >> $@
+       @echo '<li><code>CXXFLAGS.o=$(CXXFLAGS.o)</code>' >> $@
+       @echo '<li><code>ACE_ROOT=$(ACE_ROOT)</code>' >> $@
+       @echo '<li><code>lib-ACE=$(lib-ACE)</code>' >> $@
+       @echo '<li><code>with-multithreading=$(with-multithreading)</code>' >> $@
+       @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 (file)
index 0000000..e29b74a
--- /dev/null
@@ -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)== $(<F)
+       @$(CXX) $(flags) -c $< -o $@
+lib/$(deal_II_dimension)d/%.o :
+       @echo =====waves=======$(deal_II_dimension)d====optimized=$(MT)== $(<F)
+       @$(CXX) $(flags) -c $< -o $@
+
+
+
+# Next define how to link the executable
+$(target) : $(libraries) Makefile
+       @echo =====waves=======$(deal_II_dimension)d==============$(MT)== Linking $(@F)
+       @$(CXX) $(flags) -o $(target) $(libraries) $(user-libs)
+
+
+
+# Rule how to run the program
+run: $(target)
+       ./$(target) $(run-parameters)
+
+
+# Rule how to clean up. This is split into several different rules to
+# allow for parallel execution of commands:
+clean: clean-lib clean-data
+       -rm -f *~ */*~ */*/*~ lib/Makefile.dep
+
+clean-lib:
+       -rm -f lib/?d/*.o lib/?d/*.go lib/$(target) lib/TAGS
+
+clean-data:
+       -rm -f $(clean-up-files)
+
+
+# Again tell `make' which rules are not meant to produce files:
+.PHONY: clean clean-data clean-lib run
+
+
+
+# Finally produce the list of dependencies. Note that this time, the
+# object files end up in directories of their own, so we have to
+# modify the output a bit. The file with the dependencies is put into
+# `lib/'.
+lib/Makefile.dep: $(cc-files) $(h-files) $(lib-h-files) Makefile
+       @echo =====waves=======$(deal_II_dimension)d================== Remaking Makefile
+       @perl $D/common/scripts/make_dependencies.pl $(INCLUDE) $(cc-files) \
+        | perl -p -e 's!^lib/g?o/(.*):!lib/$(deal_II_dimension)d/$$1:!g;' \
+               > 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 (file)
index 0000000..d8e0351
--- /dev/null
@@ -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========= $(<F)
+       @$(CXX) $(CXXFLAGS.g) -c $< -o $@
+%.o : %.cc
+       @echo ==============optimized===== $(<F)
+       @$(CXX) $(CXXFLAGS) -c $< -o $@
+
+
+# The following statement tells make that the rules `run' and `clean'
+# are not expected to produce files of the same name as Makefile rules
+# usually do.
+.PHONY: run clean
+
+
+# Finally there is a rule which you normally need not care much about:
+# since the executable depends on some include files from the library,
+# besides the C++ application file of course, it is necessary to
+# re-generate the executable when one of the files it depends on has
+# changed. The following rule to created a dependency file
+# `Makefile.dep', which `make' uses to determine when to regenerate
+# the executable. This file is automagically remade whenever needed,
+# i.e. whenever one of the cc-/h-files changed. Make detects whether
+# to remake this file upon inclusion at the bottom of this file.
+#
+# The dependency file is created using a perl script.  Since the
+# script prefixes the output names by `lib/o' or `lib/go' (it was
+# written for the sublibraries' Makefile), we have to strip that again
+# since object files are placed in the present directory for this
+# application. All these things are made in the next rule:
+Makefile.dep: $(target).cc Makefile \
+              $(shell echo $(include-path-base)/*.h    \
+                           $(include-path-lac)/*.h     \
+                           $(include-path-deal2)/*/*.h)
+       @echo ============================ Remaking Makefile
+       @perl $D/common/scripts/make_dependencies.pl  $(INCLUDE) $(target).cc \
+               | perl -pi -e 's!lib/g?o/!!g;' \
+               > 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 (file)
index 0000000..1a7571b
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+<head>
+<title>deal.II Homepage</title>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <meta name="author" content="Wolfgang Bangerth <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II">
+</head>
+
+<frameset rows="60,*" border=0>
+    
+      <frameset cols="150,*" border=0>
+        <frame name="logo" src="logo.html">
+        <frame name="title" src="title.html">
+      </frameset>
+      <frameset cols="150,*" border=0>
+       <frame name="navbar" src="navbar.html" border=0 frameborder="no">
+       <frame name="body" src="toc.html" border=0 frameborder="no">
+      </frameset>
+
+</frameset>
+
+<noframes>
+<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>.
+</noframes>
+
+</html>
+
+
+
+
+
diff --git a/deal.II/doc/development/logo.html b/deal.II/doc/development/logo.html
new file mode 100644 (file)
index 0000000..436652c
--- /dev/null
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+<head>
+<!-- deal.II tutorial template
+     Jan Schrage and others <deal@iwr.uni-heidelberg.de> 1999 
+-->
+
+<title>deal.II tutorial: Logo</title>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <meta name="author" content="Jan Schrage and others <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II">
+</head>
+
+<!-- Page Body -->
+<body lang="en">
+
+<!-- Title Frame -->
+
+<img src="../pictures/deal10.gif" alt="DEAL Logo" align="center" hspace=20 class="chapter_title">
+
+</body>
+</html>
+
+
+
+
+
+
+
+
diff --git a/deal.II/doc/development/makefile2html b/deal.II/doc/development/makefile2html
new file mode 100644 (file)
index 0000000..859a812
--- /dev/null
@@ -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 "<p>\n";
+
+while (<>) {
+    # ignore cvs tag
+    next if m!^#\*\s*\$Id:!;
+
+    # substitute special characters
+    s/&/&amp;/g;
+    s/</&lt;/g;
+    s/>/&gt;/g;
+    s/\t/        /g;
+
+    if (($state == $program_mode) && m!^\s*#!)
+    {     
+       $state = $comment_mode;
+       print "</code></pre>\n";
+       print "\n";
+       print "<p>\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 "</p>\n";
+       print "\n";
+       print "<pre><code>\n";
+    }
+    
+    if ($state == $comment_mode) 
+    {
+       m!\s*#\s*(.*)!;
+       print $1, "\n";
+       print "</p>\n\n<p>" if  $1 =~ m!^\s*$!;
+    }
+    else
+    {
+       print "        $_";
+    }
+}
+
+if ($state == $program_mode) {
+   print "</code></pre>\n";
+}
+
+
+
diff --git a/deal.II/doc/development/makefiles.1.html b/deal.II/doc/development/makefiles.1.html
new file mode 100644 (file)
index 0000000..fb7e8f8
--- /dev/null
@@ -0,0 +1,242 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+  <head>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <title>The deal.II Homepage - Makefiles</title>
+    <meta name="author" content="Wolfgang Bangerth <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II"></head>
+  <body>
+
+
+    <h2>Makefiles for <acronym>deal.II</acronym> projects</h2>
+
+    <p>
+    The file <code>common/Make.global_options</code> 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 <a href="#flags">available
+    flags</a>, documents the <a href="#values">values which are used
+    in your local installation</a>, and shows two 
+    <a href="#generic">generic Makefiles</a> which you may want to use
+    in your own projects.
+    </p>
+
+    <a name="flags">
+    <h3>Available flags</h3>
+
+    <p>
+    Following is a list of all available flags which are exported to
+    other Makefiles, sorted into different categories:
+    </p>
+
+    <ul>
+    <li><h4>General</h4></h4>
+
+    <dl>
+      <dt> <code>CXX</code> </dt>
+      <dd> <p>
+           Executable name of the C++ compiler
+           </p>
+      </dd>
+
+
+      <dt> <code>CC</code> </dt>
+      <dd> <p>
+           Executable name of the C compiler, which
+           is used to generate shared libraries
+           </p>
+      </dd>
+
+
+      <dt> <code>PERL</code> </dt>
+      <dd> <p>
+           Executable name of the `perl' program
+           </p>
+      </dd>
+    </dl>
+
+
+
+    <li><h4>Paths to libraries</h4>
+
+    <dl>
+      <dt> <code>lib-path-base</code> </dt>
+      <dd> <p>
+           Path to the library files of the /base library
+           </p>
+      </dd>
+
+
+      <dt> <code>lib-path-lac</code> </dt>
+      <dd> <p>
+           Same for the /lac library
+           </p>
+      </dd>
+
+
+      <dt> <code>lib-path-deal2</code> </dt>
+      <dd> <p>
+           Same for the /deal.II library
+           </p>
+      </dd>
+
+
+      <dt> <code>LIBPATH</code> </dt>
+      <dd> <p>
+           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.
+           </p>
+      </dd>
+    </dl>
+
+
+
+    <li><h4>Paths and filenames of libraries</h4>
+
+    <dl>
+      <dt> <code>lib-base.o</code> </dt>
+      <dd> <p>
+           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
+           </p>
+      </dd>
+
+
+      <dt> <code>lib-base.g</code> </dt>
+      <dd> <p>
+           Same, for the library in debug mode
+           </p>
+      </dd>
+
+
+      <dt> <code>lib-lac.o lib-lac.g</code> </dt>
+      <dd> <p>
+           Same for the lac libraries 
+           </p>
+      </dd>
+
+      <dt> <code>lib-deal2-1d.o lib-deal2-1d.g
+                 lib-deal2-2d.o lib-deal2-2d.g
+                 lib-deal2-3d.o lib-deal2-3d.g</code> </dt>
+      <dd> <p>
+           Same for the deal.II libraries in the various dimensions
+           </p>
+      </dd>
+    </dl>
+
+
+
+    <li><h4>Pathes to include files</h4>
+
+    <dl>
+      <dt> <code>include-path-base</code> </dt>
+      <dd> <p>
+           Same as for lib-path-base, but contains the paths
+           to the include files of the /base library
+           </p>
+      </dd>
+
+
+      <dt> <code>include-path-lac</code> </dt>
+      <dd> <p>
+           Same for the /lac library
+           </p>
+      </dd>
+
+
+      <dt> <code>include-path-deal2</code> </dt>
+      <dd> <p>
+           Same for the /deal.II library
+           </p>
+      </dd>
+
+
+      <dt> <code>INCLUDE</code> </dt>
+      <dd> <p>
+           All the include pathes prefixed by -I
+           </p>
+      </dd>
+    </dl>
+
+
+    <li><h4>Compiler flags</h4>
+
+    <dl>
+      <dt> <code>CXXFLAGS.g</code> </dt>
+      <dd> <p>
+           Compiler flags for debug mode
+           </p>
+      </dd>
+
+
+      <dt> <code>CXXFLAGS.o</code> </dt>
+      <dd> <p>
+           Compiler flags for optimized mode
+           </p>
+      </dd>
+    </dl>
+
+
+
+    <li><h4>Variables in multithreading mode</h4>
+    <p>
+    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:
+
+    <dl>
+      <dt> <code>ACE_ROOT</code> </dt>
+      <dd> <p>
+           Path to the ACE library as given to ./configure
+           </p>
+      </dd>
+
+
+      <dt> <code>lib-ACE</code> </dt>
+      <dd> <p>
+           Path and name of the ACE library
+           </p>
+      </dd>
+
+
+      <dt> <code>with-multithreading</code> </dt>
+      <dd> <p>
+           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
+           </p>
+      </dd>
+    </dl>
+
+    <p>
+    Note that in multithread mode, the compiler flags are augmented by
+    the definition of the preprocessor variable
+    <code>DEAL_II_USE_MT</code>, which you can use to find out whether
+    your program shall use multithreading or not. 
+    </p>
+
+    </ul>
+
+
+
+    <a name="values">
+    <h3>Values of available flags</h3>
+    
+    In the copy of the library (your local one, or the one on the
+    <acronym>deal.II</acronym> homepage) to which the file which you
+    are presently viewing belongs, the flags documented above have the
+    following values:
+    
+    <ul>
+
diff --git a/deal.II/doc/development/makefiles.2.html b/deal.II/doc/development/makefiles.2.html
new file mode 100644 (file)
index 0000000..e8a5f94
--- /dev/null
@@ -0,0 +1,94 @@
+    </ul>
+    
+    <a name="generic">
+    <h3>Generic Makefiles</h3>
+
+    <p>
+    In this section, we provide templates for Makefiles for
+    applications based on the <acronym>deal.II</acronym>
+    libraries. They show how to use the information provided by the
+    variables explained above.
+    </p>
+
+    <p>
+    At present, we have two Makefiles, one for 
+    <a href="makefile.small.html" target="body">small projects</a>
+    consisting of only one C++ file, and one for 
+    <a href="makefile.large.html" target="body">large projects</a>.
+    Both Makefiles need slight modifications before they will work in
+    your project. The places for modifications are marked.
+
+    <ul>
+      <li> <p>
+           <a href="makefile.small.html" target="body">Small
+           projects</a>: This Makefile is targeted at applications which
+           are written to simply try something, or prove an
+           assumption. Such applications are the 
+           <a href="../tutorial/chapter-2.step-by-step/index.html" target="_top">step-by-step
+           examples</a>. 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.
+          </p>
+
+          <p>
+          You can find this Makefile
+          <a href="Makefile.small" target="_top">here</a>.
+          </p>
+
+      <li> <p>
+           <a href="makefile.large.html" target="body">Large
+           projects</a>: 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 <code>project</code> is the
+           directory in which the whole project is located):
+          <ul>
+          <li> <code>project/source</code>
+          <li> <code>project/include</code>
+          <li> <code>project/lib</code>
+                <ul>
+                 <li> <code>project/lib/1d</code>
+                 <li> <code>project/lib/2d</code>
+                 <li> <code>project/lib/3d</code>
+                </ul>
+          </ul>
+          Include files need to be placed into
+           <code>project/include</code>, while implementation files
+           are to be in <code>project/source</code>. The executable
+           will be in <code>project/lib</code> and the compiled object
+           files will be in <code>project/lib/?d</code>, 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.
+          </p>
+
+          <p>
+          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.
+          </p>
+
+          <p>
+          You can find this Makefile
+          <a href="Makefile.large" target="_top">here</a>.
+          </p>
+    </ul> 
+
+    <hr>
+    
+    <address>
+      <a href="mailto:deal@hermes.iwr.uni-heidelberg.de">The deal.II group</a></address>
+
+  </body>
+</html>
+
diff --git a/deal.II/doc/development/navbar.html b/deal.II/doc/development/navbar.html
new file mode 100644 (file)
index 0000000..1b7b659
--- /dev/null
@@ -0,0 +1,57 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+<head>
+<title>deal.II Homepage</title>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <meta name="author" content="Jan Schrage and others <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II">
+</head>
+<body lang="en">
+
+<p>
+<strong>Table of contents</strong>
+</p>
+    <ol>
+      <li>
+       <p>
+         <a href="toc.html" target="body">Long table of contents</a>
+       </p>
+      </li>
+
+      <li>
+       <p>
+          <a href="makefiles.html" target="body">Makefiles</a>
+       </p>
+      </li>
+
+      <li>
+       <p>
+         <a href="recent-changes.html" target="body">
+           Information about recent changes to the library
+         </a>
+       </p>
+      </li>
+    </ol>
+
+    <p>
+      <a href="../index.html" target="_top">
+        Back to the <acronym>deal.II</acronym> homepage
+      </a>
+    </p>
+    <hr>
+    <p>
+      <a href="mailto:deal@hermes.iwr.uni-heidelberg.de">Comments on deal.II</a>
+    </p>
+
+<!-- Last modified: $Date$ -->
+
+</body>
+</html>
+
+
+
+
+
diff --git a/deal.II/doc/development/recent-changes.html b/deal.II/doc/development/recent-changes.html
new file mode 100644 (file)
index 0000000..bb66ed8
--- /dev/null
@@ -0,0 +1,150 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+  <head>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <title>The deal.II Homepage</title>
+    <meta name="author" content="Wolfgang Bangerth <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II"></head>
+  <body>
+
+  
+  <h2>Information on recent changes</h2>
+
+  <p>
+  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.
+  </p>
+
+  <p>
+  At present, the following information is available:
+  <p>
+
+  <ul>
+    <li>
+      <p>
+      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):
+      </p>
+
+      <p>
+      <dl>
+        <dt><em> Changes to the /base library: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/base-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/base-1999.html" target="_top">
+          1999
+          </a>   
+       </dd>
+
+        <dt><em> Changes to the /lac library: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/lac-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/lac-1999.html" target="_top">
+          1999
+          </a>   
+       </dd>
+
+        <dt><em> Changes to the main /deal.II library: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/deal-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/deal-1999.html" target="_top">
+          1999
+          </a>   
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/deal-1998.html" target="_top">
+          1998
+          </a>   
+       </dd>
+
+        <dt><em> Changes to the documentation: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/doc-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/doc-1999.html" target="_top">
+          1999
+          </a>   
+       </dd>
+
+        <dt><em> Changes to the regression tests: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/tests-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/tests-1999.html" target="_top">
+          1999
+          </a>   
+       </dd>
+
+        <dt><em> Changes to the reports directory: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/reports-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/reports-1999.html" target="_top">
+          1999
+          </a>   
+       </dd>
+
+        <dt><em> All other changes: </em></dt>
+       <dd> 
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/default-2000.html" target="_top">
+          2000
+          </a>
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/default-1999.html" target="_top">
+          1999
+          </a>   
+         |
+          <a href="http://gaia.iwr.uni-heidelberg.de/~cvs/deal/LOG/default-1998.html" target="_top">
+          1998
+          </a>   
+       </dd>
+
+      </dl>
+      </p>
+
+    <li> 
+      <p>
+      A <a href="auto/cvs-backlog/newdeal.html" target="_top"> backlog
+      of changes</a> made to the CVS archive in the last 100 days.
+      </p>
+
+      <p>
+      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
+      <a href="http://www.sslug.dk/cvs2html/" target="_top">cvs2html</a>
+      script.
+      </p>
+  </ul>
+
+  <p>
+  All this information is updated automatically each night.
+  </p>
+
+  </body>
+</html>
+
diff --git a/deal.II/doc/development/title.html b/deal.II/doc/development/title.html
new file mode 100644 (file)
index 0000000..58441e6
--- /dev/null
@@ -0,0 +1,35 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+<head>
+<!-- deal.II tutorial template
+     Wolfgang Bangerth and others <deal@iwr.uni-heidelberg.de> 1999 
+-->
+
+<title>deal.II Homepage</title>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <meta name="author" content="Jan Schrage and others <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II">
+</head>
+
+<!-- Page Body -->
+<body style="background-image:url(../pictures/background-grid.jpg);" lang="en">
+
+<!-- Title Frame -->
+
+<h1 class="chapter_title">
+Development with <acronym>deal.II</acronym>
+</h1>
+
+</body>
+</html>
+
+
+
+
+
+
+
+
diff --git a/deal.II/doc/development/toc.html b/deal.II/doc/development/toc.html
new file mode 100644 (file)
index 0000000..395fc5d
--- /dev/null
@@ -0,0 +1,51 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
+   "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+  <head>
+    <link href="screen.css" rel="StyleSheet" title="deal.II Homepage" media="screen">
+    <link href="print.css" rel="StyleSheet" title="deal.II Homepage" media="print">
+    <link href="audio.css" rel="StyleSheet" title="deal.II Homepage" media="aural">
+    <title>The deal.II Homepage</title>
+    <meta name="author" content="Wolfgang Bangerth <deal@iwr.uni-heidelberg.de>">
+    <meta name="keywords" content="deal.II"></head>
+  <body>
+
+
+    <h2>Information on development with <acronym>deal.II</acronym></h2>
+
+    <p>
+    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
+    <acronym>deal.II</acronym> yourself.
+    </p>
+
+    <p>
+    At present, we have the following resources available:
+    </p>
+
+    <ul> 
+    <li> <p><a href="makefiles.html" target="body">Makefiles</a>:
+         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.
+         </p>
+
+    <li> <p><a href="recent-changes.html" target="body">Recent changes to
+         the library</a>: 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.
+        </p>
+    </ul>
+
+    <hr>
+    
+    <address>
+      <a href="mailto:deal@hermes.iwr.uni-heidelberg.de">The deal.II group</a></address>
+
+  </body>
+</html>
+
index 8e14d9b0c24306cf0416ae85848b9a1647ca04d2..1a7571b6053669f15e65dce97f522d820452c440 100644 (file)
@@ -24,7 +24,7 @@
 </frameset>
 
 <noframes>
-<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>.
index 063ab74b0f3c28d2fb708f8e20c6b82f7ff05e6f..997b889e3a558ce0f02923c54ea8b9726b823ea4 100644 (file)
@@ -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>
index 097518d95f7fbf06dab2c0e560472aa35c4157f0..b0e23b6cab4b1288158a938311d2ff77afa047ef 100644 (file)
     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
       your application runs stably and are used in production mode.
     </ul>
 
+
     <a name="options">
     <h3>Configuration options</h3>
 
      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>
index 0872f3e2c2535d52048fc4472dfe72dd41228e86..8956a23b0010526933f1ee587f5b4e6847c5e6ac 100644 (file)
     <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
         </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

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.