#!/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=..