diff options
Diffstat (limited to 'manual.en.html')
-rwxr-xr-x | manual.en.html | 48 |
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/" & 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 & "/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 |