From f8561da8c167579b13a4adf8c604774ceb56d361 Mon Sep 17 00:00:00 2001 From: maier Date: Thu, 7 Mar 2013 12:27:27 +0000 Subject: [PATCH] Restructure git-svn-id: https://svn.dealii.org/branches/branch_cmake@28784 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/development/cmake.html | 157 ++++++++++++++--------------- 1 file changed, 75 insertions(+), 82 deletions(-) diff --git a/deal.II/doc/development/cmake.html b/deal.II/doc/development/cmake.html index 3a74740548..51cde6245e 100644 --- a/deal.II/doc/development/cmake.html +++ b/deal.II/doc/development/cmake.html @@ -29,10 +29,7 @@ Table of contents @@ -57,7 +55,7 @@

-

Operating the configuration system

+

Operating cmake

When configuring deal.II by @@ -69,22 +67,11 @@

- Normally, after running cmake one will simply build - the library by calling make. If the library changes, - a subsequent call to make will only re-compile those - files that depend on sources that have changed. In other words, - one will rarely have to deal with the cached variables at all. -

- -

- That said, it is occasionally helpful to run cmake - again, either because one would like to change the configuration - parameters or because some configuration file (e.g., one of - the CMakeLists.txt files) has changed. (In fact, - if the latter happens to be the case, then just - calling make calls back and runs cmake - again automatically.) Either way, if that happens, - then cmake will only run whatever tests are really + On a subsequent call to cmake, e.g. to change the + configuration or due to a callback from the build system because some + configuration file (the CMakeLists.txt and + cmake/<..>.cmake files) has changed, + cmake will only run whatever tests are necessary; values for variables that are already in the cache are not re-evaluated. This means that calling cmake a second time without any arguments at all in a situation like this @@ -95,11 +82,11 @@ cmake -DCMAKE_INSTALL_PREFIX=/path/install/dir ../deal.II cmake ../deal.II - has absolutely no effect: In particular, the second time around - it uses the CMAKE_INSTALL_PREFIX value previously - passed, along with all other arguments one may have had on the - first invocation. This is different from the way - the autoconf/configure mechanism worked. + has no effect: In particular, the second time around it + uses the CMAKE_INSTALL_PREFIX value previously + passed, along with all other arguments one may have had on + the first invocation. This is different from the way the + autoconf/configure mechanism worked.

@@ -131,65 +118,14 @@ mkdir build cd build cmake ../deal.II - cmake -DDEAL_II_WITH_METIS=OFF ../ + cmake -DDEAL_II_WITH_METIS=OFF . + cmake -DDEAL_II_WITH_TRILINOS=ON -DTRILINOS_DIR=/path/to/trilinos . switches off support for the METIS library that may have been automatically detected during the first invocation of - cmake but that we really didn't want to link with. -

- - - -

Compiling only certain parts

-

- -

- While developing the library itself, it is often desirable - to only compile certain parts. The build system generated by - cmake allows to build specific, selected targets. - A common scenario is that you only want to build debug or optimized - libraries. This can be achieved using the following commands in - the build directory: -

-
-    make  deal_II.g     # only debug library
-    make  deal_II       # only release (optimized) library
-    make  all           # both
-      
-

- -

- For a complete list of possible targets that allow even - finer-grained control, do -

-
-    make  help
-      
-

- -

- It is frequently useful to be able to see what a particular - command does. In that case, use the following: -

-
-    make  deal_II.g VERBOSE=ON
-      
- This will show, for every command executed, the exact command - line with which it was invoked, including compiler arguments, - etc. Every command cmake executes starts with - a cd command to change the current directory - appropriately so that the command line can be copied and executed - from anywhere within the build directory. -

- -

- Note: Just because you can call make deal_II.g to - only compile the debug version does not mean that a - subsequent make install will only install the debug - library. Rather, make install will still want to have both - libraries up to date and will therefore invoke make all - automatically. To restrict builds in such a way that only one library - will be installed, see this section. + cmake and enables support for Trilinos by enablind + DEAL_II_WITH_TRILINOS and setting + TRILINOS_DIR.

@@ -870,6 +806,63 @@ documentation as well as some advanced aspects in feature configuration. + + +

Compiling only certain parts

+

+ +

+ While developing the library itself, it is often desirable + to only compile certain parts. The build system generated by + cmake allows to build specific, selected targets. + A common scenario is that you only want to build debug or optimized + libraries. This can be achieved using the following commands in + the build directory: +

+
+    make  deal_II.g        # only debug library
+    make  deal_II          # only release (optimized) library
+    make  all              # both
+
+    make  obj_grid.release # all objects in ./source/grid in release configuration
+      
+

+ +

+ For a complete list of possible targets that allow even + finer-grained control, do +

+
+    make  help
+      
+

+ +

+ It is frequently useful to be able to see what a particular + command does. In that case, use the following: +

+
+    make  deal_II.g VERBOSE=ON
+      
+ This will show, for every command executed, the exact command + line with which it was invoked, including compiler arguments, + etc. Every command cmake executes starts with + a cd command to change the current directory + appropriately so that the command line can be copied and executed + from anywhere within the build directory. +

+ +

+ Note: Just because you can call make deal_II.g to + only compile the debug version does not mean that a + subsequent make install will only install the debug + library. Rather, make install will still want to have both + libraries up to date and will therefore invoke make all + automatically. To restrict builds in such a way that only one library + will be installed, see this section. +

+ +
-- 2.39.5