Change path of unit files to make it support MA co-installation.
authorAbou Al Montacir <abou.almontacir@sfr.fr>
Sun, 12 Nov 2017 21:24:15 +0000 (22:24 +0100)
committerAbou Al Montacir <abou.almontacir@sfr.fr>
Mon, 18 Dec 2023 22:01:08 +0000 (23:01 +0100)
Bug-Debian: http://bugs.debian.org/73368

(Closes: Bug#73368)

Gbp-Pq: Name fix-units-path-to-be-multi-arch-safe.patch

fpcsrc/packages/fpmkunit/src/fpmkunit.pp
fpcsrc/utils/fpcm/fpcmake.ini

index bfbeb2222a1ecf77a75aeda0872fa2dfd1853fdf..c90e172774f3095d495976e37b508aef4a1e70d2 100644 (file)
@@ -4565,6 +4565,9 @@ begin
   BinInstallDir:='';
   LibInstallDir:='';
   ExamplesInstallDir:='';
+  if GlobalUnitDir = '' then begin
+    GlobalUnitDir := FBaseInstallDir;
+  end;
 end;
 
 
@@ -4911,6 +4914,17 @@ end;
 ****************************************************************************}
 
 procedure TFPCDefaults.CompilerDefaults;
+const
+{$ifdef CPUARMHF}
+  gnu = 'gnueabihf';
+{$endif CPUARMHF}
+{$ifdef CPUARMEL}
+  gnu = 'gnueabi';
+{$endif CPUARMEL}
+{$ifndef CPUARM}
+  gnu = 'gnu';
+{$endif CPUARM}
+  FullTarget = {$I %FPCTARGETCPU%} + '-' + {$I %FPCTARGETOS%} + '-' + gnu;
 var
   BD : String;
 begin
@@ -4921,7 +4935,7 @@ begin
   BD:=FixPath(GetEnvironmentVariable('FPCDIR'), False);
   if BD='' then
     begin
-      BD:='/usr/local/lib/fpc/'+FCompilerVersion;
+      BD:='/usr/lib/' + LowerCase(FullTarget) + '/fpc/'+FCompilerVersion;
       if not DirectoryExists(BD) and
          DirectoryExists('/usr/lib/fpc/'+FCompilerVersion) then
         BD:='/usr/lib/fpc/'+FCompilerVersion;
index 94f61577a917f3ad5e5a6b4bac88c29d43c0c1fa..b20ec47f29b49ed9a15cf180ff3f878d59898542 100644 (file)
@@ -338,6 +338,11 @@ endif
 
 export OS_TARGET OS_SOURCE ARCH CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
 
+ifndef DEB_HOST_MULTIARCH
+DEB_HOST_MULTIARCH=$(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
+endif
+export DEB_HOST_MULTIARCH
+
 [fpmakefpcdetect]
 #####################################################################
 # FPC Binary and Version Detection
@@ -415,7 +420,7 @@ ifeq ($(FPCDIR),wrong)
 ifdef inUnix
 override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
 ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
+override FPCDIR=/usr/lib/${DEB_HOST_MULTIARCH}/fpc/$(FPC_VERSION)
 endif
 else
 override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
@@ -641,7 +646,7 @@ endif
 ifndef INSTALL_BASEDIR
 ifdef UNIXHier
 ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
+INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}/fpc/$(FPC_VERSION)
 else
 INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
 endif
@@ -684,7 +689,7 @@ endif
 # Where to install shared libraries
 ifndef INSTALL_LIBDIR
 ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
+INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}
 else
 INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
 endif
@@ -794,7 +799,7 @@ INSTALL_DATADIR=$(INSTALL_BASEDIR)
 endif
 
 ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
+INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib/${DEB_HOST_MULTIARCH}
 endif
 
 #####################################################################