X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/a034d8528bc98e9caf12e024a0d5eeb25f87a500..cb6020cdfea3d6dec6f6ad13843ab46f0c10d562:/debian/rules diff --git a/debian/rules b/debian/rules index c7b5aa304..cbe7e70b6 100755 --- a/debian/rules +++ b/debian/rules @@ -9,6 +9,7 @@ export NOISY=1 export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) export DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +export PARALLEL = $(or $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))),1) # FOR AUTOCONF 2.52 AND NEWER ONLY ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) @@ -17,13 +18,19 @@ else confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) endif +# Set the number of procs to be run in parallel from the options. +confflags += --with-procs=$(PARALLEL) + # See below -include build/environment.mak ifneq (,$(shell which dpkg-buildflags)) - export CXXFLAGS = $(shell dpkg-buildflags --get CXXFLAGS) - export LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS) - export CPPFLAGS = $(shell dpkg-buildflags --get CPPFLAGS) + # make does not export to $(shell) so we need to workaround + # (http://savannah.gnu.org/bugs/?10593) + dpkg_buildflags = DEB_BUILD_MAINT_OPTIONS=hardening=+all dpkg-buildflags + export CXXFLAGS = $(shell $(dpkg_buildflags) --get CXXFLAGS) + export LDFLAGS = $(shell $(dpkg_buildflags) --get LDFLAGS) + export CPPFLAGS = $(shell $(dpkg_buildflags) --get CPPFLAGS) else ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) export CXXFLAGS = -O0 -g -Wall @@ -35,23 +42,14 @@ endif # Default rule build: -PKG=apt -DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS) - # Determine the build directory to use -BASE=. -ifdef BUILD -BUILD_POSSIBLE := $(BUILD) $(BASE)/$(BUILD) -else -BUILD_POSSIBLE := $(BASE) $(BASE)/build-$(shell uname --machine) $(BASE)/build -endif -BUILDX:= $(foreach i,$(BUILD_POSSIBLE),$(wildcard $(i)/environment.mak*)) -BUILDX:= $(patsubst %/,%,$(firstword $(dir $(BUILDX)))) -override BLD := $(BUILDX) +override BASE := . +override BLD := $(BASE)/build -ifeq ($(words $(BLD)),0) -override BLD := ./build -endif +# When building without , the header is available and thus the test is +# successful. When building with , the header is missing, but we still +# pretend it to be available, because configure would fail otherwise. +export ac_cv_header_gtest_gtest_h=yes # APT Programs in apt-utils APT_UTILS=ftparchive sortpkgs extracttemplates @@ -82,7 +80,7 @@ build/environment.mak: build/configure-stamp configure: configure.ac build/configure-stamp: configure buildlib/config.sub buildlib/config.guess dh_testdir - -mkdir build + mkdir -p build cp COPYING debian/copyright cd build && CXXFLAGS="$(CXXFLAGS)" LDFLAGS="$(LDFLAGS)" CPPFLAGS="$(CPPFLAGS)" ../configure $(confflags) touch $@ @@ -135,15 +133,9 @@ libapt-pkg-doc: build-docbook # libapt-pkg-doc install # rm -f $(BLD)/doc/doxygen/html/*.map $(BLD)/doc/doxygen/html/*.md5 - dh_installdocs -p$@ $(BLD)/docs/design* \ - $(BLD)/docs/dpkg-tech* \ - $(BLD)/docs/files* \ - $(BLD)/docs/method* \ - doc/libapt-pkg2_to_3.txt \ - doc/style.txt \ - $(BLD)/doc/doxygen/html + dh_installdocs -p$@ dh_installexamples -p$@ - + dh_lintian -p$@ dh_installchangelogs -p$@ dh_strip -p$@ dh_compress -p$@ -X.xhtml @@ -161,10 +153,7 @@ apt-doc: build-docbook # apt-doc install # # Copy the guides - dh_installdocs -p$@ $(BLD)/docs/guide*.text \ - $(BLD)/docs/guide*.html \ - $(BLD)/docs/offline*.text \ - $(BLD)/docs/offline*.html + dh_installdocs -p$@ dh_installchangelogs -p$@ dh_compress -p$@ dh_fixperms -p$@ @@ -210,13 +199,17 @@ apt: build-binary build-manpages debian/apt.install # debian/$@/usr/lib/apt/apt-report-mirror-failure \ # move the apt-helper in place - mv debian/$@/usr/bin/apt-helper debian/$@/usr/lib/apt/apt-helper + mv debian/$@/usr/bin/apt-helper debian/$@/usr/lib/apt/apt-helper + # install apt.systemd.daily helper in the right place + install -m755 debian/apt.systemd.daily debian/$@/usr/lib/apt/ dh_bugfiles -p$@ dh_lintian -p$@ - dh_installexamples -p$@ $(BLD)/docs/examples/* + dh_installexamples -p$@ dh_installman -p$@ $(wildcard $(patsubst %,doc/en/%.[158],$(apt_MANPAGES)) $(patsubst %,doc/*/%.*.[158],$(apt_MANPAGES))) - dh_installcron -p$@ + dh_installcron -p$@ --name=apt-compat + dh_systemd_enable -p$@ apt-daily.timer + dh_systemd_start -p$@ apt-daily.timer dh_installdocs -p$@ dh_installchangelogs -p$@ dh_installlogrotate -p$@ @@ -312,7 +305,7 @@ $(LIBAPT_INST): build-binary debian/$(LIBAPT_INST).install dh_fixperms -p$@ dh_makeshlibs -p$@ dh_installdeb -p$@ - dh_shlibdeps -p$@ + dh_shlibdeps -p$@ dh_gencontrol -p$@ dh_md5sums -p$@ dh_builddeb -p$@ @@ -324,7 +317,7 @@ apt-transport-https: build-binary libapt-pkg-dev dh_installdirs -p$@ dh_install -p$@ --sourcedir=$(BLD) - dh_installdocs -p$@ debian/apt-transport-https.README + dh_installdocs -p$@ dh_installexamples -p$@ # Install the man pages.. @@ -335,7 +328,7 @@ apt-transport-https: build-binary libapt-pkg-dev dh_compress -p$@ dh_fixperms -p$@ dh_installdeb -p$@ - dh_shlibdeps -p$@ + dh_shlibdeps -p$@ dh_gencontrol -p$@ dh_md5sums -p$@ dh_builddeb -p$@