From f0bbafed015258350f317558da62dd7be442be3c Mon Sep 17 00:00:00 2001 From: Björn Persson Date: Tue, 8 Oct 2013 20:05:56 +0200 Subject: Documented archincludedir. --- INSTALL | 17 +++++++++++------ manual.en.html | 48 ++++++++++++++++++++++++++++++++---------------- 2 files changed, 43 insertions(+), 22 deletions(-) diff --git a/INSTALL b/INSTALL index 5833d80..9353fe4 100644 --- a/INSTALL +++ b/INSTALL @@ -112,11 +112,6 @@ are relevant during the build: logdir The top-level directory for log files. Default: /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: /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: + 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: /include + + archincludedir + Like includedir but for architecture-specific source files, in case this + library must install such files. Default: /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 stage_cachedir.

install log files but you may want to create a separate subdirectory under stage_logdir if your program writes its own log files.

-
  • Ada specifications, C headers and other source files that are needed for -compilation of other software that uses your libraries shall be placed under -Comfignat.Stage_Includedir by build project files, usually under a -separate subdirectory. Usage project files shall get the directory from the -preprocessor symbol Includedir.

  • -
  • Binary libraries shall be placed in Comfignat.Stage_Libdir by build project files. Usage project files shall get the directory from the preprocessor symbol Libdir.

  • @@ -301,6 +295,21 @@ subdirectory that ALI files are placed in when alidir = libdir.) Programs shall look for them under Comfignat.Libdir.

    +
  • Ada specifications, C headers and other source files that are needed for +compilation of other software that uses your libraries shall be placed under +Comfignat.Stage_Includedir by build project files, usually under a +separate subdirectory. Usage project files shall get the directory from the +preprocessor symbol Includedir. These files should normally be +architecture-independent.

  • + +
  • 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 stage_archincludedir. +Usage project files shall get the directory from the preprocessor symbol +Archincludedir.

  • +
  • Comfignat puts usage project files in stage_gprdir.

  • Locale-specific message catalogs shall be placed in the appropriate @@ -341,10 +350,6 @@ target architecture.

    The top-level directory for programs that are intended to be run by other programs rather than by users.
    -
    Includedir
    -
    The top-level directory for source files to be used in the compilation of -software using libraries.
    -
    Libdir
    The directory for binary libraries to be used by other software, and the top-level directory for other architecture-specific files.
    @@ -354,6 +359,16 @@ top-level directory for other architecture-specific files. Ada library information files. +
    Includedir
    +
    The top-level directory for architecture-independent source files to be +used in the compilation of software using libraries.
    + +
    Archincludedir
    +
    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.
    +

    Here's an example of what a directories project may look like:

    abstract project System_Directories is
    @@ -369,18 +384,19 @@ Ada library information files.
        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;

    This directories project belongs in a multiarch operating system where libraries are kept in either /usr/lib or /usr/lib64 depending on which architecture they are compiled for. The directories project -sets Libdir and Alidir -to the right directory for the target architecture based +sets Libdir, Alidir and Archincludedir +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 -- cgit v1.2.3