<p>
<p>
- Just like with simple <code>make</code>, <code>cmake</code>
- allows to build only selected targets. The difference is that
- it's not quite so easy any more what the names of these targets
- are. The most 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:
- <b>TODO: This is a bit misleading, as <code>make install</code>
- always implies <code>make all</code>.</b>
+ If you want to <i>configure, build and install</i> only the debug
+ or optimized variant of the <acronym>deal.II</acronym> library,
+ have a look at the discussion of <code>CMAKE_BUILD_TYPE</code>
+ found <a href="#tuningbuild">here</a>.
+ <p>
+ While developing on the library itself it is often desirable
+ to only compile certain parts. The build system generated by
+ <code>cmake</code> 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:
<pre>
make deal_II.g # only debug library
<ul>
<li>
- <code>DEAL_II_COMPONENT_CONTRIB</code>:
- Enable configuration and installation of programs
- in <code>contrib/</code>. This adds a component
- <code>contrib</code> to the build system.
+ <p>
+ <code>DEAL_II_COMPONENT_CONTRIB</code> (default
+ <code>OFF</code>):
+ </p>
+ <p>
+ Enable configuration and installation of programs
+ in <code>contrib/</code>. This adds a component
+ <code>contrib</code> to the build system.
+ Beware of the fact that <code>contrib</code> needs
+ development packages for Qt.
+ </p>
<li>
- <code>DEAL_II_COMPONENT_COMPAT_FILES</code>:
- Enable installation of legacy files and tools for
- compatibility with the old build system This adds a component
- <code>compat_files</code> to the build system.
+ <p>
+ <code>DEAL_II_COMPONENT_COMPAT_FILES</code>
+ (default <code>ON</code>):
+ </p>
+ <p>
+ Enable legacy directory structure and the installation of
+ compatibility files and tools for the old build system. This
+ adds a component <code>compat_files</code> to the build
+ system.
+ </p>
<li>
- <code>DEAL_II_COMPONENT_DOCUMENTATION</code>:
- Enable configuration, build and installation of the
- documentation. This adds a component <code>documentation</code>
- to the build system.
+ <p>
+ <code>DEAL_II_COMPONENT_DOCUMENTATION</code>
+ (default <code>OFF</code>):
+ </p>
+ <p>
+ Enable configuration, build and installation of the
+ documentation. This adds a component <code>documentation</code>
+ to the build system.
+ </p>
<li>
- <code>DEAL_II_COMPONENT_EXAMPLES</code>:
- Enable configuration and installation of the example steps.
- This adds a component <code>examples</code> to the build system.
+ <p>
+ <code>DEAL_II_COMPONENT_EXAMPLES</code>
+ (default <code>ON</code>):
+ </p>
+ <p>
+ Enable configuration and installation of the example steps.
+ This adds a component <code>examples</code> to the build system.
+ </p>
</ul>
</p>
<code>DebugRelease</code> target.
<ul>
<li>
- <code>Debug</code> will compile a debug library
- <code>libdeal_II.g.so</code>
+ <code>Debug</code> will configure, build and install a debug
+ library <code>libdeal_II.g.so</code>
<li>
- <code>Release</code> will build an optimized
+ <code>Release</code> will do the same for an optimized library
<code>libdeal_II.so</code>.
<li>
- <code>DebugRelease</code> will build both libraries
+ <code>DebugRelease</code> will configure, build and install
+ both libraries
</ul>
- For more information, see the general discussion
+ </p>
+ <p>
+ For more information, see the general discussion found
<a href="../readme.html#configuration">here</a>.
</p>
<p>
<b>Note:</b>
<ul>
- <li> <code>/path/install/dir</code> is the directory where you want to
- install the deal.II header files and libraries to. This can be a
- directory in your home directory (e.g., <code>~/bin/deal.II</code>) or a
- directory such as <code>/usr/local</code> if you have root privileges.
+ <li> <code>/path/install/dir</code> is the directory which deal.II
+ should be installed into. This can be a directory in your home
+ directory (e.g., <code>~/bin/deal.II</code>) or a directory
+ such as <code>/usr/local</code> if you have root privileges.
<li> If your machine has multiple processors, use <code>make
- -jN</code> in the last two steps where <code>N</code> is the
+ -jN</code> in the last two steps, where <code>N</code> is the
number of simultaneous build processes you want <code>make</code>
to use at any given time. Allowing <code>make</code> to use
more simultaneous build processes (assuming you have that many
- processor cores) will greatly accelerate building the library.
+ processor cores) will greatly accelerate the build time.
<li> If you do not intend to modify the <acronym>deal.II</acronym>
sources and recompile things, then you can remove