diff options
| -rw-r--r-- | INSTALL | 17 | ||||
| -rwxr-xr-x | manual.en.html | 48 | 
2 files changed, 43 insertions, 22 deletions
| @@ -112,11 +112,6 @@ are relevant during the build:   logdir      The top-level directory for log files. Default: <localstatedir>/log - includedir -    The top-level directory for source files to be used in the compilation of -    software using libraries, used only if no directories project is provided. -    Default: <prefix>/include -   libdir      The directory for binary libraries to be used by other software, and the      top-level directory for other architecture-specific files, used for @@ -128,6 +123,15 @@ are relevant during the build:      files for this library, used only if no directories project is provided.      Default: <libdir> + includedir +    The top-level directory for source files to be used in the compilation of +    software using libraries, used only if no directories project is provided. +    Default: <prefix>/include + + archincludedir +    Like includedir but for architecture-specific source files, in case this +    library must install such files. Default: <libdir>/include +   gprdir      The directory for GNAT project files to be used in the building of software      using libraries. If you set this to a directory that GPRbuild and Gnatmake @@ -188,9 +192,10 @@ invoke Gnatprep. You may need to define them if you run Gnatprep manually.   Statedir   Cachedir   Logdir - Includedir   Libdir   Alidir + Includedir + Archincludedir   GPRdir   Localedir   Mandir 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 |