| #!/usr/bin/make -f | |
| # -*- makefile -*- | |
| # Uncomment this to turn on verbose mode. | |
| # export DH_VERBOSE=1 | |
| VERSION := 4.9.51-imx | |
| ARCH := arm64 | |
| DTBS := \ | |
| freescale/fsl-imx8mq-phanbell.dtb \ | |
| freescale/fsl-imx8mq-yorktown.dtb | |
| DTBS := $(addprefix arch/$(ARCH)/boot/dts/,$(DTBS)) | |
| KERNEL_OPTIONS := \ | |
| ARCH=arm64 \ | |
| CROSS_COMPILE=aarch64-linux-gnu- \ | |
| LOCALVERSION=-imx | |
| LDFLAGS := | |
| BUILD_DIR := $(CURDIR)/debian/build | |
| DESTDIR := $(CURDIR)/debian/linux-image-$(VERSION) | |
| DESTDIR_HEADERS := $(CURDIR)/debian/linux-headers-$(VERSION) | |
| DESTDIR_KBUILD := $(CURDIR)/debian/linux-kbuild-$(VERSION) | |
| %: | |
| dh $@ | |
| override_dh_auto_clean: | |
| true | |
| override_dh_auto_build: | |
| +make $(KERNEL_OPTIONS) defconfig | |
| cat debian/defconfig | tee -a .config | |
| +make $(KERNEL_OPTIONS) olddefconfig | |
| +make $(KERNEL_OPTIONS) -j$(shell nproc) Image modules dtbs | |
| override_dh_auto_install: | |
| +make $(KERNEL_OPTIONS) INSTALL_MOD_PATH=$(DESTDIR) modules_install | |
| rm $(DESTDIR)/lib/modules/$(VERSION)/build | |
| rm $(DESTDIR)/lib/modules/$(VERSION)/source | |
| # Setup contents of /boot | |
| install -d $(DESTDIR)/boot | |
| cp arch/$(ARCH)/boot/Image $(DESTDIR)/boot/vmlinuz-$(VERSION) | |
| ln -sf vmlinuz-$(VERSION) $(DESTDIR)/boot/Image | |
| cp System.map $(DESTDIR)/boot/System.map-$(VERSION) | |
| cp .config $(DESTDIR)/boot/config-$(VERSION) | |
| cp $(DTBS) $(DESTDIR)/boot | |
| # Build header directory structure | |
| install -d $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION) | |
| install -d $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/arch/arm | |
| install -d $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/arch/$(ARCH)/kernel | |
| install -d $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/drivers/staging/android | |
| # Copy module information, include files, and important Makefiles into the header tree | |
| cp -a .config $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION) | |
| cp -a Module.symvers $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION) | |
| cp -a include $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION) | |
| cp -a drivers/staging/android/uapi $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/drivers/staging/android | |
| cp -a arch/$(ARCH)/include $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/arch/$(ARCH) | |
| # Sigh, arm64 headers also need arm headers... | |
| cp -a arch/arm/include $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/arch/arm | |
| cp -a Makefile $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION) | |
| ( \ | |
| 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; \ | |
| ) | cpio -pdm $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION) | |
| # Clean up any leftover x86 artifacts from the kernel build, and then build scripts | |
| find $(CURDIR)/scripts -type f | xargs file | grep 'x86-' | awk '{print $$1}' | tr -d ':' | xargs rm -f | |
| mkdir -p $(BUILD_DIR)/build-tools/scripts | |
| $(MAKE) $(KERNEL_OPTIONS) \ | |
| CROSS_COMPILE=$(DEB_HOST_GNU_TYPE)- \ | |
| -C $(BUILD_DIR)/build-tools/scripts -f $(CURDIR)/debian/rules.d/scripts/Makefile \ | |
| top_rulesdir=$(CURDIR)/debian/rules.d \ | |
| top_srcdir=$(CURDIR) \ | |
| OUTDIR=scripts \ | |
| install \ | |
| DESTDIR=$(DESTDIR_KBUILD) \ | |
| prefix=/usr/lib/linux-kbuild-$(VERSION) | |
| # Setup the symlink from the modules directory to the headers | |
| install -d $(DESTDIR_HEADERS)/lib/modules/$(VERSION) | |
| ln -s /usr/src/linux-headers-$(VERSION) $(DESTDIR_HEADERS)/lib/modules/$(VERSION)/build | |
| ln -s /usr/lib/linux-kbuild-$(VERSION)/scripts $(DESTDIR_HEADERS)/usr/src/linux-headers-$(VERSION)/scripts |