nx-libs/debian/rules
2025-08-08 20:00:36 +02:00

143 lines
5.7 KiB
Makefile
Executable File

#!/usr/bin/make -f
NULL =
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/buildflags.mk
include /usr/share/dpkg/architecture.mk
export LIBDIR = "/usr/lib/$(DEB_HOST_MULTIARCH)"
export LIBEXECDIR = "$(LIBDIR)/nx/bin"
export INCLUDEDIR = "/usr/include/$(DEB_HOST_MULTIARCH)"
VENDOR_DEBIAN := 0
RELEASE_VER := 0
# detect VENDOR_* variables and RELEASE_VER{,_MAJOR,_MINOR}
VENDOR_DEBIAN := $(shell { dpkg-vendor --is 'Debian' && echo 'yes'; } || { dpkg-vendor --is 'Raspbian' && echo 'yes'; })
ifeq ($(VENDOR_DEBIAN),yes)
RELEASE_VER := $(shell /usr/bin/lsb_release -r | cut -d ':' -f'2' | sed -e 's/\s*//g' | cut -d '.' -f'1')
# Newer Debian versions might report "n/a" for testing and unstable.
ifeq ($(RELEASE_VER),n/a)
# On these platforms, the best way to determine the system version is by
# going through "apt-cache policy".
# Note that this should only be the case for either testing or unstable.
# Other systems should have a proper version number.
# This is also why we can just drop any suites/archive names (this is
# what a= means) containing a dash character (e.g., "stable-updates")
# and only pick the first match.
RELEASE_VER := $(shell /usr/bin/apt-cache policy | grep -E 'o=(De|Rasp)bian,' | grep -E 'l=(De|Rasp)bian,' | grep -F 'c=main,' | grep -Eo 'a=[^, ]*' | sed -e 's/^a=//' | grep -v -- '-' | head -n '1')
# Do error checking.
ifneq ($(RELEASE_VER),testing)
ifneq ($(RELEASE_VER),unstable)
$(error Release version could not be determined, sorry. Extracted value: $(RELEASE_VER))
endif
endif
endif
# Let's fake testing's and unstable's "release version"...
ifeq ($(RELEASE_VER),testing)
RELEASE_VER := 999
endif
ifeq ($(RELEASE_VER),unstable)
RELEASE_VER := 9999
endif
else
VENDOR_UBUNTU := $(shell dpkg-vendor --is 'Ubuntu' && echo 'yes')
ifeq ($(VENDOR_UBUNTU),yes)
RELEASE_VER_MAJOR := $(shell lsb_release -r | cut -d ':' -f '2' | sed -e 's/\s*//g' | cut -d '.' -f '1')
RELEASE_VER_MINOR := $(shell lsb_release -r | cut -d ':' -f '2' | sed -e 's/\s*//g' | cut -d '.' -f '2')
endif
endif
# detect when to use libtirpc and when glibc still provides rpc/rpc.h
IMAKE_EXTRA_DEFINES := ""
ifeq ($(VENDOR_DEBIAN),yes)
ifeq ($(shell /bin/bash -c '(( $(RELEASE_VER) >= 10 )) && echo '"'"'yes'"'"),yes)
IMAKE_EXTRA_DEFINES+="-DUseTIRPC=1"
endif
else
ifeq ($(VENDOR_UBUNTU),yes)
ifeq ($(shell /bin/bash -c '(( $(RELEASE_VER_MAJOR) >= 18 )) && echo '"'"'yes'"'"),yes)
IMAKE_EXTRA_DEFINES+="-DUseTIRPC=1"
endif
endif
endif
%:
VERBOSE=1 CONFIGURE="./configure --disable-silent-rules \
--prefix=/usr \
--libdir=$(LIBDIR) \
--includedir=$(INCLUDEDIR) \
--libexecdir=$(LIBEXECDIR) \
--build=$(DEB_BUILD_GNU_TYPE) \
--host=$(DEB_HOST_GNU_TYPE)" dh $@ --no-parallel --with quilt
override_dh_auto_clean:
rm -Rf nx-X11/.build-exports
dh_auto_clean --no-parallel || dh_auto_clean
override_dh_clean:
dh_clean
rm -f nx-X11/config/cf/date.def
override_dh_install:
# strip static libs and remove .la files
rm debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libXcomp.la
strip --strip-debug --remove-section=.comment --remove-section=.note debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libXcomp.a
rm debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libXcompshad.la
strip --strip-debug --remove-section=.comment --remove-section=.note debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libXcompshad.a
rm debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libNX_X11.la
strip --strip-debug --remove-section=.comment --remove-section=.note debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/libNX_X11.a
# remove extras, GL, and other unneeded headers
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/GL/
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/nx-X11/extensions/XK*.h
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/nx-X11/extensions/*Xv*.h
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/nx-X11/extensions/XRes*.h
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/nx-X11/extensions/XIproto.h
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/nx-X11/extensions/XI.h
rm -R debian/tmp/usr/include/$(DEB_HOST_MULTIARCH)/nx-X11/Xtrans/
dh_install
override_dh_missing:
dh_missing --fail-missing
override_dh_auto_install:
PREFIX='/usr' dh_auto_install --no-parallel -Smakefile || \
PREFIX='/usr' dh_auto_install -Smakefile
override_dh_auto_build:
debian/compat.sh
PREFIX='/usr' dh_auto_build --no-parallel -- CDEBUGFLAGS="$(CPPFLAGS) $(CFLAGS)" LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS='$(filter-out -pie,$(LDFLAGS))' IMAKE_DEFINES="$(IMAKE_EXTRA_DEFINES)" || \
PREFIX='/usr' dh_auto_build -- CDEBUGFLAGS="$(CPPFLAGS) $(CFLAGS)" LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS='$(filter-out -pie,$(LDFLAGS))' IMAKE_DEFINES="$(IMAKE_EXTRA_DEFINES)"
override_dh_strip:
dh_strip -plibnx-x11-6 --dbg-package=libnx-x11-6-dbg
dh_strip -plibxcomp3 --dbg-package=libxcomp3-dbg
dh_strip -plibxcompshad3 --dbg-package=libxcompshad3-dbg
dh_strip -pnxagent --dbg-package=nxagent-dbg
dh_strip -pnxproxy --dbg-package=nxproxy-dbg
override_dh_makeshlibs:
dh_makeshlibs -n
# Needed for the libX11 RUNPATH/RPATH link-time hack.
# dh_shlibdeps will follow dependencies within binaries and choke
# on the libX11 dependency, since the SONAME (libX11.*) used while linking
# does not match the later detected SONAME (libNX_X11.*) obtained through
# the libX11 -> libNX_X11 compat symlink.
override_dh_shlibdeps:
dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
get-orig-source:
uscan --noconf --force-download --rename --download-current-version --destdir=..