# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.
#
# Copyright (c) 2013-2014, Marvell International Ltd.
#
# Alternatively, this software may be distributed under the terms of the GNU
# General Public License Version 2, and any use shall comply with the terms and
# conditions of the GPL.  A copy of the GPL is available at
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
# IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
# ARE EXPRESSLY DISCLAIMED.  The GPL license provides additional details about
# this warranty disclaimer.

# Makefile for Bootcode
#
# This makefile assumes GNU make features
#

#
.DEFAULT_GOAL ?= help

CROSS_COMPILE ?= arm-none-eabi-
CONFIG_TPM ?= yes
CONFIG_TPM_PHYSICAL_INIT ?= yes

# Derived files
OBJDIR ?= $(CURDIR)/objs
DEPDIR ?= $(OBJDIR)/dep
BINDIR ?= $(CURDIR)/bin
TOOLSDIR ?= $(CURDIR)/tools
PRGMTARGETS		= MiniLoader

BUILD_TYPE ?= SECOND

MODULES = main common drivers/avs drivers/cpu drivers/crypto drivers/flash drivers/i2c drivers/pincfg drivers/pll drivers/pmu drivers/serial

MODULES += drivers/ddr/GR2 drivers/ddr drivers/ddr/GS2
ifeq ($(CONFIG_TPM),yes)
MODULES += drivers/spi
MODULES += drivers/tpm
endif

include $(CURDIR)/tools/makedefs.mk
.PHONY: help test_vars clean MLDR_prog MLDR_dump all fwVersion_build

help:
	@echo "make {all|MLDR_prog|MLDR_dump|clean|test_vars}"

MLDR_dump: $(DERIVED_DIRS) $(foreach pgm,$(PRGMTARGETS),$(BINDIR)/$(pgm).dump)

MLDR_prog: $(DERIVED_DIRS) $(foreach pgm,$(PRGMTARGETS),$(BINDIR)/$(pgm).bin)

fwVersion_build: tools/makefwversion.pl
	tools/makefwversion.pl 14 1 1

all: fwVersion_build MLDR_prog MLDR_dump

clean:
	@echo $(MSG_CLEAN)
	$(V1)rm -rf $(OBJDIR)/*
	$(V1)rm -rf $(DEPDIR)
	$(V1)rm -rf $(BINDIR)/*


-include $(shell mkdir -p $(BINDIR)) $(shell mkdir -p $(OBJDIR)) $(shell mkdir -p $(DEPDIR)) $(wildcard $(DEPDIR)/*)
