| #!/usr/bin/make -f |
| # debian/rules for the dpkg suite. |
| # Copyright © 2004 Scott James Remnant <scott@netsplit.com> |
| |
| 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)" PERL5LIB=$(CURDIR)/scripts DPKG_DATADIR=$(CURDIR) 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 \ |
| --localstatedir=/var \ |
| --with-zlib \ |
| --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) 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 i486). |
| sed -ri 's/^(i386[[:space:]]+)[^[:space:]]+/\1i686/' \ |
| $(CURDIR)/debian/tmp/usr/share/dpkg/cputable |
| endif |
| |
| # 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 |
| |
| install -d debian/dpkg/sbin |
| mv debian/dpkg/usr/sbin/start-stop-daemon debian/dpkg/sbin |
| |
| dh_installchangelogs -a ChangeLog* |
| dh_installdocs -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 |
| dh_builddeb -a |
| |
| # 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 |
| 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 |