llvm/Makefile

98 lines
2.3 KiB
Makefile
Raw Normal View History

merge llvm, clang, compiler-rt and libomp repos * %check: export LD_LIBRARY_PATH because runtimes use external cmake projects that wouldn't find libclang++.so * %check: use LLVM's LIT_XFAIL to mark tests that are expected to fail and don't just delete them * clang: bring over *.patch files * clang: remove build requires tags from clang package that are already defined by main llvm package * clang: remove duplicates found in llvm globals and use %{pkg_datadir} instead of %{install_datadir} * clang: rename and use pkg_name -> pkg_name_clang * clang: use %{pkg_name_clang} instead of %{name} * compiler-rt and libomp: wrap in %if %{without compat_build} * libomp: also build libomp for s390x (See https://github.com/llvm/llvm-project/pull/66081) * libomp: exclude libomp-devel on s390x just like libomp itself * libomp: introduce pkg_name_libomp and cleanup the globals * libomp: remove gdb-plugin (NEED TO CONFIRM IF THIS IS REALLY TRUE) * libomp: filter out flaky libomp test: ompt/teams/distribute_dispatch.c * llvm: add BuildRequires: graphviz to llvm-doc * llvm: use %{pkg_name_llvm} instead of %{name} * make: added temporary Makefile so I can more easily run srpm or rpm builds locally * make: Added local-tmt-vm target (not really useful yet) * rpm: for non-RHEL add prefix like "Jan 05 16:17:06" to every log line This should help in finding out how long things take to build/install/... * rpm: fully specify %files for top-level packages * rpm: make all packages fully qualified * rpm: obsolete llvm-snapshot-builder * rpm: remove BuildRequires: python3-lit because we have it in-tree * rpm: remove BuildRequires: tags for clang and llvm specifics as we're building in-tree * rpm: rename %llvm_srcdir -> %srcdir_llvm * rpm: rename %pkg_name -> %pkg_name_llvm * rpm: use full qualified name in %description * rpm: use region comments in spec file to group by package. This allows editors to fold text to get a better overview * rpmlint: update rc file to reflect clang and compiler-rt (libomp has no rpmlint rc file) * use python-lit from within tree
2023-10-12 09:15:14 +00:00
YYYYMMDD=$(shell date +%Y%m%d)
OUTDIR=$(shell pwd)/out
SPEC=llvm.spec
BUILDDIR=$(shell pwd)/BUILD
BUILDROOTDIR=$(shell pwd)/BUILD
SOURCEDIR=$(shell pwd)
FEDORA_RELEASE=f39
.PHONY: setup
setup:
mkdir -pv $(OUTDIR)
mkdir -pv $(BUILDDIR)
mkdir -pv $(BUILDROOTDIR)
mkdir -pv $(SOURCEDIR)
YYYYMMDD=$(YYYYMMDD) ./.copr/snapshot-info.sh > $(SOURCEDIR)/version.spec.inc
.PHONY: local-srpm
local-srpm: setup
rpmbuild \
--define "yyyymmdd $(YYYYMMDD)" \
--define "_srcrpmdir $(OUTDIR)" \
--define "_sourcedir $(SOURCEDIR)" \
--define "_disable_source_fetch 0" \
-bs $(SPEC)
.PHONY: local-rpm
local-rpm: setup
fedpkg --release $(FEDORA_RELEASE) -v \
local \
--builddir $(BUILDDIR) \
--buildrootdir $(BUILDROOTDIR) \
--define "yyyymmdd $(YYYYMMDD)" \
--define "_disable_source_fetch 0" \
-- $(SPEC)
.PHONY: local-clean
local-clean:
-rm -rf $(BUILDDIR)
-rm -rf $(BUILDROOTDIR)
-rm -rf $(OUTDIR)
-rm -f *.txt
-rm -f *.tar.xz
-rm -f *.tar.xz.sig
-rm -rf x86_64
-rm -rf noarch
-rm -rf *.src.rpm
2024-05-16 13:57:59 +00:00
-rm -rf /tmp/lto-llvm-*.o
merge llvm, clang, compiler-rt and libomp repos * %check: export LD_LIBRARY_PATH because runtimes use external cmake projects that wouldn't find libclang++.so * %check: use LLVM's LIT_XFAIL to mark tests that are expected to fail and don't just delete them * clang: bring over *.patch files * clang: remove build requires tags from clang package that are already defined by main llvm package * clang: remove duplicates found in llvm globals and use %{pkg_datadir} instead of %{install_datadir} * clang: rename and use pkg_name -> pkg_name_clang * clang: use %{pkg_name_clang} instead of %{name} * compiler-rt and libomp: wrap in %if %{without compat_build} * libomp: also build libomp for s390x (See https://github.com/llvm/llvm-project/pull/66081) * libomp: exclude libomp-devel on s390x just like libomp itself * libomp: introduce pkg_name_libomp and cleanup the globals * libomp: remove gdb-plugin (NEED TO CONFIRM IF THIS IS REALLY TRUE) * libomp: filter out flaky libomp test: ompt/teams/distribute_dispatch.c * llvm: add BuildRequires: graphviz to llvm-doc * llvm: use %{pkg_name_llvm} instead of %{name} * make: added temporary Makefile so I can more easily run srpm or rpm builds locally * make: Added local-tmt-vm target (not really useful yet) * rpm: for non-RHEL add prefix like "Jan 05 16:17:06" to every log line This should help in finding out how long things take to build/install/... * rpm: fully specify %files for top-level packages * rpm: make all packages fully qualified * rpm: obsolete llvm-snapshot-builder * rpm: remove BuildRequires: python3-lit because we have it in-tree * rpm: remove BuildRequires: tags for clang and llvm specifics as we're building in-tree * rpm: rename %llvm_srcdir -> %srcdir_llvm * rpm: rename %pkg_name -> %pkg_name_llvm * rpm: use full qualified name in %description * rpm: use region comments in spec file to group by package. This allows editors to fold text to get a better overview * rpmlint: update rc file to reflect clang and compiler-rt (libomp has no rpmlint rc file) * use python-lit from within tree
2023-10-12 09:15:14 +00:00
.PHONY: local-list-check
local-list-check: setup
fedpkg --release $(FEDORA_RELEASE) -v \
local \
--builddir $(BUILDDIR) \
--buildrootdir $(BUILDROOTDIR) \
--define "yyyymmdd $(YYYYMMDD)" \
--define "_disable_source_fetch 0" \
-- $(SPEC) -bl
.PHONY: local-prep
local-prep: setup
fedpkg --release $(FEDORA_RELEASE) -v \
prep \
--builddir $(BUILDDIR) \
--buildrootdir $(BUILDROOTDIR) \
--define "yyyymmdd $(YYYYMMDD)" \
--define "_disable_source_fetch 0" \
-- $(SPEC)
.PHONY: local-tmt-vm
local-tmt-vm:
# This is to ensure the required packages are installed
rpm -q tmt tmt+provision-virtual
# This is to check if you've started libvirt
# If this fails, run: sudo systemctl start libvirtd
# systemctl status libvirtd --no-pager
# In case of: Failed to boot testcloud instance (authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage')
# Add yourself to libvirt group: sudo usermod -a -G libvirt $USER
cat /etc/group | grep libvirt | grep $(USER)
tmt \
-c distro=fedora-rawhide \
-c arch=x86_64 \
-c snapshot=20240124
run \
-avv \
provision \
-h virtual.testcloud \
-c system \
-i fedora-rawhide \
prepare \
-h install \
-c fedora-llvm-team/llvm-snapshots-big-merge-20240124 \
test \
report