From 263bba08cb03659c1e1d54b43ae8c9c18d67b77a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Tue, 21 Mar 2017 00:26:05 +0100 Subject: rework kernel build process, changes to kernelconfig are reflected now Cleanup the package directory which is always used as intermediate step to build in the default some xz compressed archives with all package data. While reconfiguring the kernel mini.config or custom config changes to the firmware did not happen always. Some targets where redundant and the install step tries to compile, too. Be more quiet with any cpio usage. --- mk/build.mk | 6 +++++- mk/image.mk | 4 ++-- mk/kernel-build.mk | 41 +++++++++++++++-------------------------- mk/package.mk | 2 +- 4 files changed, 23 insertions(+), 30 deletions(-) (limited to 'mk') diff --git a/mk/build.mk b/mk/build.mk index 0b4b9feee..69ff9e3d8 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -176,7 +176,7 @@ ifeq ($(ADK_TARGET_OS_BAREMETAL),y) $(MAKE) -f mk/build.mk package/hostcompile toolchain/final endif ifeq ($(ADK_TARGET_OS_LINUX),y) - $(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/config-prepare target/compile package/compile root_clean package/install target/install package_index + $(MAKE) -f mk/build.mk package/hostcompile toolchain/final target/config-prepare target/compile package_clean package/compile root_clean package/install target/install package_index endif endif @@ -252,6 +252,10 @@ newpackage: $(SED) 's#@VER@#$(VER)#' $(ADK_TOPDIR)/package/$(PKG)/Makefile @echo "Edit package/$(PKG)/Makefile to complete" +package_clean: + rm -rf $(PACKAGE_DIR) + mkdir -p $(PACKAGE_DIR) + root_clean: rm -rf $(TARGET_DIR) mkdir -p $(TARGET_DIR) diff --git a/mk/image.mk b/mk/image.mk index 84d6ab9a8..65332bd4b 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -146,14 +146,14 @@ endif ${FW_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR}/.adk kernel-package cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ - $(CPIO) -o -Hustar --owner=0:0 | $(XZ) -c >$@ + $(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@ ifeq ($(ADK_TARGET_QEMU),y) @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) endif ${FW_DIR}/${ROOTFSUSERTARBALL}: ${TARGET_DIR}/.adk cd ${TARGET_DIR}; find . | grep -v ./boot/ | sed -n '/^\.\//s///p' | sort | \ - $(CPIO) -o -Hustar --owner=0:0 | $(XZ) -c >$@ + $(CPIO) --quiet -o -Hustar --owner=0:0 | $(XZ) -c >$@ ${STAGING_TARGET_DIR}/${INITRAMFS}_list: ${TARGET_DIR}/.adk env PATH='${HOST_PATH}' $(BASH) ${LINUX_DIR}/scripts/gen_initramfs_list.sh -u squash -g squash \ diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk index 65d3baba9..5db052c33 100644 --- a/mk/kernel-build.mk +++ b/mk/kernel-build.mk @@ -31,6 +31,10 @@ KERNEL_FILE:=vmlinux KERNEL_TARGET:=$(ADK_TARGET_KERNEL) endif +ifneq ($(KERNEL_MODULES_USED),) +KERNEL_TARGET+=modules +endif + ifeq ($(ADK_RUNTIME_DEV_UDEV),y) ADK_DEPMOD:=$(STAGING_HOST_DIR)/usr/bin/depmod else @@ -53,7 +57,6 @@ endif $(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-configure.. " - -for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done echo "-${KERNEL_RELEASE}" >${LINUX_DIR}/localversion ifeq ($(ADK_TARGET_KERNEL_USE_DEFCONFIG),y) ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} $(ADK_TARGET_KERNEL_DEFCONFIG) $(MAKE_TRACE) @@ -67,22 +70,19 @@ else $(CP) $(BUILD_DIR)/.kernelconfig $(LINUX_DIR)/mini.config ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE) endif - touch -c $(LINUX_DIR)/.config $(CMD_TRACE) " done" $(END_TRACE) $(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-compile.. " ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} $(KERNEL_TARGET) $(MAKE_TRACE) - touch -c $(LINUX_DIR)/$(KERNEL_FILE) $(CMD_TRACE) " done" $(END_TRACE) -$(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE) - $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-compile.. " - ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} modules $(MAKE_TRACE) - $(CMD_TRACE) " done" - $(END_TRACE) +prepare: +compile: $(LINUX_DIR)/$(KERNEL_FILE) +install: +ifneq ($(KERNEL_MODULES_USED),) $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-install.. " rm -rf $(LINUX_BUILD_DIR)/modules ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} \ @@ -91,9 +91,9 @@ $(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE) modules_install $(MAKE_TRACE) $(CMD_TRACE) " done" $(END_TRACE) -ifneq ($(ADK_RUNTIME_DEV_UDEV),y) - $(START_TRACE) "target/$(ADK_TARGET_ARCH)-create-packages.. " - @mkdir -p ${PACKAGE_DIR} +ifeq ($(ADK_RUNTIME_DEV_UDEV),) + $(START_TRACE) "target/$(ADK_TARGET_ARCH)-kernel-modules-create-packages.. " + rm -f ${PACKAGE_DIR}/kmod-* PATH='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/make-module-ipkgs.sh \ "${ADK_TARGET_CPU_ARCH}" \ "${KERNEL_VERSION}" \ @@ -103,21 +103,10 @@ ifneq ($(ADK_RUNTIME_DEV_UDEV),y) $(CMD_TRACE) " done" $(END_TRACE) endif - -prepare: -ifneq ($(KERNEL_MODULES_USED),) -compile: $(LINUX_BUILD_DIR)/modules -else -compile: $(LINUX_DIR)/$(KERNEL_FILE) -endif -install: compile -ifneq ($(KERNEL_MODULES_USED),) - $(START_TRACE) "target/${ADK_TARGET_ARCH}-modules-install.. " -ifeq ($(ADK_TARGET_PACKAGE_IPKG)$(ADK_TARGET_PACKAGE_OPKG),y) - $(PKG_INSTALL) $(wildcard ${PACKAGE_DIR}/kmod-*) $(MAKE_TRACE) -else - $(foreach pkg,$(wildcard ${PACKAGE_DIR}/kmod-*),$(shell $(PKG_INSTALL) $(pkg))) -endif + $(START_TRACE) "target/${ADK_TARGET_ARCH}-kernel-modules-install-packages.. " + for pkg in $(PACKAGE_DIR)/kmod-*; do \ + [[ -e "$$pkg" ]] && $(PKG_INSTALL) $$pkg; \ + done $(CMD_TRACE) " done" $(END_TRACE) endif diff --git a/mk/package.mk b/mk/package.mk index 31fbe7faa..d61722989 100644 --- a/mk/package.mk +++ b/mk/package.mk @@ -273,7 +273,7 @@ endif ifeq (,$(filter devonly,$(7))) $${PKG_BUILD} $${IDIR_$(1)} $${PACKAGE_DIR} $(MAKE_TRACE) -ifneq ($(ADK_DEBUG),y) +ifneq ($(ADK_DEBUG),) $${PKG_BUILD} $${IDIR_$(1)_DBG} $${PACKAGE_DIR} $(MAKE_TRACE) endif endif -- cgit v1.2.3