Package lccrt: Specfile

Name: lccrt
Version: 141516
Release: alt5

Summary: llvm-IR/EIR translation layer
License: Apache-2.0
Group: Development/Other

Url: http://mcst.ru
Source0: %name-%version.tar
Source1: fshl_i4.c
Vcs: http://gitflic.ru/project/e2khome/lccrt
Packager: Michael Shigorin <mike@altlinux.org>

BuildRequires(pre): cmake rpm-macros-cmake
BuildRequires: gcc-c++

Provides: lccrt-blobs = %version-%release
Obsoletes: lccrt-blobs < %version-%release

# looks like lccrt-blobs legacy too
Provides: liblccrt.so()(64bit)

%description
This library handles transition between llvm-IR
and EIR (lcc/e2k one) to facilitate development
of llvm/e2k reusing the optimizations done in
lcc backend to date.

%prep
%setup
sed -i -r 's,lib/(common|irv)/,src/\1/,' CMakeLists.txt

%build
%cmake_insource \
	-DLCCRT_ARCHS=e2k64 \
	-DCC_e2k64=%_bindir/gcc \
	%nil
%make_build
# fshl_i4 kludge (ivk; for rust 1.57 bootstrap)
cd cmake/targets/e2k64
cc %optflags -fPIC -c %SOURCE1 -o fshl_i4.o
ar r liblccrt_s.a fshl_i4.o

%install
%makeinstall_std
mkdir -p %buildroot%_libdir
ln -srf %buildroot{/usr/lib,%_libdir}/liblccrt.so

%files
%doc README.md LICENSE
%_libdir/*
/usr/lib/lccrt/
/usr/lib/liblccrt.so
/usr/include/lccrt.h
# not ready but conflicts with liblccopt if included
%exclude /usr/lib/lccrt/plugin/asm

%changelog
* Mon Mar 04 2024 Michael Shigorin <mike@altlinux.org> 141516-alt5
- kludge for rust: add fshl_i4.c (thx Andrey Burdovitsyn)

* Mon Dec 25 2023 Michael Shigorin <mike@altlinux.org> 141516-alt4
- exclude plugin/asm: lcbe not there yet

* Sun Dec 24 2023 Michael Shigorin <mike@altlinux.org> 141516-alt3
- additional P: to ease migration off lccrt-blobs

* Wed Dec 20 2023 Michael Shigorin <mike@altlinux.org> 141516-alt2
- add P:/O:

* Tue Nov 28 2023 Michael Shigorin <mike@altlinux.org> 141516-alt1
- initial build