123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- #!/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
- 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
- install -d debian/dpkg/sbin
- mv debian/dpkg/usr/sbin/start-stop-daemon debian/dpkg/sbin
- 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 --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
|