123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- #!/usr/bin/make -f
- # debian/rules for the dpkg suite.
- # Copyright © 2004 Scott James Remnant <scott@netsplit.com>
- # Copyright © 2006-2012 Guillem Jover <guillem@debian.org>
- WFLAGS := -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers
- # XXX: Stack Protector Strong is only available in gcc >= 4.9
- cc_version = $(shell $(CC) -dumpversion 2>/dev/null)
- cc_version_lt = $(shell dpkg --compare-versions "$(cc_version)" lt-nl "$(1)" && echo yes)
- hardening_old = $(if $(call cc_version_lt,4.9),-stackprotectorstrong)
- # Use the in-tree dpkg-buildflags
- dpkg_buildflags = \
- DEB_BUILD_MAINT_OPTIONS="hardening=+all,$(hardening_old)" \
- DEB_CFLAGS_MAINT_APPEND="$(WFLAGS)" \
- DEB_CXXFLAGS_MAINT_APPEND="$(WFLAGS)" \
- $(CURDIR)/run-script scripts/dpkg-buildflags.pl
- DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
- DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
- DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
- DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
- # Support cross-compiling.
- 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
- # Do not enable everything on all platforms.
- ifeq ($(DEB_HOST_ARCH_OS),linux)
- confflags += --with-libselinux
- endif
- ifeq (,$(filter maintainer-build,$(DEB_BUILD_OPTIONS)))
- confflags += --disable-silent-rules
- endif
- # Enable parallel test suite
- NUMJOBS = 1
- ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
- MAKEFLAGS += -j$(NUMJOBS)
- endif
- D := $(CURDIR)/debian/tmp
- # 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-devlibdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH) \
- --without-libmd \
- --with-libz \
- --with-liblzma \
- --with-libbz2
- # 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 TESTSUITEFLAGS=--verbose \
- TEST_PARALLEL=$(NUMJOBS) check
- endif
- # Install the package underneath debian/tmp
- install: check
- dh_testdir
- dh_testroot
- dh_prep
- dh_installdirs
- cd build-tree && $(MAKE) DESTDIR=$(D) install
- 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 -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
- dh_builddeb -a
- # Put together the dpkg-dev package
- binary-indep: install
- dh_testdir -i
- dh_testroot -i
- dh_install -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
- # The perl modules should not depend on a specific interpreter.
- dh_perl -i -Nlibdpkg-perl
- 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
|