Björn Persson cd2885e
-- This file helps GNAT project files to work in a multilib system.
Björn Persson 1c6dc5d
-- Copyright 2009 - 2015 B. Persson, Bjorn@Rombobeorn.se
Björn Persson cd2885e
-- You may do whatever you want with this code as long as you acknowledge the
Björn Persson cd2885e
-- author's copyright.
Björn Persson cd2885e
Björn Persson cd2885e
-- GNAT project files for packaged libraries need to point to architecture-
Björn Persson cd2885e
-- specific files in /usr/lib or /usr/lib64 (or other architecture-specific
Björn Persson cd2885e
-- directories). To work correctly in a multilib system they should import
Björn Persson 61301f8
-- this file and use the variables it defines, for example like this:
Björn Persson cd2885e
--
Björn Persson cd2885e
--    for Library_Dir use Directories.Libdir;
Björn Persson 61301f8
--    for Library_ALI_Dir use Directories.Alidir & "/example_library";
Björn Persson cd2885e
--
Björn Persson 1b5f8f0
-- Information on what the hardware platform is comes from the environment
Björn Persson cd2885e
-- variable HARDWARE_PLATFORM, which is defined in /etc/profile.d/ and can be
Björn Persson cd2885e
-- changed with the command "setarch" or overridden by a command line parameter.
Björn Persson cd2885e
-- It may be undefined in a non-interactive shell, so automated build scripts
Björn Persson cd2885e
-- should probably define it themselves or use the command line parameter. RPM
Björn Persson 1b5f8f0
-- spec files should simply use the macros that are defined in macros.gnat.
Björn Persson cd2885e
Björn Persson c90fb97
abstract project Directories is
Björn Persson cd2885e
Björn Persson 1c6dc5d
   type Platform_Type is ("i386", "x86_64", "ppc", "ppc64", "ppc64le",
Björn Persson 1c6dc5d
                          "s390", "s390x",
Björn Persson 2b6ef82
                          "sparc", "sparc64", "arm", "armv7l", "aarch64",
Björn Persson 2b6ef82
                          "alpha", "ia64", "sh");
Björn Persson cd2885e
   Hardware_Platform : Platform_Type := external ("HARDWARE_PLATFORM");
Björn Persson cd2885e
Björn Persson cd2885e
   Lib := "";
Björn Persson cd2885e
   case Hardware_Platform is
Björn Persson 2b6ef82
      when "i386" | "ppc" | "s390" | "sparc" | "arm" | "armv7l" | "alpha" |
Björn Persson 2b6ef82
           "ia64" | "sh" =>
Björn Persson cd2885e
         Lib := "lib";
Björn Persson 1c6dc5d
      when "x86_64" | "ppc64" | "ppc64le" | "s390x" | "sparc64" | "aarch64" =>
Björn Persson cd2885e
         Lib := "lib64";
Björn Persson cd2885e
   end case;
Björn Persson c1662ca
   Libdir := "@exec_prefix@/" & Lib;
Björn Persson cd2885e
Björn Persson 7aebe97
   Bindir         := "@bindir@";
Björn Persson 7aebe97
   Libexecdir     := "@libexecdir@";
Björn Persson 7aebe97
   Includedir     := "@includedir@";
Björn Persson 7aebe97
   Archincludedir := Libdir;
Björn Persson 7aebe97
   Alidir         := Libdir;
Björn Persson cd2885e
Björn Persson cd2885e
end Directories;