2 # SPDX-License-Identifier: GPL-2.0-only
4 # in case debian/rules is executed directly
5 export DEB_RULES_REQUIRES_ROOT
:= no
7 include debian
/rules.vars
9 ifneq (,$(filter-out parallel
=1,$(filter parallel
=%,$(DEB_BUILD_OPTIONS
))))
10 NUMJOBS
= $(patsubst parallel
=%,%,$(filter parallel
=%,$(DEB_BUILD_OPTIONS
)))
11 MAKEFLAGS
+= -j
$(NUMJOBS
)
14 # When KBUILD_VERBOSE is undefined (presumably you are directly working with
15 # the debianized tree), show verbose logs unless DEB_BUILD_OPTION=terse is set.
16 ifeq ($(origin KBUILD_VERBOSE
),undefined
)
17 ifeq (,$(filter terse
,$(DEB_BUILD_OPTIONS
)))
18 export KBUILD_VERBOSE
:= 1
24 revision
= $(lastword
$(subst -, ,$(shell dpkg-parsechangelog
-S Version
)))
25 CROSS_COMPILE ?
= $(filter-out $(DEB_BUILD_GNU_TYPE
)-, $(DEB_HOST_GNU_TYPE
)-)
26 make-opts
= ARCH
=$(ARCH
) KERNELRELEASE
=$(KERNELRELEASE
) KBUILD_BUILD_VERSION
=$(revision
) $(addprefix CROSS_COMPILE
=,$(CROSS_COMPILE
))
28 binary-targets
:= $(addprefix binary-
, image image-dbg headers libc-dev
)
30 all-packages
= $(shell dh_listpackages
)
31 image-package
= $(filter linux-image-
% user-
%, $(filter-out %-dbg
, $(all-packages
)))
32 image-dbg-package
= $(filter %-dbg
, $(all-packages
))
33 libc-dev-package
= $(filter linux-libc-dev
, $(all-packages
))
34 headers-package
= $(filter linux-headers-
%, $(all-packages
))
36 mk-files
= $(patsubst binary-
%,debian
/%.files
,$1)
37 package
= $($(@
:binary-
%=%-package
))
39 # DH_OPTION is an environment variable common for all debhelper commands.
40 # We could 'export' it, but here it is passed from the command line to clarify
41 # which package is being processed in the build log.
42 DH_OPTIONS
= -p
$(package
)
45 $(Q
)dh_testdir
$(DH_OPTIONS
)
46 $(Q
)dh_testroot
$(DH_OPTIONS
)
47 $(Q
)dh_prep
$(DH_OPTIONS
)
48 $(Q
)+$(MAKE
) $(make-opts
) run-command KBUILD_RUN_COMMAND
='+$$(srctree)/scripts/package/builddeb $(package)'
49 $(Q
)dh_installdocs
$(DH_OPTIONS
)
50 $(Q
)dh_installchangelogs
$(DH_OPTIONS
)
51 $(Q
)dh_compress
$(DH_OPTIONS
)
52 $(Q
)dh_fixperms
$(DH_OPTIONS
)
53 $(Q
)dh_gencontrol
$(DH_OPTIONS
) -- -f
$(call mk-files
,$@
)
54 $(Q
)dh_md5sums
$(DH_OPTIONS
)
55 $(Q
)dh_builddeb
$(DH_OPTIONS
) -- $(addprefix -Z
,$(KDEB_COMPRESS
))
58 .PHONY
: $(binary-targets
)
59 $(binary-targets
): build-arch
60 $(Q
)truncate
-s0
$(call mk-files
,$@
)
61 $(if
$(package
),$(binary
))
63 .PHONY
: binary binary-indep binary-arch
64 binary
: binary-arch binary-indep
65 binary-indep
: build-indep
66 binary-arch
: $(binary-targets
)
67 $(Q
)cat
$(call mk-files
,$^
) > debian
/files
69 .PHONY
: build build-indep build-arch
70 build
: build-arch build-indep
73 $(Q
)$(MAKE
) $(make-opts
) olddefconfig
74 $(Q
)$(MAKE
) $(make-opts
) $(if
$(filter um
,$(ARCH
)),,headers
) all
79 $(Q
)rm -rf debian
/deb-env.vars
* debian
/*.files
80 $(Q
)$(MAKE
) ARCH
=$(ARCH
) clean
82 # If DEB_HOST_ARCH is empty, it is likely that debian/rules was executed
83 # directly. Run 'dpkg-architecture --print-set --print-format=make' to
84 # generate a makefile construct that exports all DEB_* variables.
86 include debian
/deb-env.vars
89 $(Q
)dpkg-architecture
-a
$$(cat debian
/arch
) --print-set
--print-format
=make
> $@.tmp