1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include $(ADK_TOPDIR
)/rules.mk
5 include $(ADK_TOPDIR
)/mk
/$(ADK_TARGET_OS
)-ver.mk
6 include $(ADK_TOPDIR
)/mk
/$(ADK_TARGET_OS
).mk
7 include $(ADK_TOPDIR
)/mk
/kernel-vars.mk
9 ifeq ($(ADK_TARGET_OS_LINUX
),y
)
10 KERNEL_MODULES_USED
:=$(shell grep ^ADK_LINUX_KERNEL
$(ADK_TOPDIR
)/.config|grep
=m
)
12 ifeq ($(ADK_TARGET_OS_WALDUX
),y
)
13 KERNEL_MODULES_USED
:=$(shell grep ^ADK_WALDUX_KERNEL
$(ADK_TOPDIR
)/.config|grep
=m
)
15 ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG
),y
)
16 KERNEL_MODULES_USED
:=$(shell grep
-s
=m
$(ADK_TOPDIR
)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
))
18 ifeq ($(ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG
),y
)
19 KERNEL_MODULES_USED
:=$(shell grep
-s
=m
$(ADK_TOPDIR
)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH
))
22 KERNEL_FILE
:=$(ADK_TARGET_KERNEL
)
23 KERNEL_TARGET
:=$(ADK_TARGET_KERNEL
)
24 ifeq ($(ADK_TARGET_KERNEL_LINUXBIN
),y
)
26 KERNEL_TARGET
:=$(ADK_TARGET_KERNEL
)
28 ifeq ($(ADK_TARGET_KERNEL_ZIMAGE
),y
)
30 KERNEL_TARGET
:=$(ADK_TARGET_KERNEL
)
32 ifeq ($(ADK_TARGET_KERNEL_VMLINUX_BOOTP
),y
)
33 KERNEL_FILE
:=bootpfile
34 KERNEL_TARGET
:=bootpfile
36 ifeq ($(ADK_TARGET_KERNEL_VMLINUX_GZ
),y
)
40 ifeq ($(ADK_TARGET_KERNEL_BZIMAGE
),y
)
44 ifeq ($(ADK_TARGET_KERNEL_IMAGE
),y
)
46 KERNEL_TARGET
:=$(ADK_TARGET_KERNEL
)
49 ifneq ($(KERNEL_MODULES_USED
),)
50 KERNEL_TARGET
+=modules
53 ifeq ($(ADK_RUNTIME_DEV_UDEV
),y
)
54 ADK_DEPMOD
:=$(STAGING_HOST_DIR
)/usr
/bin
/depmod
59 $(LINUX_DIR
)/.prepared
: $(TOOLCHAIN_BUILD_DIR
)/w-
$(PKG_NAME
)-$(PKG_VERSION
)-$(PKG_RELEASE
)/$(ADK_TARGET_OS
)-$(KERNEL_FILE_VER
)/.patched
60 ln
-sf
$(TOOLCHAIN_BUILD_DIR
)/w-
$(PKG_NAME
)-$(PKG_VERSION
)-$(PKG_RELEASE
)/$(ADK_TARGET_OS
)-$(KERNEL_FILE_VER
) $(LINUX_DIR
)
61 mkdir
-p
$(LINUX_BUILD_DIR
)/kmod-control
64 ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_MINICONFIG
)$(ADK_TARGET_WALDUX_KERNEL_USE_MINICONFIG
),y
)
65 $(LINUX_DIR
)/.config
: $(BUILD_DIR
)/.kernelconfig
68 ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG
),y
)
69 $(ADK_TOPDIR
)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
):
70 $(LINUX_DIR
)/.config
: $(ADK_TOPDIR
)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
)
72 ifeq ($(ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG
),y
)
73 $(ADK_TOPDIR
)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH
):
74 $(LINUX_DIR
)/.config
: $(ADK_TOPDIR
)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH
)
77 $(LINUX_DIR
)/.config
: $(LINUX_DIR
)/.prepared
78 $(START_TRACE
) "target/$(ADK_TARGET_ARCH)-kernel-configure.. "
79 echo
"-${KERNEL_RELEASE}" >${LINUX_DIR}/localversion
80 ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_DEFCONFIG
)$(ADK_TARGET_WALDUX_KERNEL_USE_DEFCONFIG
),y
)
81 ${KERNEL_MAKE_ENV} $(MAKE
) -C
"${LINUX_DIR}" ${KERNEL_MAKE_OPTS} $(ADK_TARGET_KERNEL_DEFCONFIG
) $(MAKE_TRACE
)
82 else ifeq ($(ADK_TARGET_LINUX_KERNEL_USE_CUSTOMCONFIG
),y
)
83 @if
[ ! -f
$(ADK_TOPDIR
)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
) ];then \
84 echo
"no kernel configuration found in $(ADK_TOPDIR)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH)"; \
87 ${KERNEL_MAKE_ENV} $(MAKE
) -C
"${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG
=$(ADK_TOPDIR
)/$(ADK_TARGET_LINUX_KERNEL_CUSTOMCONFIG_PATH
) allnoconfig
$(MAKE_TRACE
)
88 else ifeq ($(ADK_TARGET_WALDUX_KERNEL_USE_CUSTOMCONFIG
),y
)
89 @if
[ ! -f
$(ADK_TOPDIR
)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH
) ];then \
90 echo
"no kernel configuration found in $(ADK_TOPDIR)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH)"; \
93 ${KERNEL_MAKE_ENV} $(MAKE
) -C
"${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG
=$(ADK_TOPDIR
)/$(ADK_TARGET_WALDUX_KERNEL_CUSTOMCONFIG_PATH
) allnoconfig
$(MAKE_TRACE
)
95 $(CP
) $(BUILD_DIR
)/.kernelconfig
$(LINUX_DIR
)/mini.config
96 ${KERNEL_MAKE_ENV} $(MAKE
) -C
"${LINUX_DIR}" ${KERNEL_MAKE_OPTS} KCONFIG_ALLCONFIG
=mini.config allnoconfig
$(MAKE_TRACE
)
101 $(LINUX_DIR
)/$(KERNEL_FILE
): $(LINUX_DIR
)/.config
102 $(START_TRACE
) "target/$(ADK_TARGET_ARCH)-kernel-compile.. "
103 ${KERNEL_MAKE_ENV} $(MAKE
) -C
"${LINUX_DIR}" ${KERNEL_MAKE_OPTS} -j
${ADK_MAKE_JOBS} $(KERNEL_TARGET
) $(MAKE_TRACE
)
108 compile
: $(LINUX_DIR
)/$(KERNEL_FILE
)
110 ifneq ($(KERNEL_MODULES_USED
),)
111 $(START_TRACE
) "target/$(ADK_TARGET_ARCH)-kernel-modules-install.. "
112 rm -rf
$(LINUX_BUILD_DIR
)/modules
113 ${KERNEL_MAKE_ENV} $(MAKE
) -C
"${LINUX_DIR}" ${KERNEL_MAKE_OPTS} \
114 DEPMOD
=$(ADK_DEPMOD
) \
115 INSTALL_MOD_PATH
=$(LINUX_BUILD_DIR
)/modules \
116 modules_install
$(MAKE_TRACE
)
119 ifeq ($(ADK_RUNTIME_DEV_UDEV
),)
120 $(START_TRACE
) "target/$(ADK_TARGET_ARCH)-kernel-modules-create-packages.. "
121 rm -f
${PACKAGE_DIR}/kmod-
*
122 PATH
='${HOST_PATH}' ${BASH} ${SCRIPT_DIR}/make-module-ipkgs.sh \
123 "${ADK_TARGET_CPU_ARCH}" \
124 "${KERNEL_VERSION}" \
125 "${LINUX_BUILD_DIR}" \
131 $(START_TRACE
) "target/${ADK_TARGET_ARCH}-kernel-modules-install-packages.. "
132 for pkg in
$(PACKAGE_DIR
)/kmod-
*; do \
133 [[ -e
"$$pkg" ]] && $(PKG_INSTALL
) $$pkg; \
140 rm -rf
$(LINUX_BUILD_DIR
)
141 rm -f
$(wildcard ${PACKAGE_DIR}/kmod-
*) $(wildcard ${PACKAGE_DIR}/kernel_
*)