File gprbuild.spec of Package gprbuild
%define _pkg_ver_ 26.0.0
%define _src_ver_ 26.0.0
%define _gprconfig_db_ver_ 26.0.0
Name: gprbuild
Version: %{_pkg_ver_}
Release: 7.1
Summary: The GPRBuild Ada/multilanguage build tool
License: GPL-3.0-or-later
Group: Development/Tools/Building
Url: https://github.com/AdaCore/gprbuild
Source0: %{name}-%{_src_ver_}.tar.gz
Source1: gprconfig_kb-%{_gprconfig_db_ver_}.tar.gz
Patch0: fix-gpr-version-ads.patch
Patch1: make-doc.patch
BuildRequires: gcc-ada
BuildRequires: %{name}-bootstrap
BuildRequires: xmlada-devel
BuildRequires: fdupes
BuildRequires: findutils
BuildRequires: python3-Sphinx
#!BuildIgnore: gcc-PIE
Provides: %{name}-bootstrap = %{version}
Obsoletes: %{name}-bootstrap < %{version}
Requires: gcc-ada
%description
GPRbuild is an advanced build system designed to help automate the construction
of multi-language systems.
%package -n libgpr
Summary: GNAT Project File Library
Group: System/Libraries
%description -n libgpr
Ada library to handle GPRbuild project files.
%package -n libgpr-devel
Summary: Development files for libgpr
Group: Development/Languages/Ada
Requires: libgpr = %{version} xmlada-devel
%description -n libgpr-devel
Ada library to handle GPRbuild project files.
This package provides the files requires to build programs that use libgpr.
%package doc
Summary: Documentation for gprbuild
Group: Documentation/HTML
BuildArch: noarch
%description doc
GPRbuild is an advanced build system designed to help automate the construction
of multi-language systems.
This package provides the documentation in HTML.
%prep
%setup -T -D -b 1 -q -n gprconfig_kb-%{_gprconfig_db_ver_}
%setup -q -n %{name}-%{_src_ver_}
%patch -P 0 -p 1
%patch -P 1 -p 0
%build
%__make prefix=%{_prefix} setup
# make gprbuild
gprbuild -R -p -m %{?_smp_mflags} \
-XBUILD=production \
-XLIBRARY_TYPE=static \
-XXMLADA_BUILD=static \
gprbuild.gpr -largs -s
#make libgpr
for kind in static static-pic relocatable; do
gprbuild -R -p -m %{?_smp_mflags} \
-XBUILD=production \
-XLIBRARY_TYPE=$kind \
-XXMLADA_BUILD=$kind \
gpr/gpr.gpr
done
%__make -C doc html
%install
# install gprbuild tools
gprinstall -p \
--target=%{_target_platform} \
--prefix=%{buildroot}%{_prefix} \
--mode=usage \
--install-name=gprbuild \
-XBUILD=production \
-XINSTALL_MODE=nointernal \
--no-manifest \
gprbuild.gpr
gprinstall -p \
--target=%{_target_platform} \
--prefix=%{buildroot}%{_prefix} \
--mode=usage \
--install-name=gprbuild \
-XBUILD=production \
-XINSTALL_MODE=internal \
--no-manifest \
gprbuild.gpr
# install libgpr
for kind in static static-pic relocatable; do
gprinstall -p \
--target=%{_target_platform} \
--prefix=%{buildroot}%{_prefix} \
-XBUILD=production \
-XLIBRARY_TYPE=$kind \
-XXMLADA_BUILD=$kind \
--build-var=LIBRARY_TYPE \
--build-var=GPR_BUILD \
--build-name=$kind \
--lib-subdir=%{_lib}/gpr.$kind \
--link-lib-subdir=%{_lib} \
--sources-subdir=include/gpr \
--no-manifest \
gpr/gpr.gpr
done
%__rm %{buildroot}%{_prefix}/doinstall
find %{buildroot}%{_datadir}/examples/gprbuild -name .cvsignore -delete
%fdupes %{buildroot}
%__install -m 0755 -d %{buildroot}%{_datadir}/gprconfig
%__install -m 0644 ../gprconfig_kb-%{_gprconfig_db_ver_}/db/*.xml %{buildroot}%{_datadir}/gprconfig
%__install -m 0644 ../gprconfig_kb-%{_gprconfig_db_ver_}/db/*.ent %{buildroot}%{_datadir}/gprconfig
%__install -m 0644 ../gprconfig_kb-%{_gprconfig_db_ver_}/db/gprconfig.xsd %{buildroot}%{_datadir}/gprconfig
%post -n libgpr
%run_ldconfig
%postun -n libgpr
%run_ldconfig
%files
%defattr(-,root,root)
%doc README.md
%license COPYING*
%dir %{_libexecdir}/gprbuild
%dir %{_datadir}/gpr
%dir %{_datadir}/gprconfig
%{_bindir}/gprbuild
%{_bindir}/gprclean
%{_bindir}/gprconfig
%{_bindir}/gprinstall
%{_bindir}/gprls
%{_bindir}/gprname
%{_libexecdir}/gprbuild/gprbind
%{_libexecdir}/gprbuild/gprlib
%{_datadir}/gpr/_default.gpr
%{_datadir}/gprconfig/*.xml
%{_datadir}/gprconfig/*.ent
#{_datadir}/gprconfig/gnat_runtime.mapping
%{_datadir}/gprconfig/gprconfig.xsd
%files -n libgpr
%defattr(-,root,root)
%license COPYING*
%dir %{_libdir}/gpr.relocatable
%{_libdir}/gpr.relocatable/libgpr.so
%{_libdir}/libgpr.so
%files -n libgpr-devel
%defattr(-,root,root)
%dir %{_includedir}/gpr
%{_includedir}/gpr
%dir %{_libdir}/gpr.*
%{_libdir}/gpr.*/*.ali
%{_libdir}/gpr.*/*.a
%{_datadir}/gpr/gpr.gpr
%dir %{_datadir}/examples
%dir %{_datadir}/examples/gprbuild
%{_datadir}/examples/gprbuild/*
%files doc
%defattr(-,root,root)
%{_datadir}/doc/gprbuild
%changelog