From a1f303c316be60e5a282a6a6a27726152b529a51 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 24 Feb 2015 12:46:47 +0100 Subject: extend KERNEL_MAKE_OPTS by the target directory This change is straightforward but in toolchain/kernel-headers/Makefile which seems to be called before ${BUILD_DIR}/linux symlink exists. Therefore define LINUX_DIR to the correct value in between inclusion of vars.mk (through rules.mk) and kernel-vars.mk. --- mk/build.mk | 2 +- mk/image.mk | 2 +- mk/kernel-build.mk | 6 +++--- mk/kernel-vars.mk | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) (limited to 'mk') diff --git a/mk/build.mk b/mk/build.mk index 214c52e88..29c99bd6f 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -223,7 +223,7 @@ kernelconfig: ${KERNEL_MAKE_ENV} ${MAKE} \ ARCH=$(ADK_TARGET_ARCH) \ ${KERNEL_MAKE_OPTS} \ - -C $(BUILD_DIR)/linux menuconfig + menuconfig # create a new package from package/.template newpackage: diff --git a/mk/image.mk b/mk/image.mk index bd7d66f96..1563c2a63 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -203,7 +203,7 @@ ifeq ($(ADK_KERNEL_COMP_BZIP2),y) echo "CONFIG_INITRAMFS_COMPRESSION_BZIP2=y" >> ${LINUX_DIR}/.config endif @-rm $(LINUX_DIR)/usr/initramfs_data.cpio* 2>/dev/null - env $(KERNEL_MAKE_ENV) $(MAKE) -C $(LINUX_DIR) $(KERNEL_MAKE_OPTS) \ + env $(KERNEL_MAKE_ENV) $(MAKE) $(KERNEL_MAKE_OPTS) \ -j${ADK_MAKE_JOBS} $(ADK_TARGET_KERNEL) $(MAKE_TRACE) @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) diff --git a/mk/kernel-build.mk b/mk/kernel-build.mk index b66f71132..37570909e 100644 --- a/mk/kernel-build.mk +++ b/mk/kernel-build.mk @@ -35,18 +35,18 @@ $(LINUX_DIR)/.config: $(LINUX_DIR)/.prepared $(BUILD_DIR)/.kernelconfig $(ADK_TO $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-configure -for f in $(TARGETS);do if [ -f $$f ];then rm $$f;fi;done $(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) + ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG=mini.config allnoconfig $(MAKE_TRACE) touch -c $(LINUX_DIR)/.config $(LINUX_DIR)/$(KERNEL_FILE): $(LINUX_DIR)/.config $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-compile - ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(KERNEL_TARGET) modules $(MAKE_TRACE) + ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} -j${ADK_MAKE_JOBS} LOCALVERSION="" $(KERNEL_TARGET) modules $(MAKE_TRACE) touch -c $(LINUX_DIR)/$(KERNEL_FILE) $(LINUX_BUILD_DIR)/modules: $(LINUX_DIR)/$(KERNEL_FILE) $(TRACE) target/$(ADK_TARGET_ARCH)-kernel-modules-install rm -rf $(LINUX_BUILD_DIR)/modules - ${KERNEL_MAKE_ENV} $(MAKE) -C "${LINUX_DIR}" ${KERNEL_MAKE_OPTS} DEPMOD=true \ + ${KERNEL_MAKE_ENV} $(MAKE) ${KERNEL_MAKE_OPTS} DEPMOD=true \ INSTALL_MOD_PATH=$(LINUX_BUILD_DIR)/modules \ LOCALVERSION="" \ modules_install $(MAKE_TRACE) diff --git a/mk/kernel-vars.mk b/mk/kernel-vars.mk index 17a8d23a2..89ba10dd9 100644 --- a/mk/kernel-vars.mk +++ b/mk/kernel-vars.mk @@ -1,7 +1,7 @@ # This file is part of the OpenADK project. OpenADK is copyrighted # material, please see the LICENCE file in the top-level directory. -KERNEL_MAKE_OPTS:= V=1 \ +KERNEL_MAKE_OPTS:= V=1 -C "${LINUX_DIR}" \ ARCH="$(ADK_TARGET_KARCH)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ CC="$(TARGET_CC)" \ -- cgit v1.2.3 From 9405258299212c12f639e0d200c5721e24c887f3 Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 24 Feb 2015 12:46:48 +0100 Subject: mk/fetch.mk: fix .nohash hack for packages with multiple distfiles --- mk/fetch.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mk') diff --git a/mk/fetch.mk b/mk/fetch.mk index 5fb13a29e..6365b4c13 100644 --- a/mk/fetch.mk +++ b/mk/fetch.mk @@ -28,7 +28,7 @@ ifeq ($(strip ${PKG_NOCHECKSUM}),) ${_CHECKSUM_COOKIE}: ${FULLDISTFILES} -rm -rf ${WRKDIR} ifneq ($(ADK_DISABLE_CHECKSUM),y) - @if [ ! -e "${FULLDISTFILES}.nohash" ]; then \ + @if [ ! -e $(firstword ${FULLDISTFILES}).nohash ]; then \ OK=n; \ allsums="$(strip ${PKG_HASH})"; \ (shasum -a 256 ${FULLDISTFILES}; echo exit) | while read sum name; do \ -- cgit v1.2.3 From b35d9328163f84e2d7dc6f2504c5e7c3fffc92dd Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 24 Feb 2015 12:46:49 +0100 Subject: toolchain: add cross prelinking tool from yoctoproject and hook it into build system --- mk/image.mk | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'mk') diff --git a/mk/image.mk b/mk/image.mk index 1563c2a63..7d982d773 100644 --- a/mk/image.mk +++ b/mk/image.mk @@ -37,7 +37,7 @@ else $(error No login shell configured!) endif -imageprepare: image-prepare-post extra-install +imageprepare: image-prepare-post extra-install prelink # if an extra directory exist in ADK_TOPDIR, copy all content over the # root directory, do the same if make extra=/dir/to/extra is used @@ -79,6 +79,19 @@ ifneq ($(ADK_TARGET_ARCH_AARCH64)$(ADK_TARGET_ARCH_X86_64)$(ADK_TARGET_ARCH_PPC6 (cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib) endif +ifeq (${ADK_PRELINK},) +prelink: +else +${TARGET_DIR}/etc/prelink.conf: + echo '/' > $@ + +prelink: ${TARGET_DIR}/etc/prelink.conf + $(TRACE) target/prelink + ${TARGET_CROSS}prelink ${ADK_PRELINK_OPTS} \ + --ld-library-path=${STAGING_TARGET_DIR}/usr/lib:${STAGING_TARGET_DIR}/lib \ + --root=${TARGET_DIR} -a $(MAKE_TRACE) +endif + KERNEL_PKGDIR:=$(LINUX_BUILD_DIR)/kernel-pkg KERNEL_PKG:=$(PACKAGE_DIR)/kernel_$(KERNEL_VERSION)_$(ADK_TARGET_CPU_ARCH).$(PKG_SUFFIX) TARGET_KERNEL= ${ADK_TARGET_SYSTEM}-${ADK_TARGET_FS}-kernel -- cgit v1.2.3 From 1081ca94b8738cb63f01641d4a615bb0d9ff8dcf Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Tue, 24 Feb 2015 12:46:50 +0100 Subject: mk/package.mk: fix for cleaning packages Due to using the wrong name, the packages stamp file was not removed and therefore it was not rebuilt at all. --- mk/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mk') diff --git a/mk/package.mk b/mk/package.mk index 65d9c8f9f..3b27d1278 100644 --- a/mk/package.mk +++ b/mk/package.mk @@ -308,7 +308,7 @@ clean-targets: clean: @$(CMD_TRACE) "cleaning... " @$(MAKE) clean-targets $(MAKE_TRACE) - rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION} + rm -rf ${WRKDIR} ${ALL_IPKGS} ${_IPKGS_COOKIE} distclean: clean rm -f ${FULLDISTFILES} -- cgit v1.2.3