#!/usr/bin/make -f export DH_VERBOSE=1 package = tss2 version = 1045 # debian uses sh by default SHELL := /bin/bash DEBDIR = $(CURDIR)/debian # package name should reflect soname LIBNAME = libtss LIBPKG = $(LIBNAME)0 DEVPKG = $(LIBNAME)-dev LIBSYM = $(LIBNAME).so LIBSONAME = $(LIBNAME).so.0 VERSIONED_LIB = $(LIBNAME).so.0.1 TSSDOC = ibmtss.html # for multiple binaries TMP = $(CURDIR)/debian/tmp DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) # mirror structure for the destination (package's build tree) USRLIB = usr/lib/$(DEB_HOST_MULTIARCH) USRBIN = usr/bin USRINC = usr/include/$(DEB_HOST_MULTIARCH)/$(package) MAN1 = usr/share/man/man1 LIC = usr/share/doc/$(package) DOC = usr/share/doc/$(DEVPKG) # package build directories DESTBIN = $(CURDIR)/debian/$(package)/usr/bin DESTLIB = $(CURDIR)/debian/$(LIBPKG)/usr/lib/$(DEB_HOST_MULTIARCH) DESTINCDEV = $(CURDIR)/debian/$(DEVPKG)/usr/include/$(DEB_HOST_MULTIARCH)/$(package) DESTMAN1 = $(CURDIR)/debian/$(package)/usr/share/man/man1 # tss2 package has copyright DESTLIC = $(CURDIR)/debian/$(package)/$(LIC) # put doc in dev package instead DESTDOC = $(CURDIR)/debian/$(DEVPKG)/$(DOC) %: dh $@ override_dh_auto_clean: make -C utils -f makefile.debian clean # clean up package build dir dh_clean override_dh_auto_build: dh_testdir dh_auto_build # nonstandard variable names are used in place of CFLAGS and LDFLAGS # in addition, CPPFLAGS is added to fully support all hardened # build flags in the upstream buildsystem. CCFLAGS="$(shell dpkg-buildflags --get CFLAGS) " \ CCFLAGS+="$(shell dpkg-buildflags --get CPPFLAGS)" \ LNFLAGS="$(shell dpkg-buildflags --get LDFLAGS)" \ make -C utils -f makefile.debian override_dh_auto_install: mkdir -m 755 -p $(TMP)/$(USRLIB) mkdir -m 755 -p $(TMP)/$(USRBIN) mkdir -m 755 -p $(TMP)/$(USRINC) mkdir -m 755 -p $(TMP)/$(MAN1) mkdir -m 755 -p $(TMP)/$(LIC) mkdir -m 755 -p $(TMP)/$(DOC) mkdir -m 755 -p $(DESTBIN) mkdir -m 755 -p $(DESTLIB) mkdir -m 755 -p $(DESTINCDEV) mkdir -m 755 -p $(DESTMAN1) mkdir -m 755 -p $(DESTLIC) mkdir -m 755 -p $(DESTDOC) # Prefix for namespacing # Pick out executables and copy with namespacing for f in $(CURDIR)/utils/*; do \ if [[ -x $$f && -f $$f && ! $$f =~ .*\..* ]]; then \ cp -p $$f $(TMP)/$(USRBIN)/tss`basename $$f`; \ fi; \ done # For multiple binary packages, install under debian/tmp first cp -auv $(CURDIR)/utils/$(VERSIONED_LIB) $(TMP)/$(USRLIB)/$(VERSIONED_LIB) ln -s $(TMP)/$(USRLIB)/$(VERSIONED_LIB) $(TMP)/$(USRLIB)/$(LIBSONAME) ln -s $(TMP)/$(USRLIB)/$(LIBSONAME) $(TMP)/$(USRLIB)/$(LIBSYM) install -m 644 $(CURDIR)/utils/$(package)/*.h $(TMP)/$(USRINC) install -m 644 $(CURDIR)/utils/man/man1/tss*.1 $(TMP)/$(MAN1) install -m 644 $(CURDIR)/$(TSSDOC) $(TMP)/$(DOC)/$(TSSDOC) install -m 644 $(DEBDIR)/copyright $(TMP)/$(LIC)/copyright # dh_install them into diff. pcakges now # dh_install look into debian/tmp by default cp $(TMP)/$(USRBIN)/* $(DESTBIN) cp $(TMP)/$(USRINC)/* $(DESTINCDEV) cp -p $(TMP)/$(USRBIN)/* $(DESTBIN) # the commands act on the library package # with debian/tmp as the package build directory # dh_install install files into the package build dir dh_install -Pdebian/$(LIBPKG) -p$(LIBPKG) $(USRLIB)/$(VERSIONED_LIB) $(USRLIB) dh_link -Pdebian/$(LIBPKG) -p$(LIBPKG) $(USRLIB)/$(VERSIONED_LIB) $(USRLIB)/$(LIBSONAME) dh_link -Pdebian/$(DEVPKG) -p$(DEVPKG) $(USRLIB)/$(LIBSONAME) $(USRLIB)/$(LIBSYM) cp -p $(TMP)/$(MAN1)/* $(DESTMAN1) cp -p $(TMP)/$(LIC)/copyright $(DESTLIC) cp -p $(TMP)/$(DOC)/$(TSSDOC) $(DESTDOC) # -v option is needed to remove revision number dpkg-gensymbols -v$(version) -p$(LIBPKG) -Pdebian/$(LIBPKG) -Odebian/$(LIBPKG).symbols -c4 dh_makeshlibs -m0 -V "$(LIBPKG) (>= 0.0)" dh_shlibdeps -L$(LIBPKG) -l debian/$(LIBPKG)/usr/lib/$(DEB_HOST_MULTIARCH)