summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-07-20 15:19:24 +0200
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2014-07-20 15:37:07 +0200
commit8ec56894f8543508e56baabe7dba0cb003412d91 (patch)
tree28bf96ade08c6056ad1e9e5c6ef1ed97f98399ce
parent4f538aa120f5b86926e9f67f876af8987a868ca4 (diff)
downloadembtoolkit-8ec56894f8543508e56baabe7dba0cb003412d91.tar.gz
embtoolkit-8ec56894f8543508e56baabe7dba0cb003412d91.tar.bz2
embtoolkit-8ec56894f8543508e56baabe7dba0cb003412d91.tar.xz
Linux kernel build: create 3 virtual packages linux{,_headers,_modules}
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-rw-r--r--core/mk/linux.mk99
-rw-r--r--core/mk/rootfs/rootfs.mk4
2 files changed, 63 insertions, 40 deletions
diff --git a/core/mk/linux.mk b/core/mk/linux.mk
index 03f72c8..ec78f78 100644
--- a/core/mk/linux.mk
+++ b/core/mk/linux.mk
@@ -30,6 +30,9 @@ __LINUX_SITE = $(strip $(if $(CONFIG_EMBTK_LINUX_HAVE_MIRROR), \
$(patsubst '"',,$(strip $(CONFIG_EMBTK_LINUX_HAVE_MIRROR_SITE))), \
$(__LINUX_SITE_BASE)/$(LINUX_MAJORV)$(__LINUX_SITE_LONGTERM)))
+#
+# linux kernel part
+#
LINUX_NAME := linux
LINUX_MAJORV := $(call embtk_get_pkgversion,linux_major)
LINUX_LONGTERMV := $(call embtk_get_pkgversion,linux_longterm)
@@ -40,6 +43,9 @@ LINUX_SRC_DIR := $(embtk_toolsb)/linux-$(LINUX_VERSION)
LINUX_BUILD_DIR := $(embtk_toolsb)/linux-$(LINUX_VERSION)
LINUX_KEEP_SRC_DIR := $(CONFIG_EMBTK_BUILD_LINUX_KERNEL)
+#
+# linux headers part
+#
LINUX_HEADERS_NAME := linux
LINUX_HEADERS_VERSION := $(LINUX_VERSION)
LINUX_HEADERS_SITE := $(LINUX_SITE)
@@ -49,6 +55,21 @@ LINUX_HEADERS_BUILD_DIR := $(LINUX_BUILD_DIR)
LINUX_HEADERS_KCONFIGS_NAME := LINUX
LINUX_HEADERS_KEEP_SRC_DIR := $(CONFIG_EMBTK_BUILD_LINUX_KERNEL)
+#
+# linux modules part
+#
+LINUX_MODULES_NAME := linux
+LINUX_MODULES_VERSION := $(LINUX_VERSION)
+LINUX_MODULES_SITE := $(LINUX_SITE)
+LINUX_MODULES_PACKAGE := $(LINUX_PACKAGE)
+LINUX_MODULES_SRC_DIR := $(LINUX_SRC_DIR)
+LINUX_MODULES_BUILD_DIR := $(LINUX_BUILD_DIR)
+LINUX_MODULES_KCONFIGS_NAME := LINUX
+LINUX_MODULES_KEEP_SRC_DIR := $(CONFIG_EMBTK_BUILD_LINUX_KERNEL)
+
+#
+# common options
+#
LINUX_MAKE_OPTS := quiet=quiet_
LINUX_MAKE_OPTS += ARCH=$(LINUX_ARCH)
LINUX_MAKE_OPTS += CROSS_COMPILE=$(CROSS_COMPILE_CACHED)
@@ -58,9 +79,6 @@ LINUX_MAKE_OPTS += HOSTCC="$(HOSTCC)" HOSTCXX="$(HOSTCXX)"
# linux headers install
#
define embtk_install_linux_headers
- $(__embtk_install_linux_headers)
-endef
-define __embtk_install_linux_headers
$(MAKE) -C $(LINUX_BUILD_DIR) $(LINUX_MAKE_OPTS) \
INSTALL_HDR_PATH=$(embtk_sysroot)/usr headers_install
endef
@@ -69,57 +87,58 @@ endef
# linux install macros
#
-__embtk_linux_dotconfig_f := $(call __embtk_mk_uquote,$(CONFIG_EMBTK_LINUX_DOTCONFIG))
-__embtk_linux_srcdir := $(call __embtk_mk_uquote,$(or $(CONFIG_EMBTK_LINUX_BUILD_EXTSRC),$(LINUX_SRC_DIR)))
-__embtk_linux_support_modules := $(shell grep MODULES=y "$(__embtk_linux_dotconfig_f)" 2>/dev/null)
+pembtk_linux_dotconfig_f := $(call __embtk_mk_uquote,$(CONFIG_EMBTK_LINUX_DOTCONFIG))
+pembtk_linux_extsrc-y := $(CONFIG_EMBTK_LINUX_BUILD_USE_EXTSRC)
+pembtk_linux_srcdir := $(call __embtk_mk_uquote,$(or $(CONFIG_EMBTK_LINUX_BUILD_EXTSRC),$(LINUX_SRC_DIR)))
+pembtk_linux_modules-y := $(shell grep MODULES=y "$(pembtk_linux_dotconfig_f)" 2>/dev/null)
-define __embtk_install_linux_check_config
- if [ "x" = "x$(__embtk_linux_dotconfig_f)" ]; then \
- $(call embtk_perror,"Unable to build linux kernel image: no config file");\
- exit 1; \
+define pembtk_linux_check_dotconfig
+ if [ "x" = "x$(pembtk_linux_dotconfig_f)" ]; then \
+ $(call embtk_perror,"No kernel config file specified"); \
+ exit 1; \
fi
- if [ ! -e $(__embtk_linux_dotconfig_f) ]; then \
- $(call embtk_perror,"Unable to build linux kernel image: config file $(__embtk_linux_dotconfig_f) not found");\
- exit 1; \
+ if [ ! -e $(pembtk_linux_dotconfig_f) ]; then \
+ $(call embtk_perror,"Kernel config file $(pembtk_linux_dotconfig_f) not found");\
+ exit 1; \
fi
endef
-define __embtk_install_linux_check_extsrc
- if [ "x" = "x$(__embtk_linux_srcdir)" ]; then \
- $(call embtk_perror,"Unable to build linux kernel image: External source tree not specified");\
- exit 1; \
+define pembtk_linux_check_extsrc
+ if [ "x" = "x$(pembtk_linux_srcdir)" ]; then \
+ $(call embtk_perror,"kernel source tree not specified"); \
+ exit 1; \
fi
- if [ ! -d $(__embtk_linux_srcdir) ]; then \
- $(call embtk_perror,"Unable to build linux kernel image: External source tree $(__embtk_linux_srcdir) not found");\
- exit 1; \
+ if [ ! -d $(pembtk_linux_srcdir) ]; then \
+ $(call embtk_perror,"kernel source tree $(pembtk_linux_srcdir) not found");\
+ exit 1; \
fi
endef
-define __embtk_install_linux
- $(__embtk_install_linux_check_config)
- $(if $(CONFIG_EMBTK_LINUX_BUILD_USE_EXTSRC),
- $(__embtk_install_linux_check_extsrc))
- $(if $(CONFIG_EMBTK_LINUX_BUILD_TOOLCHAIN_SRC),
- $(call embtk_download_pkg,linux)
- $(call embtk_decompress_pkg,linux))
- $(MAKE) -C $(__embtk_linux_srcdir) $(LINUX_MAKE_OPTS) distclean
- cp $(CONFIG_EMBTK_LINUX_DOTCONFIG) $(__embtk_linux_srcdir)/.config
- $(MAKE) -C $(__embtk_linux_srcdir) $(LINUX_MAKE_OPTS) silentoldconfig
- $(MAKE) -C $(__embtk_linux_srcdir) $(LINUX_MAKE_OPTS) $(J)
-endef
-
define embtk_install_linux
- $(__embtk_install_linux)
+ $(pembtk_linux_check_dotconfig)
+ $(if $(pembtk_linux_extsrc-y),$(pembtk_linux_check_extsrc))
+ cp $(CONFIG_EMBTK_LINUX_DOTCONFIG) $(pembtk_linux_srcdir)/.config
+ $(MAKE) -C $(pembtk_linux_srcdir) $(LINUX_MAKE_OPTS) silentoldconfig
+ $(MAKE) -C $(pembtk_linux_srcdir) $(LINUX_MAKE_OPTS) $(J)
endef
-define embtk_postinstall_linux
- $(if $(__embtk_linux_support_modules),$(__embtk_postinstall_linux))
+#
+# linux modules install
+#
+define embtk_install_linux_modules
+ $(if $(pembtk_linux_modules-y),$(pembtk_install_linux_modules))
endef
-define __embtk_postinstall_linux
+define pembtk_install_linux_modules
$(call embtk_pinfo,"Install linux kernel modules...")
- $(MAKE) -C $(__embtk_linux_srcdir) $(LINUX_MAKE_OPTS) \
+ $(embtk_install_linux)
+ $(MAKE) -C $(pembtk_linux_srcdir) $(LINUX_MAKE_OPTS) \
INSTALL_MOD_PATH=$(embtk_rootfs) modules_install
endef
+define embtk_postinstall_linux_modules
+ rm -rf $(embtk_rootfs)/lib/modules/*/build
+ rm -rf $(embtk_rootfs)/lib/modules/*/source
+endef
+
#
# clean target and macros
#
@@ -130,3 +149,7 @@ endef
define embtk_cleanup_linux_headers
[ -d $(LINUX_BUILD_DIR) ] && $(call __embtk_unsetinstalled_pkg,linux_headers) ||:
endef
+
+define embtk_cleanup_linux_modules
+ [ -d $(LINUX_BUILD_DIR) ] && $(call __embtk_unsetinstalled_pkg,linux_modules) ||:
+endef
diff --git a/core/mk/rootfs/rootfs.mk b/core/mk/rootfs/rootfs.mk
index 776f07a..87d4a8a 100644
--- a/core/mk/rootfs/rootfs.mk
+++ b/core/mk/rootfs/rootfs.mk
@@ -180,8 +180,8 @@ __rootfs_prebuild_targets += __rootfs_mkinitpath
__rootfs_prebuild_targets += __rootfs_components_build
__rootfs_prebuild_targets += __rootfs_mkdevnodes
__rootfs_prebuild_targets += __rootfs_components_install
-__rootfs_prebuild_targets += $(strip $(if $(CONFIG_EMBTK_TARGET_STRIPPED), \
- __rootfs_components_strip))
+__rootfs_prebuild_targets += $(if $(CONFIG_EMBTK_BUILD_LINUX_KERNEL),linux_modules_install)
+__rootfs_prebuild_targets += $(if $(CONFIG_EMBTK_TARGET_STRIPPED),__rootfs_components_strip)
define __rootfs_build_end
$(if $(findstring rootfs_build,$(MAKECMDGOALS)),