Rombobjörn

summaryrefslogtreecommitdiff
path: root/manual.en.html
diff options
context:
space:
mode:
authorBjörn Persson <bjorn@rombobjörn.se>2013-10-08 20:05:56 +0200
committerBjörn Persson <bjorn@rombobjörn.se>2013-10-08 20:05:56 +0200
commitf0bbafed015258350f317558da62dd7be442be3c (patch)
treefc586950141a5130776bee7f764ad520fe10e9be /manual.en.html
parent779e60ca47698eca02da97cdc97ab96d4bfcc5fa (diff)
Documented archincludedir.
Diffstat (limited to 'manual.en.html')
-rwxr-xr-xmanual.en.html48
1 files changed, 32 insertions, 16 deletions
diff --git a/manual.en.html b/manual.en.html
index 1a9e249..b27f463 100755
--- a/manual.en.html
+++ b/manual.en.html
@@ -280,12 +280,6 @@ to create the subdirectory under <var>stage_cachedir</var>.</p></li>
install log files but you may want to create a separate subdirectory under
<var>stage_logdir</var> if your program writes its own log files.</p></li>
-<li><p>Ada specifications, C headers and other source files that are needed for
-compilation of other software that uses your libraries shall be placed under
-<var>Comfignat.Stage_Includedir</var> by build project files, usually under a
-separate subdirectory. Usage project files shall get the directory from the
-preprocessor symbol <var>Includedir</var>.</p></li>
-
<li><p>Binary libraries shall be placed in <var>Comfignat.Stage_Libdir</var>
by build project files. Usage project files shall get the directory from the
preprocessor symbol <var>Libdir</var>.</p></li>
@@ -301,6 +295,21 @@ subdirectory that ALI files are placed in when
<var>alidir</var> = <var>libdir</var>.) Programs shall look for them under
<var>Comfignat.Libdir</var>.</p></li>
+<li><p>Ada specifications, C headers and other source files that are needed for
+compilation of other software that uses your libraries shall be placed under
+<var>Comfignat.Stage_Includedir</var> by build project files, usually under a
+separate subdirectory. Usage project files shall get the directory from the
+preprocessor symbol <var>Includedir</var>. These files should normally be
+architecture-independent.</p></li>
+
+<li><p>If you have architecture-specific source files that you need to make
+available to other software that uses your libraries, then you should refactor
+your code to encapsulate the architecture-specific bits in the compiled code
+and keep the API clean. But if you really must install such files, then you may
+put them under a separate subdirectory of <var>stage_archincludedir</var>.
+Usage project files shall get the directory from the preprocessor symbol
+<var>Archincludedir</var>.</p></li>
+
<li><p>Comfignat puts usage project files in <var>stage_gprdir</var>.</p></li>
<li><p>Locale-specific message catalogs shall be placed in the appropriate
@@ -341,10 +350,6 @@ target architecture.</dd>
<dd>The top-level directory for programs that are intended to be run by other
programs rather than by users.</dd>
-<dt><var>Includedir</var></dt>
-<dd>The top-level directory for source files to be used in the compilation of
-software using libraries.</dd>
-
<dt><var>Libdir</var></dt>
<dd>The directory for binary libraries to be used by other software, and the
top-level directory for other architecture-specific files.</dd>
@@ -354,6 +359,16 @@ top-level directory for other architecture-specific files.</dd>
Ada library information files.</dd>
</dl>
+<dt><var>Includedir</var></dt>
+<dd>The top-level directory for architecture-independent source files to be
+used in the compilation of software using libraries.</dd>
+
+<dt><var>Archincludedir</var></dt>
+<dd>The parent of libraries' separate library-specific directories for
+architecture-specific source files to be used in the compilation of software
+using libraries, for any libraries that absolutely must install such
+files.</dd>
+
<p>Here's an example of what a directories project may look like:</p>
<pre class="example gpr">abstract project System_Directories is
@@ -369,18 +384,19 @@ Ada library information files.</dd>
end case;
Libdir := "/usr/" &amp; Lib;
- Bindir := "/usr/bin";
- Libexecdir := "/usr/libexec";
- Includedir := "/usr/include";
- Alidir := Libdir;
+ Bindir := "/usr/bin";
+ Libexecdir := "/usr/libexec";
+ Includedir := "/usr/include";
+ Alidir := Libdir;
+ Archincludedir := Libdir &amp; "/include";
end System_Directories;</pre>
<p>This directories project belongs in a multiarch operating system where
libraries are kept in either <var>/usr/lib</var> or <var>/usr/lib64</var>
depending on which architecture they are compiled for. The directories project
-sets <var>Libdir</var> and <var>Alidir</var>
-to the right directory for the target architecture based
+sets <var>Libdir</var>, <var>Alidir</var> and <var>Archincludedir</var>
+to the right directories for the target architecture based
on an environment variable. A library project that uses this directories
project will therefore automatically adapt to the current target architecture,
so that 32-bit and 64-bit instances of the library can be installed in parallel