2 # debian/rules for the Debian mesa package 
   3 # Copyright © 2006 Thierry Reding <thierry@gilfi.de> 
   5 # Uncomment this to turn on verbose mode. 
   8 include /usr
/share
/dpkg
/pkg-info.mk
 
  10 DEB_HOST_MULTIARCH ?
= $(shell dpkg-architecture 
-qDEB_HOST_MULTIARCH
) 
  11 DEB_HOST_ARCH      ?
= $(shell dpkg-architecture 
-qDEB_HOST_ARCH
) 
  12 DEB_HOST_ARCH_OS   ?
= $(shell dpkg-architecture 
-qDEB_HOST_ARCH_OS
) 
  13 DEB_HOST_ARCH_CPU  ?
= $(shell dpkg-architecture 
-qDEB_HOST_ARCH_CPU
) 
  15 # for finding the correct llvm-config when meson doesn't know about it yet 
  16 export PATH
:=/usr
/lib
/llvm-15
/bin
/:$(PATH
) 
  18 export DEB_BUILD_MAINT_OPTIONS
=optimize
=-lto
 
  20 ifeq (,$(filter $(DEB_HOST_ARCH
), armhf ppc64el sh3 sh4
)) 
  22         $(shell DEB_CFLAGS_MAINT_APPEND
=-Wall DEB_CXXFLAGS_MAINT_APPEND
=-Wall dpkg-buildflags 
--export=configure
) 
  24   ifneq (,$(filter $(DEB_HOST_ARCH
), armhf
)) 
  25   # Workaround for a variant of LP: #725126 
  27         $(shell DEB_CFLAGS_MAINT_APPEND
="-Wall -fno-optimize-sibling-calls" DEB_CXXFLAGS_MAINT_APPEND
="-Wall -fno-optimize-sibling-calls" dpkg-buildflags 
--export=configure
) 
  29     ifneq (,$(filter $(DEB_HOST_ARCH
), ppc64el
)) 
  30     # Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/5315 
  32         $(shell DEB_CFLAGS_MAINT_APPEND
="-Wall -O2" DEB_CXXFLAGS_MAINT_APPEND
="-Wall -O2" dpkg-buildflags 
--export=configure
) 
  34     # Workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83143 
  36         $(shell DEB_CFLAGS_MAINT_APPEND
="-Wall -O1" DEB_CXXFLAGS_MAINT_APPEND
="-Wall -O1" dpkg-buildflags 
--export=configure
) 
  42 GALLIUM_DRIVERS 
= swrast
 
  43 VULKAN_DRIVERS 
= swrast
 
  46 confflags_DRI3 
= -Ddri3
=disabled
 
  47 confflags_OSMESA 
=  -Dosmesa
=true
 
  48 confflags_SSE2 
= -Dsse2
=true
 
  50 # hurd doesn't do direct rendering 
  51 ifeq ($(DEB_HOST_ARCH_OS
), hurd
) 
  52         confflags_DIRECT_RENDERING 
= -Dglx-direct
=false
 
  53         confflags_GBM 
= -Dgbm
=disabled
 
  55         GALLIUM_DRIVERS 
+= r300 r600 asahi kmsro
 
  57         confflags_DIRECT_RENDERING 
= -Dglx-direct
=true
 
  58         confflags_GBM 
= -Dgbm
=enabled
 
  59         confflags_GALLIUM 
+= -Dgallium-extra-hud
=true
 
  60         confflags_GALLIUM 
+= -Dgallium-vdpau
=enabled
 
  61         confflags_GALLIUM 
+= -Dlmsensors
=enabled
 
  63   # radv/lavapipe needs LLVM and the Vulkan loader, so only build on the subset of 
  64   # arches where we have LLVM enabled and where the Vulkan loader is built. 
  65   ifneq (,$(filter $(DEB_HOST_ARCH
), amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el s390x sparc64
)) 
  66         VULKAN_DRIVERS 
+= amd swrast
 
  69   # Only enable amd on riscv64, swrast needs CPU JIT support which doesn't work properly yet 
  70   ifneq (,$(filter $(DEB_HOST_ARCH
), riscv64
)) 
  72         confflags_GALLIUM 
+= -Ddraw-use-llvm
=false
 
  75   ifeq ($(DEB_HOST_ARCH_OS
), linux
) 
  76         confflags_DRI3 
= -Ddri3
=enabled
 
  77         # Gallium drivers which require kernel support, not yet ported to non-Linux 
  78         GALLIUM_DRIVERS 
+= nouveau virgl
 
  80         # Freedreno requires arm in addition 
  81         ifneq (,$(filter arm arm64
,$(DEB_HOST_ARCH_CPU
))) 
  82                 GALLIUM_DRIVERS 
+= freedreno
 
  85         # etnaviv, tegra, vc4 and v3d kernel support are only available on armhf and arm64 
  86         ifneq (,$(filter $(DEB_HOST_ARCH
), armhf arm64
)) 
  87                 GALLIUM_DRIVERS 
+= etnaviv panfrost svga tegra vc4 v3d
 
  88                 VULKAN_DRIVERS 
+= broadcom freedreno
 
  91         ifneq (,$(filter $(DEB_HOST_ARCH
), armhf arm64 riscv64
)) 
  92                 GALLIUM_DRIVERS 
+= lima
 
  95         ifneq (,$(filter $(DEB_HOST_ARCH
), amd64 i386 x32
)) 
  96                 GALLIUM_DRIVERS 
+= svga
 
  97                 # svga needs xa state tracker 
  98                 confflags_GALLIUM 
+= -Dgallium-xa
=enabled
 
  99                 VULKAN_DRIVERS 
+= intel
 
 102         # Non-Linux ports lack epoll, so wayland isn't ready yet: 
 103         # https://gitlab.freedesktop.org/wayland/wayland/-/issues/72 
 104         # hurd also lacks *_CLOEXEC 
 105         EGL_PLATFORMS 
+= ,wayland
 
 107         ifneq (,$(filter $(DEB_HOST_ARCH
), amd64 arm64 armhf i386 mips64el mipsel powerpc ppc64 ppc64el s390x
)) 
 108                 confflags_VALGRIND 
+= -Dvalgrind
=enabled
 
 111         # WSL supports only amd64 and arm64 
 112         ifneq (,$(filter amd64 arm64
,$(DEB_HOST_ARCH
))) 
 113                 GALLIUM_DRIVERS 
+= d3d12
 
 117   # Build intel drivers on archs where libdrm-intel is installed 
 118   ifneq (,$(filter $(DEB_HOST_ARCH
),amd64 i386 kfreebsd-amd64 kfreebsd-i386 x32
)) 
 119         GALLIUM_DRIVERS 
+= iris crocus
 
 122   # LLVM is required for building r300g, radeonsi and llvmpipe drivers. 
 123   # It's also required for building OpenCL support. 
 124   ifneq (,$(filter $(DEB_HOST_ARCH
), amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64
)) 
 125         GALLIUM_DRIVERS 
+= radeonsi
 
 126         confflags_GALLIUM 
+= -Dllvm
=enabled
 
 127         confflags_GALLIUM 
+= -Dgallium-opencl
=disabled
 
 128         confflags_GALLIUM 
+= -Dgallium-rusticl
=false
 
 130         # nine makes sense only on archs that build wine 
 131         ifneq (,$(filter $(DEB_HOST_ARCH
), amd64 arm64 armel armhf i386 powerpc
)) 
 132                 confflags_GALLIUM 
+= -Dgallium-nine
=true
 
 135         confflags_GALLIUM 
+= -Dllvm
=disabled
 
 138   # build vulkan layers where Vulkan loader is available 
 139   ifneq (,$(filter $(DEB_HOST_ARCH
), amd64 arm64 armel armhf i386 mips64el mipsel powerpc ppc64 ppc64el riscv64 s390x sparc64 x32
)) 
 140         GALLIUM_DRIVERS 
+= zink
 
 141         VULKAN_LAYERS 
+= device-select intel-nullhw overlay
 
 144   ifeq (,$(filter pkg.mesa.nolibva
,$(DEB_BUILD_PROFILES
))) 
 145         confflags_GALLIUM 
+= -Dgallium-va
=enabled
 
 146         confflags_GALLIUM 
+= -Dvideo-codecs
="vc1dec, h264dec, h264enc, h265dec, h265enc" 
 150 ifeq ($(DEB_HOST_ARCH
), i386
) 
 151         confflags_SSE2 
= -Dsse2
=false
 
 155 space 
:= $(empty
) $(empty
) 
 157 GALLIUM_DRIVERS 
:= $(patsubst %,'%',$(GALLIUM_DRIVERS
)) 
 158 GALLIUM_DRIVERS_LIST 
:= $(subst $(space
),$(comma
),$(GALLIUM_DRIVERS
)) 
 159 VULKAN_DRIVERS 
:= $(patsubst %,'%',$(VULKAN_DRIVERS
)) 
 160 VULKAN_DRIVERS_LIST 
:= $(subst $(space
),$(comma
),$(VULKAN_DRIVERS
)) 
 161 VULKAN_LAYERS 
:= $(patsubst %,'%',$(VULKAN_LAYERS
)) 
 162 VULKAN_LAYERS_LIST 
:= $(subst $(space
),$(comma
),$(VULKAN_LAYERS
)) 
 164 confflags_EGL 
= -Dplatforms
="$(EGL_PLATFORMS)" 
 165 confflags_GLES 
= -Dgles1
=disabled 
-Dgles2
=enabled
 
 166 confflags_GALLIUM 
+= -Dgallium-drivers
="[$(GALLIUM_DRIVERS_LIST)]" 
 169         -Ddri-drivers-path
=/usr
/lib
/$(DEB_HOST_MULTIARCH
)/dri \
 
 170         -Ddri-search-path
='/usr/lib/$(DEB_HOST_MULTIARCH)/dri:\$$$${ORIGIN}/dri:/usr/lib/dri' \
 
 171         -Dvulkan-drivers
="[$(VULKAN_DRIVERS_LIST)]" \
 
 172         -Dvulkan-layers
="[$(VULKAN_LAYERS_LIST)]" \
 
 174         -Dshared-glapi
=enabled \
 
 175         -Dgallium-omx
=disabled \
 
 178         -Dlibunwind
=disabled \
 
 180         -Dgallium-va
=disabled \
 
 181         -Dgallium-vdpau
=disabled \
 
 182         -Dgallium-xa
=disabled \
 
 184         -Dmicrosoft-clc
=disabled \
 
 185         $(confflags_DIRECT_RENDERING
) \
 
 189         $(confflags_GALLIUM
) \
 
 191         $(confflags_OSMESA
) \
 
 193         $(confflags_VALGRIND
) 
 198         rm -rf configure bin
/config.guess bin
/config.sub config.h.in
 
 199         rm -rf 
$$(find 
-name Makefile.in
) 
 200         rm -rf bin
/install-sh bin
/ltmain.sh
 
 201         for file in debian
/*.in
; do 
rm -f 
$${file
%%.in
}; done
 
 202         find 
-name 
'*.pyc' -delete
 
 203         find 
-name 
'__pycache__' -delete
 
 206 override_dh_auto_configure
: 
 207         $(buildflags
) dh_auto_configure 
-- \
 
 210 override_dh_auto_install
: 
 212         for file in debian
/*.in
; \
 
 214                 sed 
-e
"s,\$${DEB_HOST_MULTIARCH},$(DEB_HOST_MULTIARCH),g" \
 
 215                         $${file} > $${file
%%.in
}; \
 
 218 # some tests are expected to fail for now, drop this when upstream has 
 219 # better cross-build testing in place and expected failures fixed 
 220 override_dh_auto_test
: 
 223 allpkg 
= $(shell dh_listpackages 
-a
) 
 225 override_dh_installchangelogs
: 
 226         dh_installchangelogs 
-a
 
 227         dh_installchangelogs 
-pmesa-common-dev
 
 231         find debian
/tmp
/ -name 
'*.la' -exec 
rm '{}' ';' 
 233         # Get rid of some files which aren't installed. Do not 
 234         # use -f to ensure we notice disappearing files: 
 235         rm debian
/tmp
/usr
/lib
/*/libglapi.so
 
 236         rm debian
/tmp
/usr
/lib
/*/libEGL_mesa.so
 
 237         rm debian
/tmp
/usr
/lib
/*/libGLX_mesa.so
 
 239         # Copy the hardlinked *_dri.so correctly. 
 240         install -m755 
-d debian
/libgl1-mesa-dri
/usr
/lib
/${DEB_HOST_MULTIARCH}/dri
/ 
 241         mv debian
/tmp
/usr
/lib
/${DEB_HOST_MULTIARCH}/dri
/*_dri.so \
 
 242            debian
/libgl1-mesa-dri
/usr
/lib
/${DEB_HOST_MULTIARCH}/dri
/ 
 244   ifneq ($(DEB_HOST_ARCH_OS
), hurd
) 
 245         # Copy the hardlinked vdpau drivers correctly. 
 246         install -m755 
-d debian
/mesa-vdpau-drivers
/usr
/lib
/${DEB_HOST_MULTIARCH}/vdpau
/ 
 247         mv debian
/tmp
/usr
/lib
/${DEB_HOST_MULTIARCH}/vdpau
/libvdpau
*.so
* \
 
 248            debian
/mesa-vdpau-drivers
/usr
/lib
/${DEB_HOST_MULTIARCH}/vdpau
/ 
 250     ifeq (,$(filter pkg.mesa.nolibva
,$(DEB_BUILD_PROFILES
))) 
 251         # Copy the hardlinked va drivers correctly. 
 252         install -m755 
-d debian
/mesa-va-drivers
/usr
/lib
/${DEB_HOST_MULTIARCH}/dri
/ 
 253         mv debian
/tmp
/usr
/lib
/${DEB_HOST_MULTIARCH}/dri
/*_drv_video.so \
 
 254            debian
/mesa-va-drivers
/usr
/lib
/${DEB_HOST_MULTIARCH}/dri
/ 
 260         # Install bug control and script: 
 261         set 
-e
; for p in 
$(allpkg
); do \
 
 262                 install -d debian
/$$p/usr
/share
/bug
/$$p && \
 
 263                 install -m 
644 debian
/local
/control debian
/$$p/usr
/share
/bug
/$$p && \
 
 264                 install -m 
755 debian
/local
/script  debian
/$$p/usr
/share
/bug
/$$p; \
 
 268         dh_missing 
--fail-missing
 
 270 override_dh_makeshlibs
: 
 271         dh_makeshlibs 
-a 
-- -c4
 
 275                 --builddirectory
=build
/ \
 
 278 # For maintainer use only, generate a tarball: 
 280         git archive 
--format
=tar upstream-experimental 
--prefix=$(DEB_SOURCE
)-$(DEB_VERSION_UPSTREAM
)/ \
 
 281                 | gzip 
-9 > ..
/$(DEB_SOURCE
)_
$(DEB_VERSION_UPSTREAM
).orig.
tar.gz