blob: bfbb377252cd973957d4a928f9aac231969b5a12 [file] [log] [blame]
#!/usr/bin/make -f
include /usr/share/cdbs/1/rules/debhelper.mk
include /usr/share/cdbs/1/class/gnome.mk
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/rules/autoreconf.mk
include /usr/share/gnome-pkg-tools/1/rules/clean-la.mk
export HOME=$(CURDIR)/fake-home
DEB_BUILD_PARALLEL = 1
DEB_DH_AUTORECONF_ARGS += --as-needed
CFLAGS += -Wno-error
CXXFLAGS += -Wno-error
LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed
# upstream version with epoch
gst_version := $(shell dpkg-parsechangelog | sed -n 's/Version: //p' | cut -d '-' -f 1)
gst_major := 1
gst_minor := 0
gst_abi := $(gst_major).$(gst_minor)
# gstreamer library package names
gst_lib := libgstreamer$(gst_abi)-0
gst_lib_dev := libgstreamer$(gst_abi)-dev
# what gstreamer version is needed
gst_lib_dev_dep := $(gst_lib_dev) (>= 1.14.4)
gst_pkgname := gstreamer$(gst_abi)
gst_deb_abi := $(gst_abi)-0
# gst-plugins-base library package names
gst_plugins_base_lib := libgstreamer-plugins-base$(gst_deb_abi)
gst_plugins_base_lib_dev := libgstreamer-plugins-base$(gst_abi)-dev
# gst-plugins-base library shlibs
gst_plugins_base_lib_dep := "$(gst_plugins_base_lib) (>= $(gst_version))"
gst_gl_lib := libgstreamer-gl$(gst_deb_abi)
gst_gl_lib_dep := "$(gst_gl_lib) (>= $(gst_version))"
gst_extra_build_depends += libasound2-dev (>= 0.9.0) [linux-any]
gst_extra_build_depends += , libgudev-1.0-dev (>= 143) [linux-any]
gst_extra_build_depends += , libwayland-dev (>= 1.4.0) [linux-any]
gst_extra_build_depends += , libdrm-dev (>= 2.4.55) [linux-any]
gst_extra_build_depends += , libgbm-dev [linux-any]
gst_extra_build_depends += , wayland-protocols (>= 1.4) [linux-any]
# debug package
DEB_DH_STRIP_ARGS += --dbg-package=$(gst_pkgname)-plugins-base-dbg
DEB_COMPRESS_EXCLUDE = .sgml .devhelp .ps .pdf
# disable all CPU specific optimizations in commands launched by this Makefile
# using liboil; this is to work around liboil related build failures which
# are not specially interesting to catch on buildds as these might run very
# specific hardware
OIL_CPU_FLAGS := 0
export OIL_CPU_FLAGS
# The plugins are basically the same.
# Link special names to a template file.
# still need "*.install" to be done by hand
PLUGINS += plugins-base x gl
ifeq ($(DEB_HOST_ARCH_OS),linux)
PLUGINS += alsa
endif
VERSIONIZE += \
plugins-base-apps.install \
plugins-base-apps.manpages \
ifneq ($(DEB_HOST_ARCH_OS),hurd)
cdparanoia := debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/gstreamer-$(gst_abi)/libgstcdparanoia.so
endif
# Let's decide the package name and url depending on the distribution
DISTRO = "$(shell dpkg-vendor --query vendor)"
GST_PACKAGE_NAME := "GStreamer Base Plugins"
CFLAGS += -I$(shell realpath extinc)
# setup links for packages
pre-build::
mkdir -p extinc/linux
find /usr/src/*/include/uapi -name ion.h -exec cp {} extinc/linux \;
find /usr/src/*/include/uapi -name dma-buf.h -exec cp {} extinc/linux \;
find /usr/src/*/include/generated/uapi/linux -name version.h -exec cp {} extinc/linux \;
for p in $(PLUGINS); do \
rm -f debian/$(gst_pkgname)-$$p.install; \
sed \
-e 's/@GST_ABI@/$(gst_abi)/g' \
-e 's,@cdparanoia@,$(cdparanoia),g' \
debian/gstreamer-$$p.install \
>debian/$(gst_pkgname)-$$p.install; \
done
for f in $(VERSIONIZE); do \
sed 's/@GST_ABI@/$(gst_abi)/g' debian/gstreamer-$$f \
>debian/$(gst_pkgname)-$$f; \
done
rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).install
sed 's/@GST_ABI@/$(gst_abi)/g' \
debian/libgstreamer-plugins-base.install \
>debian/libgstreamer-plugins-base$(gst_deb_abi).install
rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).symbols
cp debian/libgstreamer-plugins-base.symbols \
debian/libgstreamer-plugins-base$(gst_deb_abi).symbols
rm -f debian/libgstreamer-plugins-base$(gst_abi)-dev.install
sed 's/@GST_ABI@/$(gst_abi)/g' \
debian/libgstreamer-plugins-base-dev.install \
>debian/libgstreamer-plugins-base$(gst_abi)-dev.install
rm -f debian/libgstreamer-gl$(gst_deb_abi).install
sed 's/@GST_ABI@/$(gst_abi)/g' \
debian/libgstreamer-gl.install \
>debian/libgstreamer-gl$(gst_deb_abi).install
rm -f debian/libgstreamer-gl$(gst_deb_abi).symbols
cp debian/libgstreamer-gl.symbols \
debian/libgstreamer-gl$(gst_deb_abi).symbols
maint: debian/control
DEB_CONFIGURE_EXTRA_FLAGS += \
--disable-failing-tests \
--disable-examples \
--disable-gtk-doc \
--enable-DEBUG \
--enable-debug \
--enable-experimental \
--enable-wayland \
--disable-x11 \
--disable-glx \
--disable-opengl \
--enable-gles2 \
--libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
--with-package-name=$(GST_PACKAGE_NAME) \
--with-install-plugins-helper="/usr/bin/gstreamer-codec-install"
clean::
# get rid of the symlinks
for i in $(PLUGINS); do \
rm -f debian/$(gst_pkgname)-$$i.install; \
rm -f debian/$(gst_pkgname)-$$i.preinst; \
done
for f in $(VERSIONIZE); do \
rm -f debian/$(gst_pkgname)-$$f; \
done
rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).install
rm -f debian/libgstreamer-plugins-base$(gst_deb_abi).symbols
rm -f debian/libgstreamer-plugins-base$(gst_abi)-dev.install
rm -f debian/libgstreamer-gl$(gst_deb_abi).install
rm -f debian/libgstreamer-gl$(gst_deb_abi).symbols
-rm -rf $(CURDIR)/fake-home
binary-post-install/$(gst_pkgname)-plugins-base-apps::
dh_perl -d
DEB_DH_MAKESHLIBS_ARGS_$(gst_plugins_base_lib) += -X "/usr/lib/$(DEB_HOST_MULTIARCH)/gstreamer-$(gst_abi)" -V $(gst_plugins_base_lib_dep) -- -c4
DEB_DH_MAKESHLIBS_ARGS_$(gst_gl_lib) += -X "/usr/lib/$(DEB_HOST_MULTIARCH)/gstreamer-$(gst_abi)" -V $(gst_gl_lib_dep) -- -c4
DEB_INSTALL_DOCS_ALL += debian/README.Debian NEWS
DEB_SHLIBDEPS_INCLUDE += debian/libgstreamer-plugins-base$(gst_deb_abi)/usr/lib/$(DEB_HOST_MULTIARCH)
DEB_SHLIBDEPS_INCLUDE += debian/libgstreamer-gl$(gst_deb_abi)/usr/lib/$(DEB_HOST_MULTIARCH)
# Disable inclusion of large upstream ChangeLog
DEB_INSTALL_CHANGELOGS_ALL :=
common-binary-fixup-arch::
mkdir -p $(CURDIR)/fake-home
HOME=$(CURDIR)/fake-home \
LD_LIBRARY_PATH=debian/libgstreamer-plugins-base$(gst_deb_abi)/usr/lib/$(DEB_HOST_MULTIARCH):$(LD_LIBRARY_PATH) \
dh_gstscancodecs
rm -rf $(CURDIR)/fake-home
force:
.PHONY: maint force