blob: 00805bdc5b3d9689b069c86c3bf5e67916e6d35a [file] [log] [blame]
wdenke2211742002-11-02 23:30:20 +00001#
Wolfgang Denk1234ce72013-06-21 10:22:36 +02002# (C) Copyright 2000-2013
wdenke2211742002-11-02 23:30:20 +00003# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4#
Wolfgang Denk1234ce72013-06-21 10:22:36 +02005# SPDX-License-Identifier: GPL-2.0+
wdenke2211742002-11-02 23:30:20 +00006#
wdenke2211742002-11-02 23:30:20 +00007#########################################################################
8
Masahiro Yamada958fe8f2014-03-05 16:59:40 +09009# This file is included from ./Makefile and spl/Makefile.
10# Clean the state to avoid the same flags added twice.
11#
12# (Tegra needs different flags for SPL.
13# That's the reason why this file must be included from spl/Makefile too.
14# If we did not have Tegra SoCs, build system would be much simpler...)
15PLATFORM_RELFLAGS :=
16PLATFORM_CPPFLAGS :=
17PLATFORM_LDFLAGS :=
18LDFLAGS :=
19LDFLAGS_FINAL :=
20OBJCOPYFLAGS :=
Masahiro Yamadadc1baa22014-10-21 13:18:32 +090021# clear VENDOR for tcsh
22VENDOR :=
wdenke2211742002-11-02 23:30:20 +000023#########################################################################
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020024
Masahiro Yamada60bb7342014-07-30 14:08:17 +090025ARCH := $(CONFIG_SYS_ARCH:"%"=%)
26CPU := $(CONFIG_SYS_CPU:"%"=%)
27BOARD := $(CONFIG_SYS_BOARD:"%"=%)
28ifneq ($(CONFIG_SYS_VENDOR),)
29VENDOR := $(CONFIG_SYS_VENDOR:"%"=%)
30endif
31ifneq ($(CONFIG_SYS_SOC),)
32SOC := $(CONFIG_SYS_SOC:"%"=%)
33endif
34
Peter Tyserd53e8fd2010-04-12 22:28:02 -050035# Some architecture config.mk files need to know what CPUDIR is set to,
36# so calculate CPUDIR before including ARCH/SOC/CPU config.mk files.
Peter Tyser29514c72010-04-12 22:28:09 -050037# Check if arch/$ARCH/cpu/$CPU exists, otherwise assume arch/$ARCH/cpu contains
38# CPU-specific code.
Masahiro Yamadac5b2a002014-06-24 22:10:52 +090039CPUDIR=arch/$(ARCH)/cpu$(if $(CPU),/$(CPU),)
Peter Tyserd53e8fd2010-04-12 22:28:02 -050040
Masahiro Yamadae7944942014-03-11 11:05:19 +090041sinclude $(srctree)/arch/$(ARCH)/config.mk # include architecture dependend rules
42sinclude $(srctree)/$(CPUDIR)/config.mk # include CPU specific rules
Peter Tyserd53e8fd2010-04-12 22:28:02 -050043
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020044ifdef SOC
Masahiro Yamadae7944942014-03-11 11:05:19 +090045sinclude $(srctree)/$(CPUDIR)/$(SOC)/config.mk # include SoC specific rules
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020046endif
Masahiro Yamadab93b2132014-03-03 19:03:17 +090047ifneq ($(BOARD),)
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020048ifdef VENDOR
49BOARDDIR = $(VENDOR)/$(BOARD)
50else
51BOARDDIR = $(BOARD)
52endif
Masahiro Yamadab93b2132014-03-03 19:03:17 +090053endif
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020054ifdef BOARD
Masahiro Yamadae7944942014-03-11 11:05:19 +090055sinclude $(srctree)/board/$(BOARDDIR)/config.mk # include board specific rules
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020056endif
57
Simon Glass385375d2014-09-14 12:40:14 -060058ifdef FTRACE
59PLATFORM_CPPFLAGS += -finstrument-functions -DFTRACE
60endif
61
Wolfgang Denk979b4bd2008-05-03 22:25:00 +020062#########################################################################
63
Masahiro Yamada958fe8f2014-03-05 16:59:40 +090064RELFLAGS := $(PLATFORM_RELFLAGS)
Scott Wood34c6dd22011-04-06 13:31:37 +000065
Masahiro Yamadac9c83ba2014-02-24 11:12:12 +090066OBJCOPYFLAGS += --gap-fill=0xff
wdenke2211742002-11-02 23:30:20 +000067
Masahiro Yamada958fe8f2014-03-05 16:59:40 +090068PLATFORM_CPPFLAGS += $(RELFLAGS)
69PLATFORM_CPPFLAGS += -pipe
Tom Rinib7f34132012-02-20 13:50:10 +000070
Nobuhiro Iwamatsub859b8c2011-01-06 10:23:54 +090071LDFLAGS += $(PLATFORM_LDFLAGS)
Haiying Wang39358732011-02-22 16:38:05 -050072LDFLAGS_FINAL += -Bstatic
Masahiro Yamada958fe8f2014-03-05 16:59:40 +090073
74export PLATFORM_CPPFLAGS
75export RELFLAGS
76export LDFLAGS_FINAL
77export CONFIG_STANDALONE_LOAD_ADDR