blob: d76ac2dc5a9f087a6a970a43b40b8c2f93637909 [file] [log] [blame]
# Copyright 2017 The Fuchsia Authors
#
# Use of this source code is governed by a MIT-style
# license that can be found in the LICENSE file or at
# https://opensource.org/licenses/MIT
# this file contains extra build rules for building various kernel
# package configurations
OUT_ZIRCON_IMAGE := $(BUILDDIR)/$(LKNAME).bin
OUT_ZIRCON_ZIMAGE := $(BUILDDIR)/z$(LKNAME).bin
OUT_ZIRCON_ZIMAGE_DTB := $(OUT_ZIRCON_ZIMAGE)-dtb
OUT_ZIRCON_IMAGE_DTB := $(OUT_ZIRCON_IMAGE)-dtb
OUT_ZIRCON_ZIMAGE_KDTB := $(BUILDDIR)/z$(LKNAME).kdtb
GENERATED += $(OUT_ZIRCON_ZIMAGE)
KERNSIZE=`stat -c%s "$(OUT_ZIRCON_ZIMAGE)"`
DTBSIZE=`stat -c%s "$(DEVICE_TREE)"`
KDTBTOOL=$(BUILDDIR)/tools/mkkdtb
# rule for gzipping the kernel
$(OUT_ZIRCON_ZIMAGE): $(OUTLKBIN)
$(call BUILDECHO,gzipping image $@)
$(NOECHO)gzip -c $< > $@
ifdef DEVICE_TREE
GENERATED += $(OUT_ZIRCON_ZIMAGE_DTB) \
$(OUT_ZIRCON_IMAGE_DTB) \
$(OUT_ZIRCON_ZIMAGE_KDTB)
# rule for appending device tree, compressed kernel
$(OUT_ZIRCON_ZIMAGE_DTB): $(OUT_ZIRCON_ZIMAGE) $(DEVICE_TREE)
$(call BUILDECHO,concatenating device tree $@)
$(NOECHO)cat $< $(DEVICE_TREE) > $@
# rule for appending device tree, uncompressed kernel
$(OUT_ZIRCON_IMAGE_DTB): $(OUTLKBIN) $(DEVICE_TREE)
$(call BUILDECHO,concatenating device tree $@)
$(NOECHO)cat $< $(DEVICE_TREE) > $@
$(OUT_ZIRCON_ZIMAGE_KDTB): $(OUT_ZIRCON_ZIMAGE) $(DEVICE_TREE) $(KDTBTOOL)
$(call BUILDECHO,generating $@)
$(NOECHO)$(KDTBTOOL) $(OUT_ZIRCON_ZIMAGE) $(DEVICE_TREE) $@
# build gzipped kernel with concatenated device tree
EXTRA_KERNELDEPS += $(OUT_ZIRCON_ZIMAGE_DTB) $(OUT_ZIRCON_IMAGE_DTB) $(OUT_ZIRCON_ZIMAGE_KDTB)
endif
EXTRA_KERNELDEPS += $(OUT_ZIRCON_ZIMAGE)