mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-21 14:37:57 +00:00
14881b49d8
Kernel utilities (e.g. scripts/kconfig/conf) are being built to run on the host system at this stage, therefore it makes no sense to use the target system CC flags. Use HOSTCFLAGS instead While we're here rename KMAKE macro to HOST_KMAKE to make it even more obvious that we're building for host. Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
105 lines
2.5 KiB
Makefile
105 lines
2.5 KiB
Makefile
#
|
|
# Copyright (C) 2006-2009 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
KERNEL_BUILD_DIR := $(BUILD_DIR_TOOLCHAIN)
|
|
BUILD_DIR := $(KERNEL_BUILD_DIR)
|
|
|
|
override QUILT:=
|
|
override HOST_QUILT:=
|
|
|
|
include $(INCLUDE_DIR)/kernel.mk
|
|
|
|
PKG_NAME:=linux
|
|
PKG_VERSION:=$(LINUX_VERSION)
|
|
PKG_SOURCE:=$(LINUX_SOURCE)
|
|
ifneq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"")
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_URL:=$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI))
|
|
PKG_SOURCE_VERSION:=$(CONFIG_KERNEL_GIT_REF)
|
|
else
|
|
PKG_SOURCE_URL:=$(LINUX_SITE)
|
|
endif
|
|
HOST_BUILD_DIR:=$(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION)
|
|
PKG_HASH:=$(LINUX_KERNEL_HASH)
|
|
LINUX_DIR := $(HOST_BUILD_DIR)
|
|
FILES_DIR :=
|
|
PATCH_DIR := ./patches$(if $(wildcard ./patches-$(LINUX_VERSION)),-$(LINUX_VERSION))
|
|
|
|
include $(INCLUDE_DIR)/toolchain-build.mk
|
|
include $(INCLUDE_DIR)/kernel-defaults.mk
|
|
|
|
ifeq ($(strip $(BOARD)),uml)
|
|
LINUX_KARCH:=$(subst x86_64,x86,$(subst i386,x86,$(ARCH)))
|
|
endif
|
|
|
|
HOST_EXTRACFLAGS=
|
|
|
|
LINUX_HAS_HEADERS_INSTALL:=y
|
|
|
|
HOST_KMAKE := $(MAKE) -C $(HOST_BUILD_DIR) \
|
|
$(KERNEL_MAKE_FLAGS) \
|
|
CC="$(KERNEL_CC)" \
|
|
HOSTCFLAGS="$(HOST_CFLAGS)"
|
|
|
|
define Host/Configure/all
|
|
mkdir -p $(BUILD_DIR_TOOLCHAIN)/linux-dev
|
|
$(HOST_KMAKE) \
|
|
INSTALL_HDR_PATH="$(BUILD_DIR_TOOLCHAIN)/linux-dev/" \
|
|
headers_install
|
|
endef
|
|
|
|
# XXX: the following is needed to build lzma-loader
|
|
ifneq ($(CONFIG_mips)$(CONFIG_mipsel),)
|
|
define Host/Configure/lzma
|
|
$(CP) \
|
|
$(HOST_BUILD_DIR)/arch/mips/include/asm/asm.h \
|
|
$(HOST_BUILD_DIR)/arch/mips/include/asm/regdef.h \
|
|
$(HOST_BUILD_DIR)/arch/mips/include/asm/asm-eva.h \
|
|
$(BUILD_DIR_TOOLCHAIN)/linux-dev/include/asm/
|
|
endef
|
|
endif
|
|
|
|
define Host/Configure/post/mips
|
|
$(call Host/Configure/lzma)
|
|
endef
|
|
|
|
define Host/Configure/post/mipsel
|
|
$(call Host/Configure/lzma)
|
|
endef
|
|
|
|
define Host/Prepare
|
|
rm -rf $(BUILD_DIR_TOOLCHAIN)/linux-*
|
|
$(call Kernel/Prepare/Default)
|
|
rm -f $(BUILD_DIR_TOOLCHAIN)/linux
|
|
ln -s linux-$(LINUX_VERSION) $(BUILD_DIR_TOOLCHAIN)/linux
|
|
$(SED) 's/@expr length/@-expr length/' $(HOST_BUILD_DIR)/Makefile
|
|
endef
|
|
|
|
define Host/Configure
|
|
env
|
|
yes '' | $(HOST_KMAKE) oldconfig
|
|
$(call Host/Configure/all)
|
|
$(call Host/Configure/post/$(ARCH))
|
|
endef
|
|
|
|
define Host/Compile
|
|
endef
|
|
|
|
define Host/Install
|
|
$(CP) $(BUILD_DIR_TOOLCHAIN)/linux-dev/* $(TOOLCHAIN_DIR)/
|
|
endef
|
|
|
|
define Host/Clean
|
|
rm -rf \
|
|
$(HOST_BUILD_DIR) \
|
|
$(BUILD_DIR_TOOLCHAIN)/linux \
|
|
$(BUILD_DIR_TOOLCHAIN)/linux-dev
|
|
endef
|
|
|
|
$(eval $(call HostBuild))
|