package-helpers-cmxsl/helpers/DATA/linux-hwe-6.14/udeb/5-udebs.mk

120 lines
4.3 KiB
Makefile

# Do udebs if not disabled in the arch-specific makefile
binary-udebs: binary-debs
@echo Debug: $@
ifeq ($(disable_d_i),)
@$(MAKE) --no-print-directory -f debian/rules DEBIAN=$(DEBIAN) \
do-binary-udebs
endif
# Hook into Ubuntu's architecture build process without modifying their files
binary-arch: binary-udebs
# Prefer DEB_SOURCE when available; fallback to src_pkg_name; otherwise "linux"
do-binary-udebs: linux_udeb_name=$(if $(DEB_SOURCE),$(DEB_SOURCE),$(if $(src_pkg_name),$(src_pkg_name),linux))
do-binary-udebs: debian/control
@echo Debug: $@
dh_testdir
dh_testroot
# unpack the kernels into a temporary directory
mkdir -p debian/d-i-${arch}
outdir="$${DPKG_BUILDPACKAGE_OUTPUT_DIR:-..}" && \
imagelist=$$(cat $(CURDIR)/$(DEBIAN)/d-i/kernel-versions | grep ^${arch} | gawk '{print $$3}') && \
for flavour in $$imagelist; do \
i=$(DEB_VERSION_UPSTREAM)-$(abinum)-$$flavour; \
found=0; \
for deb in \
"$$outdir"/linux-image-$$i\_*_${arch}.deb \
"$$outdir"/linux-image-unsigned-$$i\_*_${arch}.deb \
"$$outdir"/linux-modules-$$i\_*_${arch}.deb \
"$$outdir"/linux-modules-extra-$$i\_*_${arch}.deb; \
do \
if [ -f "$$deb" ]; then \
found=1; \
dpkg -x "$$deb" debian/d-i-${arch}; \
fi; \
done; \
if [ "$$found" = 0 ]; then \
echo "E: missing .deb for $$i in $$outdir (DPKG_BUILDPACKAGE_OUTPUT_DIR)." >&2; \
ls -1 "$$outdir"/linux-image-$$i\_*_${arch}.deb \
"$$outdir"/linux-image-unsigned-$$i\_*_${arch}.deb \
"$$outdir"/linux-modules-$$i\_*_${arch}.deb \
"$$outdir"/linux-modules-extra-$$i\_*_${arch}.deb 2>/dev/null >&2 || true; \
exit 1; \
fi; \
rm -rf debian/d-i-${arch}/DEBIAN; \
if [ ! -e debian/d-i-${arch}/lib/modules ] && [ -d debian/d-i-${arch}/usr/lib/modules ]; then \
mkdir -p debian/d-i-${arch}/lib; \
ln -s ../usr/lib/modules debian/d-i-${arch}/lib/modules; \
fi; \
if [ ! -d debian/d-i-${arch}/lib/modules/$$i ]; then \
echo "E: missing debian/d-i-${arch}/lib/modules/$$i" >&2; \
exit 1; \
fi; \
/sbin/depmod -b debian/d-i-${arch} -- $$i; \
if [ "$(filter true,$(do_dtbs))" ]; then \
if [ -d debian/d-i-${arch}/lib/firmware/$$i/device-tree ]; then \
echo ">> Trisquel: Extracting dtbs for $$i..."; \
mkdir -p $(CURDIR)/$(DEBIAN)/d-i/firmware/${arch}; \
( cd debian/d-i-${arch}/lib/firmware/$$i/ && find device-tree -print 2>/dev/null || true ) | \
while read dtb_file; do \
echo "$$dtb_file ?" >> $(CURDIR)/$(DEBIAN)/d-i/firmware/${arch}/kernel-image; \
done; \
fi; \
fi; \
done
# kernel-wedge will error if no modules unless this is touched
touch $(DEBIAN)/d-i/no-modules
touch $(CURDIR)/$(DEBIAN)/d-i/ignore-dups
export KW_DEFCONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
export KW_CONFIG_DIR=$(CURDIR)/$(DEBIAN)/d-i && \
export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
kernel-wedge install-files $(DEB_VERSION_UPSTREAM)-$(abinum) && \
kernel-wedge check
# Build just the udebs
dilist=$$(dh_listpackages -a | grep "\-di$$") && \
[ -z "$$dilist" ] || \
for i in $$dilist; do \
dh_fixperms -p$$i; \
$(lockme) dh_gencontrol -p$$i; \
dh_builddeb -p$$i; \
done
# Generate the meta-udeb dependancy lists.
mkdir -p $(builddir)
touch $(builddir)/udeb-meta-packages.list
@gawk ' \
/^Package:/ { \
package=$$2; flavour=""; match_arch=0 } \
(/Package-Type: udeb/ && package !~ /^$(linux_udeb_name)-udebs-/) { \
match(package, "$(DEB_VERSION_UPSTREAM)-$(abinum)-(.*)-di", bits); \
flavour = bits[1]; \
} \
/^Architecture:/ { \
match_arch=0; \
for (i=2; i<=NF; i++) if ($$i=="$(arch)") match_arch=1; \
} \
(flavour != "" && match_arch) { \
udebs[flavour] = udebs[flavour] package ", "; \
flavour=""; match_arch=0; \
} \
END { \
for (flavour in udebs) { \
package="$(linux_udeb_name)-udebs-" flavour; \
file="debian/" package ".substvars"; \
print("udeb:Depends=" udebs[flavour]) > file; \
metas="$(builddir)/udeb-meta-packages.list"; \
print(package) >>metas \
} \
} \
' <$(CURDIR)/debian/control
@while read i; do \
if [ -n "$$i" ]; then \
$(lockme) dh_gencontrol -p$$i; \
dh_builddeb -p$$i; \
fi; \
done <$(builddir)/udeb-meta-packages.list