summaryrefslogtreecommitdiffstats
path: root/rules/initramfs-kernel-modules.make
diff options
context:
space:
mode:
authorJon Ringle <jon@ringle.org>2009-09-03 12:10:24 -0400
committerMarc Kleine-Budde <mkl@pengutronix.de>2009-11-04 13:59:27 +0100
commit90f92f6a315fcb73fadf34a3d792a53409855262 (patch)
tree1fee45015dcd9ce48da337e063b549eb97c89733 /rules/initramfs-kernel-modules.make
parentd949d7a27b7d8943b8612158fa744de6a224c132 (diff)
downloadptxdist-90f92f6a315fcb73fadf34a3d792a53409855262.tar.gz
ptxdist-90f92f6a315fcb73fadf34a3d792a53409855262.tar.xz
[initramfs-kernel-modules] Install kernel modules in initramfs
Install kernel modules in initramfs Signed-off-by: Jon Ringle <jon@ringle.org> [mkl: misc cleanups] Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'rules/initramfs-kernel-modules.make')
-rw-r--r--rules/initramfs-kernel-modules.make114
1 files changed, 114 insertions, 0 deletions
diff --git a/rules/initramfs-kernel-modules.make b/rules/initramfs-kernel-modules.make
new file mode 100644
index 000000000..e3bdf20ac
--- /dev/null
+++ b/rules/initramfs-kernel-modules.make
@@ -0,0 +1,114 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2009 by Marc Kleine-Budde <mkl@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_INITRAMFS_KERNEL_MODULES) += initramfs-kernel-modules
+
+#
+# Paths and names
+#
+INITRAMFS_KERNEL_MODULES_VERSION := 1.0.0
+INITRAMFS_KERNEL_MODULES := initramfs-kernel-modules-$(INITRAMFS_KERNEL_MODULES_VERSION)
+INITRAMFS_KERNEL_MODULES_DIR := $(KLIBC_BUILDDIR)/$(INITRAMFS_KERNEL_MODULES)
+INITRAMFS_KERNEL_MODULES_PKGDIR := $(PKGDIR)/$(INITRAMFS_KERNEL_MODULES)
+
+ifdef PTXCONF_KLIBC_MODULE_INIT_TOOLS
+$(STATEDIR)/klibc.targetinstall.post: $(STATEDIR)/initramfs-kernel-modules.targetinstall
+endif
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(INITRAMFS_KERNEL_MODULES_SOURCE):
+ @$(call targetinfo)
+ @$(call get, INITRAMFS_KERNEL_MODULES)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/initramfs-kernel-modules.extract:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+INITRAMFS_KERNEL_MODULES_PATH := PATH=$(CROSS_PATH)
+INITRAMFS_KERNEL_MODULES_ENV := $(CROSS_ENV)
+
+$(STATEDIR)/initramfs-kernel-modules.prepare:
+ @$(call targetinfo)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/initramfs-kernel-modules.compile: $(STATEDIR)/kernel.prepare
+ @$(call targetinfo)
+ cd $(KERNEL_DIR) && $(KERNEL_PATH) $(MAKE) \
+ $(KERNEL_MAKEVARS) $(PTXCONF_KERNEL_MODULES_BUILD)
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/initramfs-kernel-modules.install:
+ @$(call targetinfo)
+ @$(call clean, $(INITRAMFS_KERNEL_MODULES_PKGDIR))
+ @cd $(KERNEL_DIR) && $(KERNEL_PATH) $(MAKE) \
+ $(filter-out INSTALL_MOD_PATH=%,$(KERNEL_MAKEVARS)) \
+ INSTALL_MOD_PATH=$(INITRAMFS_KERNEL_MODULES_PKGDIR) \
+ modules_install
+
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/initramfs-kernel-modules.targetinstall:
+ @$(call targetinfo)
+ @cd $(INITRAMFS_KERNEL_MODULES_PKGDIR) && \
+ find lib -type d | while read dir; do \
+ $(call install_initramfs, initramfs-kernel-modules, 0, 0, 0755, /$${dir}); \
+ done
+
+ifdef PTXCONF_INITRAMFS_KERNEL_MODULES_ALL
+ @cd $(INITRAMFS_KERNEL_MODULES_PKGDIR) && \
+ find lib -type f | while read file; do \
+ $(call install_initramfs, initramfs-kernel-modules, 0, 0, 0644, -, /$${file}); \
+ done
+endif
+
+ifdef PTXCONF_INITRAMFS_KERNEL_MODULES_USER_SPEC
+ cat $(PTXDIST_WORKSPACE)/initramfs_modules | while read file; do \
+ $(call install_initramfs, initramfs-kernel-modules, 0, 0, 0644, -, /$${file}); \
+ done
+endif
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+initramfs-kernel-modules_clean:
+ rm -rf $(STATEDIR)/initramfs-kernel-modules.*
+ rm -rf $(PKGDIR)/initramfs-kernel-modules{-,_}*
+ rm -rf $(INITRAMFS_KERNEL_MODULES_DIR)
+
+# vim: syntax=make