From 24f897fdcadb928c668ba118c39d974af119e41c Mon Sep 17 00:00:00 2001 From: maier Date: Wed, 7 Nov 2012 17:32:45 +0000 Subject: [PATCH] Rewrite porting.html git-svn-id: https://svn.dealii.org/branches/branch_cmake@27463 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/TODO.CMAKE | 3 - deal.II/doc/development/porting.html | 200 +++++++++++++-------------- deal.II/doc/development/toc.html | 17 ++- 3 files changed, 109 insertions(+), 111 deletions(-) diff --git a/deal.II/TODO.CMAKE b/deal.II/TODO.CMAKE index f702c1452e..0000750470 100644 --- a/deal.II/TODO.CMAKE +++ b/deal.II/TODO.CMAKE @@ -10,9 +10,6 @@ Major: (doc/development/toc.html already links to it) (A more detailed copy of what is already standing in cmake.html) - - Modify doc/porting.html - - Minor: * The following feature has to be written: TECPLOT diff --git a/deal.II/doc/development/porting.html b/deal.II/doc/development/porting.html index 00b369be22..23333a839f 100644 --- a/deal.II/doc/development/porting.html +++ b/deal.II/doc/development/porting.html @@ -17,122 +17,120 @@

Porting deal.II to new systems

- deal.II uses very few system dependent - features. Consequently, there is a good chance that it might also run on other - systems besides the ones listed in the - ReadMe file. Nevertheless, - there are cases where some adjustments are necessary. -

- - -

- Basically, all the setup of the specifics or a system is done in the - ./configure script that is run first. This script finds out about - operating system, processor, and the like, and then goes on testing - whether certain features are present, or if their absence can be - worked around. - ./configure is not made for human eyes. It is in fact only a - script generated by the autoconf program from the files - configure.in and aclocal.m4 in the top-level directory of - deal.II. The first contains the order in which - macros are called that test for features, interspersed by shell - script snippets that do actions depending on the results of the - macros. The second file contains the user-defined macros used in - configure.in (most macros are already predefined by autoconf). - To understand how all this works together, you will have to have some, though - not a whole lot of, - knowledge of both Unix shell scripting as well as of autoconf -

+ deal.II uses very few + POSIX specific system + features and is otherwise fairly ISO (1998) C++ Standard compliant. -

- At the end of running ./configure, it creates output files by - replacing all occurrences of variables like @var@ in input files - by the value of the respective environment variable in - the configure shell script. By convention, input files have a - file ending .in; the two most important input/output file pairs - are common/Make.global_options - and common/Make.global_options.in as well as - include/deal.II/base/config.h.in - and include/deal.II/base/config.h. + Consequently, there is a good chance that deal.II + will run on a reasonably well behaved system besides the ones listed + in the ReadMe. Nevertheless, + there are cases where some adjustments are necessary.

- - -

Quick porting

+

Unknown compiler

- If you find something that does not work on your system, then the - quickest way to make deal.II run on your system - is to run configure and change things in - common/Make.global_options by hand so that it works for - you. The downside is that - this file is overwritten next time you run ./configure. -

- -

- Most often, problems on new systems are caused by the compiler not - accepting certain flags, crashing or producing invalid code on - optimization flags, not supporting shared libraries, and the like. - All these problems can be solved by changing - common/Make.global_options, e.g. by setting the variable - enable-shared to no, or by changing the compiler flags in - the variables CXXFLAGS.g (for debug mode) or CXXFLAGS.o (for - optimized mode). The most important variables in - common/Make.global_options are - listed here. + Currently, the deal.II CMake Buildsystem + recognizes + gcc, + clang, as well as + icc, and + sets up reasonable default compiler flags. +

- - -

Portable porting

+

Porting to a new platform

- While the measures shown above make deal.II run - on your system, it does not help other users. Neither does it mean - that the next version will run on your system unless you do the same - changes over again. There are basically two ways to help us make - deal.II run on your system by default: + deal.II should support almost all reasonably + POSIX compliant + platforms out of the box. Nevertheless, the following bits of + information might help:

+

Cross compiling

+

+ It is possible to use CMake to cross compile + deal.II for a foreign platform. Further + information on that topic can be found int the CMake + wiki.


diff --git a/deal.II/doc/development/toc.html b/deal.II/doc/development/toc.html index c889e13924..242aeebfa1 100644 --- a/deal.II/doc/development/toc.html +++ b/deal.II/doc/development/toc.html @@ -57,13 +57,16 @@
  • Porting deal.II to a new system: - deal.II uses the mechanism provided by - GNU autoconf. Therefore, porting to a reasonably - standardized UNIX system should not be too difficult. Other - systems, such as proprietary ones, might or might not work (it is - possible, for example, to use Microsoft Windows); - see the ReadMe - file for more information on supported systems and porting. + + deal.II uses CMake as build system + and is fairly ISO (1998) C++ Standard compliant. + So, porting to a reasonably POSIX compliant + system with a reasonably ISO C++ compliant compiler shouldn't be + much work. Other (mostly proprietary) systems might require more + work. See the ReadMe + file for more information on already supported systems. This + resource gives some hints for porting to unknown platforms.

  • Bugs: -- 2.39.5