880 lines
33 KiB
Makefile
880 lines
33 KiB
Makefile
#
|
|
# This Makefile executes the unpack/build/binary targets for a single
|
|
# subarch, which is passed in the subarch variable. Empty subarch
|
|
# variable means that we are building for an arch without the subarch.
|
|
# Additionally, variables version, abiname and ltver are
|
|
# expected to be available (need to be exported from the parent process).
|
|
#
|
|
SHELL := bash -e
|
|
MAINTAINER := $(shell sed -ne 's,^Maintainer: .[^<]*<\([^>]*\)>,\1,p' debian/control)
|
|
DISTRIBUTION := $(shell dpkg-parsechangelog -SDistribution)
|
|
SOURCE_DATE := $(shell dpkg-parsechangelog -SDate)
|
|
SOURCE_DATE_UTC_ISO := $(shell date -u -d '$(SOURCE_DATE)' +%Y-%m-%d)
|
|
|
|
DISTRIBUTOR := $(shell lsb_release -is 2>/dev/null)
|
|
ifeq ($(DISTRIBUTOR),)
|
|
DISTRIBUTOR := Debian
|
|
endif
|
|
|
|
include /usr/share/dpkg/architecture.mk
|
|
|
|
include debian/rules.defs
|
|
|
|
ifdef ARCH
|
|
ifneq ($(DEB_HOST_ARCH),$(ARCH))
|
|
$(error Attempting to build a $(ARCH) target but host architecture is $(DEB_HOST_ARCH). Use dpkg-architecture to override the host architecture)
|
|
endif
|
|
endif
|
|
|
|
ifdef OVERRIDE_HOST_TYPE
|
|
CROSS_COMPILE := $(OVERRIDE_HOST_TYPE)-
|
|
else ifneq ($(DEB_BUILD_ARCH),$(DEB_HOST_ARCH))
|
|
CROSS_COMPILE := $(DEB_HOST_GNU_TYPE)-
|
|
else
|
|
CROSS_COMPILE :=
|
|
endif
|
|
export CROSS_COMPILE
|
|
|
|
export DH_OPTIONS
|
|
export DEB_HOST_ARCH DEB_HOST_GNU_TYPE DEB_BUILD_ARCH
|
|
export DEB_BUILD_PATH = $(CURDIR) # for dpkg-buildflags
|
|
export LC_ALL = C.UTF-8
|
|
undefine LANGUAGE
|
|
|
|
stamp = [ -d $(dir $@) ] || mkdir $(dir $@); touch $@
|
|
|
|
setup_env := env -u ABINAME -u ARCH -u FEATURESET -u FLAVOUR -u VERSION -u LOCALVERSION
|
|
setup_env += DISTRIBUTION_OFFICIAL_BUILD=1 DISTRIBUTOR="$(DISTRIBUTOR)" DISTRIBUTION_VERSION="$(SOURCEVERSION)" KBUILD_BUILD_TIMESTAMP="$(SOURCE_DATE)" KBUILD_BUILD_VERSION_TIMESTAMP="$(DISTRIBUTOR) $(SOURCEVERSION) ($(SOURCE_DATE_UTC_ISO))" KBUILD_BUILD_USER="$(word 1,$(subst @, ,$(MAINTAINER)))" KBUILD_BUILD_HOST="$(word 2,$(subst @, ,$(MAINTAINER)))"
|
|
setup_env += KBUILD_VERBOSE=$(if $(filter terse,$(DEB_BUILD_OPTIONS)),0,1)
|
|
|
|
MAKE_CLEAN = $(setup_env) $(MAKE) CFLAGS_KERNEL=-fdebug-prefix-map=$(CURDIR)=. CFLAGS_MODULE=-fdebug-prefix-map=$(CURDIR)=.
|
|
MAKE_SELF := $(MAKE) -f debian/rules.real $(MAKEOVERRIDES)
|
|
MAKEOVERRIDES =
|
|
|
|
#
|
|
# Targets
|
|
#
|
|
|
|
build-arch-arch:
|
|
build-indep:
|
|
binary-arch-arch:
|
|
binary-indep:
|
|
|
|
ifeq (,$(filter pkg.linux.nosource,$(DEB_BUILD_PROFILES)))
|
|
ifneq ($(DO_CONFIG),False)
|
|
binary-arch-arch: install-config_$(ARCH)
|
|
endif
|
|
endif
|
|
ifneq ($(DO_HEADERS_ALL),False)
|
|
binary-arch-arch: install-headers_$(ARCH)
|
|
endif
|
|
ifneq ($(DO_LIBC),False)
|
|
binary-arch-arch: install-libc-dev_$(ARCH)
|
|
endif
|
|
binary-arch-flavour: install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
ifeq ($(DEBUG),True)
|
|
binary-arch-flavour: install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
endif
|
|
binary-arch-flavour: install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
|
|
ifneq ($(DO_DOCS),False)
|
|
binary-indep: install-doc
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
build-indep: $(STAMPS_DIR)/build-doc
|
|
endif
|
|
endif
|
|
ifeq (,$(filter pkg.linux.nosource,$(DEB_BUILD_PROFILES)))
|
|
ifneq ($(DO_SOURCE),False)
|
|
binary-indep: install-source
|
|
endif
|
|
endif
|
|
binary-indep: install-support
|
|
|
|
ifneq ($(DO_TOOLS_VERSIONED),False)
|
|
build-arch-arch: build-kbuild
|
|
binary-arch-arch: install-kbuild
|
|
ifneq ($(filter alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsr6 mipsr6el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64,$(DEB_HOST_ARCH)),)
|
|
ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),)
|
|
build-arch-arch: build-perf
|
|
binary-arch-arch: install-perf
|
|
endif
|
|
endif
|
|
ifneq ($(filter powerpc powerpcspe ppc64,$(DEB_HOST_ARCH)),)
|
|
build-arch-arch: build-bootwrapper
|
|
binary-arch-arch: install-bootwrapper
|
|
endif
|
|
endif
|
|
ifneq ($(DO_TOOLS_UNVERSIONED),False)
|
|
build-arch-arch: build-usbip build-cpupower build-liblockdep
|
|
binary-arch-arch: install-usbip install-cpupower install-liblockdep
|
|
ifneq ($(filter alpha amd64 arm64 arm64ilp32 armel armhf hppa i386 mips mips64 mips64el mips64r6 mips64r6el mipsel mipsn32 mipsn32el mipsn32r6 mipsn32r6el mipsr6 mipsr6el powerpc powerpcspe ppc64 ppc64el riscv64 s390 s390x sh3 sh4 sparc sparc64 x32,$(DEB_HOST_ARCH)),)
|
|
build-arch-arch: build-libbpf
|
|
binary-arch-arch: install-libbpf
|
|
endif
|
|
ifneq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
|
|
build-arch-arch: build-hyperv-daemons
|
|
binary-arch-arch: install-hyperv-daemons
|
|
endif
|
|
binary-indep: install-lockdep
|
|
endif
|
|
|
|
binary-indep-featureset: install-common-headers_$(FEATURESET)
|
|
|
|
build-arch-flavour: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
|
|
setup-arch-flavour: $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
|
|
source-featureset: $(STAMPS_DIR)/source_$(FEATURESET)
|
|
|
|
$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(KCONFIG)
|
|
mkdir -p '$(dir $@)'
|
|
debian/bin/kconfig.py '$@' $(KCONFIG) $(KCONFIG_OPTIONS)
|
|
|
|
define copy_source
|
|
mkdir -p '$(1)'
|
|
cp -al $(filter-out debian .pc .svk .svn .git, $(wildcard * .[^.]*)) '$(1)'
|
|
endef
|
|
|
|
$(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz: DIR = $(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION)
|
|
$(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz: $(STAMPS_DIR)/source
|
|
rm -rf '$@' '$(DIR)'
|
|
$(call copy_source,$(DIR))
|
|
chmod -R u+rw,go=rX '$(DIR)'
|
|
find '$(DIR)' -depth -newermt '$(SOURCE_DATE)' -print0 | \
|
|
xargs -0r touch --no-dereference --date='$(SOURCE_DATE)'
|
|
cd '$(BUILD_DIR)'; \
|
|
find '$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION)' \
|
|
-name '*.pyc' -prune -o \
|
|
-print0 | \
|
|
sort -z | \
|
|
tar --owner=root --group=root --numeric-owner \
|
|
--no-recursion --null -T - -caf '$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz'
|
|
rm -rf '$(DIR)'
|
|
|
|
$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-%.patch.xz: $(STAMPS_DIR)/source_none $(STAMPS_DIR)/source_%
|
|
set -o pipefail; \
|
|
(cd '$(BUILD_DIR)'; \
|
|
set +e; \
|
|
diff -urN -p -x debian -x .pc -x .svk -x .svn -x .git -x '*.pyc' source_none source_$*; \
|
|
test $$? -eq 1) | \
|
|
filterdiff --remove-timestamps --strip=1 --addoldprefix=a/ --addnewprefix=b/ | \
|
|
xz -c >$@ || \
|
|
(rm -f $@; exit 1)
|
|
|
|
$(STAMPS_DIR)/source:
|
|
test -d .pc
|
|
set +e; QUILT_PC=.pc quilt unapplied --quiltrc - >/dev/null && echo 'Patch series not fully applied'; test $$? -eq 1
|
|
@$(stamp)
|
|
|
|
$(STAMPS_DIR)/source_%: SOURCE_DIR=$(BUILD_DIR)/source
|
|
$(STAMPS_DIR)/source_%: DIR=$(BUILD_DIR)/source_$*
|
|
$(STAMPS_DIR)/source_%: $(STAMPS_DIR)/source
|
|
mkdir -p '$(BUILD_DIR)'
|
|
rm -rf '$(DIR)'
|
|
$(call copy_source,$(DIR))
|
|
cd '$(DIR)' && QUILT_PATCHES='$(CURDIR)/debian/patches-$*' QUILT_PC=.pc quilt push --quiltrc - -a -q --fuzz=0
|
|
@$(stamp)
|
|
.PRECIOUS: $(STAMPS_DIR)/source_%
|
|
|
|
$(STAMPS_DIR)/source_none: DIR=$(BUILD_DIR)/source_none
|
|
$(STAMPS_DIR)/source_none: $(STAMPS_DIR)/source
|
|
mkdir -p '$(BUILD_DIR)'
|
|
rm -f '$(DIR)'
|
|
ln -s '$(CURDIR)' '$(DIR)'
|
|
@$(stamp)
|
|
|
|
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): CONFIG=$(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR=$(BUILD_DIR)/source_$(FEATURESET)
|
|
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
$(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/source_$(FEATURESET) $(BUILD_DIR)/config.$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
rm -rf '$(DIR)'
|
|
mkdir '$(DIR)'
|
|
cp '$(CONFIG)' '$(DIR)/.config'
|
|
echo 'override ARCH = $(KERNEL_ARCH)' >> '$(DIR)/.kernelvariables'
|
|
echo 'override KERNELRELEASE = $(ABINAME)$(LOCALVERSION_IMAGE)' >> '$(DIR)/.kernelvariables'
|
|
echo 'CCACHE = ccache' >> '$(DIR)/.kernelvariables'
|
|
ifeq (./,$(dir $(COMPILER)))
|
|
echo 'CC = $$(if $$(DEBIAN_KERNEL_USE_CCACHE),$$(CCACHE)) $$(CROSS_COMPILE)$(COMPILER)' >> '$(DIR)/.kernelvariables'
|
|
else
|
|
# To allow for cross-compiles, we want to split up the configured
|
|
# compiler filename and prepend the directory to $PATH. For a native
|
|
# compile, so long as the configured compiler is installed it should
|
|
# always be found first.
|
|
# However, $PATH changes don't work consistently in make (bug #895835).
|
|
# Instead we do the path lookup here and generate a new absolute
|
|
# filename.
|
|
echo 'CC = $$(if $$(DEBIAN_KERNEL_USE_CCACHE),$$(CCACHE)) $$(word 1,$$(foreach dir,$(dir $(COMPILER)) $$(subst :, ,$$(PATH)),$$(wildcard $$(dir)/$$(CROSS_COMPILE)$(notdir $(COMPILER)))))' >> '$(DIR)/.kernelvariables'
|
|
endif
|
|
# TODO: Should we set CROSS_COMPILE always?
|
|
ifdef OVERRIDE_HOST_TYPE
|
|
echo 'override CROSS_COMPILE = $(OVERRIDE_HOST_TYPE)-' >> '$(DIR)/.kernelvariables'
|
|
else
|
|
echo 'ifneq ($$(DEB_BUILD_ARCH),$$(DEB_HOST_ARCH))' >> '$(DIR)/.kernelvariables'
|
|
echo 'override CROSS_COMPILE = $$(DEB_HOST_GNU_TYPE)-' >> '$(DIR)/.kernelvariables'
|
|
echo 'endif' >> '$(DIR)/.kernelvariables'
|
|
endif
|
|
ifdef CFLAGS_KERNEL
|
|
echo 'CFLAGS_KERNEL += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables'
|
|
echo 'CFLAGS_MODULE += $(CFLAGS_KERNEL)' >> '$(DIR)/.kernelvariables'
|
|
endif
|
|
+$(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' listnewconfig
|
|
+yes "" | $(MAKE_CLEAN) -C '$(SOURCE_DIR)' O='$(CURDIR)/$(DIR)' oldconfig >/dev/null
|
|
@$(stamp)
|
|
|
|
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR=$(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/setup_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
|
|
$(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR):
|
|
+$(MAKE_CLEAN) -C '$(DIR)'
|
|
debian/bin/buildcheck.py $(DIR) $(ARCH) $(FEATURESET) $(FLAVOUR)
|
|
@$(stamp)
|
|
|
|
$(STAMPS_DIR)/build-doc: DIR=$(BUILD_DIR)/build-doc
|
|
# sphinx commands in /usr/bin are managed by the alternatives system.
|
|
# Change $PATH to make sure we consistently use the Python 3 version.
|
|
$(STAMPS_DIR)/build-doc: PATH:=/usr/share/sphinx/scripts/python3:$(PATH)
|
|
$(STAMPS_DIR)/build-doc: $(STAMPS_DIR)/source
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
mkdir -p '$(BUILD_DIR)'
|
|
rm -rf '$(DIR)'
|
|
$(call copy_source,$(DIR))
|
|
+$(MAKE_CLEAN) -C '$(DIR)' xmldocs
|
|
+$(MAKE_CLEAN) -C '$(DIR)' htmldocs
|
|
endif
|
|
@$(stamp)
|
|
|
|
install-base:
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_installchangelogs
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_gencontrol -- $(GENCONTROL_ARGS)
|
|
dh_md5sums
|
|
dh_builddeb -- -Zxz $(BUILDDEB_ARGS)
|
|
|
|
install-dummy:
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-doc: PACKAGE_NAME = $(SOURCE_BASENAME)-doc-$(VERSION)
|
|
install-doc: DIR = $(BUILD_DIR)/build-doc
|
|
install-doc: PACKAGE_DIR = debian/$(PACKAGE_NAME)
|
|
install-doc: OUT_DIR = $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)
|
|
install-doc: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-doc: $(STAMPS_DIR)/build-doc
|
|
dh_prep
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
mkdir -p $(OUT_DIR)
|
|
set -o pipefail; \
|
|
find CREDITS MAINTAINERS README Documentation \
|
|
-name '.gitignore' -prune -o -name DocBook -prune -o \
|
|
-path Documentation/media -prune -o \
|
|
-path Documentation/sphinx -prune -o \
|
|
-name 'Makefile*' -prune -o \
|
|
-print | \
|
|
cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)'
|
|
set -o pipefail; \
|
|
cd $(DIR)/Documentation/output; \
|
|
find * -name '*.rst' -prune -o -name objects.inv -prune \
|
|
-o -name xml -prune -o -print | \
|
|
cpio -pd --preserve-modification-time '$(CURDIR)/$(OUT_DIR)/html'
|
|
find $(OUT_DIR)/Documentation -type f | xargs gzip -9n
|
|
# Fix up symlinks to gzipped docs
|
|
cd $(OUT_DIR)/Documentation; \
|
|
find -type l | while read link; do \
|
|
dest="$$(readlink -f "$$link")"; \
|
|
if [ -f "$$dest.gz" ]; then \
|
|
rm -f "$$link"; \
|
|
ln -sr "$$dest.gz" "$$link.gz"; \
|
|
fi; \
|
|
done
|
|
endif
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-headers_$(ARCH): PACKAGE_NAMES = linux-headers-$(ABINAME)-all linux-headers-$(ABINAME)-all-$(ARCH)
|
|
install-headers_$(ARCH): DH_OPTIONS = $(foreach p, $(PACKAGE_NAMES), -p$(p))
|
|
install-headers_$(ARCH):
|
|
dh_testdir
|
|
dh_testroot
|
|
+$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Arch=$(ARCH)'
|
|
|
|
install-common-headers_$(FEATURESET): PACKAGE_NAME = linux-headers-$(ABINAME)-common$(LOCALVERSION)
|
|
install-common-headers_$(FEATURESET): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION)
|
|
install-common-headers_$(FEATURESET): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-common-headers_$(FEATURESET): BASE_DIR = /usr/src/$(PACKAGE_NAME)
|
|
install-common-headers_$(FEATURESET): SOURCE_DIR = $(BUILD_DIR)/source_$(FEATURESET)
|
|
install-common-headers_$(FEATURESET): DIR = debian/$(PACKAGE_NAME)/$(BASE_DIR)
|
|
install-common-headers_$(FEATURESET): $(STAMPS_DIR)/source_$(FEATURESET)
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
|
|
set -o pipefail; \
|
|
cd $(SOURCE_DIR); \
|
|
( \
|
|
echo Makefile; \
|
|
for arch in $(ALL_KERNEL_ARCHES); do \
|
|
find arch/$$arch -maxdepth 1 -name 'Makefile*' -print; \
|
|
find arch/$$arch \( -name 'module.lds' -o -name 'Kbuild.platforms' -o -name 'Platform' \) -print; \
|
|
find $$(find arch/$$arch \( -name include -o -name scripts \) -type d -print) -print; \
|
|
done; \
|
|
find include -print; \
|
|
) \
|
|
| \
|
|
cpio -pd --preserve-modification-time '$(CURDIR)/$(DIR)'
|
|
|
|
dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
|
|
dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/tools $(BASE_DIR)/tools
|
|
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-headers-$(REAL_VERSION)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_COMMON = linux-headers-$(ABINAME)-common$(LOCALVERSION_HEADERS)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME_KBUILD = linux-kbuild-$(VERSION)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR = /usr/src/$(PACKAGE_NAME)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): BASE_DIR_COMMON = /usr/src/$(PACKAGE_NAME_COMMON)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): SOURCE_DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REF_DIR = $(BUILD_DIR)/source_$(FEATURESET)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(PACKAGE_DIR)/$(BASE_DIR)
|
|
install-headers_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
|
|
mkdir -p $(DIR)/arch/$(KERNEL_ARCH)/kernel
|
|
cp -a $(SOURCE_DIR)/{.config,.kernel*,Module.symvers,include} $(DIR)
|
|
cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/include $(DIR)/arch/$(KERNEL_ARCH)
|
|
find $(DIR) -name '*.cmd' -delete
|
|
|
|
if [ -f $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o ]; then \
|
|
mkdir $(DIR)/arch/$(KERNEL_ARCH)/lib; \
|
|
cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o $(DIR)/arch/$(KERNEL_ARCH)/lib; \
|
|
fi
|
|
|
|
@echo 'VERSION = 2' > $(DIR)/Makefile
|
|
@echo 'PATCHLEVEL = 6' >> $(DIR)/Makefile
|
|
|
|
@echo 'MAKEARGS := -C $(BASE_DIR_COMMON) O=$(BASE_DIR)' >> $(DIR)/Makefile
|
|
@echo 'MAKEFLAGS += --no-print-directory' >> $(DIR)/Makefile
|
|
|
|
@echo '.PHONY: all $$(MAKECMDGOALS)' >> $(DIR)/Makefile
|
|
@echo 'cmd := $$(filter-out all Makefile,$$(MAKECMDGOALS))' >> $(DIR)/Makefile
|
|
@echo 'all:' >> $(DIR)/Makefile
|
|
@echo ' @$$(MAKE) $$(MAKEARGS) $$(cmd)' >> $(DIR)/Makefile
|
|
@echo 'Makefile:;' >> $(DIR)/Makefile
|
|
@echo '$$(cmd): all' >> $(DIR)/Makefile
|
|
@echo ' @:' >> $(DIR)/Makefile
|
|
@echo '%/: all' >> $(DIR)/Makefile
|
|
@echo ' @:' >> $(DIR)/Makefile
|
|
|
|
dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/scripts $(BASE_DIR)/scripts
|
|
dh_link /usr/lib/$(PACKAGE_NAME_KBUILD)/tools $(BASE_DIR)/tools
|
|
|
|
mkdir -p $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)
|
|
ln -s /usr/src/$(PACKAGE_NAME) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build
|
|
ln -s /usr/src/$(PACKAGE_NAME_COMMON) $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source
|
|
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-libc-dev_$(ARCH): PACKAGE_NAME = linux-libc-dev
|
|
install-libc-dev_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-libc-dev_$(ARCH): DIR = $(BUILD_DIR)/build-libc-dev
|
|
install-libc-dev_$(ARCH): OUT_DIR = debian/$(PACKAGE_NAME)/usr
|
|
install-libc-dev_$(ARCH):
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
rm -rf '$(DIR)'
|
|
mkdir -p $(DIR)
|
|
+$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' headers_check ARCH=$(KERNEL_ARCH)
|
|
+$(MAKE_CLEAN) O='$(CURDIR)/$(DIR)' headers_install ARCH=$(KERNEL_ARCH) INSTALL_HDR_PATH='$(CURDIR)'/$(OUT_DIR)
|
|
|
|
rm -rf $(OUT_DIR)/include/drm $(OUT_DIR)/include/scsi
|
|
find $(OUT_DIR)/include \( -name .install -o -name ..install.cmd \) -execdir rm {} +
|
|
|
|
# Move include/asm to arch-specific directory
|
|
mkdir -p $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)
|
|
mv $(OUT_DIR)/include/asm $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
|
|
test ! -d $(OUT_DIR)/include/arch || \
|
|
mv $(OUT_DIR)/include/arch $(OUT_DIR)/include/$(DEB_HOST_MULTIARCH)/
|
|
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-support: PACKAGE_NAME = $(SOURCE_BASENAME)-support-$(ABINAME)
|
|
install-support: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-support: PACKAGE_DIR = debian/$(PACKAGE_NAME)
|
|
install-support: PACKAGE_ROOT = /usr/share/$(PACKAGE_NAME)
|
|
install-support:
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
dh_installdirs $(PACKAGE_ROOT)/lib/python/debian_linux $(PACKAGE_ROOT)/modules
|
|
cp debian/config.defines.dump $(PACKAGE_DIR)$(PACKAGE_ROOT)
|
|
cp -R debian/installer $(PACKAGE_DIR)$(PACKAGE_ROOT)/installer
|
|
cp debian/lib/python/debian_linux/*.py $(PACKAGE_DIR)$(PACKAGE_ROOT)/lib/python/debian_linux
|
|
dh_python3
|
|
dh_link $(PACKAGE_ROOT) /usr/src/$(PACKAGE_NAME)
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = $(IMAGE_PACKAGE_NAME)
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME)
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): INSTALL_DIR = $(PACKAGE_DIR)/boot
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR):
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
dh_installdirs 'boot'
|
|
ifeq ($(IMAGE_FILE),vmlinux)
|
|
# This is the unprocessed ELF image, so we need to strip debug symbols
|
|
$(CROSS_COMPILE)objcopy --strip-debug '$(DIR)/vmlinux' $(INSTALL_DIR)/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
|
|
else
|
|
install -m644 '$(DIR)/$(IMAGE_FILE)' $(INSTALL_DIR)/$(IMAGE_INSTALL_STEM)-$(REAL_VERSION)
|
|
endif
|
|
+$(MAKE_SELF) \
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt \
|
|
DIR='$(DIR)' PACKAGE_DIR='$(PACKAGE_DIR)' REAL_VERSION='$(REAL_VERSION)'
|
|
+$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR) INSTALL_MOD_STRIP=1
|
|
ifeq ($(DEBUG),True)
|
|
set -o pipefail; \
|
|
find $(PACKAGE_DIR) -name '*.ko' | sed 's|$(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/||' | while read module ; do \
|
|
$(CROSS_COMPILE)objcopy --add-gnu-debuglink=$(DIR)/$$module $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/kernel/$$module || exit; \
|
|
done
|
|
# stripping the modules removes signatures as well - if automated signing is enabled with
|
|
# an ephemeral key, re-do the sign step
|
|
+if grep -qs '^CONFIG_MODULE_SIG_ALL=y' $(DIR)/.config; then \
|
|
$(MAKE_CLEAN) -C $(DIR) modules_sign INSTALL_MOD_PATH='$(CURDIR)'/$(PACKAGE_DIR); \
|
|
fi
|
|
endif
|
|
cp $(DIR)/.config $(PACKAGE_DIR)/boot/config-$(REAL_VERSION)
|
|
cp $(DIR)/System.map $(PACKAGE_DIR)/boot/System.map-$(REAL_VERSION)
|
|
rm -f $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/build
|
|
rm -f $(PACKAGE_DIR)/lib/modules/$(REAL_VERSION)/source
|
|
rm $(PACKAGE_DIR)/lib/firmware -rf
|
|
+$(MAKE_SELF) \
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug \
|
|
PACKAGE_DIR='$(PACKAGE_DIR)' PACKAGE_NAME='$(PACKAGE_NAME)' REAL_VERSION='$(REAL_VERSION)'
|
|
dh_strip --no-automatic-dbgsym -Xvmlinux
|
|
+$(MAKE_SELF) install-base GENCONTROL_ARGS='-Vkernel:Recommends='"$$( \
|
|
if grep -q '^CONFIG_SMP=y' $(DIR)/.config; then \
|
|
printf irqbalance,; \
|
|
fi)"
|
|
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt: DT_INSTALL_DIR = $(PACKAGE_DIR)/usr/lib/linux-image-$(REAL_VERSION)
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_dt:
|
|
ifneq ($(filter arm64 armel armhf mipsr6 mipsr6el mips64r6 mips64r6el,$(ARCH)),)
|
|
+$(MAKE_CLEAN) -C $(DIR) dtbs
|
|
+$(MAKE_CLEAN) -C $(DIR) dtbs_install INSTALL_DTBS_PATH=$(CURDIR)/$(DT_INSTALL_DIR)
|
|
endif
|
|
ifneq ($(filter powerpc powerpcspe ppc64,$(ARCH)),)
|
|
# Install wrapper code and DT source, but not the wrapper script or
|
|
# the executables it calls. Kbuild will always build these executable
|
|
# as native code, which is wrong for a cross-built package. Install
|
|
# symlinks to the versions in the linux-bootwrapper package instead.
|
|
rm -rf '$(BUILD_DIR)/bootwrapper_$(ARCH)_$(FEATURESET)_$(FLAVOUR)'
|
|
+$(MAKE_CLEAN) -C '$(DIR)' bootwrapper_install \
|
|
WRAPPER_OBJDIR='$(CURDIR)/$(DT_INSTALL_DIR)' \
|
|
WRAPPER_DTSDIR='$(CURDIR)/$(DT_INSTALL_DIR)/dts' \
|
|
WRAPPER_BINDIR='$(CURDIR)/$(BUILD_DIR)/bootwrapper_$(ARCH)_$(FEATURESET)_$(FLAVOUR)'
|
|
for prog in '$(BUILD_DIR)/bootwrapper_$(ARCH)_$(FEATURESET)_$(FLAVOUR)'/*; do \
|
|
prog="$$(basename $$prog)"; \
|
|
ln -s ../linux-bootwrapper-$(ABINAME)/$$prog \
|
|
'$(DT_INSTALL_DIR)'/$$prog; \
|
|
done
|
|
endif
|
|
|
|
install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug:
|
|
dh_installdirs usr/share/bug/$(PACKAGE_NAME)
|
|
dh_install debian/templates/image.bug/* usr/share/bug/$(PACKAGE_NAME)
|
|
chmod 755 $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/script
|
|
printf "RELEASE='$(REAL_VERSION)'\nDISTRIBUTOR='$(DISTRIBUTOR)'\nSOURCEVERSION='$(SOURCEVERSION)'\nPACKAGE_NAME='$(PACKAGE_NAME)'\nPACKAGE_VERSION='$(SOURCEVERSION)'" > $(PACKAGE_DIR)/usr/share/bug/$(PACKAGE_NAME)/info
|
|
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): REAL_VERSION = $(ABINAME)$(LOCALVERSION)
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_NAME = linux-image-$(REAL_VERSION)-dbg
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): PACKAGE_DIR = debian/$(PACKAGE_NAME)
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DEBUG_DIR = $(PACKAGE_DIR)/usr/lib/debug
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DIR = $(BUILD_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-image-dbg_$(ARCH)_$(FEATURESET)_$(FLAVOUR): $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
dh_installdirs usr/lib/debug usr/lib/debug/boot usr/share/lintian/overrides/
|
|
dh_lintian
|
|
install -m644 $(DIR)/vmlinux $(DEBUG_DIR)/boot/vmlinux-$(REAL_VERSION)
|
|
+$(MAKE_CLEAN) -C $(DIR) modules_install DEPMOD='$(CURDIR)/debian/bin/no-depmod' INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR)
|
|
find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/ -mindepth 1 -maxdepth 1 \! -name kernel -exec rm {} \+
|
|
rm $(DEBUG_DIR)/lib/firmware -rf
|
|
ifeq ($(VDSO),True)
|
|
+$(MAKE_CLEAN) -C $(DIR) vdso_install INSTALL_MOD_PATH='$(CURDIR)'/$(DEBUG_DIR)
|
|
# Create .build-id links. Some architectures already do so, but in the
|
|
# wrong place, so delete those first.
|
|
rm -rf $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/.build-id
|
|
find $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vdso/ -type f | while read vdso; do \
|
|
if buildid="$$(readelf -n "$$vdso" | sed -rne 's/^\s+Build ID: (.*)$$/\1/p')" && [ "$$buildid" ]; then \
|
|
mkdir -p "$(DEBUG_DIR)/.build-id/$${buildid:0:2}"; \
|
|
ln -s -r "$$vdso" "$(DEBUG_DIR)/.build-id/$${buildid:0:2}/$${buildid:2}.debug"; \
|
|
fi; \
|
|
done
|
|
endif
|
|
# Add symlinks to vmlinux from the locations expected by kdump-tools,
|
|
# systemtap and others
|
|
ln -s boot/vmlinux-$(REAL_VERSION) $(DEBUG_DIR)/
|
|
mkdir -p $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)
|
|
ln -s ../../../boot/vmlinux-$(REAL_VERSION) $(DEBUG_DIR)/lib/modules/$(REAL_VERSION)/vmlinux
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-signed-template_$(ARCH): PACKAGE_NAME = linux-image-$(ARCH)-signed-template
|
|
install-signed-template_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-signed-template_$(ARCH): PACKAGE_DIR = debian/$(PACKAGE_NAME)
|
|
install-signed-template_$(ARCH): CODE_SIGNING_DIR = $(PACKAGE_DIR)/usr/share/code-signing/$(PACKAGE_NAME)
|
|
install-signed-template_$(ARCH):
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
rm -rf $(CODE_SIGNING_DIR)
|
|
mkdir -p $(CODE_SIGNING_DIR)
|
|
PYTHONHASHSEED=0 debian/bin/gencontrol_signed.py $(ARCH)
|
|
cp -R debian/compat \
|
|
debian/copyright \
|
|
debian/signing_templates/README.source \
|
|
debian/signing_templates/rules \
|
|
debian/signing_templates/rules.real \
|
|
debian/signing_templates/source \
|
|
$(CODE_SIGNING_DIR)/source-template/debian/
|
|
+$(MAKE_SELF) install-base
|
|
|
|
install-udeb_$(ARCH): export KW_DEFCONFIG_DIR=debian/installer
|
|
install-udeb_$(ARCH): export KW_CONFIG_DIR=debian/installer
|
|
install-udeb_$(ARCH): DH_OPTIONS=$(PACKAGE_NAMES:%=-p%)
|
|
ifeq ($(UDEB_UNSIGNED_TEST_BUILD),True)
|
|
install-udeb_$(ARCH): export DEB_BUILD_PROFILES=pkg.linux.udeb-unsigned-test-build
|
|
endif
|
|
install-udeb_$(ARCH):
|
|
dh_testdir
|
|
dh_prep
|
|
ifeq ($(UDEB_UNSIGNED_TEST_BUILD),True)
|
|
# kernel-wedge doesn't expect a -unsigned suffix; work around that for now
|
|
while read flavour; do \
|
|
rm -f debian/linux-image-$(ABINAME)-$$flavour; \
|
|
ln -s linux-image-$(ABINAME)-$$flavour-unsigned \
|
|
debian/linux-image-$(ABINAME)-$$flavour; \
|
|
done < <(awk '!/^#/ { print $$3 }' $(KW_CONFIG_DIR)/kernel-versions)
|
|
endif
|
|
kernel-wedge install-files $(ABINAME)
|
|
kernel-wedge check $(PACKAGE_NAMES)
|
|
dh_fixperms
|
|
ifeq ($(UDEB_UNSIGNED_TEST_BUILD),False)
|
|
dh_gencontrol
|
|
dh_builddeb
|
|
endif
|
|
|
|
install-source: PACKAGE_NAME = $(SOURCE_BASENAME)-source-$(VERSION)
|
|
install-source: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-source: $(BUILD_DIR)/$(SOURCE_BASENAME)-source-$(UPSTREAMVERSION).tar.xz $(foreach FEATURESET,$(filter-out none,$(ALL_FEATURESETS)),$(BUILD_DIR)/linux-patch-$(UPSTREAMVERSION)-$(FEATURESET).patch.xz)
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_install $^ /usr/src
|
|
# We don't want to recompress, but -Znone is not compatible with older
|
|
# tools and is currently rejected by dak. -Zgzip -z0 (uncompressed
|
|
# data.tar.gz!) makes dpkg and dak happy, but is incomaptible with
|
|
# other things (#725492). So use the fastest real gzip mode.
|
|
+$(MAKE_SELF) install-base BUILDDEB_ARGS='-Zgzip -z1'
|
|
|
|
install-config_$(ARCH): PACKAGE_NAME = $(SOURCE_BASENAME)-config-$(VERSION)
|
|
install-config_$(ARCH): DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-config_$(ARCH): TRIPLETS = $(subst $(BUILD_DIR)/build_,,$(wildcard $(BUILD_DIR)/build_$(ARCH)_*_*))
|
|
install-config_$(ARCH):
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_installdirs /usr/src/linux-config-$(UPSTREAMVERSION)
|
|
# Fix the module signing configuration to work for custom kernels. Also delete
|
|
# CONFIG_BUILD_SALT which makes no sense for custom kernels.
|
|
for triplet in $(TRIPLETS); do \
|
|
sed '/CONFIG_\(MODULE_SIG_\(ALL\|KEY\)\|SYSTEM_TRUSTED_KEYS\|BUILD_SALT\)[ =]/d' $(BUILD_DIR)/build_$$triplet/.config | xz -c >debian/$(PACKAGE_NAME)/usr/src/linux-config-$(UPSTREAMVERSION)/config.$$triplet.xz; \
|
|
done
|
|
+$(MAKE_SELF) install-base
|
|
|
|
define make-tools
|
|
+mkdir -p $(BUILD_DIR)/build-tools/$(1) && $(MAKE_CLEAN) -C $(BUILD_DIR)/build-tools/$(1) -f $(CURDIR)/debian/rules.d/$(1)/Makefile top_srcdir=$(CURDIR) top_rulesdir=$(CURDIR)/debian/rules.d OUTDIR=$(1) VERSION=$(VERSION) KERNEL_ARCH=$(KERNEL_ARCH)
|
|
endef
|
|
|
|
build-kbuild:
|
|
$(call make-tools,scripts)
|
|
$(call make-tools,tools/objtool)
|
|
|
|
install-kbuild: PACKAGE_NAME = linux-kbuild-$(VERSION)
|
|
install-kbuild: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-kbuild: PREFIX_DIR = /usr/lib/$(PACKAGE_NAME)
|
|
install-kbuild: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
|
|
install-kbuild: build-kbuild
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,scripts) install DESTDIR=$(DIR) prefix=$(PREFIX_DIR)
|
|
$(call make-tools,tools/objtool) install DESTDIR=$(DIR) prefix=$(PREFIX_DIR)
|
|
dh_link $(PREFIX_DIR) /usr/src/$(PACKAGE_NAME)
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-cpupower:
|
|
$(call make-tools,tools/power/cpupower)
|
|
ifneq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
|
|
$(call make-tools,tools/power/x86)
|
|
endif
|
|
|
|
install-cpupower: DH_OPTIONS = -plinux-cpupower -plibcpupower1 -plibcpupower-dev
|
|
install-cpupower: DIR = $(CURDIR)/debian/cpupower-tmp
|
|
install-cpupower: build-cpupower
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,tools/power/cpupower) install DESTDIR=$(DIR)
|
|
ifneq ($(filter i386 amd64 x32,$(DEB_HOST_ARCH)),)
|
|
$(call make-tools,tools/power/x86) install DESTDIR=$(DIR)
|
|
echo >> debian/linux-cpupower.substvars 'cpupower:Arch-Description='\
|
|
'The turbostat command reports topology, frequency, idle power-state$${Newline}'\
|
|
'statistics, temperature and power consumption information as provided$${Newline}'\
|
|
'by the CPU.$${Newline}'\
|
|
'$${Newline}'\
|
|
'The x86_energy_perf_policy command sets a general policy on some Intel$${Newline}'\
|
|
'CPU models for the relative importance of performance versus energy$${Newline}'\
|
|
'savings.'
|
|
endif
|
|
dh_install --sourcedir=$(DIR)
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
dh_installman
|
|
endif
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_makeshlibs
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-perf:
|
|
$(call make-tools,tools/perf)
|
|
|
|
install-perf: PACKAGE_NAME = linux-perf-$(VERSION)
|
|
install-perf: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-perf: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
|
|
install-perf: build-perf
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,tools/perf) install DESTDIR=$(DIR)
|
|
# do not ship python2 script
|
|
rm -f $(DIR)/usr/lib/perf_$(VERSION)-core/scripts/python/call-graph-from-sql.py
|
|
dh_perl /usr/lib/perf_$(VERSION)-core/scripts/perl/Perf-Trace-Util/lib/
|
|
dh_python3 /usr/lib/perf_$(VERSION)-core/scripts/python/Perf-Trace-Util/lib/
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_lintian
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_shlibdeps -Xperf-read-vdso
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-usbip:
|
|
$(call make-tools,tools/usb/usbip)
|
|
|
|
install-usbip: DH_OPTIONS = -pusbip
|
|
install-usbip: DIR = $(CURDIR)/debian/usbip-tmp
|
|
install-usbip: build-usbip
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,tools/usb/usbip) install DESTDIR=$(DIR)
|
|
dh_install --sourcedir=$(DIR)
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
dh_installman
|
|
endif
|
|
dh_lintian
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
VERSION=$$(sed -ne 's,^#define PACKAGE_VERSION "\(.*\)"$$,\1,p' $(BUILD_DIR)/build-tools/tools/usb/usbip/config.h) && \
|
|
test -n "$$VERSION" -a -n "$(DEB_VERSION)" && \
|
|
dh_gencontrol -- -v$$VERSION+$(DEB_VERSION)
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-hyperv-daemons:
|
|
$(call make-tools,tools/hv)
|
|
|
|
install-hyperv-daemons: PACKAGE_NAME = hyperv-daemons
|
|
install-hyperv-daemons: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-hyperv-daemons: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
|
|
install-hyperv-daemons: build-hyperv-daemons
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,tools/hv) install DESTDIR=$(DIR)
|
|
dh_install
|
|
for service in fcopy kvp vss; do \
|
|
install -D -m755 debian/hyperv-daemons.hv-$$service-daemon.init \
|
|
$(DIR)/etc/init.d/hyperv-daemons.hv-$$service-daemon \
|
|
|| break; \
|
|
done
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_systemd_enable
|
|
for service in fcopy kvp vss; do \
|
|
dh_installinit --name hyperv-daemons.hv-$$service-daemon \
|
|
--onlyscripts \
|
|
|| break; \
|
|
done
|
|
dh_systemd_start
|
|
dh_lintian
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-libbpf:
|
|
$(call make-tools,tools/lib/bpf)
|
|
|
|
install-libbpf: DH_OPTIONS = -plibbpf$(VERSION) -plibbpf-dev
|
|
install-libbpf: DIR = $(CURDIR)/debian/libbpf-tmp
|
|
install-libbpf: build-libbpf
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,tools/lib/bpf) install DESTDIR=$(DIR)
|
|
env -u DH_OPTIONS dh_install -plibbpf$(VERSION) --sourcedir=$(DIR) \
|
|
'usr/lib/*/libbpf.so.*'
|
|
dh_install --sourcedir=$(DIR)
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
env -u DH_OPTIONS dh_makeshlibs -plibbpf$(VERSION) \
|
|
libbpf$(VERSION)
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-liblockdep:
|
|
$(call make-tools,tools/lib/lockdep)
|
|
|
|
install-liblockdep: DH_OPTIONS = -pliblockdep$(VERSION) -pliblockdep-dev
|
|
install-liblockdep: DIR = $(CURDIR)/debian/liblockdep-tmp
|
|
install-liblockdep: build-liblockdep
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,tools/lib/lockdep) install DESTDIR=$(DIR)
|
|
env -u DH_OPTIONS dh_install -pliblockdep$(VERSION) --sourcedir=$(DIR) \
|
|
'usr/lib/*/liblockdep.so.*'
|
|
dh_install --sourcedir=$(DIR)
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
env -u DH_OPTIONS dh_makeshlibs -pliblockdep$(VERSION) \
|
|
liblockdep$(VERSION)
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
install-lockdep: PACKAGE_NAME = lockdep
|
|
install-lockdep: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-lockdep: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
|
|
install-lockdep:
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
dh_installdirs
|
|
# Upstream lockdep preload script is not suitable for installation
|
|
sed 's/@VERSION@/$(VERSION)/' debian/rules.d/tools/lib/lockdep/lockdep.in \
|
|
> $(DIR)/usr/bin/lockdep
|
|
chmod 755 $(DIR)/usr/bin/lockdep
|
|
dh_installchangelogs
|
|
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
|
|
dh_installdocs
|
|
endif
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
build-bootwrapper:
|
|
$(call make-tools,arch/powerpc/boot)
|
|
|
|
install-bootwrapper: PACKAGE_NAME = linux-bootwrapper-$(ABINAME)
|
|
install-bootwrapper: DH_OPTIONS = -p$(PACKAGE_NAME)
|
|
install-bootwrapper: DIR = $(CURDIR)/debian/$(PACKAGE_NAME)
|
|
install-bootwrapper: build-bootwrapper
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_prep
|
|
$(call make-tools,arch/powerpc/boot) install DESTDIR=$(DIR) installdir=/usr/lib/$(PACKAGE_NAME)
|
|
dh_installchangelogs
|
|
dh_strip
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
.PHONY: binary-% build-% install-% setup-% source-%
|
|
|
|
# vim: filetype=make
|