]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Revamp the whole business.
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 4 Nov 2010 03:21:24 +0000 (03:21 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Thu, 4 Nov 2010 03:21:24 +0000 (03:21 +0000)
git-svn-id: https://svn.dealii.org/trunk@22600 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/doc/development/Makefile
deal.II/doc/development/Makefile.large
deal.II/doc/development/Makefile.small
deal.II/doc/development/makefiles.1.html
deal.II/doc/development/makefiles.2.html

index 45e62ee95fc843b18711b1e89dd4d4ae4c21e421..1cc3129739653b9521204e50ac4c9364067248c0 100644 (file)
@@ -119,6 +119,8 @@ VARIABLE_VALUES = $(foreach v,$(VARIABLES),$(call expand_variable,$v))
 makefiles.html: Makefile makefiles.1.html $D/common/Make.global_options makefiles.2.html
        @cat makefiles.1.html > $@
        @echo "<p align=\"center\"><table class=\"tutorial\" width=\"60%\">" >> $@
+       @echo "<tr><th>Makefile variable</th><th>Value in <code>common/Make.global_options</code></th></tr>" >> $@
+       @echo "<tr><th colspan=\"2\"><hr></th></tr>" >> $@
        @echo $(VARIABLE_VALUES) >> $@
        @echo "</table></p>" >> $@
        @cat makefiles.2.html >> $@
index 8fbaffd55acef1072fd22be62e8af62ca29b7f1d..ad994458742ea37175dfb3d1f77ae9aa116a37fb 100644 (file)
@@ -4,13 +4,10 @@
 # projects. Basically, only the following seven parameters need to be
 # set by you:
 
-application-name = waves
-
-# The first denotes the dimension for which the program is to be
-# compiled:
+application-name  = waves
 deal_II_dimension = 2
 
-# The second tells us the name of the executable. It is prefixed by
+# The next variable 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:
@@ -20,7 +17,8 @@ target   = lib/$(application-name)-$(deal_II_dimension)d
 debug-mode = on
 
 # And so does the following variable. You will have to set it to
-# something more reasonable, of course.
+# something reasonable that, for example, includes the location where you
+# put output files that you want the `make clean' rule to delete
 clean-up-files =
 
 # Finally, here is a variable which tells the `run' rule which
index ee81d35de89ec380969172d4fd1f6735f02c563c..2b634d6364e5b9d98d5c534815c627bdf7e49af1 100644 (file)
@@ -30,7 +30,7 @@ D = ../../
 # 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
+clean-up-files = *gmv *gnuplot *gpl *eps *pov *vtk *ucd *d2
 
 
 
@@ -40,7 +40,7 @@ clean-up-files = *gmv *gnuplot *gpl *eps *pov
 # Usually, you will not need to change anything beyond this point.
 #
 #
-# The next statement tell the `make' program where to find the
+# The next statement tells 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
@@ -55,7 +55,7 @@ libs.g   := $(lib-deal2.g)
 libs.o   := $(lib-deal2.o)
 
 
-# We now use the variable defined above which switch between debug and
+# We now use the variable defined above to switch between debug and
 # optimized mode to select 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
index 8000fdf28a9197c821f25ec6cb801a5f0ffe7614..cbf3d19d40e51679c3b98fbd1637d5c5d2d64ca3 100644 (file)
     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 paths
     to libraries. This page documents <a href="#flags">available
-    flags</a>, documents the <a href="#values">values which are used
+    variables</a>, documents the <a href="#values">values which are used
     in your local installation</a>, and shows 
     <a href="#generic">generic Makefiles</a> which you may want to use
     in your own projects.
     </p>
 
     <a name="flags"></a>
-    <h3>Available flags</h3>
+    <h3>Available variables</h3>
 
     <p>
-    Following is a partial list of available flags which are exported to
-    other Makefiles. There are additional flags, in particular ones that
+    Following is a partial list of available variables which are exported to
+    other Makefiles. There are additional variables, in particular ones that
     determine the interaction with other libraries such as PETSc, Trilinos,
     METIS, etc; for details on these variables, take a look
     at <code>common/Make.global_options</code>.
 
 
     <a name="values"></a>
-    <h3>Values of available flags</h3>
+    <h3>Values of available variables</h3>
     
     In the copy of the library to which the file which you
     are presently viewing belongs (i.e., your local one, or the one on the
index 00045b76b6d077a191e5636deeb6a13afc1cdd80..970f45b97a3f49b4dc2e7364282affc90226abd8 100644 (file)
@@ -3,37 +3,25 @@
     <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.
+    <acronym>deal.II</acronym> comes with sample Makefiles for
+    applications that use this library. They show how to use the information
+    provided by the variables explained above.
     </p>
 
     <p>
-    At present, we have three 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>.
-    Furthermore, there is a Makefile in a <a
-    href="makefile.rules.html" target="body">different style</a>. Have
-    a look at them and see what seem convenient to you.  All Makefiles
+    At present, there are two such Makefile templates. All Makefiles
     need slight modifications before they will work in your
-    project. The places for modifications are marked.
+    project; the places for modifications are marked and easy to find. The
+    templates are:
 
     <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 
+           project Makefile</a>: This Makefile is targeted at small
+           applications consisting of only a single <code>.cc</code>
+           file. Examples of this kind are the
            <a href="../doxygen/tutorial/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>
+           tutorial programs</a>.
           You can find this Makefile
           <a href="Makefile.small" target="_top">here</a>.
           </p>
            directory in which the whole project is located):
           </p>
           <ul>
-          <li> <code>project/source</code>
-          <li> <code>project/include</code>
-          <li> <code>project/lib</code>
+          <li> <code>project/source</code>: The location of all
+          your <code>.h</code> files.
+          <li> <code>project/include</code>: The location of all
+          your <code>.cc</code> files.
+          <li> <code>project/lib</code>: Where the Makefile will
+                 put the final executable.
                 <ul>
-                 <li> <code>project/lib/1d</code>
-                 <li> <code>project/lib/2d</code>
-                 <li> <code>project/lib/3d</code>
+                 <li> <code>project/lib/1d</code>: Where the Makefile will
+                 put your object files if you compile for 1d.
+                 <li> <code>project/lib/2d</code>: Same for 2d.
+                 <li> <code>project/lib/3d</code>: Same for 3d.
                 </ul>
           </ul>
           <p>
-          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.
+            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.
+            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 set in the
+            Makefile. The Makefile then makes sure that the preprocessor
+            constant <code>deal_II_dimension</code> is set appropriately and
+            passed through to the compiler when creating object files.
           </p>
 
           <p>
           You can find this Makefile
           <a href="Makefile.large" target="_top">here</a>.
           </p>
-      <li> <p>
-
-           The <a href="makefile.rules.html" target="body">third
-           Makefile</a> is <code>common/Makefile.template</code> in
-           the <acronym>deal.II</acronym> directory tree.
-
-          It was designed for several targets in one directory and
-          makes use of the compilation rules in
-          <code>common/Make.rules</code>. All object files and
-          executables will be in the same directory.
     </ul>
 
     <hr>

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.