File kbuild-gcc.spec of Package kbuild-gcc

#
# spec file for package kbuild-gcc
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#

%define mainline_gcc 15

Name:           kbuild-gcc
Version:        0
Release:        0
Summary:        metapackage for installing gcc compilers required by kbuild
License:        MIT
BuildRequires:  cross-aarch64-binutils
BuildRequires:  cross-aarch64-gcc48
BuildRequires:  cross-aarch64-gcc7
BuildRequires:  cross-aarch64-gcc13-bootstrap
BuildRequires:  cross-aarch64-gcc%{mainline_gcc}-bootstrap
BuildRequires:  cross-arm-binutils
BuildRequires:  cross-armv7hl-gcc48
BuildRequires:  cross-arm-gcc7
BuildRequires:  cross-arm-gcc13
BuildRequires:  cross-arm-gcc%{mainline_gcc}
BuildRequires:  cross-ppc64le-binutils
BuildRequires:  cross-ppc64le-gcc48
BuildRequires:  cross-ppc64le-gcc7
BuildRequires:  cross-ppc64le-gcc13-bootstrap
BuildRequires:  cross-ppc64le-gcc%{mainline_gcc}-bootstrap
BuildRequires:  cross-s390x-binutils
BuildRequires:  cross-s390x-gcc48
BuildRequires:  cross-s390x-gcc7
BuildRequires:  cross-s390x-gcc13-bootstrap
BuildRequires:  cross-s390x-gcc%{mainline_gcc}-bootstrap
BuildRequires:  gcc%{mainline_gcc}
BuildRequires:  gcc%{mainline_gcc}-c++
Requires:       bc
Requires:       bison
Requires:       dwarves
Requires:       suse-kabi-tools
Requires:       pkgconfig(libtraceevent)
Requires:       cross-aarch64-binutils
Requires:       cross-aarch64-gcc48
Requires:       cross-aarch64-gcc7
Requires:       cross-aarch64-gcc13-bootstrap
Requires:       cross-aarch64-gcc%{mainline_gcc}-bootstrap
Requires:       cross-arm-binutils
Requires:       cross-armv7hl-gcc48
Requires:       cross-arm-gcc7
Requires:       cross-arm-gcc13
Requires:       cross-arm-gcc%{mainline_gcc}
Requires:       cross-ppc64le-binutils
Requires:       cross-ppc64le-gcc48
Requires:       cross-ppc64le-gcc7
Requires:       cross-ppc64le-gcc13-bootstrap
Requires:       cross-ppc64le-gcc%{mainline_gcc}-bootstrap
Requires:       cross-s390x-binutils
Requires:       cross-s390x-gcc48
Requires:       cross-s390x-gcc7
Requires:       cross-s390x-gcc13-bootstrap
Requires:       cross-s390x-gcc%{mainline_gcc}-bootstrap
Requires:       flex
Requires:       gcc48
Requires:       gcc48-c++
Requires:       gcc7
Requires:       gcc7-c++
Requires:       gcc13
Requires:       gcc13-c++
Requires:       gcc%{mainline_gcc}
Requires:       gcc%{mainline_gcc}-c++
Requires:       git-core
Requires:       libelf-devel
Requires:       libopenssl-1_1-devel
Requires:       make
Requires:       boottest-ramdisk-12
Requires:       boottest-ramdisk-15
# Requires:       boottest-ramdisk-16 # 15.5 and later packages cannot be extracted by SLE12 rpm
ExclusiveArch:  x86_64

%description

%prep

%build

%install
mkdir -p %{buildroot}%{_bindir}

# unify arm crosscompiler architecture name
for i in %{_bindir}/armv7hl-suse-linux-gnueabi-*-4.8 ; do
        j=$(echo $i | sed -e 's/armv7hl-/arm-/')
        ln -s $(basename $i) %{buildroot}$j
done

# allow to leave out -gnueabi from arm cross-compilers
for i in {%{buildroot},}%{_bindir}/arm-suse-linux-gnueabi-* ; do
        j=$(echo $i | sed -e 's/-gnueabi//' -e "s|%{buildroot}||")
        ln -s $(basename $i) %{buildroot}$j
done

# gcc-4.8 cross-compilers
mkdir -p %{buildroot}%{_bindir}/gcc48

for i in {%{buildroot},}%{_bindir}/*-4.8; do
        ln -s "../$(basename "$i")" %{buildroot}%{_bindir}/gcc48/"$(basename "$i" -4.8)"
done

# gcc-7 cross-compilers
mkdir -p %{buildroot}%{_bindir}/gcc7
for i in {%{buildroot},}%{_bindir}/*-7; do
        ln -s "../$(basename "$i")" %{buildroot}%{_bindir}/gcc7/"$(basename "$i" -7)"
done

# gcc-13 cross-compilers
mkdir -p %{buildroot}%{_bindir}/gcc13
for i in {%{buildroot},}%{_bindir}/*-13; do
        ln -s "../$(basename "$i")" %{buildroot}%{_bindir}/gcc13/"$(basename "$i" -13)"
done

mkdir -p %{buildroot}%{_bindir}/gcc-current
for i in $(ls /usr/bin/*-%{mainline_gcc} | grep -v linux); do
        ln -s "../$(basename "$i")" %{buildroot}%{_bindir}/gcc-current/"$(basename "$i" -%{mainline_gcc})"
done

%post
%postun

%files
%{_bindir}/*

%changelog
openSUSE Build Service is sponsored by