#!/usr/bin/make -f # debian/rules for the dpkg suite. # Copyright © 2004 Scott James Remnant # Copyright © 2006-2012 Guillem Jover WFLAGS := -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers # Use the in-tree dpkg-buildflags dpkg_buildflags = \ DEB_CFLAGS_MAINT_APPEND="$(WFLAGS)" \ DEB_CXXFLAGS_MAINT_APPEND="$(WFLAGS)" \ $(CURDIR)/run-script perl $(CURDIR)/scripts/dpkg-buildflags.pl # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) confflags += --build=$(DEB_HOST_GNU_TYPE) else confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE) endif # Don't enable everything on all platforms DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS) ifeq ($(DEB_HOST_ARCH_OS),linux) confflags += --with-selinux endif ifeq (,$(filter maintainer-build,$(DEB_BUILD_OPTIONS))) confflags += --disable-silent-rules endif # Create configure script if necessary, automake handles rebuilding it. configure: dh_testdir autoreconf -v -i # Configure the build tree build-tree/config.status: configure dh_testdir install -d build-tree cd build-tree && ../configure $(confflags) \ $(shell $(dpkg_buildflags) --export=configure) \ --prefix=/usr \ --mandir=\$${datadir}/man \ --infodir=\$${datadir}/info \ --sysconfdir=/etc \ --sbindir=/sbin \ --localstatedir=/var \ --with-zlib \ --with-liblzma \ --with-bz2 # Build the package in build-tree build-indep build-arch build: build-tree/config.status dh_testdir cd build-tree && $(MAKE) # Run the test suites check: build dh_testdir ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS))) cd build-tree && $(MAKE) VERBOSE=1 check endif # Install the package underneath debian/tmp install: check dh_testdir dh_testroot dh_prep dh_installdirs cd build-tree && $(MAKE) DESTDIR="$(CURDIR)/debian/tmp" install ifeq (yes,$(shell dpkg-vendor --derives-from Ubuntu && echo yes)) # Ubuntu's «i386» architecture is built for i686 (the Debian default # is i586). sed -ri 's/^(i386[[:space:]]+)[^[:space:]]+/\1i686/' \ $(CURDIR)/debian/tmp/usr/share/dpkg/cputable endif define dpkg-installmanl10n for f in `sed -e 's:\*:*/*:' debian/$(1).manpages`; do \ test -e $$f && \ install -D $$f `echo $$f | sed -e 's:^debian/tmp:debian/$(1):'`; \ done endef # Put together the dpkg and dselect packages binary-arch: install dh_testdir -a dh_testroot -a dh_install --sourcedir=debian/tmp -a dh_installcron -a dh_installlogrotate -a dh_installchangelogs -a ChangeLog* dh_installdocs -a $(call dpkg-installmanl10n,dpkg) $(call dpkg-installmanl10n,dselect) dh_installman -a dh_link -a dh_lintian -a dh_strip -a dh_compress -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a # Make debootstrap life easier on non-Debian based systems by # compressing dpkg.deb with gzip instead of xz. dh_builddeb -pdpkg -- -Zgzip dh_builddeb -a -Ndpkg # Put together the dpkg-dev package binary-indep: install dh_testdir -i dh_testroot -i dh_install --sourcedir=debian/tmp -i dh_installcron -i dh_installchangelogs -i ChangeLog* dh_installdocs -i $(call dpkg-installmanl10n,dpkg-dev) dh_installman -i dh_link -i dh_lintian -i dh_strip -i dh_compress -i dh_fixperms -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i binary: binary-arch binary-indep # Clean up the mess we made clean: dh_testdir [ ! -f Makefile ] || $(MAKE) distclean rm -rf build-tree dh_clean .PHONY: build check install binary-arch binary-indep binary clean