1 # We don't want make removing intermediary stamps
4 # Prepare the out-of-tree build directory
5 ifeq ($(do_full_source
),true
)
6 build_cd
= cd
$(builddir
)/build-
$*; #
10 build_O
= O
=$(builddir
)/build-
$*
13 # Typically supplied from the arch makefile, e.g., debian.master/control.d/armhf.mk
15 kmake
+= CC
=$(CROSS_COMPILE
)$(gcc
)
18 $(stampdir
)/stamp-prepare-
%: config-prepare-check-
%
21 $(stampdir
)/stamp-prepare-tree-
%: target_flavour
= $*
22 $(stampdir
)/stamp-prepare-tree-
%: $(commonconfdir
)/config.common.
$(family
) $(archconfdir
)/config.common.
$(arch
) $(archconfdir
)/config.flavour.
%
24 install -d
$(builddir
)/build-
$*
25 touch
$(builddir
)/build-
$*/ubuntu-build
26 [ "$(do_full_source)" != 'true' ] && true || \
27 rsync
-a
--exclude debian
--exclude debian.master
--exclude
$(DEBIAN
) * $(builddir
)/build-
$*
28 cat
$^ | sed
-e
's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir
)/build-
$*/.config
29 find
$(builddir
)/build-
$* -name
"*.ko" | xargs
rm -f
30 $(build_cd
) $(kmake
) $(build_O
) -j1 silentoldconfig prepare scripts
33 # Used by developers as a shortcut to prepare a tree for compilation.
34 prepare-
%: $(stampdir
)/stamp-prepare-
%
36 # Used by developers to allow efficient pre-building without fakeroot.
37 build-
%: $(stampdir
)/stamp-build-
%
40 # Do the actual build, including image and modules
41 $(stampdir
)/stamp-build-
%: target_flavour
= $*
42 $(stampdir
)/stamp-build-
%: bldimg
= $(call custom_override
,build_image
,$*)
43 $(stampdir
)/stamp-build-
%: dtb_target
= $(dtb_files_
$*)
44 $(stampdir
)/stamp-build-
%: $(stampdir
)/stamp-prepare-
%
45 @echo Debug
: $@ build_image
$(build_image
) bldimg
$(bldimg
)
46 $(build_cd
) $(kmake
) $(build_O
) $(conc_level
) $(bldimg
) modules
$(dtb_target
)
49 # Install the finished build
50 install-
%: pkgdir
= $(CURDIR
)/debian
/$(bin_pkg_name
)-$*
51 install-
%: pkgdir_ex
= $(CURDIR
)/debian
/$(extra_pkg_name
)-$*
52 install-
%: bindoc
= $(pkgdir
)/usr
/share
/doc
/$(bin_pkg_name
)-$*
53 install-
%: dbgpkgdir
= $(CURDIR
)/debian
/$(bin_pkg_name
)-$*-dbgsym
54 install-
%: signed
= $(CURDIR
)/debian
/$(bin_pkg_name
)-signed
55 install-
%: toolspkgdir
= $(CURDIR
)/debian
/$(tools_flavour_pkg_name
)-$*
56 install-
%: cloudpkgdir
= $(CURDIR
)/debian
/$(cloud_flavour_pkg_name
)-$*
57 install-
%: basepkg
= $(hdrs_pkg_name
)
58 install-
%: indeppkg
= $(indep_hdrs_pkg_name
)
59 install-
%: kernfile
= $(call custom_override
,kernel_file
,$*)
60 install-
%: instfile
= $(call custom_override
,install_file
,$*)
61 install-
%: hdrdir
= $(CURDIR
)/debian
/$(basepkg
)-$*/usr
/src
/$(basepkg
)-$*
62 install-
%: target_flavour
= $*
63 install-
%: dtb_files
= $(dtb_files_
$*)
64 install-
%: CONFIG_MODULE_SIG_HASH
=sha512
65 install-
%: MODSECKEY
=$(builddir
)/build-
$*/signing_key.priv
66 install-
%: MODPUBKEY
=$(builddir
)/build-
$*/signing_key.x509
68 @echo Debug
: $@ kernel_file
$(kernel_file
) kernfile
$(kernfile
) install_file
$(install_file
) instfile
$(instfile
)
71 dh_clean
-k
-p
$(bin_pkg_name
)-$*
72 dh_clean
-k
-p
$(hdrs_pkg_name
)-$*
73 ifneq ($(skipdbg
),true
)
74 dh_clean
-k
-p
$(dbg_pkg_name
)-$*
78 # compress_file logic required because not all architectures
79 # generate a zImage automatically out of the box
80 ifeq ($(compress_file
),)
81 install -m600
-D
$(builddir
)/build-
$*/$(kernfile
) \
82 $(pkgdir
)/boot
/$(instfile
)-$(abi_release
)-$*
84 install -d
$(pkgdir
)/boot
85 gzip
-c9v
$(builddir
)/build-
$*/$(kernfile
) > \
86 $(pkgdir
)/boot
/$(instfile
)-$(abi_release
)-$*
87 chmod
600 $(pkgdir
)/boot
/$(instfile
)-$(abi_release
)-$*
90 ifeq ($(uefi_signed
),true
)
91 install -d
$(signed
)/$(release
)-$(revision
)
92 # Check to see if this supports handoff, if not do not sign it.
93 # Check the identification area magic and version >= 0x020b
94 handoff
=`dd if="$(pkgdir)/boot/$(instfile)-$(abi_release)-$*" bs=1 skip=514 count=6 2>/dev/null | od -s | gawk '($$1 == 0 && $$2 == 25672 && $$3 == 21362 && $$4 >= 523) { print "GOOD" }'`; \
95 if
[ "$$handoff" = "GOOD" ]; then \
96 cp
-p
$(pkgdir
)/boot
/$(instfile
)-$(abi_release
)-$* \
97 $(signed
)/$(release
)-$(revision
)/$(instfile
)-$(abi_release
)-$*.efi
; \
101 install -m644
$(builddir
)/build-
$*/.config \
102 $(pkgdir
)/boot
/config-
$(abi_release
)-$*
103 install -m644
$(abidir
)/$* \
104 $(pkgdir
)/boot
/abi-
$(abi_release
)-$*
105 install -m600
$(builddir
)/build-
$*/System.map \
106 $(pkgdir
)/boot
/System.map-
$(abi_release
)-$*
107 if
[ "$(dtb_files)" ]; then \
108 install -d
$(pkgdir
)/lib
/firmware
/$(abi_release
)-$*/device-tree
; \
109 for dtb_file in
$(dtb_files
); do \
110 install -m644
$(builddir
)/build-
$*/arch
/$(build_arch
)/boot
/dts
/$$dtb_file \
111 $(pkgdir
)/lib
/firmware
/$(abi_release
)-$*/device-tree
/$$dtb_file; \
112 echo
"device-tree/$$dtb_file ?" >> $(DEBIAN
)/d-i
/firmware
/kernel-image
; \
115 ifeq ($(no_dumpfile
),)
116 makedumpfile
-g
$(pkgdir
)/boot
/vmcoreinfo-
$(abi_release
)-$* \
117 -x
$(builddir
)/build-
$*/vmlinux
118 chmod
0600 $(pkgdir
)/boot
/vmcoreinfo-
$(abi_release
)-$*
121 $(build_cd
) $(kmake
) $(build_O
) $(conc_level
) modules_install
$(vdso
) \
122 INSTALL_MOD_STRIP
=1 INSTALL_MOD_PATH
=$(pkgdir
)/ \
123 INSTALL_FW_PATH
=$(pkgdir
)/lib
/firmware
/$(abi_release
)-$*
125 ifeq ($(do_extras_package
),true
)
127 # Remove all modules not in the inclusion list.
129 if
[ -f
$(DEBIAN
)/control.d
/$(target_flavour
).inclusion-list
] ; then \
130 mkdir
-p
$(pkgdir_ex
)/lib
/modules
/$(abi_release
)-$*; \
131 mv
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/kernel \
132 $(pkgdir_ex
)/lib
/modules
/$(abi_release
)-$*/kernel
; \
133 $(SHELL
) $(DROOT
)/scripts
/module-inclusion
--master \
134 $(pkgdir_ex
)/lib
/modules
/$(abi_release
)-$*/kernel \
135 $(pkgdir
)/lib
/modules
/$(abi_release
)-$*/kernel \
136 $(DEBIAN
)/control.d
/$(target_flavour
).inclusion-list
2>&1 | \
137 tee
$(target_flavour
).inclusion-list.log
; \
138 /sbin
/depmod
-b
$(pkgdir
) -ea
-F
$(pkgdir
)/boot
/System.map-
$(abi_release
)-$* \
139 $(abi_release
)-$* 2>&1 |tee
$(target_flavour
).depmod.log
; \
140 if
[ `grep -c 'unknown symbol' $(target_flavour).depmod.log` -gt
0 ]; then \
141 echo
"EE: Unresolved module dependencies in base package!"; \
147 ifeq ($(no_dumpfile
),)
148 makedumpfile
-g
$(pkgdir
)/boot
/vmcoreinfo-
$(abi_release
)-$* \
149 -x
$(builddir
)/build-
$*/vmlinux
150 chmod
0600 $(pkgdir
)/boot
/vmcoreinfo-
$(abi_release
)-$*
152 rm -f
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/build
153 rm -f
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/source
155 # Some initramfs-tools specific modules
156 install -d
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/initrd
157 if
[ -f
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/kernel
/drivers
/video
/vesafb.ko
]; then\
158 ln
-f
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/kernel
/drivers
/video
/vesafb.ko \
159 $(pkgdir
)/lib
/modules
/$(abi_release
)-$*/initrd
/; \
162 # Now the image scripts
163 install -d
$(pkgdir
)/DEBIAN
164 for script in postinst postrm preinst prerm
; do \
165 sed
-e
's/=V/$(abi_release)-$*/g' -e
's/=K/$(instfile)/g' \
166 -e
's/=L/$(loader)/g' -e
's@=B@$(build_arch)@g' \
167 $(DROOT
)/control-scripts
/$$script > $(pkgdir
)/DEBIAN
/$$script; \
168 chmod
755 $(pkgdir
)/DEBIAN
/$$script; \
170 ifeq ($(do_extras_package
),true
)
171 # Install the postinit/postrm scripts in the extras package.
172 if
[ -f
$(DEBIAN
)/control.d
/$(target_flavour
).inclusion-list
] ; then \
173 install -d
$(pkgdir_ex
)/DEBIAN
; \
174 for script in postinst postrm
; do \
175 sed
-e
's/=V/$(abi_release)-$*/g' -e
's/=K/$(instfile)/g' \
176 -e
's/=L/$(loader)/g' -e
's@=B@$(build_arch)@g' \
177 debian
/control-scripts
/$$script > $(pkgdir_ex
)/DEBIAN
/$$script; \
178 chmod
755 $(pkgdir_ex
)/DEBIAN
/$$script; \
183 # Install the full changelog.
184 ifeq ($(do_doc_package
),true
)
186 cat
$(DEBIAN
)/changelog
$(DEBIAN
)/changelog.historical | \
187 gzip
-9 >$(bindoc
)/changelog.Debian.old.gz
188 chmod
644 $(bindoc
)/changelog.Debian.old.gz
191 ifneq ($(skipsub
),true
)
192 for sub in
$($(*)_sub
); do \
193 if
! (TO
=$$sub FROM
=$* ABI_RELEASE
=$(abi_release
) $(SHELL
) \
194 $(DROOT
)/scripts
/sub-flavour
); then exit
1; fi
; \
195 /sbin
/depmod
-b debian
/$(bin_pkg_name
)-$$sub \
196 -ea
-F debian
/$(bin_pkg_name
)-$$sub/boot
/System.map-
$(abi_release
)-$* \
198 install -d debian
/$(bin_pkg_name
)-$$sub/DEBIAN
; \
199 for script in postinst postrm preinst prerm
; do \
200 sed
-e
's/=V/$(abi_release)-$*/g' \
201 -e
's/=K/$(instfile)/g' \
202 -e
's/=L/$(loader)/g' \
203 -e
's@=B@$(build_arch)@g' \
204 $(DROOT
)/control-scripts
/$$script > \
205 debian
/$(bin_pkg_name
)-$$sub/DEBIAN
/$$script;\
206 chmod
755 debian
/$(bin_pkg_name
)-$$sub/DEBIAN
/$$script;\
211 ifneq ($(skipdbg
),true
)
212 # Debug image is simple
213 install -m644
-D
$(builddir
)/build-
$*/vmlinux \
214 $(dbgpkgdir
)/usr
/lib
/debug
/boot
/vmlinux-
$(abi_release
)-$*
215 $(build_cd
) $(kmake
) $(build_O
) modules_install
$(vdso
) \
216 INSTALL_MOD_PATH
=$(dbgpkgdir
)/usr
/lib
/debug
217 # Add .gnu_debuglink sections to each stripped .ko
218 # pointing to unstripped verson
219 find
$(pkgdir
) -name
'*.ko' | sed
's|$(pkgdir)||'| while read module
; do \
220 if
[[ -f
"$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \
221 $(CROSS_COMPILE
)objcopy \
222 --add-gnu-debuglink
=$(dbgpkgdir
)/usr
/lib
/debug
/$$module \
223 $(pkgdir
)/$$module; \
224 scripts
/sign-file
$(CONFIG_MODULE_SIG_HASH
) $(MODSECKEY
) $(MODPUBKEY
) \
225 $(pkgdir
)/$$module; \
228 rm -f
$(dbgpkgdir
)/usr
/lib
/debug
/lib
/modules
/$(abi_release
)-$*/build
229 rm -f
$(dbgpkgdir
)/usr
/lib
/debug
/lib
/modules
/$(abi_release
)-$*/source
230 rm -f
$(dbgpkgdir
)/usr
/lib
/debug
/lib
/modules
/$(abi_release
)-$*/modules.
*
231 rm -fr
$(dbgpkgdir
)/usr
/lib
/debug
/lib
/firmware
234 # The flavour specific headers image
235 # TODO: Would be nice if we didn't have to dupe the original builddir
236 install -d
-m755
$(hdrdir
)
237 cat
$(builddir
)/build-
$*/.config | \
238 sed
-e
's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \
240 chmod
644 $(hdrdir
)/.config
241 $(kmake
) O
=$(hdrdir
) -j1 silentoldconfig prepare scripts
242 # We'll symlink this stuff
243 rm -f
$(hdrdir
)/Makefile
244 rm -rf
$(hdrdir
)/include2
$(hdrdir
)/source
245 # Copy over the compilation version.
246 cp
"$(builddir)/build-$*/include/generated/compile.h" \
247 "$(hdrdir)/include/generated/compile.h"
248 # Add UTS_UBUNTU_RELEASE_ABI since UTS_RELEASE is difficult to parse.
249 echo
"#define UTS_UBUNTU_RELEASE_ABI $(abinum)" >> $(hdrdir
)/include/generated
/utsrelease.h
250 # powerpc kernel arch seems to need some .o files for external module linking. Add them in.
251 ifeq ($(build_arch
),powerpc
)
252 mkdir
-p
$(hdrdir
)/arch
/powerpc
/lib
253 cp
$(builddir
)/build-
$*/arch
/powerpc
/lib
/*.o
$(hdrdir
)/arch
/powerpc
/lib
255 # Script to symlink everything up
256 $(SHELL
) $(DROOT
)/scripts
/link-headers
"$(hdrdir)" "$(indeppkg)" "$*"
258 install -d debian
/$(basepkg
)-$*/lib
/modules
/$(abi_release
)-$*
259 ln
-s
/usr
/src
/$(basepkg
)-$* \
260 debian
/$(basepkg
)-$*/lib
/modules
/$(abi_release
)-$*/build
261 # And finally the symvers
262 install -m644
$(builddir
)/build-
$*/Module.symvers \
263 $(hdrdir
)/Module.symvers
265 # Now the header scripts
266 install -d
$(CURDIR
)/debian
/$(basepkg
)-$*/DEBIAN
267 for script in postinst
; do \
268 sed
-e
's/=V/$(abi_release)-$*/g' -e
's/=K/$(instfile)/g' \
269 $(DROOT
)/control-scripts
/headers-
$$script > \
270 $(CURDIR
)/debian
/$(basepkg
)-$*/DEBIAN
/$$script; \
271 chmod
755 $(CURDIR
)/debian
/$(basepkg
)-$*/DEBIAN
/$$script; \
274 # At the end of the package prep, call the tests
275 DPKG_ARCH
="$(arch)" KERN_ARCH
="$(build_arch)" FLAVOUR
="$*" \
276 VERSION
="$(abi_release)" REVISION
="$(revision)" \
277 PREV_REVISION
="$(prev_revision)" ABI_NUM
="$(abinum)" \
278 PREV_ABI_NUM
="$(prev_abinum)" BUILD_DIR
="$(builddir)/build-$*" \
279 INSTALL_DIR
="$(pkgdir)" SOURCE_DIR
="$(CURDIR)" \
280 run-parts
-v
$(DROOT
)/tests-build
283 # Remove files which are generated at installation by postinst,
284 # except for modules.order and modules.builtin
286 # NOTE: need to keep this list in sync with postrm
288 mkdir
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/_
289 mv
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/modules.order \
290 $(pkgdir
)/lib
/modules
/$(abi_release
)-$*/_
291 if
[ -f
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/modules.builtin
] ; then \
292 mv
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/modules.builtin \
293 $(pkgdir
)/lib
/modules
/$(abi_release
)-$*/_
; \
295 rm -f
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/modules.
*
296 mv
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/_
/* \
297 $(pkgdir
)/lib
/modules
/$(abi_release
)-$*
298 rmdir
$(pkgdir
)/lib
/modules
/$(abi_release
)-$*/_
300 ifeq ($(do_linux_tools
),true
)
301 # Create the linux-tools tool links
302 install -d
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
303 ifeq ($(do_tools_usbip
),true
)
304 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/usbip
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
305 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/usbipd
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
307 ifeq ($(do_tools_cpupower
),true
)
308 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/cpupower
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
310 ifeq ($(do_tools_perf
),true
)
311 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/perf
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
313 ifeq ($(do_tools_x86
),true
)
314 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/x86_energy_perf_policy
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
315 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/turbostat
$(toolspkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
318 ifeq ($(do_cloud_tools
),true
)
319 ifeq ($(do_tools_hyperv
),true
)
320 # Create the linux-hyperv tool links
321 install -d
$(cloudpkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
322 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/hv_kvp_daemon
$(cloudpkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
323 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/hv_vss_daemon
$(cloudpkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
324 ln
-s ..
/..
/$(src_pkg_name
)-tools-
$(abi_release
)/hv_fcopy_daemon
$(cloudpkgdir
)/usr
/lib
/linux-tools
/$(abi_release
)-$*
328 headers_tmp
:= $(CURDIR
)/debian
/tmp-headers
329 headers_dir
:= $(CURDIR
)/debian
/linux-libc-dev
331 hmake
:= $(MAKE
) -C
$(CURDIR
) O
=$(headers_tmp
) \
332 KERNELVERSION
=$(abi_release
) INSTALL_HDR_PATH
=$(headers_tmp
)/install \
333 SHELL
="$(SHELL)" ARCH
=$(header_arch
)
335 install-arch-headers
:
339 dh_clean
-k
-plinux-libc-dev
341 rm -rf
$(headers_tmp
)
342 install -d
$(headers_tmp
) $(headers_dir
)/usr
/include/
344 $(hmake
) $(defconfig
)
345 mv
$(headers_tmp
)/.config
$(headers_tmp
)/.config.old
346 sed
-e
's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
347 -e
's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
348 $(headers_tmp
)/.config.old
> $(headers_tmp
)/.config
349 $(hmake
) silentoldconfig
350 $(hmake
) headers_install
352 ( cd
$(headers_tmp
)/install/include/ && \
353 find .
-name
'.' -o
-name
'.*' -prune
-o
-print | \
354 cpio
-pvd
--preserve-modification-time \
355 $(headers_dir
)/usr
/include/ )
356 mkdir
$(headers_dir
)/usr
/include/$(DEB_HOST_MULTIARCH
)
357 mv
$(headers_dir
)/usr
/include/asm
$(headers_dir
)/usr
/include/$(DEB_HOST_MULTIARCH
)/
359 rm -rf
$(headers_tmp
)
361 binary-arch-headers
: install-arch-headers
365 ifeq ($(do_libc_dev_package
),true
)
366 ifneq ($(DEBIAN
),debian.master
)
367 echo
"non-master branch building linux-libc-dev, aborting"
370 dh_installchangelogs
-plinux-libc-dev
371 dh_installdocs
-plinux-libc-dev
372 dh_compress
-plinux-libc-dev
373 dh_fixperms
-plinux-libc-dev
374 dh_installdeb
-plinux-libc-dev
375 $(lockme
) dh_gencontrol
-plinux-libc-dev
-- $(libc_dev_version
)
376 dh_md5sums
-plinux-libc-dev
377 dh_builddeb
-plinux-libc-dev
380 binary-
%: pkgimg
= $(bin_pkg_name
)-$*
381 binary-
%: pkgimg_ex
= $(extra_pkg_name
)-$*
382 binary-
%: pkghdr
= $(hdrs_pkg_name
)-$*
383 binary-
%: dbgpkg
= $(bin_pkg_name
)-$*-dbgsym
384 binary-
%: dbgpkgdir
= $(CURDIR
)/debian
/$(bin_pkg_name
)-$*-dbgsym
385 binary-
%: pkgtools
= $(tools_flavour_pkg_name
)-$*
386 binary-
%: pkgcloud
= $(cloud_flavour_pkg_name
)-$*
387 binary-
%: target_flavour
= $*
393 dh_installchangelogs
-p
$(pkgimg
)
394 dh_installdocs
-p
$(pkgimg
)
395 dh_compress
-p
$(pkgimg
)
396 dh_fixperms
-p
$(pkgimg
) -X
/boot
/
397 dh_installdeb
-p
$(pkgimg
)
398 dh_shlibdeps
-p
$(pkgimg
)
399 $(lockme
) dh_gencontrol
-p
$(pkgimg
)
400 dh_md5sums
-p
$(pkgimg
)
401 dh_builddeb
-p
$(pkgimg
) -- -Zbzip2
-z9
403 ifeq ($(do_extras_package
),true
)
404 if
[ -f
$(DEBIAN
)/control.d
/$(target_flavour
).inclusion-list
] ; then \
405 dh_installchangelogs
-p
$(pkgimg_ex
); \
406 dh_installdocs
-p
$(pkgimg_ex
); \
407 dh_compress
-p
$(pkgimg_ex
); \
408 dh_fixperms
-p
$(pkgimg_ex
) -X
/boot
/; \
409 dh_installdeb
-p
$(pkgimg_ex
); \
410 dh_shlibdeps
-p
$(pkgimg_ex
); \
411 $(lockme
) dh_gencontrol
-p
$(pkgimg_ex
); \
412 dh_md5sums
-p
$(pkgimg_ex
); \
413 dh_builddeb
-p
$(pkgimg_ex
) -- -Zbzip2
-z9
; \
417 dh_installchangelogs
-p
$(pkghdr
)
418 dh_installdocs
-p
$(pkghdr
)
419 dh_compress
-p
$(pkghdr
)
420 dh_fixperms
-p
$(pkghdr
)
421 dh_shlibdeps
-p
$(pkghdr
)
422 dh_installdeb
-p
$(pkghdr
)
423 $(lockme
) dh_gencontrol
-p
$(pkghdr
)
424 dh_md5sums
-p
$(pkghdr
)
425 dh_builddeb
-p
$(pkghdr
)
427 ifneq ($(skipsub
),true
)
428 @set
-e
; for sub in
$($(*)_sub
); do \
429 pkg
=$(bin_pkg_name
)-$$sub; \
430 dh_installchangelogs
-p
$$pkg; \
431 dh_installdocs
-p
$$pkg; \
432 dh_compress
-p
$$pkg; \
433 dh_fixperms
-p
$$pkg -X
/boot
/; \
434 dh_shlibdeps
-p
$$pkg; \
435 dh_installdeb
-p
$$pkg; \
436 $(lockme
) dh_gencontrol
-p
$$pkg; \
437 dh_md5sums
-p
$$pkg; \
438 dh_builddeb
-p
$$pkg; \
442 ifneq ($(skipdbg
),true
)
443 dh_installchangelogs
-p
$(dbgpkg
)
444 dh_installdocs
-p
$(dbgpkg
)
445 dh_compress
-p
$(dbgpkg
)
446 dh_fixperms
-p
$(dbgpkg
)
447 dh_installdeb
-p
$(dbgpkg
)
448 $(lockme
) dh_gencontrol
-p
$(dbgpkg
)
449 dh_md5sums
-p
$(dbgpkg
)
450 dh_builddeb
-p
$(dbgpkg
)
452 # Hokay...here's where we do a little twiddling...
453 # Renaming the debug package prevents it from getting into
454 # the primary archive, and therefore prevents this very large
455 # package from being mirrored. It is instead, through some
456 # archive admin hackery, copied to http://ddebs.ubuntu.com.
458 mv ..
/$(dbgpkg
)_
$(release
)-$(revision
)_
$(arch
).deb \
459 ..
/$(dbgpkg
)_
$(release
)-$(revision
)_
$(arch
).ddeb
462 $(lockme_cmd
) 9 || exit
1; \
463 if grep
-qs
'^Build-Debug-Symbols: yes$$' /CurrentlyBuilding
; then \
464 sed
-i
'/^$(dbgpkg)_/s/\.deb /.ddeb /' debian
/files
; \
466 grep
-v
'^$(dbgpkg)_.*$$' debian
/files
> debian
/files.new
; \
467 mv debian
/files.new debian
/files
; \
470 # Now, the package wont get into the archive, but it will get put
471 # into the debug system.
474 ifeq ($(do_linux_tools
),true
)
475 dh_installchangelogs
-p
$(pkgtools
)
476 dh_installdocs
-p
$(pkgtools
)
477 dh_compress
-p
$(pkgtools
)
478 dh_fixperms
-p
$(pkgtools
)
479 dh_shlibdeps
-p
$(pkgtools
)
480 dh_installdeb
-p
$(pkgtools
)
481 $(lockme
) dh_gencontrol
-p
$(pkgtools
)
482 dh_md5sums
-p
$(pkgtools
)
483 dh_builddeb
-p
$(pkgtools
)
485 ifeq ($(do_cloud_tools
),true
)
486 dh_installchangelogs
-p
$(pkgcloud
)
487 dh_installdocs
-p
$(pkgcloud
)
488 dh_compress
-p
$(pkgcloud
)
489 dh_fixperms
-p
$(pkgcloud
)
490 dh_shlibdeps
-p
$(pkgcloud
)
491 dh_installdeb
-p
$(pkgcloud
)
492 $(lockme
) dh_gencontrol
-p
$(pkgcloud
)
493 dh_md5sums
-p
$(pkgcloud
)
494 dh_builddeb
-p
$(pkgcloud
)
497 ifneq ($(full_build
),false
)
498 # Clean out this flavours build directory.
499 rm -rf
$(builddir
)/build-
$*
500 # Clean out the debugging package source directory.
505 # per-architecture packages
507 builddirpa
= $(builddir
)/tools-perarch
509 $(stampdir
)/stamp-prepare-perarch
:
511 ifeq ($(do_any_tools
),true
)
513 install -d
$(builddirpa
)
514 for i in
*; do ln
-s
$(CURDIR
)/$$i $(builddirpa
); done
515 rm $(builddirpa
)/tools
516 rsync
-a tools
/ $(builddirpa
)/tools
/
520 $(stampdir
)/stamp-build-perarch
: $(stampdir
)/stamp-prepare-perarch install-arch-headers
522 ifeq ($(do_linux_tools
),true
)
523 ifeq ($(do_tools_usbip
),true
)
524 chmod
755 $(builddirpa
)/tools
/usb
/usbip
/autogen.sh
525 cd
$(builddirpa
)/tools
/usb
/usbip
&& .
/autogen.sh
526 chmod
755 $(builddirpa
)/tools
/usb
/usbip
/configure
527 cd
$(builddirpa
)/tools
/usb
/usbip
&& .
/configure
--prefix=$(builddirpa
)/tools
/usb
/usbip
/bin
528 cd
$(builddirpa
)/tools
/usb
/usbip
&& make
install CFLAGS
="-g -O2 -static" CROSS_COMPILE
=$(CROSS_COMPILE
)
530 ifeq ($(do_tools_cpupower
),true
)
531 # Allow for multiple installed versions of cpupower and libcpupower.so:
532 # Override LIB_MIN in order to to generate a versioned .so named
533 # libcpupower.so.$(abi_release) and link cpupower with that.
534 make
-C
$(builddirpa
)/tools
/power
/cpupower \
535 CROSS_COMPILE
=$(CROSS_COMPILE
) \
536 LIB_MIN
=$(abi_release
) CPUFREQ_BENCH
=false
538 ifeq ($(do_tools_perf
),true
)
539 cd
$(builddirpa
)/tools
/perf
&& \
540 make
prefix=/usr HAVE_CPLUS_DEMANGLE
=1 CROSS_COMPILE
=$(CROSS_COMPILE
) NO_LIBPYTHON
=1 NO_LIBPERL
=1 PYTHON
=python2.7
542 ifeq ($(do_tools_x86
),true
)
543 cd
$(builddirpa
)/tools
/power
/x86
/x86_energy_perf_policy
&& make CROSS_COMPILE
=$(CROSS_COMPILE
)
544 cd
$(builddirpa
)/tools
/power
/x86
/turbostat
&& make CROSS_COMPILE
=$(CROSS_COMPILE
)
547 ifeq ($(do_cloud_tools
),true
)
548 ifeq ($(do_tools_hyperv
),true
)
549 cd
$(builddirpa
)/tools
/hv
&& make CFLAGS
="-I$(headers_dir)/usr/include -I$(headers_dir)/usr/include/$(DEB_HOST_MULTIARCH)" CROSS_COMPILE
=$(CROSS_COMPILE
) hv_kvp_daemon hv_vss_daemon hv_fcopy_daemon
554 install-perarch
: toolspkgdir
= $(CURDIR
)/debian
/$(tools_pkg_name
)
555 install-perarch
: cloudpkgdir
= $(CURDIR
)/debian
/$(cloud_pkg_name
)
556 install-perarch
: $(stampdir
)/stamp-build-perarch
559 ifeq ($(do_linux_tools
),true
)
560 install -d
$(toolspkgdir
)/usr
/lib
561 install -d
$(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
562 ifeq ($(do_tools_usbip
),true
)
563 install -m755
$(builddirpa
)/tools
/usb
/usbip
/bin
/sbin
/usbip \
564 $(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
565 install -m755
$(builddirpa
)/tools
/usb
/usbip
/bin
/sbin
/usbipd \
566 $(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
568 ifeq ($(do_tools_cpupower
),true
)
569 install -m755
$(builddirpa
)/tools
/power
/cpupower
/cpupower \
570 $(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
571 # Install only the full versioned libcpupower.so.$(abi_release), not
572 # the usual symlinks to it.
573 install -m644
$(builddirpa
)/tools
/power
/cpupower
/libcpupower.so.
$(abi_release
) \
574 $(toolspkgdir
)/usr
/lib
/
576 ifeq ($(do_tools_perf
),true
)
577 install -m755
$(builddirpa
)/tools
/perf
/perf
$(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
579 ifeq ($(do_tools_x86
),true
)
580 install -m755
$(builddirpa
)/tools
/power
/x86
/x86_energy_perf_policy
/x86_energy_perf_policy \
581 $(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
582 install -m755
$(builddirpa
)/tools
/power
/x86
/turbostat
/turbostat \
583 $(toolspkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
586 ifeq ($(do_cloud_tools
),true
)
587 ifeq ($(do_tools_hyperv
),true
)
588 install -d
$(cloudpkgdir
)/usr
/lib
589 install -d
$(cloudpkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
590 install -m755
$(builddirpa
)/tools
/hv
/hv_kvp_daemon \
591 $(cloudpkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
592 install -m755
$(builddirpa
)/tools
/hv
/hv_vss_daemon \
593 $(cloudpkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
594 install -m755
$(builddirpa
)/tools
/hv
/hv_fcopy_daemon \
595 $(cloudpkgdir
)/usr
/lib
/$(src_pkg_name
)-tools-
$(abi_release
)
599 binary-perarch
: toolspkg
= $(tools_pkg_name
)
600 binary-perarch
: cloudpkg
= $(cloud_pkg_name
)
601 binary-perarch
: install-perarch
603 ifeq ($(do_linux_tools
),true
)
604 dh_strip
-p
$(toolspkg
)
605 dh_installchangelogs
-p
$(toolspkg
)
606 dh_installdocs
-p
$(toolspkg
)
607 dh_compress
-p
$(toolspkg
)
608 dh_fixperms
-p
$(toolspkg
)
609 dh_shlibdeps
-p
$(toolspkg
)
610 dh_installdeb
-p
$(toolspkg
)
611 $(lockme
) dh_gencontrol
-p
$(toolspkg
)
612 dh_md5sums
-p
$(toolspkg
)
613 dh_builddeb
-p
$(toolspkg
)
615 ifeq ($(do_cloud_tools
),true
)
616 dh_strip
-p
$(cloudpkg
)
617 dh_installchangelogs
-p
$(cloudpkg
)
618 dh_installdocs
-p
$(cloudpkg
)
619 dh_compress
-p
$(cloudpkg
)
620 dh_fixperms
-p
$(cloudpkg
)
621 dh_shlibdeps
-p
$(cloudpkg
)
622 dh_installdeb
-p
$(cloudpkg
)
623 $(lockme
) dh_gencontrol
-p
$(cloudpkg
)
624 dh_md5sums
-p
$(cloudpkg
)
625 dh_builddeb
-p
$(cloudpkg
)
628 binary-debs
: signed
= $(CURDIR
)/debian
/$(bin_pkg_name
)-signed
629 binary-debs
: signedv
= $(CURDIR
)/debian
/$(bin_pkg_name
)-signed
/$(release
)-$(revision
)
630 binary-debs
: signed_tar
= $(src_pkg_name
)_
$(release
)-$(revision
)_
$(arch
).
tar.gz
631 binary-debs
: binary-perarch
$(addprefix binary-
,$(flavours
))
633 ifeq ($(uefi_signed
),true
)
634 echo
$(release
)-$(revision
) > $(signedv
)/version
635 cd
$(signedv
) && ls
*.efi
>flavours
636 cd
$(signed
) && tar czvf ..
/..
/..
/$(signed_tar
) .
637 dpkg-distaddfile
$(signed_tar
) raw-uefi
-
640 build-arch-deps-
$(do_flavour_image_package
) += $(addprefix $(stampdir
)/stamp-build-
,$(flavours
))
641 build-arch
: $(build-arch-deps-true
)
645 binary-arch-deps-
$(do_flavour_image_package
) += binary-udebs
647 binary-arch-deps-
$(do_flavour_image_package
) = binary-debs
649 binary-arch-deps-
$(do_libc_dev_package
) += binary-arch-headers
650 ifneq ($(do_common_headers_indep
),true
)
651 binary-arch-deps-
$(do_flavour_header_package
) += binary-headers
653 binary-arch
: $(binary-arch-deps-true
)