File debian.rules of Package mediastreamer2

#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
export DH_VERBOSE=1
# Set debhelper options
DEB_BUILD_OPTIONS=nocheck
export pkgname=mediastreamer2
export _topdir=/usr/src/packages
export _builddir=$(_topdir)/BUILD
export _sourcedir=$(_topdir)/SOURCES
export uploaddir=/usr/src/packages/SOURCES
export srcdir=/usr/src/packages/SOURCES
export pkgdir_head=/usr/src/packages/BUILD/debian
#export pkgdir=$(pkgdir_head)/$(pkgname)
export pkgdir=$(pkgdir_head)/tmp
export buildroot=/usr/src/packages/BUILD/debian/tmp
#export buildroot=/usr/src/packages/BUILD/debian/$(pkgname)
# Add support for different Debian based distributions
export VERSION_CODENAME = $(shell cat /etc/os-release | grep VERSION_CODENAME | awk -F= '{print $$2}')
export VERSION_ID = $(shell cat /etc/os-release | grep VERSION_ID | awk -F= '{print $$2}')
export PRETTY_NAME=$(shell cat /etc/*-release | egrep "PRETTY_NAME" | cut -d = -f 2)
export ARCHITECTURE=$(shell dpkg --print-architecture)
export MY_DEB_BUILD_ARCH=$(shell dpkg-architecture -q DEB_BUILD_ARCH)
ifeq ($(findstring arm64,$(ARCHITECTURE)),arm64)
    export ARCHTYPE=aarch64
    export BUILDDIR=obj-$(ARCHTYPE)-linux-gnu
    export LIBDIR=$(ARCHTYPE)-linux-gnu
endif
ifeq ($(findstring amd64,$(ARCHITECTURE)),amd64)
    export ARCHTYPE=x86_64
    export BUILDDIR=obj-$(ARCHTYPE)-linux-gnu
    export LIBDIR=$(ARCHTYPE)-linux-gnu
endif
ifeq ($(findstring armhf,$(ARCHITECTURE)),armhf)
    export ARCHTYPE=arm
    export BUILDDIR=obj-$(ARCHTYPE)-linux-gnueabihf
    export LIBDIR=$(ARCHTYPE)-linux-gnueabihf
endif
ifeq ($(findstring Raspbian,$(PRETTY_NAME)),Raspbian)
    # Found
    export PLATFORM=Raspbian
endif
ifeq ($(findstring Debian,$(PRETTY_NAME)),Debian)
    # Not found
    export PLATFORM=DebianOrUbuntu
endif
ifeq ($(findstring Ubuntu,$(PRETTY_NAME)),Ubuntu)
    # Not found
    export PLATFORM=DebianOrUbuntu
endif
export SOURCES_ARE_HERE=/usr/src/packages/BUILD/
export BUILD_IT_HERE=/usr/src/packages/BUILD/$(BUILDDIR)/
export MS2PLUGIN_DIR=$(pkgdir)/usr/lib/mediastreamer/plugins
export movelibmsqogltolib=false
export nowebcamjpg=true
export movenowebcamjpg=false

%:
	dh $@ --buildsystem=cmake

override_dh_update_autotools_config:

override_dh_autoreconf:

override_dh_auto_configure:
	echo "Different Debian based distros need different patches and adjustments."
	echo PRETTY_NAME=$(PRETTY_NAME)
	echo ARCHITECTURE=$(ARCHITECTURE)
	echo DEB_BUILD_ARCH=$(DEB_BUILD_ARCH)
	echo MY_DEB_BUILD_ARCH=$(MY_DEB_BUILD_ARCH)
	echo PLATFORM=$(PLATFORM)
	echo BUILDDIR=$(BUILDDIR)
	echo LIBDIR=$(LIBDIR)
	echo
	echo pwd=$(shell pwd)
	echo
	echo "Installs $(pkgname)"
	echo _topdir=$(_topdir)
	echo _builddir=$(_builddir)
	echo _sourcedir=$(_sourcedir)
	echo uploaddir=$(uploaddir)
	echo srcdir=$(srcdir)
	echo pkgdir_head=$(pkgdir_head)
	echo pkgdir=$(pkgdir)
	echo buildroot=$(buildroot)
	echo "----------------------------------------"
	if [ "$(VERSION_CODENAME)" = "bookworm" ] || [ "$(VERSION_CODENAME)" = "trixie" ] || [ "$(VERSION_ID)" = "23.10" ] || [ "$(VERSION_ID)" = "24.04" ]; then echo "Debian Unstable, Debian 12, Ubuntu 23.10" ; echo "need ffmpeg5 patch" ; patch -d /usr/src/packages/BUILD/ -p1 < /usr/src/packages/SOURCES/fix-build-ffmpeg5.patch ; else echo "Raspbian 11, Ubuntu 22.04" ; echo "no ffmpeg5 patch needed" ; fi
	#mkdir -pv $(BUILDDIR)
	mkdir -pv $(BUILD_IT_HERE)
	sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-plugin-msqogl.dirs
	sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-plugin-msqogl.install
	sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-plugin-msqogl.links
	sed -i "s|LIBDIR|$(LIBDIR)|g" debian/mediastreamer2-dev.dirs
	#cmake -S /usr/src/packages/BUILD/ -B /usr/src/packages/BUILD/$(BUILDDIR) \
	cmake -S $(SOURCES_ARE_HERE) -B $(BUILD_IT_HERE) \
	  -DCMAKE_C_FLAGS="-Wno-error=implicit-function-declaration -Wno-error=unused-parameter -Wno-error=int-conversion" \
	  -DCMAKE_CXX_FLAGS="-Wno-error=implicit-function-declaration -Wno-error=unused-parameter -Wno-error=int-conversion" \
	  -DCMAKE_MODULE_PATH="$$CMAKE_MODULE_PATH;/usr/src/packages/SOURCES" \
	  -DCMAKE_INSTALL_LIBDIR=lib/$(LIBDIR) \
	  -DCMAKE_INSTALL_PREFIX=/usr \
	  -DCMAKE_PREFIX_PATH="$$CMAKE_PREFIX_PATH;/usr/lib/cmake/ortp/;/usr/lib/" \
	  -Dortp_DIR="/usr/lib/cmake/ortp/" \
	  -DENABLE_STRICT=OFF \
	  -DBUILD_SHARED_LIBS=YES \
	  -DENABLE_STATIC=OFF \
	  -DENABLE_QT_GL=YES \
	  -DENABLE_UNIT_TESTS=OFF \
	  -DENABLE_TOOLS=OFF \
	  -DENABLE_QRCODE=OFF

execute_before_dh_auto_install:
	echo "--- Start execute_before_dh_auto_install ---"
	echo "--- End execute_before_dh_auto_install ---"

execute_after_dh_auto_install:
	echo "--- Start execute_after_dh_auto_install ---"
	# /usr/bin/linphone looks for libmsqogl.so in relative path
	# ../plugins/mediastreamer/libmsqogl.so
	# Patching source code needed to force linphone search for
	# libmsqogl.so in /usr/lib/$(LIBDIR) where libraries are.
	if $(movelibmsqogltolib); then \
	  echo mv -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer/plugins/libmsqogl.so $(buildroot)/usr/lib/$(LIBDIR)/libmsqogl.so ; \
	else \
	  echo "##########################################################" ; \
	  echo "### libmsqogl.so is installed in wrong place           ###" ; \
	  echo "##########################################################" ; \
	  echo "# /usr/bin/linphone looks for libmsqogl.so in            #" ; \
	  echo "# relative path                                          #" ; \
	  echo "# ../plugins/mediastreamer/libmsqogl.so                  #" ; \
	  echo "# or (check folder in AppImage)                          #" ; \
	  echo "# ../lib/mediastreamer/plugins/libmsqogl.so              #" ; \
	  echo "# but libmsqogl.so is installed in                       #" ; \
	  echo "# /usr/lib/$(LIBDIR)/mediastreamer/plugins/libmsqogl.so  #" ; \
	  echo "# libmsqogl.so needs to move to                          #" ; \
	  echo "# /usr/plugins/mediastreamer/libmsqogl.so                #" ; \
	  echo "# check with linphone -> settings -> video -> preview    #" ; \
	  echo "##########################################################" ; \
	  echo "$(MS2PLUGIN_DIR)" ; \
	  mkdir -pv $(MS2PLUGIN_DIR) ; \
	  echo create link instead of: mv -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer/plugins/libmsqogl.so $(MS2PLUGIN_DIR)/libmsqogl.so ; \
	fi
	echo rmdir -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer/plugins
	echo rmdir -v $(buildroot)/usr/lib/$(LIBDIR)/mediastreamer
	# Exchange static camera picture (move nowebcamCIF.jpg to liblinphone-data package)
	# debian.tar.xz has to be changed as well.
	if $(nowebcamjpg); then \
	  if $(movenowebcamjpg); then \
	    rm -vf $(buildroot)/usr/share/images/nowebcamCIF.jpg ; \
	    mkdir -pv $(buildroot)/usr/share/linphone/images ; \
	    cp -v /usr/src/packages/SOURCES/nowebcamCIF.jpg $(buildroot)/usr/share/linphone/images/nowebcamCIF.jpg ; \
	  else \
	    cp -v /usr/src/packages/SOURCES/nowebcamCIF.jpg $(buildroot)/usr/share/images/nowebcamCIF.jpg ; \
	  fi ; \
	else \
	  rm -vf $(buildroot)/usr/share/images/nowebcamCIF.jpg ; \
	  rm -vf $(buildroot)/usr/share/linphone/images/nowebcamCIF.jpg ; \
	  if [ -d "${pkgdir}"/usr/share/images ]; then \
	    rmdir -v $(buildroot)/usr/share/images ; \
	  fi ; \
	  if [ -d "${pkgdir}"/usr/share/linphone/images ]; then \
	    rmdir -v $(buildroot)/usr/share/linphone/images ; \
	  fi ; \
	fi
	# Remove OpenGL files
	rm -rfv $(buildroot)/usr/include/OpenGL
	echo "--- Files that will be packaged ---"
	find $(buildroot)
	echo "--- End files that will be packaged ---"
	echo "--- End execute_after_dh_auto_install ---"

override_dh_auto_test:

override_dh_shlibdeps:
	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
openSUSE Build Service is sponsored by