diff options
Diffstat (limited to 'manual.en.html')
| -rwxr-xr-x | manual.en.html | 58 | 
1 files changed, 44 insertions, 14 deletions
| diff --git a/manual.en.html b/manual.en.html index a9d125a..d46954d 100755 --- a/manual.en.html +++ b/manual.en.html @@ -147,7 +147,7 @@ that the project <var>Comfignat</var> defines.</p>    <li><p>If your project file builds a library, then use a subdirectory of    <var>Comfignat.Stage_Includedir</var> for <var>Library_Src_Dir</var>,    <var>Comfignat.Stage_Libdir</var> for <var>Library_Dir</var>, and a -  subdirectory of <var>Comfignat.Stage_Libdir</var> for +  subdirectory of <var>Comfignat.Stage_Alidir</var> for    <var>Library_ALI_Dir</var>.</p></li>    </ul>  </li> @@ -159,8 +159,8 @@ project file without the "<samp>.gp</samp>" suffix. Make it import the project  file that the preprocessor symbol <var>Directories_GPR</var> specifies, but  only if <var>Directories_GPR</var> is defined. Do not import  <var>comfignat.gpr</var>. Use the symbol <var>Includedir</var> in the value of -<var>Source_Dirs</var>, and use <var>Libdir</var> for <var>Library_Dir</var> -and as part of <var>Library_ALI_Dir</var>.</p></li> +<var>Source_Dirs</var>, use <var>Libdir</var> for <var>Library_Dir</var>, and +use <var>Alidir</var> as part of <var>Library_ALI_Dir</var>.</p></li>  <li><p>Write a makefile that includes <var>comfignat.mk</var>. The makefile  shall set the variable <var>build_GPRs</var> to the filename of the @@ -187,7 +187,7 @@ library project Build_Example is     for Object_Dir        use Comfignat.Objdir;     for Library_Src_Dir   use Comfignat.Stage_Includedir & "/example";     for Library_Dir       use Comfignat.Stage_Libdir; -   for Library_ALI_Dir   use Comfignat.Stage_Libdir & "/example"; +   for Library_ALI_Dir   use Comfignat.Stage_Alidir & "/example";  end Build_Example;</pre></div>  <div class="example file"><h5><code>example.gpr.gp</code></h5> @@ -200,7 +200,7 @@ library project Example is     for Library_Kind     use "dynamic";     for Source_Dirs      use ($Includedir & "/example");     for Library_Dir      use $Libdir; -   for Library_ALI_Dir  use $Libdir & "/example"; +   for Library_ALI_Dir  use $Alidir & "/example";     for Externally_Built use "true";  end Example;</pre></div> @@ -284,14 +284,31 @@ install log files but you may want to create a separate subdirectory under  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> +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>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> -<li><p>ALI files and other architecture-specific files shall usually be placed -under a separate subdirectory of <var>Comfignat.Stage_Libdir</var>.</p></li> +<li><p>Ada library information (ALI) files shall be placed under a separate +subdirectory of <var>Comfignat.Stage_Alidir</var> by build project files. Usage +project files shall get the directory from the preprocessor symbol +<var>Alidir</var>.</p></li> + +<li><p>Other architecture-specific files shall usually be placed under a +separate subdirectory of <var>stage_libdir</var>. (It will be the same +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>Comfignat puts usage project files in <var>stage_gprdir</var>.</p></li> @@ -334,12 +351,22 @@ target architecture.</dd>  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> +<dd>The top-level directory for (normally 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>  <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> + +<dt><var>Alidir</var></dt> +<dd>The parent of libraries' separate library-specific directories for +Ada library information files.</dd>  </dl>  <p>Here's an example of what a directories project may look like:</p> @@ -357,16 +384,19 @@ top-level directory for other architecture-specific files.</dd>     end case;     Libdir := "/usr/" & Lib; -   Bindir     := "/usr/bin"; -   Libexecdir := "/usr/libexec"; -   Includedir := "/usr/include"; +   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> 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 |