#
#    Copyright (c) 2010-2012 Nest Labs, Inc.
#    All rights reserved.
#
#    This document is the property of Nest. It is considered
#    confidential and proprietary information.
#
#    This document may not be reproduced or transmitted in any form,
#    in whole or in part, without the express written permission of
#    Nest.
#
#    Description:
#      This file is the makefile for the Linux kernel.
#
ifneq (,$(filter $(BuildProduct),diamond3 sunstone))
EnableParallel  = No
else
EnableParallel  = Yes
endif

include pre.mak

PackageRoot			:= .

PackageSeparator		:= 

PackageSourceDir		:= $(PackageRoot)/$(LinuxPackageName)

PackageBuildConfig		:= $(call GenerateBuildPaths,.config)
PackageBuildMakefile		:= $(call GenerateBuildPaths,Makefile)

CleanPaths			+= $(PackageLicenseFile)

MAKEIMAGE			:= mkimage
CP				:= cp

#
# Configuration
#
# Kernel default configuration is handled from most-specific to
# least-specific, as follows:
#
#   Out-of-tree:
#
#     1) If configs/$(BuildProduct)/$(BuildConfig)_defconfig exists,
#        it is used.
#     2) If configs/$(BuildProduct)/defconfig exists, it is used.
#     3) If configs/$(BuildConfig)_defconfig exists, it is used.
#     4) If configs/defconfig exists, it is used.
#
#   In-tree:
#
#     5) If none of those exist, $(LinuxDefaultConfig) is used, which
#        refers to an architecture- and/or board-specific default
#        configuration.
#
# We go through this elaborate scheme because, once created, the
# kernel loses all association with it configuration file and the
# source it was created from. As a consequence, if the default
# configuration is edited, the kernel doesn't know about the
# change. This is especially problematic when changing branches or
# receiving updates to the default configuration and the kernel
# doesn't rebuild to reflect those changes.
#
# With this scheme, the user can edit .config as before. However, now
# if the default configuration is changed, out-of-tree only, .config
# is updated and the kernel will rebuild to reflect those changes.
#

PackageConfigDir		:= configs
PackageProjectConfig		:= $(PackageConfigDir)/defconfig
PackageConfigConfig		:= $(PackageConfigDir)/$(BuildConfig)_defconfig
PackageProductConfig		:= $(PackageConfigDir)/$(BuildProduct)/defconfig
PackageProductConfigConfig	:= $(PackageConfigDir)/$(BuildProduct)/$(BuildConfig)_defconfig

PackageMaybeProjectConfig	:= $(wildcard $(PackageProjectConfig))
PackageMaybeConfigConfig	:= $(wildcard $(PackageConfigConfig))
PackageMaybeProductConfig	:= $(wildcard $(PackageProductConfig))
PackageMaybeProductConfigConfig	:= $(wildcard $(PackageProductConfigConfig))

PackageMaybeConfig		:= $(if $(PackageMaybeProductConfigConfig),$(PackageProductConfigConfig),$(if $(PackageMaybeProductConfig),$(PackageProductConfig),$(if $(PackageMaybeConfigConfig),$(PackageConfigConfig),$(if $(PackageMaybeProjectConfig),$(PackageProjectConfig),))))

PackageSourceConfig     	:= $(if $(PackageMaybeConfig),$(PackageMaybeConfig),)

#
# Specific products may want additional build targets beyond those
# produced by the linux build's 'all' target. Process and establish
# those.
#

LinuxAllTarget		:= all
LinuxBuildTargets	:= $(filter-out $(LinuxAllTarget),$(LinuxProductTargets)) $(LinuxAllTarget)

#
# For some architectures, the linux build requires u-boot's host
# 'mkimage' tool. Establish some paths and directories that will be
# used, if present, to help the linux build find it.
#

MkimagePath		:= $(wildcard $(call GenerateResultPaths,fw/u-boot/bin,mkimage))
MkimageDir		:= $(call Deslashify,$(dir $(MkimagePath)))

#
# Architecture-specific boot images that may need to be copied from
# the build to the result directory.
#

LinuxBootFolder		= arch/$(LinuxProductArch)/boot
LinuxBootDir		= $(call GenerateBuildPaths,$(LinuxBootFolder))
LinuxBootBuildPaths	= $(call GenerateBuildPaths,$(addprefix $(LinuxBootFolder)/,$(LinuxProductBootFiles)))
LinuxBootResultPaths	= $(call GenerateResultPaths,,$(notdir $(LinuxBootBuildPaths)))

LinuxKernelFiles	= vmlinux
LinuxKernelFolder	= .
LinuxKernelDir		= $(call GenerateBuildPaths,$(LinuxKernelFolder))
LinuxKernelBuildPaths	= $(call GenerateBuildPaths,$(addprefix $(call Slashify,$(LinuxKernelFolder)),$(LinuxKernelFiles)))
LinuxKernelResultPaths  = $(call GenerateResultPaths,,$(notdir $(LinuxKernelBuildPaths)))

LinuxDtbFolder          = arch/$(LinuxProductArch)/boot/dts
LinuxDtbDir             = $(call GenerateBuildPaths,$(LinuxDtbFolder))
LinuxDtbBuildPaths   = $(call GenerateBuildPaths,$(addprefix $(call Slashify,$(LinuxDtbFolder)),$(LinuxDtbFiles)))
LinuxDtbResultPaths  = $(call GenerateResultPaths,,$(notdir $(LinuxDtbBuildPaths)))

LinuxItbFolder		= arch/$(LinuxProductArch)/boot
LinuxItbDir		= $(call GenerateBuildPaths,$(LinuxItbFolder))
LinuxItbBuildPaths	= $(call GenerateBuildPaths,$(addprefix $(call Slashify,$(LinuxItbFolder)),$(LinuxItbFile)))
LinuxItbResultPaths	= $(call GenerateResultPaths,,$(notdir $(LinuxItbBuildPaths)))

LinuxConfigsDir		= $(PackageSourceDir)/arch/arm/configs
#
# Common make arguments shared by all Linux target commands
#

LinuxCommonMakeArgs	= $(JOBSFLAG) -C $(PackageSourceDir) O=$(CURDIR)/$(BuildDirectory) ARCH=$(LinuxProductArch)

all: $(PackageDefaultGoal)

# Generate the package license contents.

$(PackageSourceDir)/COPYING: source

$(PackageLicenseFile): $(PackageSourceDir)/COPYING
	$(copy-result)

# We are building this package from version-controller source, so
# there is nothing to do for this target goal.

$(PackageSourceDir):

# Prepare the sources.

.PHONY: source
source: | $(PackageSourceDir)

# Patch the sources, if necessary.

.PHONY: patch
patch: source

# The Linux kernel build has no way of explicitly setting CC, LD,
# OBJCOPY, et al and instead relies on the value of
# CROSS_COMPILE. Consequently, we have to ensure that 'ToolBinDir' is
# in 'PATH' so that the kernel build infrastructure can find
# $(CROSS_COMPILE)gcc, $(CROSS_COMPILE)ld, et al.
#
# Additionally, per the above, add the path to U-Boot's 'mkimage' if
# the variable is defined.

configure build images stage stage-modules: PATH := $(PATH):$(ToolBinDir)$(if $(MkimageDir),:$(MkimageDir),)
CROSS_COMPILE:= $(CCACHE) $(CROSS_COMPILE)

# Generate the Linux build configuration and make file
#
# We are either copying and out-of-tree configuration or using an
# in-tree default (see above).

# $(PackageBuildConfig): help-defconfig

ifeq ($(PackageSourceConfig),)

DefconfigBasename=$(subst _defconfig,,$(LinuxDefaultConfig))
ConfigFragment=$(DefconfigBasename)_$(BuildConfig)_fragment

$(PackageBuildConfig): $(LinuxConfigsDir)/$(LinuxDefaultConfig) $(LinuxConfigsDir)/$(ConfigFragment) | $(BuildDirectory)
	$(Echo) "The default Linux build configuration is \"$(LinuxDefaultConfig)\"."
	$(Verbose)$(MAKE) $(LinuxCommonMakeArgs) $(LinuxDefaultConfig)
	$(Echo) "Applying config fragment \"$(ConfigFragment)\"."
	$(PackageSourceDir)/scripts/kconfig/merge_config.sh -O $(BuildDirectory) -m $(BuildDirectory)/.config $(LinuxConfigsDir)/$(ConfigFragment)
	$(Echo) "Setting unspecified options to defaults"
	$(Verbose) yes " " | $(MAKE) $(LinuxCommonMakeArgs) oldconfig
else
$(PackageBuildConfig): $(PackageSourceConfig) | $(PackageSourceDir) $(BuildDirectory)
	$(Echo) "The default Linux build configuration is \"$(PackageSourceConfig)\"."
	$(copy-result)
endif

# Configure the source for building.

.PHONY: configure
configure: source $(PackageBuildConfig)

# Build the source.

.PHONY: build
build: configure images

# Build the linux kernel images, including vmlinux (ELF).

.PHONY: images
images: configure | $(BuildDirectory)
	$(Verbose)$(MAKE) $(LinuxCommonMakeArgs) $(LinuxProductMakeArgs) $(LinuxBuildTargets) $(LinuxDtbFiles)

$(LinuxItbBuildPaths) : images
	$(Verbose)$(CP) $(PackageSourceDir)/$(LinuxItbFolder)/its/$(basename $(LinuxItbFile)).its $(LinuxItbDir)
	$(Verbose)$(MAKEIMAGE) -f $(LinuxItbDir)/$(basename $(LinuxItbFile)).its $(LinuxItbBuildPaths)


# Stage the build to a temporary installation area.

.PHONY: stage stage-boot stage-modules stage-headers
stage: stage-boot stage-modules stage-headers

stage-boot stage-modules stage-headers: build | $(ResultDirectory)

stage-modules:
	$(Verbose)$(MAKE) $(LinuxCommonMakeArgs) INSTALL="$(INSTALL) $(INSTALLFLAGS)" INSTALL_MOD_PATH=$(ResultDirectory) DEPMOD=$(DEPMOD) modules_install

stage-headers:
	$(Verbose)$(MAKE) $(LinuxCommonMakeArgs) INSTALL="$(INSTALL) $(INSTALLFLAGS)" INSTALL_HDR_PATH=$(ResultDirectory) headers_install

$(LinuxBootResultPaths): $(ResultDirectory)/%: $(LinuxBootDir)/%
	$(copy-result)

$(LinuxKernelResultPaths): $(ResultDirectory)/%: $(LinuxKernelDir)/%
	$(copy-result)

$(LinuxDtbResultPaths): $(ResultDirectory)/%: $(LinuxDtbDir)/%
	$(copy-result)

$(LinuxItbResultPaths): $(ResultDirectory)/%: $(LinuxItbDir)/%
	$(copy-result)

stage-boot: $(LinuxDtbResultPaths) $(LinuxItbResultPaths) $(LinuxBootResultPaths) $(LinuxKernelResultPaths)

clean:
	$(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)
	$(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)

.PHONY: help help-defconfig
help-defconfig:
	$(echo-defconfig)

help: help-defconfig

include post.mak
