From ea638efe9bfb930b2176596a68b02d67b5a56e82 Mon Sep 17 00:00:00 2001 From: wolf Date: Wed, 29 Nov 2000 09:23:48 +0000 Subject: [PATCH] Entirely rewrite the porting page. git-svn-id: https://svn.dealii.org/trunk@3511 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/doc/porting.html | 169 ++++++++++++++++++++++++++++++--------- 1 file changed, 130 insertions(+), 39 deletions(-) diff --git a/deal.II/doc/porting.html b/deal.II/doc/porting.html index 7e099ab741..c172197f1a 100644 --- a/deal.II/doc/porting.html +++ b/deal.II/doc/porting.html @@ -10,47 +10,138 @@ -

Porting deal.II to new systems

- -

Attention: before starting a port to a new system, check -the readme file for your system.

- -

Compiler flags

- -A configuration by setting the CXXFLAGS variable will soon be -supported. - -

Configuration file

- -

Configurations must be done in the file configure.in of -the root directory of deal.II. At the end, look for -a section of the structure -

-case "$target" in
-   *-linux*) ...;;
-   *-aix*) ...;;
-esac
-
-case "$target" in
-   alpha*-linux*) ...;;
-esac
-
-The first case block allows you to adjust parameters for a certain -operating system, the second for an operating system/machine -configuration.

- -

Enable/disable configured options

- -

Some of the features of the library are turned on and off by ---enable-xxx and --with-xxx=yyy options to -configure. These user-supplied parameters can be changed by modifying -related variables: for example, to turn off shared libraries on aix, -enter the following in the operating system case-block -

-   *-aix*) enableshared=no ;;
-
+

Porting deal.II to new systems

+ +

+ Since deal.II uses very few system dependent + features, there is a good chance that it might also run on other + systems besides the one listed in the + ReadMe file. Nevertheless, + there are often cases where some adjustments are necessary. We will + try to give you an impression on what might have to be done in such + cases here. +

+ + +

+ 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). +

+ +

+ When the ``configure'' script is run on the shell, it writes its + results into the file ``common/Make.global_options'' that contains + definitions of all compiler flags to be used, as well as paths to + programs and other options. In fact, ``configure'' rather takes the + file ``common/Make.global_options.in'' and replaces all occurences + of variables ``@var@'' by the value of the respective variable in + the ``configure'' shell script. +

+ + + +

Quick porting

+ +

+ 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'' so that it works for you. Note 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 ``CXXFLAGSG'' (for debug mode) or ``CXXFLAGSO'' (for + optimized mode). +

+ + + +

Portable porting

+ +

+ 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: +

+

+ + +

Cheap porting

+ +

+ If for some reason you cannot get deal.II to run + on your system, or if you don't have the expertise to dig into the + low-level parts of your system, and if you can provide a test + account, you may ask us to try to get things running on your + machine. Please note that we can't promise to do that as this is + largely a volunteer project and we can only do it if time + permits! Nevertheless, we have an interest to have the library + running on as many platforms as possible, so the odds are not that + bad that we will find some spare time. +

+
-- 2.39.5