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