146 kx
146 kx COMPONENT_TARGETS = $(HARDWARE_REPKA_PI3)
146 kx
146 kx NEED_ABS_PATH = true
146 kx
146 kx COMPONENT_IS_3PP = true
146 kx
146 kx
146 kx include ../../../../build-system/constants.mk
146 kx
146 kx
146 kx SOURCE_REQUIRES = sources/Linux/v6.x
146 kx
146 kx REQUIRES = base/radix-system
146 kx
146 kx # ======= __END_OF_REQUIRES__ =======
146 kx
146 kx
164 kx version = 6.1.53
146 kx subversion =
164 kx modules_version = 6.1.53
146 kx full_version = $(version)
146 kx tar_xz_archive = $(SRC_PACKAGE_PATH)/Linux/v6.x/linux-$(full_version).tar.xz
146 kx SRC_ARCHIVE = $(tar_xz_archive)
146 kx SRC_DIR = $(TARGET_BUILD_DIR)/usr/src/linux-$(full_version)
146 kx src_done = $(TARGET_BUILD_DIR)/.source_done
146 kx
146 kx config = configs/$(HARDWARE)-$(modules_version).config
146 kx build_dir = $(SRC_DIR)
146 kx modules_dir = $(CURDIR)/$(TARGET_BUILD_DIR)
146 kx
146 kx build_config = $(SRC_DIR)/.config
146 kx oldconfig_done = $(TARGET_BUILD_DIR)/.oldconfig_done
146 kx modules_done = $(TARGET_BUILD_DIR)/.modules_done
146 kx device_dtbs_done = $(TARGET_BUILD_DIR)/.device_dtbs_done
146 kx
146 kx devel_sources = $(TARGET_DEST_DIR)/usr/src/linux-$(full_version)
146 kx devel_sources_done = $(TARGET_BUILD_DIR)/.devel_sources_done
146 kx boot_filesystem = $(TARGET_DEST_DIR)/bootfs
146 kx boot_fs_dir_done = $(TARGET_BUILD_DIR)/.bootfs_done
146 kx
146 kx
146 kx PATCHES = PATCHES
146 kx
146 kx
146 kx ifneq ($(filter $(TOOLCHAIN),$(TOOLCHAIN_H5_GLIBC)),)
146 kx ARCH = arm64
146 kx endif
146 kx
146 kx USE_TARGET_DEST_DIR_SYSROOT = no
146 kx
146 kx ifneq ($(filter $(HARDWARE),$(HARDWARE_REPKA_PI3)),)
146 kx device_tree_names = sun50i-h5-repka-pi3-1.0ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-1.2ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-1.4ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-1.0ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-1.2ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-1.4ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-i2c2-1.0ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-i2c2-1.2ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-i2c2-1.4ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-pwm-1.0ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-pwm-1.2ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-pwm-1.4ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-uart-1.0ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-uart-1.2ghz
146 kx device_tree_names += sun50i-h5-repka-pi3-alt-uart-1.4ghz
146 kx
156 kx device_tree_names += sun50i-h5-repka-pi3-v1.4
156 kx device_tree_names += sun50i-h5-repka-pi3-v1.4p
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-v1.4
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-v1.4p
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-i2c2-v1.4
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-i2c2-v1.4p
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-pwm-v1.4
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-pwm-v1.4p
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-uart-v1.4
156 kx device_tree_names += sun50i-h5-repka-pi3-alt-uart-v1.4p
156 kx
146 kx default_device_tree = sun50i-h5-repka-pi3-alt-1.2ghz
146 kx endif
146 kx
146 kx device_tree_dtbs = $(addsuffix .dtb, $(device_tree_names))
146 kx
146 kx
146 kx ####### Targets
146 kx
146 kx linux_kernel = $(TARGET_BUILD_DIR)/vmlinux-$(full_version)
146 kx linux_Image = $(TARGET_BUILD_DIR)/Image-$(full_version)
146 kx linux_zImage = $(TARGET_BUILD_DIR)/vmlinuz-$(full_version)
146 kx linux_config = $(TARGET_BUILD_DIR)/config-$(full_version)
146 kx linux_systemmap = $(TARGET_BUILD_DIR)/System.map-$(full_version)
146 kx board_dtbs_path = $(CURDIR)/$(TARGET_BUILD_DIR)
146 kx
146 kx
146 kx #
146 kx # gen_init_cpio - is built with kernel for HOST machine (not used here now)
146 kx #
146 kx # can be installed into ROOTFS_DEST_DIR for HOST target
146 kx # i.e. TOOLCHAIN=build HARDWARE=host (see build-system/targets.mk)
146 kx #
146 kx # in the future we can create package for HOST machine to provide these utils
146 kx #
146 kx gen_init_cpio_src = $(SRC_DIR)/usr/gen_init_cpio.c
146 kx gen_init_cpio = $(TARGET_BUILD_DIR)/usr/gen_init_cpio
146 kx gen_initramfs_list_sh = $(SRC_DIR)/scripts/gen_initramfs_list.sh
146 kx
146 kx
146 kx PKG_GROUP = boot
146 kx
146 kx
146 kx KERNEL_BIN_PKG_NAME = kernel
164 kx KERNEL_BIN_PKG_VERSION = 6.1.53
146 kx KERNEL_BIN_PKG_ARCH = $(PKGARCH)
146 kx KERNEL_BIN_PKG_DISTRO_NAME = $(DISTRO_NAME)
146 kx KERNEL_BIN_PKG_DISTRO_VERSION = $(DISTRO_VERSION)
146 kx KERNEL_BIN_PKG_GROUP = $(PKG_GROUP)
146 kx ### |---handy-ruler-------------------------------|
146 kx KERNEL_BIN_PKG_SHORT_DESCRIPTION = Mainline H5 Linux Kernel
146 kx KERNEL_BIN_PKG_URL = $(BUG_URL)
146 kx KERNEL_BIN_PKG_LICENSE = GPLv2
146 kx KERNEL_BIN_PKG_DESCRIPTION_FILE = $(TARGET_BUILD_DIR)/$(KERNEL_BIN_PKG_NAME)-pkg-description
146 kx KERNEL_BIN_PKG_DESCRIPTION_FILE_IN = $(KERNEL_BIN_PKG_NAME)-pkg-description.in
146 kx KERNEL_BIN_PKG_INSTALL_SCRIPT = $(KERNEL_BIN_PKG_NAME)-pkg-install.sh
146 kx
146 kx KERNEL_BIN_PKG = $(CURDIR)/$(TARGET_BUILD_DIR)/$(KERNEL_BIN_PKG_NAME)-package
146 kx
146 kx build_kernel_pkg = $(TARGET_BUILD_DIR)/.kernel_pkg_done
146 kx
146 kx pkg_basename = $(KERNEL_BIN_PKG_NAME)-$(KERNEL_BIN_PKG_VERSION)-$(KERNEL_BIN_PKG_ARCH)-$(KERNEL_BIN_PKG_DISTRO_NAME)-$(KERNEL_BIN_PKG_DISTRO_VERSION)
146 kx
146 kx pkg_archive = $(TARGET_BUILD_DIR)/$(PKG_GROUP)/$(pkg_basename).$(pkg_arch_suffix)
146 kx pkg_certificate = $(call cert-name,$(pkg_archive))
146 kx pkg_signature = $(call sign-name,$(pkg_archive))
146 kx pkg_description = $(call desc-name,$(pkg_archive))
146 kx products = $(call pkg-files,$(pkg_archive))
146 kx
146 kx BUILD_TARGETS = $(build_config)
146 kx BUILD_TARGETS += $(oldconfig_done)
146 kx BUILD_TARGETS += $(linux_Image)
146 kx BUILD_TARGETS += $(linux_zImage)
146 kx BUILD_TARGETS += $(linux_kernel)
146 kx BUILD_TARGETS += $(linux_systemmap)
146 kx BUILD_TARGETS += $(linux_config)
146 kx BUILD_TARGETS += $(modules_done)
146 kx BUILD_TARGETS += $(device_dtbs_done)
146 kx BUILD_TARGETS += $(devel_sources_done)
146 kx BUILD_TARGETS += $(boot_fs_dir_done)
146 kx BUILD_TARGETS += $(build_kernel_pkg)
146 kx
146 kx PRODUCT_TARGETS = $(products)
146 kx
146 kx ROOTFS_TARGETS = $(pkg_archive)
146 kx
146 kx
146 kx include ../../../../build-system/core.mk
146 kx
146 kx
146 kx OPTIMIZATION_FLAGS = -O2
146 kx
146 kx skip-warn-flags = -Wimplicit-fallthrough=0 -Wformat=0
146 kx host-ldflags = -L/lib$(BUILD_MULTILIB_SUFFIX) -L/usr/lib$(BUILD_MULTILIB_SUFFIX)
146 kx
146 kx
146 kx ####### Dependencies
146 kx
146 kx $(src_done): $(SRC_ARCHIVE) $(PATCHES_DEP)
146 kx $(UNPACK_SRC_ARCHIVE)
146 kx $(APPLY_PATCHES)
146 kx @touch $@
146 kx
146 kx LMAKE := $(BUILD_ENVIRONMENT) PKG_CONFIG_PATH= PKG_CONFIG_LIBDIR= \
146 kx $(MAKE) -C $(SRC_DIR) ARCH=$(ARCH) CROSS_COMPILE="$(CROSS_PREFIX)" \
146 kx KCFLAGS="$(skip-warn-flags)" HOSTLDFLAGS="$(host-ldflags)" \
146 kx V=$(if $(VERBOSE),1,0)
146 kx
146 kx $(build_config): $(src_done) $(config)
146 kx @mkdir -p $(build_dir)
146 kx @cp $(config) $@
146 kx
146 kx $(oldconfig_done): $(build_config)
146 kx +$(LMAKE) oldconfig
146 kx @touch $@
146 kx
146 kx $(devel_sources_done): $(oldconfig_done)
146 kx +$(LMAKE) modules_prepare
146 kx @echo "Creating '$(devel_sources)' for building external modules"
146 kx @rm -rf $(devel_sources)
146 kx @rm -rf $(TARGET_DEST_DIR)/lib/modules/$(modules_version)
146 kx @mkdir -p $(TARGET_DEST_DIR)/lib/modules/$(modules_version)
146 kx @( cd $(TARGET_DEST_DIR)/lib/modules/$(modules_version) ; \
146 kx if [ -L build ] ; then rm -f build ; fi ; \
146 kx if [ -L source ] ; then rm -f source ; fi ; \
146 kx )
146 kx @mkdir -p $(TARGET_DEST_DIR)/usr/src
146 kx # ======= Install kernel sources =======
146 kx @echo "" > $(TARGET_DEST_DIR)/usr/src/.CONTENT
146 kx @echo "Configured '$(HARDWARE)' Linux sources for building external modules." >> $(TARGET_DEST_DIR)/usr/src/.CONTENT
146 kx @echo "" >> $(TARGET_DEST_DIR)/usr/src/.CONTENT
146 kx @cp -a $(build_dir) $(TARGET_DEST_DIR)/usr/src
146 kx @( cd $(TARGET_DEST_DIR)/lib/modules/$(modules_version) ; \
146 kx ln -sf ../../../usr/src/linux-$(full_version) build ; \
146 kx ln -sf ../../../usr/src/linux-$(full_version) source ; \
146 kx )
146 kx @touch $@
146 kx
146 kx $(linux_Image): $(devel_sources_done)
146 kx +$(LMAKE) Image
146 kx @cp $(build_dir)/arch/$(ARCH)/boot/Image $@
146 kx
146 kx $(linux_zImage): $(linux_Image)
146 kx +$(LMAKE) Image.lzma
146 kx @cp $(build_dir)/arch/$(ARCH)/boot/Image.lzma $@
146 kx
146 kx $(linux_kernel): $(linux_zImage)
146 kx @cp $(build_dir)/vmlinux $@
146 kx
146 kx $(linux_systemmap): $(linux_kernel)
146 kx @cp $(build_dir)/System.map $@
146 kx
146 kx $(linux_config): $(linux_kernel)
146 kx @cp $(build_dir)/.config $@
146 kx
146 kx $(modules_done): $(linux_kernel) $(linux_systemmap) $(linux_config)
146 kx +$(LMAKE) modules
146 kx @rm -rf $(TARGET_BUILD_DIR)/lib
146 kx @$(LMAKE) modules_install DEPMOD=true INSTALL_MOD_PATH=$(modules_dir)
146 kx @cd $(TARGET_BUILD_DIR) && \
146 kx CWD=$(CURDIR) $(BUILDSYSTEM)/install_targets \
146 kx --preserve-source-dir=true \
146 kx --destination=$(TARGET_DEST_DIR) \
146 kx --toolchain=$(TOOLCHAIN) --hardware=$(HARDWARE) --flavour=$(FLAVOUR) \
146 kx $$(find * -path 'lib*' -type f -print)
146 kx @touch $@
146 kx
146 kx $(device_dtbs_done): $(modules_done)
146 kx +$(LMAKE) dtbs
146 kx @( cd $(build_dir)/arch/$(ARCH)/boot/dts/allwinner ; \
146 kx cp -a $(device_tree_dtbs) $(board_dtbs_path) ; \
146 kx )
146 kx @touch $@
146 kx
146 kx $(boot_fs_dir_done): $(device_dtbs_done)
146 kx @echo "Creating '$(boot_filesystem)' directory for collecting boot file system objects"
146 kx @rm -rf $(boot_filesystem)
146 kx @mkdir -p $(boot_filesystem)
146 kx @echo "" > $(boot_filesystem)/.CONTENT
146 kx @echo "Collection '$(HARDWARE)' images for building BOOT filesystem." >> $(boot_filesystem)/.CONTENT
146 kx @echo "" >> $(boot_filesystem)/.CONTENT
146 kx @cp -a $(linux_Image) $(boot_filesystem)/Image
146 kx @cp -a $(linux_zImage) $(boot_filesystem)/vmlinuz
146 kx @cp -a $(linux_config) $(boot_filesystem)/config
146 kx @( cd $(board_dtbs_path) ; \
146 kx cp -a $(device_tree_dtbs) $(boot_filesystem) ; \
146 kx )
146 kx @touch $@
146 kx
146 kx $(build_kernel_pkg): $(boot_fs_dir_done)
146 kx @mkdir -p $(KERNEL_BIN_PKG)/boot/allwinner
146 kx @mkdir -p $(KERNEL_BIN_PKG)/lib/modules/$(modules_version)
146 kx # ======= Copy modules and firmware (without links to sources): =======
146 kx @cd $(modules_dir)/lib/modules/$(modules_version) && \
146 kx cp -rf kernel $(KERNEL_BIN_PKG)/lib/modules/$(modules_version) && \
146 kx cp -a modules.* $(KERNEL_BIN_PKG)/lib/modules/$(modules_version)
146 kx @if [ -d $(modules_dir)/lib/firmware ] ; then \
146 kx cd $(modules_dir)/lib && \
146 kx cp -rf firmware $(KERNEL_BIN_PKG)/lib ; \
146 kx fi
146 kx @cp -a $(linux_kernel) $(KERNEL_BIN_PKG)/boot/vmlinux-$(full_version)
146 kx @cp -a $(linux_Image) $(KERNEL_BIN_PKG)/boot/Image-$(full_version)
146 kx @cp -a $(linux_zImage) $(KERNEL_BIN_PKG)/boot/vmlinuz-$(full_version)
146 kx @cp -a $(linux_config) $(KERNEL_BIN_PKG)/boot/config-$(full_version)
146 kx @cp -a $(linux_systemmap) $(KERNEL_BIN_PKG)/boot/System.map-$(full_version)
146 kx @( cd $(board_dtbs_path) ; \
146 kx cp -a $(device_tree_dtbs) $(KERNEL_BIN_PKG)/boot/allwinner ; \
146 kx )
146 kx @( cd $(KERNEL_BIN_PKG)/boot/allwinner ; \
146 kx rm -f sun50i-h5-repka-pi3.dtb ; \
146 kx $(LN_S)f $(default_device_tree).dtb sun50i-h5-repka-pi3.dtb ; \
146 kx )
146 kx @cd $(KERNEL_BIN_PKG)/boot && $(LN_S)f vmlinux-$(full_version) vmlinux
146 kx @cd $(KERNEL_BIN_PKG)/boot && $(LN_S)f Image-$(full_version) Image
146 kx @cd $(KERNEL_BIN_PKG)/boot && $(LN_S)f vmlinuz-$(full_version) vmlinuz
146 kx @cd $(KERNEL_BIN_PKG)/boot && $(LN_S)f config-$(full_version) config
146 kx @cd $(KERNEL_BIN_PKG)/boot && $(LN_S)f System.map-$(full_version) System.map
146 kx @mkdir -p $(KERNEL_BIN_PKG)/usr/doc/kernel-$(full_version)
146 kx @cp -a $(SRC_DIR)/LICENSES $(SRC_DIR)/CREDITS \
146 kx $(KERNEL_BIN_PKG)/usr/doc/kernel-$(full_version)
146 kx @mkdir -p $(KERNEL_BIN_PKG)/usr/share/doc/kernel-$(full_version)
146 kx @cp -a $(SRC_DIR)/LICENSES $(SRC_DIR)/COPYING $(SRC_DIR)/CREDITS \
146 kx $(SRC_DIR)/MAI* $(SRC_DIR)/README \
146 kx $(KERNEL_BIN_PKG)/usr/share/doc/kernel-$(full_version)
146 kx @touch $@
146 kx
146 kx $(KERNEL_BIN_PKG_DESCRIPTION_FILE): $(KERNEL_BIN_PKG_DESCRIPTION_FILE_IN)
146 kx @cat $< | $(SED) -e "s/@VERSION@/$(version)/g" > $@
146 kx
146 kx $(pkg_certificate) : $(pkg_archive) ;
146 kx $(pkg_signature) : $(pkg_archive) ;
146 kx $(pkg_description) : $(pkg_archive) ;
146 kx
146 kx $(pkg_archive): $(build_kernel_pkg) $(KERNEL_BIN_PKG_DESCRIPTION_FILE) $(KERNEL_BIN_PKG_INSTALL_SCRIPT)
146 kx @cp $(KERNEL_BIN_PKG_DESCRIPTION_FILE) $(KERNEL_BIN_PKG)/.DESCRIPTION
146 kx @cp $(KERNEL_BIN_PKG_INSTALL_SCRIPT) $(KERNEL_BIN_PKG)/.INSTALL
146 kx @$(BUILD_PKG_REQUIRES) $(KERNEL_BIN_PKG)/.REQUIRES
146 kx @echo "pkgname=$(KERNEL_BIN_PKG_NAME)" > $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "pkgver=$(KERNEL_BIN_PKG_VERSION)" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "arch=$(KERNEL_BIN_PKG_ARCH)" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "distroname=$(KERNEL_BIN_PKG_DISTRO_NAME)" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "distrover=$(KERNEL_BIN_PKG_DISTRO_VERSION)" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "group=$(KERNEL_BIN_PKG_GROUP)" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "short_description=\"$(KERNEL_BIN_PKG_SHORT_DESCRIPTION)\"" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "url=$(KERNEL_BIN_PKG_URL)" >> $(KERNEL_BIN_PKG)/.PKGINFO ; \
146 kx echo "license=$(KERNEL_BIN_PKG_LICENSE)" >> $(KERNEL_BIN_PKG)/.PKGINFO
146 kx @$(PSEUDO) sh -c "cd $(KERNEL_BIN_PKG) && \
146 kx chown -R root:root . && \
146 kx $(MAKE_PACKAGE) -J --linkadd=yes $(GNUPG_OPTIONS) -m -d .. ."