gprbuild/PKGBUILD
2025-05-17 23:04:25 +02:00

176 lines
4.2 KiB
Bash

# Maintainer: Rod Kay <rodakay5 at gmail dot com>
# Contributor: Pierre-Marie de Rodat <pmderodat on #ada at irc.libera.chat>
# Contributor: Earnestly <zibeon AT googlemail.com>
pkgbase=gprbuild
pkgdesc="Builder for multi-language systems."
pkgname=(libgpr gprbuild gprtools gprname gprslave)
pkgver=25.0.0
pkgrel=1
epoch=1
arch=(i686 x86_64)
url=https://github.com/AdaCore/gprbuild/
license=(GPL3 custom)
depends=(gcc-ada xmlada)
makedepends=(gprbuild python-sphinx)
source=("gprbuild-${pkgver}::https://github.com/AdaCore/gprbuild/archive/refs/tags/v$pkgver.tar.gz"
"gprconfig_kb-${pkgver}::https://github.com/AdaCore/gprconfig_kb/archive/refs/tags/v$pkgver.tar.gz"
0001-Makefile-build-relocatable-instead-of-static-binary.patch
gpr.gpr-patch)
sha256sums=(d12f94c1ec0b6e219f6b162f71f57129d22426e7798092f5f85b9ec2cc818bf1
802e6d38a3b110897924a9c16e143cb86360f2dde94bb5b9144c7c391e37b121
96df34fab3c61790a7af8db2659a59ce9c8f767d712e9d999e50778bce259db1
b4a31b4f23c1a040eebad26aff6c771d04afe0b9d7da19c97ef9fde9bceed3db)
_gprbuild_src=gprbuild-$pkgver
_gprconfig_kb_src=gprconfig_kb-$pkgver
prepare()
{
cd $srcdir/$_gprbuild_src
patch -Np0 -i $srcdir/0001-Makefile-build-relocatable-instead-of-static-binary.patch
patch -Np0 -i $srcdir/gpr.gpr-patch # Rename 'libgpr.so' to 'libgpr-gnat.so' to prevent name clash with the 'grpc' package.
ln -sfT $srcdir/gprconfig_kb-$pkgver/db/ share/gprconfig
# GPRbuild hard-codes references to /usr/libexec, but ArchLinux packages
# must use /usr/lib instead.
#
sed -i 's/libexec/lib/g' \
doinstall gprbuild.gpr \
$srcdir/$_gprconfig_kb_src/db/compilers.xml \
$srcdir/$_gprconfig_kb_src/db/linker.xml \
$srcdir/$_gprconfig_kb_src/db/gnat.xml \
$srcdir/$_gprconfig_kb_src/db/aamp.xml
}
build()
{
cd $srcdir/$_gprbuild_src
export OS=UNIX
ADA_FLAGS="$CFLAGS"
ADA_FLAGS="${ADA_FLAGS//-Wformat}"
ADA_FLAGS="${ADA_FLAGS//-Werror=format-security}"
GPRBUILD_OPTIONS="-R -cargs $ADA_FLAGS -largs $LDFLAGS -gargs"
make BUILD=production setup
make GPRBUILD_OPTIONS="$GPRBUILD_OPTIONS" libgpr.build
make GPRBUILD_OPTIONS="$GPRBUILD_OPTIONS" build
cd doc
make html \
1> doc-make-1.log \
2> doc-make-2.log
}
_install_licenses()
{
cd $srcdir/$_gprbuild_src
# Install the license.
#
install -D -m644 \
COPYING3 \
$pkgdir/usr/share/licenses/$pkgname/COPYING3
# Install the custom license.
#
install -D -m644 \
COPYING.RUNTIME \
$pkgdir/usr/share/licenses/$pkgname/COPYING.RUNTIME
}
package_libgpr()
{
pkgdesc="Ada library to handle Gnat project files."
depends=(xmlada)
cd $srcdir/$_gprbuild_src
make prefix=$pkgdir/usr libgpr.install
_install_licenses
}
package_gprbuild()
{
depends=(libgpr)
conflicts=(gprbuild-bootstrap gprbuild-bootstrap-debug)
cd $srcdir/$_gprbuild_src
make prefix=$pkgdir/usr install
rm $pkgdir/usr/bin/gprclean
rm $pkgdir/usr/bin/gprconfig
rm $pkgdir/usr/bin/gprinstall
rm $pkgdir/usr/bin/gprls
rm $pkgdir/usr/bin/gprslave
rm $pkgdir/usr/bin/gprname
_install_licenses
# We don't need to distribute the installation script.
#
rm -f -- $pkgdir/usr/doinstall
# Install the knowledge base.
#
cp -fr $srcdir/$_gprconfig_kb_src/db \
$pkgdir/usr/share/gprconfig
}
package_gprtools()
{
conflicts=(gprbuild-bootstrap gprbuild-bootstrap-debug)
cd $srcdir/$_gprbuild_src
mkdir -p $pkgdir/usr/bin
cp exe/production/gprclean $pkgdir/usr/bin
cp exe/production/gprconfig $pkgdir/usr/bin
cp exe/production/gprinstall $pkgdir/usr/bin
cp exe/production/gprls $pkgdir/usr/bin
_install_licenses
}
package_gprname()
{
conflicts=(gprbuild-bootstrap gprbuild-bootstrap-debug)
cd $srcdir/$_gprbuild_src
mkdir -p $pkgdir/usr/bin
cp exe/production/gprname $pkgdir/usr/bin
_install_licenses
}
package_gprslave()
{
cd $srcdir/$_gprbuild_src
mkdir -p $pkgdir/usr/bin
cp exe/production/gprslave $pkgdir/usr/bin
_install_licenses
}