1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all optimize=-lto
export DEB_CXXFLAGS_MAINT_APPEND += -Wno-error=free-nonheap-object -include cstdint
include /usr/share/dpkg/pkg-info.mk
IGC_PATCH = $(shell sed -n -r 's/.*[0-9]+\.[0-9]+\.([0-9]+).*/\1/p;q' debian/changelog)
LLVM_VERSION = 16
LLVM_UPSTREAM_VERSION = 16.0.6
VENDOR_DIRS = llvm-project vc-intrinsics
TAR_OPTIONS = --sort=name --mtime=@0 --owner=0 --group=0 --numeric-owner --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime
%:
dh $@ --builddir build/
VENDOR_TARBALL_STUB = intel-graphics-compiler2_$(DEB_VERSION_UPSTREAM).orig
vendor-tarball-sanity-check:
for i in $(VENDOR_DIRS); do \
if [ -e ../$(VENDOR_TARBALL_STUB)-$${i}.tar.xz ]; then \
echo "../$(VENDOR_TARBALL_STUB)-$${i}.tar.xz already exists, bailing!"; exit 1; fi; done
vendor-deps:
rm -rf $(VENDOR_DIRS)
git clone https://github.com/intel/vc-intrinsics vc-intrinsics
# try to get a minimal llvm tree, .git needs to be preserved
git clone -b llvmorg-16.0.6 --depth 50 --single-branch https://github.com/llvm/llvm-project llvm-project
rm -rf llvm-project/*/test
git clone -b ocl-open-160 https://github.com/intel/opencl-clang llvm-project/llvm/projects/opencl-clang
git clone -b llvm_release_160 https://github.com/KhronosGroup/SPIRV-LLVM-Translator llvm-project/llvm/projects/llvm-spirv
for i in vc-intrinsics llvm-project/llvm/projects/opencl-clang llvm-project/llvm/projects/llvm-spirv; do \
rm -rf $${i}/.git; done
vendor-tarball: vendor-tarball-sanity-check vendor-deps
for i in $(VENDOR_DIRS); do \
tar $(TAR_OPTIONS) -caf ../$(VENDOR_TARBALL_STUB)-$${i}.tar.xz $${i}; done
set-gitconfig:
if [ -z "`git config get user.email`" ]; then cd llvm-project; git config user.email "BUILD@org.none"; fi
if [ -z "`git config get user.name `" ]; then cd llvm-project; git config user.name "BUILD";fi
override_dh_clean:
for i in $(VENDOR_DIRS); do \
rm -f ../$${i}; done
dh_clean
override_dh_auto_configure: set-gitconfig
for i in $(VENDOR_DIRS); do \
ln -sf $(CURDIR)/$${i} ..; done
dh_auto_configure -- \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
-DFETCHCONTENT_FULLY_DISCONNECTED=ON \
-DIGC_OPTION__API_ENABLE_OPAQUE_POINTERS=ON \
-DIGC_OPTION__ARCHITECTURE_TARGET='Linux64' \
-DIGC_OPTION__LINK_KHRONOS_SPIRV_TRANSLATOR=ON \
-DIGC_OPTION__LLVM_MODE=Source \
-DIGC_OPTION__LLVM_PREFERRED_VERSION=$(LLVM_UPSTREAM_VERSION) \
-DIGC_OPTION__SPIRV_TOOLS_MODE=Prebuilds \
-DIGC_OPTION__USE_PREINSTALLED_SPIRV_HEADERS=ON \
-DIGC_API_PATCH_VERSION=${IGC_PATCH} \
-Wno-dev
execute_after_dh_auto_install:
$(RM) -v debian/tmp/usr/include/igc/cif/CMakeLists.txt
$(RM) -v debian/tmp/usr/include/igc/cif/cif/CMakeLists.txt
$(RM) -v debian/tmp/usr/include/igc/cif/readme.txt
$(RM) -v debian/tmp/usr/lib/*/libiga64.so
$(RM) -v debian/tmp/usr/lib/*/libigc.so
override_dh_gencontrol:
dh_gencontrol -- \
-V'llvm:Version=$(LLVM_VERSION)'
override_dh_dwz:
|