kbuild: change out-of-tree build
authorMasahiro Yamada <yamada.m@jp.panasonic.com>
Tue, 4 Feb 2014 08:24:24 +0000 (17:24 +0900)
committerTom Rini <trini@ti.com>
Wed, 19 Feb 2014 16:07:50 +0000 (11:07 -0500)
This commit changes the working directory
where the build process occurs.

Before this commit, build process occurred under the source
tree for both in-tree and out-of-tree build.

That's why we needed to add $(obj) prefix to all generated
files in makefiles like follows:
  $(obj)u-boot.bin:  $(obj)u-boot

Here, $(obj) is empty for in-tree build, whereas it points
to the output directory for out-of-tree build.

And our old build system changes the current working directory
with "make -C <sub-dir>" syntax when descending into the
sub-directories.

On the other hand, Kbuild uses a different idea
to handle out-of-tree build and directory descending.

The build process of Kbuild always occurs under the output tree.
When "O=dir/to/store/output/files" is given, the build system
changes the current working directory to that directory and
restarts the make.

Kbuild uses "make -f $(srctree)/scripts/Makefile.build obj=<sub-dir>"
syntax for descending into sub-directories.
(We can write it like "make $(obj)=<sub-dir>" with a shorthand.)
This means the current working directory is always the top
of the output directory.

Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Tested-by: Gerhard Sittig <gsi@denx.de>
64 files changed:
MAKEALL
Makefile
arch/arm/cpu/arm1136/config.mk
arch/arm/cpu/arm926ejs/config.mk
arch/arm/cpu/arm926ejs/davinci/config.mk
arch/arm/cpu/armv7/am33xx/config.mk
arch/arm/cpu/armv7/config.mk
arch/arm/cpu/armv7/omap3/config.mk
arch/arm/cpu/armv7/omap4/config.mk
arch/arm/cpu/armv7/omap5/config.mk
arch/arm/cpu/armv7/socfpga/config.mk
arch/blackfin/config.mk
arch/blackfin/cpu/Makefile
arch/mips/cpu/mips32/config.mk
arch/mips/cpu/mips64/config.mk
arch/mips/cpu/xburst/config.mk
arch/nds32/config.mk
arch/powerpc/lib/Makefile
arch/sandbox/cpu/Makefile
arch/sparc/config.mk
arch/x86/lib/Makefile
board/ait/cam_enc_4xx/config.mk
board/avionic-design/medcom-wide/Makefile
board/avionic-design/plutux/Makefile
board/avionic-design/tec-ng/Makefile
board/avionic-design/tec/Makefile
board/compal/paz00/Makefile
board/compulab/trimslice/Makefile
board/cray/L1/Makefile
board/h2200/Makefile
board/matrix_vision/mvblm7/Makefile
board/matrix_vision/mvsmr/Makefile
board/nvidia/common/Makefile
board/pcs440ep/config.mk
board/samsung/origen/Makefile
common/Makefile
config.mk
doc/DocBook/Makefile
drivers/bios_emulator/Makefile
dts/Makefile
examples/api/Makefile
examples/standalone/Makefile
fs/ubifs/Makefile
lib/Makefile
mkconfig
nand_spl/board/amcc/acadia/Makefile
nand_spl/board/amcc/bamboo/Makefile
nand_spl/board/amcc/canyonlands/Makefile
nand_spl/board/amcc/kilauea/Makefile
nand_spl/board/amcc/sequoia/Makefile
nand_spl/board/freescale/mpc8315erdb/Makefile
nand_spl/board/freescale/mpc8536ds/Makefile
nand_spl/board/freescale/mpc8569mds/Makefile
nand_spl/board/freescale/mpc8572ds/Makefile
nand_spl/board/freescale/p1023rds/Makefile
nand_spl/board/freescale/p1_p2_rdb/Makefile
nand_spl/board/sheldon/simpc8313/Makefile
post/lib_powerpc/fpu/Makefile
rules.mk
scripts/Kbuild.include
scripts/Makefile.build
scripts/Makefile.host.tmp
spl/Makefile
tools/Makefile

diff --git a/MAKEALL b/MAKEALL
index 54b0d893a6b07482b5b4cd970030818622d6432b..d7ad51dc440f2293e38dcde602d458eaefe37858 100755 (executable)
--- a/MAKEALL
+++ b/MAKEALL
@@ -674,8 +674,6 @@ build_target() {
                output_dir="${OUTPUT_PREFIX}"
        fi
 
-       export BUILD_DIR="${output_dir}"
-
        target_arch=$(get_target_arch ${target})
        eval cross_toolchain=\$CROSS_COMPILE_`echo $target_arch | tr '[:lower:]' '[:upper:]'`
        if [ "${cross_toolchain}" ] ; then
@@ -686,6 +684,10 @@ build_target() {
            MAKE=make
        fi
 
+       if [  "${output_dir}" != "." ] ; then
+               MAKE="${MAKE} O=${output_dir}"
+       fi
+
        ${MAKE} distclean >/dev/null
        ${MAKE} -s ${target}_config
 
index b24b425cb9456e9625649bc2b44aef31507f0897..1409c8bf39815de08ed082a9271dfcfe0b7ac545 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -14,8 +14,8 @@ U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 else
 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
 endif
-TIMESTAMP_FILE = $(obj)include/generated/timestamp_autogenerated.h
-VERSION_FILE = $(obj)include/generated/version_autogenerated.h
+TIMESTAMP_FILE = include/generated/timestamp_autogenerated.h
+VERSION_FILE = include/generated/version_autogenerated.h
 
 HOSTARCH := $(shell uname -m | \
        sed -e s/i.86/x86/ \
@@ -43,32 +43,82 @@ else
 XECHO = :
 endif
 
-#########################################################################
-#
-# U-boot build supports generating object files in a separate external
-# directory. Two use cases are supported:
-#
-# 1) Add O= to the make command line
-# 'make O=/tmp/build all'
-#
-# 2) Set environment variable BUILD_DIR to point to the desired location
-# 'export BUILD_DIR=/tmp/build'
-# 'make'
-#
-# The second approach can also be used with a MAKEALL script
-# 'export BUILD_DIR=/tmp/build'
-# './MAKEALL'
+# kbuild supports saving output files in a separate directory.
+# To locate output files in a separate directory two syntaxes are supported.
+# In both cases the working directory must be the root of the kernel src.
+# 1) O=
+# Use "make O=dir/to/store/output/files/"
 #
-# Command line 'O=' setting overrides BUILD_DIR environment variable.
-#
-# When none of the above methods is used the local build is performed and
-# the object files are placed in the source directory.
+# 2) Set KBUILD_OUTPUT
+# Set the environment variable KBUILD_OUTPUT to point to the directory
+# where the output files shall be placed.
+# export KBUILD_OUTPUT=dir/to/store/output/files/
+# make
 #
+# The O= assignment takes precedence over the KBUILD_OUTPUT environment
+# variable.
+
+
+# KBUILD_SRC is set on invocation of make in OBJ directory
+# KBUILD_SRC is not intended to be used by the regular user (for now)
+ifeq ($(KBUILD_SRC),)
 
+# OK, Make called in directory where kernel src resides
+# Do we want to locate output files in a separate directory?
 ifeq ("$(origin O)", "command line")
-BUILD_DIR := $(O)
+  KBUILD_OUTPUT := $(O)
+endif
+
+ifeq ("$(origin W)", "command line")
+  export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
 endif
 
+# That's our default target when none is given on the command line
+PHONY := _all
+_all:
+
+# Cancel implicit rules on top Makefile
+$(CURDIR)/Makefile Makefile: ;
+
+ifneq ($(KBUILD_OUTPUT),)
+# Invoke a second make in the output directory, passing relevant variables
+# check that the output directory actually exists
+saved-output := $(KBUILD_OUTPUT)
+KBUILD_OUTPUT := $(shell cd $(KBUILD_OUTPUT) && /bin/pwd)
+$(if $(KBUILD_OUTPUT),, \
+     $(error output directory "$(saved-output)" does not exist))
+
+PHONY += $(MAKECMDGOALS) sub-make
+
+$(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
+       @:
+
+sub-make: FORCE
+       $(if $(KBUILD_VERBOSE:1=),@)$(MAKE) -C $(KBUILD_OUTPUT) \
+       KBUILD_SRC=$(CURDIR) \
+       KBUILD_EXTMOD="$(KBUILD_EXTMOD)" -f $(CURDIR)/Makefile \
+       $(filter-out _all sub-make,$(MAKECMDGOALS))
+
+# Leave processing to above invocation of make
+skip-makefile := 1
+endif # ifneq ($(KBUILD_OUTPUT),)
+endif # ifeq ($(KBUILD_SRC),)
+
+# We process the rest of the Makefile if this is the final invocation of make
+ifeq ($(skip-makefile),)
+
+PHONY += all
+_all: all
+
+srctree                := $(if $(KBUILD_SRC),$(KBUILD_SRC),$(CURDIR))
+objtree                := $(CURDIR)
+src            := $(srctree)
+obj            := $(objtree)
+
+VPATH          := $(srctree)$(if $(KBUILD_EXTMOD),:$(KBUILD_EXTMOD))
+
+export srctree objtree VPATH
+
 # Call a source code checker (by default, "sparse") as part of the
 # C compilation.
 #
@@ -87,41 +137,16 @@ ifndef CHECKSRC
 endif
 export CHECKSRC
 
-ifneq ($(BUILD_DIR),)
-saved-output := $(BUILD_DIR)
-
-# Attempt to create a output directory.
-$(shell [ -d ${BUILD_DIR} ] || mkdir -p ${BUILD_DIR})
-
-# Verify if it was successful.
-BUILD_DIR := $(shell cd $(BUILD_DIR) && /bin/pwd)
-$(if $(BUILD_DIR),,$(error output directory "$(saved-output)" does not exist))
-endif # ifneq ($(BUILD_DIR),)
-
-OBJTREE                := $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR))
+OBJTREE                := $(objtree)
 SPLTREE                := $(OBJTREE)/spl
 TPLTREE                := $(OBJTREE)/tpl
-SRCTREE                := $(CURDIR)
-srctree                := $(SRCTREE)
+SRCTREE                := $(srctree)
 TOPDIR         := $(SRCTREE)
-LNDIR          := $(OBJTREE)
-export TOPDIR SRCTREE srctree OBJTREE SPLTREE TPLTREE
+export TOPDIR SRCTREE OBJTREE SPLTREE TPLTREE
 
 MKCONFIG       := $(SRCTREE)/mkconfig
 export MKCONFIG
 
-# $(obj) and (src) are defined in config.mk but here in main Makefile
-# we also need them before config.mk is included which is the case for
-# some targets like unconfig, clean, clobber, distclean, etc.
-ifneq ($(OBJTREE),$(SRCTREE))
-obj := $(OBJTREE)/
-src := $(SRCTREE)/
-else
-obj :=
-src :=
-endif
-export obj src
-
 # Make sure CDPATH settings don't interfere
 unexport CDPATH
 
@@ -136,14 +161,14 @@ SUBDIRS = $(SUBDIR_TOOLS)
 
 .PHONY : $(SUBDIRS) $(VERSION_FILE) $(TIMESTAMP_FILE)
 
-ifeq ($(obj)include/config.mk,$(wildcard $(obj)include/config.mk))
+ifeq (include/config.mk,$(wildcard include/config.mk))
 
 # Include autoconf.mk before config.mk so that the config options are available
 # to all top level build files.  We need the dummy all: target to prevent the
 # dependency target in autoconf.mk.dep from being the default.
 all:
-sinclude $(obj)include/autoconf.mk.dep
-sinclude $(obj)include/autoconf.mk
+sinclude include/autoconf.mk.dep
+sinclude include/autoconf.mk
 
 SUBDIR_EXAMPLES-y := examples/standalone
 SUBDIR_EXAMPLES-$(CONFIG_API) += examples/api
@@ -152,7 +177,7 @@ SUBDIRS += $(SUBDIR_EXAMPLES-y)
 endif
 
 # load ARCH, BOARD, and CPU configuration
-include $(obj)include/config.mk
+include include/config.mk
 export ARCH CPU BOARD VENDOR SOC
 
 # set default to nothing for native builds
@@ -197,6 +222,9 @@ HOSTCFLAGS  += $(call os_x_before, 10, 4, "-traditional-cpp")
 HOSTLDFLAGS += $(call os_x_before, 10, 5, "-multiply_defined suppress")
 endif
 
+# Look for make include files relative to root of kernel src
+MAKEFLAGS += --include-dir=$(srctree)
+
 # We need some generic definitions (do not try to remake the file).
 $(srctree)/scripts/Kbuild.include: ;
 include $(srctree)/scripts/Kbuild.include
@@ -287,7 +315,7 @@ endif
 
 export CONFIG_SYS_TEXT_BASE
 
-LDFLAGS_u-boot += -T $(obj)u-boot.lds $(LDFLAGS_FINAL)
+LDFLAGS_u-boot += -T u-boot.lds $(LDFLAGS_FINAL)
 ifneq ($(CONFIG_SYS_TEXT_BASE),)
 LDFLAGS_u-boot += -Ttext $(CONFIG_SYS_TEXT_BASE)
 endif
@@ -350,9 +378,9 @@ head-y := $(CPUDIR)/start.o
 head-$(CONFIG_4xx) += arch/powerpc/cpu/ppc4xx/resetvec.o
 head-$(CONFIG_MPC85xx) += arch/powerpc/cpu/mpc85xx/resetvec.o
 
-OBJS := $(addprefix $(obj),$(head-y))
+OBJS := $(head-y)
 
-HAVE_VENDOR_COMMON_LIB = $(if $(wildcard board/$(VENDOR)/common/Makefile),y,n)
+HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(srctree)/board/$(VENDOR)/common/Makefile),y,n)
 
 LIBS-y += lib/
 LIBS-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/
@@ -412,7 +440,7 @@ LIBS-$(CONFIG_PPC) += arch/powerpc/cpu/
 LIBS-y += board/$(BOARDDIR)/
 
 LIBS-y := $(patsubst %/, %/built-in.o, $(LIBS-y))
-LIBS := $(addprefix $(obj),$(sort $(LIBS-y)))
+LIBS := $(sort $(LIBS-y))
 .PHONY : $(LIBS)
 
 # Add GCC lib
@@ -437,9 +465,6 @@ LDPPFLAGS += \
        $(shell $(LD) --version | \
          sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
 
-__OBJS := $(subst $(obj),,$(OBJS))
-__LIBS := $(subst $(obj),,$(LIBS))
-
 #########################################################################
 #########################################################################
 
@@ -464,66 +489,66 @@ ifneq ($(CONFIG_STATIC_RELA),)
 DO_STATIC_RELA = \
        start=$$($(NM) $(1) | grep __rel_dyn_start | cut -f 1 -d ' '); \
        end=$$($(NM) $(1) | grep __rel_dyn_end | cut -f 1 -d ' '); \
-       $(obj)tools/relocate-rela $(2) $(3) $$start $$end
+       tools/relocate-rela $(2) $(3) $$start $$end
 else
 DO_STATIC_RELA =
 endif
 
 # Always append ALL so that arch config.mk's can add custom ones
-ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
-
-ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin
-ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
-ALL-$(CONFIG_RAMBOOT_PBL) += $(obj)u-boot.pbl
-ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
-ALL-$(CONFIG_SPL_FRAMEWORK) += $(obj)u-boot.img
-ALL-$(CONFIG_TPL) += $(obj)tpl/u-boot-tpl.bin
-ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
+ALL-y += u-boot.srec u-boot.bin System.map
+
+ALL-$(CONFIG_NAND_U_BOOT) += u-boot-nand.bin
+ALL-$(CONFIG_ONENAND_U_BOOT) += u-boot-onenand.bin
+ALL-$(CONFIG_RAMBOOT_PBL) += u-boot.pbl
+ALL-$(CONFIG_SPL) += spl/u-boot-spl.bin
+ALL-$(CONFIG_SPL_FRAMEWORK) += u-boot.img
+ALL-$(CONFIG_TPL) += tpl/u-boot-tpl.bin
+ALL-$(CONFIG_OF_SEPARATE) += u-boot.dtb u-boot-dtb.bin
 ifneq ($(CONFIG_SPL_TARGET),)
-ALL-$(CONFIG_SPL) += $(obj)$(CONFIG_SPL_TARGET:"%"=%)
+ALL-$(CONFIG_SPL) += $(CONFIG_SPL_TARGET:"%"=%)
 endif
-ALL-$(CONFIG_REMAKE_ELF) += $(obj)u-boot.elf
+ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf
 
 # enable combined SPL/u-boot/dtb rules for tegra
 ifneq ($(CONFIG_TEGRA),)
 ifeq ($(CONFIG_SPL),y)
 ifeq ($(CONFIG_OF_SEPARATE),y)
-ALL-y += $(obj)u-boot-dtb-tegra.bin
+ALL-y += u-boot-dtb-tegra.bin
 else
-ALL-y += $(obj)u-boot-nodtb-tegra.bin
+ALL-y += u-boot-nodtb-tegra.bin
 endif
 endif
 endif
 
 all:           $(ALL-y) $(SUBDIR_EXAMPLES-y)
 
-$(obj)u-boot.dtb:      checkdtc $(obj)u-boot
-               $(MAKE) $(build) dts binary
-               mv $(obj)dts/dt.dtb $@
+u-boot.dtb:    checkdtc u-boot
+               $(MAKE) $(build)=dts binary
+               mv dts/dt.dtb $@
 
-$(obj)u-boot-dtb.bin:  $(obj)u-boot.bin $(obj)u-boot.dtb
+u-boot-dtb.bin:        u-boot.bin u-boot.dtb
                cat $^ >$@
 
-$(obj)u-boot.hex:      $(obj)u-boot
+u-boot.hex:    u-boot
                $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
 
-$(obj)u-boot.srec:     $(obj)u-boot
+u-boot.srec:   u-boot
                $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@
 
-$(obj)u-boot.bin:      $(obj)u-boot
+u-boot.bin:    u-boot
                $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
                $(call DO_STATIC_RELA,$<,$@,$(CONFIG_SYS_TEXT_BASE))
                $(BOARD_SIZE_CHECK)
 
-$(obj)u-boot.ldr:      $(obj)u-boot
+u-boot.ldr:    u-boot
                $(CREATE_LDR_ENV)
                $(LDR) -T $(CONFIG_BFIN_CPU) -c $@ $< $(LDR_FLAGS)
                $(BOARD_SIZE_CHECK)
 
-$(obj)u-boot.ldr.hex:  $(obj)u-boot.ldr
+u-boot.ldr.hex:        u-boot.ldr
                $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@ -I binary
 
-$(obj)u-boot.ldr.srec: $(obj)u-boot.ldr
+u-boot.ldr.srec:       u-boot.ldr
                $(OBJCOPY) ${OBJCFLAGS} -O srec $< $@ -I binary
 
 #
@@ -534,79 +559,78 @@ ifndef CONFIG_SYS_UBOOT_START
 CONFIG_SYS_UBOOT_START := 0
 endif
 
-$(obj)u-boot.img:      $(obj)u-boot.bin
-               $(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
+u-boot.img:    u-boot.bin
+               tools/mkimage -A $(ARCH) -T firmware -C none \
                -O u-boot -a $(CONFIG_SYS_TEXT_BASE) \
                -e $(CONFIG_SYS_UBOOT_START) \
                -n $(shell sed -n -e 's/.*U_BOOT_VERSION//p' $(VERSION_FILE) | \
                        sed -e 's/"[     ]*$$/ for $(BOARD) board"/') \
                -d $< $@
 
-$(obj)u-boot.imx: $(obj)u-boot.bin depend
-               $(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common $(OBJTREE)/u-boot.imx
+u-boot.imx: u-boot.bin depend
+               $(MAKE) $(build)=arch/arm/imx-common $(objtree)/u-boot.imx
 
-$(obj)u-boot.kwb:       $(obj)u-boot.bin
-               $(obj)tools/mkimage -n $(CONFIG_SYS_KWD_CONFIG) -T kwbimage \
+u-boot.kwb:       u-boot.bin
+               tools/mkimage -n $(CONFIG_SYS_KWD_CONFIG) -T kwbimage \
                -a $(CONFIG_SYS_TEXT_BASE) -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
 
-$(obj)u-boot.pbl:      $(obj)u-boot.bin
-               $(obj)tools/mkimage -n $(CONFIG_SYS_FSL_PBL_RCW) \
+u-boot.pbl:    u-boot.bin
+               tools/mkimage -n $(CONFIG_SYS_FSL_PBL_RCW) \
                -R $(CONFIG_SYS_FSL_PBL_PBI) -T pblimage \
                -d $< $@
 
-$(obj)u-boot.sha1:     $(obj)u-boot.bin
-               $(obj)tools/ubsha1 $(obj)u-boot.bin
+u-boot.sha1:   u-boot.bin
+               tools/ubsha1 u-boot.bin
 
-$(obj)u-boot.dis:      $(obj)u-boot
+u-boot.dis:    u-boot
                $(OBJDUMP) -d $< > $@
 
 # $@ is output, $(1) and $(2) are inputs, $(3) is padded intermediate,
 # $(4) is pad-to
 SPL_PAD_APPEND = \
                $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(4) -I binary -O binary \
-               $(1) $(obj)$(3); \
-               cat $(obj)$(3) $(2) > $@; \
-               rm $(obj)$(3)
+               $(1) $(3); \
+               cat $(3) $(2) > $@; \
+               rm $(3)
 
 ifdef CONFIG_TPL
-SPL_PAYLOAD := $(obj)tpl/u-boot-with-tpl.bin
+SPL_PAYLOAD := tpl/u-boot-with-tpl.bin
 else
-SPL_PAYLOAD := $(obj)u-boot.bin
+SPL_PAYLOAD := u-boot.bin
 endif
 
-$(obj)u-boot-with-spl.bin: $(obj)spl/u-boot-spl.bin $(SPL_PAYLOAD)
+u-boot-with-spl.bin: spl/u-boot-spl.bin $(SPL_PAYLOAD)
                $(call SPL_PAD_APPEND,$<,$(SPL_PAYLOAD),spl/u-boot-spl-pad.bin,$(CONFIG_SPL_PAD_TO))
 
-$(obj)tpl/u-boot-with-tpl.bin: $(obj)tpl/u-boot-tpl.bin $(obj)u-boot.bin
-               $(call SPL_PAD_APPEND,$<,$(obj)u-boot.bin,tpl/u-boot-tpl-pad.bin,$(CONFIG_TPL_PAD_TO))
+tpl/u-boot-with-tpl.bin: tpl/u-boot-tpl.bin u-boot.bin
+               $(call SPL_PAD_APPEND,$<,u-boot.bin,tpl/u-boot-tpl-pad.bin,$(CONFIG_TPL_PAD_TO))
 
-$(obj)u-boot-with-spl.imx: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
-               $(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common \
+u-boot-with-spl.imx: spl/u-boot-spl.bin u-boot.bin
+               $(MAKE) $(build)=arch/arm/imx-common \
                        $(OBJTREE)/u-boot-with-spl.imx
 
-$(obj)u-boot-with-nand-spl.imx: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
-               $(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common \
+u-boot-with-nand-spl.imx: spl/u-boot-spl.bin u-boot.bin
+               $(MAKE) $(build)=arch/arm/imx-common \
                        $(OBJTREE)/u-boot-with-nand-spl.imx
 
-$(obj)u-boot.ubl:       $(obj)u-boot-with-spl.bin
-               $(obj)tools/mkimage -n $(UBL_CONFIG) -T ublimage \
-               -e $(CONFIG_SYS_TEXT_BASE) -d $< $(obj)u-boot.ubl
+u-boot.ubl:       u-boot-with-spl.bin
+               tools/mkimage -n $(UBL_CONFIG) -T ublimage \
+               -e $(CONFIG_SYS_TEXT_BASE) -d $< u-boot.ubl
 
-$(obj)u-boot.ais:       $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
-               $(obj)tools/mkimage -s -n $(if $(CONFIG_AIS_CONFIG_FILE),$(CONFIG_AIS_CONFIG_FILE),"/dev/null") \
+u-boot.ais:       spl/u-boot-spl.bin u-boot.img
+               tools/mkimage -s -n $(if $(CONFIG_AIS_CONFIG_FILE),$(srctree)/$(CONFIG_AIS_CONFIG_FILE:"%"=%),"/dev/null") \
                        -T aisimage \
                        -e $(CONFIG_SPL_TEXT_BASE) \
-                       -d $(obj)spl/u-boot-spl.bin \
-                       $(obj)spl/u-boot-spl.ais
+                       -d spl/u-boot-spl.bin \
+                       spl/u-boot-spl.ais
                $(OBJCOPY) ${OBJCFLAGS} -I binary \
                        --pad-to=$(CONFIG_SPL_MAX_SIZE) -O binary \
-                       $(obj)spl/u-boot-spl.ais $(obj)spl/u-boot-spl-pad.ais
-               cat $(obj)spl/u-boot-spl-pad.ais $(obj)u-boot.img > \
-                       $(obj)u-boot.ais
+                       spl/u-boot-spl.ais spl/u-boot-spl-pad.ais
+               cat spl/u-boot-spl-pad.ais u-boot.img > u-boot.ais
 
 
-$(obj)u-boot.sb:       $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
-               $(MAKE) $(build) $(SRCTREE)/$(CPUDIR)/$(SOC)/ $(OBJTREE)/u-boot.sb
+u-boot.sb:       u-boot.bin spl/u-boot-spl.bin
+               $(MAKE) $(build)=$(CPUDIR)/$(SOC)/ $(OBJTREE)/u-boot.sb
 
 # On x600 (SPEAr600) U-Boot is appended to U-Boot SPL.
 # Both images are created using mkimage (crc etc), so that the ROM
@@ -614,124 +638,123 @@ $(obj)u-boot.sb:       $(obj)u-boot.bin $(obj)spl/u-boot-spl.bin
 # SPL image (with mkimage header) and not the binary. Otherwise the resulting image
 # which is loaded/copied by the ROM bootloader to SRAM doesn't fit.
 # The resulting image containing both U-Boot images is called u-boot.spr
-$(obj)u-boot.spr:      $(obj)u-boot.img $(obj)spl/u-boot-spl.bin
-               $(obj)tools/mkimage -A $(ARCH) -T firmware -C none \
+u-boot.spr:    u-boot.img spl/u-boot-spl.bin
+               tools/mkimage -A $(ARCH) -T firmware -C none \
                -a $(CONFIG_SPL_TEXT_BASE) -e $(CONFIG_SPL_TEXT_BASE) -n XLOADER \
-               -d $(obj)spl/u-boot-spl.bin $@
+               -d spl/u-boot-spl.bin $@
                $(OBJCOPY) -I binary -O binary \
                        --pad-to=$(CONFIG_SPL_PAD_TO) --gap-fill=0xff $@
-               cat $(obj)u-boot.img >> $@
+               cat u-boot.img >> $@
 
 ifneq ($(CONFIG_TEGRA),)
-$(obj)u-boot-nodtb-tegra.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
-               $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary $(obj)spl/u-boot-spl $(obj)spl/u-boot-spl-pad.bin
-               cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $@
-               rm $(obj)spl/u-boot-spl-pad.bin
+u-boot-nodtb-tegra.bin: spl/u-boot-spl.bin u-boot.bin
+               $(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_TEXT_BASE) -O binary spl/u-boot-spl spl/u-boot-spl-pad.bin
+               cat spl/u-boot-spl-pad.bin u-boot.bin > $@
+               rm spl/u-boot-spl-pad.bin
 
 ifeq ($(CONFIG_OF_SEPARATE),y)
-$(obj)u-boot-dtb-tegra.bin: $(obj)u-boot-nodtb-tegra.bin $(obj)u-boot.dtb
-               cat $(obj)u-boot-nodtb-tegra.bin $(obj)u-boot.dtb > $@
+u-boot-dtb-tegra.bin: u-boot-nodtb-tegra.bin u-boot.dtb
+               cat u-boot-nodtb-tegra.bin u-boot.dtb > $@
 endif
 endif
 
-$(obj)u-boot-img.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
-               cat $(obj)spl/u-boot-spl.bin $(obj)u-boot.img > $@
+u-boot-img.bin: spl/u-boot-spl.bin u-boot.img
+               cat spl/u-boot-spl.bin u-boot.img > $@
 
 # PPC4xx needs the SPL at the end of the image, since the reset vector
 # is located at 0xfffffffc. So we can't use the "u-boot-img.bin" target
 # and need to introduce a new build target with the full blown U-Boot
 # at the start padded up to the start of the SPL image. And then concat
 # the SPL image to the end.
-$(obj)u-boot-img-spl-at-end.bin: $(obj)spl/u-boot-spl.bin $(obj)u-boot.img
+u-boot-img-spl-at-end.bin: spl/u-boot-spl.bin u-boot.img
                $(OBJCOPY) -I binary -O binary --pad-to=$(CONFIG_UBOOT_PAD_TO) \
-                        --gap-fill=0xff $(obj)u-boot.img $@
-               cat $(obj)spl/u-boot-spl.bin >> $@
+                        --gap-fill=0xff u-boot.img $@
+               cat spl/u-boot-spl.bin >> $@
 
 # Create a new ELF from a raw binary file.  This is useful for arm64
 # where static relocation needs to be performed on the raw binary,
 # but certain simulators only accept an ELF file (but don't do the
 # relocation).
 # FIXME refactor dts/Makefile to share target/arch detection
-$(obj)u-boot.elf: $(obj)u-boot.bin
+u-boot.elf: u-boot.bin
        @$(OBJCOPY)  -B aarch64 -I binary -O elf64-littleaarch64 \
-               $< $(obj)u-boot-elf.o
-       @$(LD) $(obj)u-boot-elf.o -o $@ \
+               $< u-boot-elf.o
+       @$(LD) u-boot-elf.o -o $@ \
                --defsym=_start=$(CONFIG_SYS_TEXT_BASE) \
                -Ttext=$(CONFIG_SYS_TEXT_BASE)
 
 ifeq ($(CONFIG_SANDBOX),y)
 GEN_UBOOT = \
-               cd $(LNDIR) && $(CC) $(SYMS) -T $(obj)u-boot.lds \
-                       -Wl,--start-group $(__LIBS) -Wl,--end-group \
+               $(CC) $(SYMS) -T u-boot.lds \
+                       -Wl,--start-group $(LIBS) -Wl,--end-group \
                        $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map -o u-boot
 else
 GEN_UBOOT = \
-               cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
-                       $(__OBJS) \
-                       --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
+               $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+                       $(OBJS) \
+                       --start-group $(LIBS) --end-group $(PLATFORM_LIBS) \
                        -Map u-boot.map -o u-boot
 endif
 
-$(obj)u-boot:  depend \
-               $(SUBDIR_TOOLS) $(OBJS) $(LIBS) $(obj)u-boot.lds
+u-boot:        depend $(SUBDIR_TOOLS) $(OBJS) $(LIBS) u-boot.lds
                $(GEN_UBOOT)
 ifeq ($(CONFIG_KALLSYMS),y)
-               smap=`$(call SYSTEM_MAP,$(obj)u-boot) | \
+               smap=`$(call SYSTEM_MAP,u-boot) | \
                        awk '$$2 ~ /[tTwW]/ {printf $$1 $$3 "\\\\000"}'` ; \
                $(CC) $(CFLAGS) -DSYSTEM_MAP="\"$${smap}\"" \
-                       -c common/system_map.c -o $(obj)common/system_map.o
-               $(GEN_UBOOT) $(obj)common/system_map.o
+                       -c $(srctree)/common/system_map.c -o common/system_map.o
+               $(GEN_UBOOT) common/system_map.o
 endif
 
 $(OBJS):
        @:
 
 $(LIBS):       depend $(SUBDIR_TOOLS)
-               $(MAKE) $(build) $(dir $(subst $(obj),,$@))
+               $(MAKE) $(build)=$(patsubst %/,%,$(dir $@))
 
 $(SUBDIRS):    depend
-               $(MAKE) $(build) $@ all
+               $(MAKE) $(build)=$@ all
 
-$(SUBDIR_EXAMPLES-y): $(obj)u-boot
+$(SUBDIR_EXAMPLES-y): u-boot
 
-$(obj)u-boot.lds: $(LDSCRIPT) depend
+u-boot.lds: $(LDSCRIPT) depend
                $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:      $(TIMESTAMP_FILE) $(VERSION_FILE) depend
-               $(MAKE) $(build) nand_spl/board/$(BOARDDIR) all
+               $(MAKE) $(build)=nand_spl/board/$(BOARDDIR) all
 
-$(obj)u-boot-nand.bin: nand_spl $(obj)u-boot.bin
-               cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
+u-boot-nand.bin:       nand_spl u-boot.bin
+               cat nand_spl/u-boot-spl-16k.bin u-boot.bin > u-boot-nand.bin
 
-$(obj)spl/u-boot-spl.bin:      $(SUBDIR_TOOLS) depend
-               $(MAKE) -C spl all
+spl/u-boot-spl.bin:    $(SUBDIR_TOOLS) depend
+               $(MAKE) obj=spl -f $(srctree)/spl/Makefile all
 
-$(obj)tpl/u-boot-tpl.bin:      $(SUBDIR_TOOLS) depend
-               $(MAKE) -C spl all CONFIG_TPL_BUILD=y
+tpl/u-boot-tpl.bin:    $(SUBDIR_TOOLS) depend
+               $(MAKE) obj=tpl -f $(srctree)/spl/Makefile all CONFIG_TPL_BUILD=y
 
 # Explicitly make _depend in subdirs containing multiple targets to prevent
 # parallel sub-makes creating .depend files simultaneously.
 depend dep:    $(TIMESTAMP_FILE) $(VERSION_FILE) \
-               $(obj)include/spl-autoconf.mk \
-               $(obj)include/tpl-autoconf.mk \
-               $(obj)include/autoconf.mk \
-               $(obj)include/generated/generic-asm-offsets.h \
-               $(obj)include/generated/asm-offsets.h
+               include/spl-autoconf.mk \
+               include/tpl-autoconf.mk \
+               include/autoconf.mk \
+               include/generated/generic-asm-offsets.h \
+               include/generated/asm-offsets.h
 
 TAG_SUBDIRS = $(SUBDIRS)
-TAG_SUBDIRS += $(dir $(__LIBS))
+TAG_SUBDIRS += $(dir $(LIBS))
 TAG_SUBDIRS += include
 
 FIND := find
 FINDFLAGS := -L
 
 checkstack:
-               $(CROSS_COMPILE)objdump -d $(obj)u-boot \
-                       `$(FIND) $(obj) -name u-boot-spl -print` | \
-                       perl $(src)scripts/checkstack.pl $(ARCH)
+               $(CROSS_COMPILE)objdump -d u-boot \
+                       `$(FIND) . -name u-boot-spl -print` | \
+                       perl $(src)/scripts/checkstack.pl $(ARCH)
 
 tags ctags:
-               ctags -w -o $(obj)ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
+               ctags -w -o ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
                                                -name '*.[chS]' -print`
 
 etags:
@@ -746,7 +769,7 @@ SYSTEM_MAP = \
                $(NM) $1 | \
                grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
                LC_ALL=C sort
-$(obj)System.map:      $(obj)u-boot
+System.map:    u-boot
                @$(call SYSTEM_MAP,$<) > $@
 
 checkthumb:
@@ -778,76 +801,76 @@ checkdtc:
 # This target actually generates 2 files; autoconf.mk and autoconf.mk.dep.
 # the dep file is only include in this top level makefile to determine when
 # to regenerate the autoconf.mk file.
-$(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
+include/autoconf.mk.dep: include/config.h include/common.h
        @$(XECHO) Generating $@ ; \
        : Generate the dependancies ; \
        $(CC) -x c -DDO_DEPS_ONLY -M $(CFLAGS) $(CPPFLAGS) \
-               -MQ $(obj)include/autoconf.mk include/common.h > $@ || \
+               -MQ include/autoconf.mk $(srctree)/include/common.h > $@ || \
                rm $@
 
-$(obj)include/autoconf.mk: $(obj)include/config.h
+include/autoconf.mk: include/config.h
        @$(XECHO) Generating $@ ; \
        : Extract the config macros ; \
-       $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h > $@.tmp && \
-               sed -n -f tools/scripts/define2mk.sed $@.tmp > $@; \
+       $(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && \
+               sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp > $@; \
        rm $@.tmp
 
 # Auto-generate the spl-autoconf.mk file (which is included by all makefiles for SPL)
-$(obj)include/tpl-autoconf.mk: $(obj)include/config.h
+include/tpl-autoconf.mk: include/config.h
        @$(XECHO) Generating $@ ; \
        : Extract the config macros ; \
        $(CPP) $(CFLAGS) -DCONFIG_TPL_BUILD  -DCONFIG_SPL_BUILD\
-                       -DDO_DEPS_ONLY -dM include/common.h > $@.tmp && \
-               sed -n -f tools/scripts/define2mk.sed $@.tmp > $@; \
+                       -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && \
+               sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp > $@; \
        rm $@.tmp
 
-$(obj)include/spl-autoconf.mk: $(obj)include/config.h
+include/spl-autoconf.mk: include/config.h
        @$(XECHO) Generating $@ ; \
        : Extract the config macros ; \
-       $(CPP) $(CFLAGS) -DCONFIG_SPL_BUILD -DDO_DEPS_ONLY -dM include/common.h > $@.tmp && \
-               sed -n -f tools/scripts/define2mk.sed $@.tmp > $@; \
+       $(CPP) $(CFLAGS) -DCONFIG_SPL_BUILD -DDO_DEPS_ONLY -dM $(srctree)/include/common.h > $@.tmp && \
+               sed -n -f $(srctree)/tools/scripts/define2mk.sed $@.tmp > $@; \
        rm $@.tmp
 
-$(obj)include/generated/generic-asm-offsets.h: $(obj)lib/asm-offsets.s
+include/generated/generic-asm-offsets.h: lib/asm-offsets.s
        @$(XECHO) Generating $@
-       tools/scripts/make-asm-offsets $(obj)lib/asm-offsets.s $@
+       $(srctree)/tools/scripts/make-asm-offsets lib/asm-offsets.s $@
 
-$(obj)lib/asm-offsets.s: $(obj)include/config.h $(src)lib/asm-offsets.c
-       @mkdir -p $(obj)lib
+lib/asm-offsets.s: include/config.h $(srctree)/lib/asm-offsets.c
+       @mkdir -p lib
        $(CC) -DDO_DEPS_ONLY \
                $(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
-               -o $@ $(src)lib/asm-offsets.c -c -S
+               -o $@ $(srctree)/lib/asm-offsets.c -c -S
 
-$(obj)include/generated/asm-offsets.h: $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
+include/generated/asm-offsets.h: $(CPUDIR)/$(SOC)/asm-offsets.s
        @$(XECHO) Generating $@
-       tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
+       $(srctree)/tools/scripts/make-asm-offsets $(CPUDIR)/$(SOC)/asm-offsets.s $@
 
-$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s: $(obj)include/config.h
-       @mkdir -p $(obj)$(CPUDIR)/$(SOC)
-       if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
+$(CPUDIR)/$(SOC)/asm-offsets.s:        include/config.h
+       @mkdir -p $(CPUDIR)/$(SOC)
+       if [ -f $(srctree)/$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
                $(CC) -DDO_DEPS_ONLY \
                $(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
-                       -o $@ $(src)$(CPUDIR)/$(SOC)/asm-offsets.c -c -S; \
+                       -o $@ $(srctree)/$(CPUDIR)/$(SOC)/asm-offsets.c -c -S; \
        else \
                touch $@; \
        fi
 
 #########################################################################
 else   # !config.mk
-all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
-$(obj)u-boot.img $(obj)u-boot.dis $(obj)u-boot \
+all u-boot.hex u-boot.srec u-boot.bin \
+u-boot.img u-boot.dis u-boot \
 $(filter-out tools,$(SUBDIRS)) \
-depend dep tags ctags etags cscope $(obj)System.map:
+depend dep tags ctags etags cscope System.map:
        @echo "System not configured - see README" >&2
        @ exit 1
 
 tools: $(VERSION_FILE) $(TIMESTAMP_FILE)
-       $(MAKE) $(build) $@ all
+       $(MAKE) $(build)=$@ all
 endif  # config.mk
 
 # ARM relocations should all be R_ARM_RELATIVE (32-bit) or
 # R_AARCH64_RELATIVE (64-bit).
-checkarmreloc: $(obj)u-boot
+checkarmreloc: u-boot
        @RELOC="`$(CROSS_COMPILE)readelf -r -W $< | cut -d ' ' -f 4 | \
                grep R_A | sort -u`"; \
        if test "$$RELOC" != "R_ARM_RELATIVE" -a \
@@ -877,15 +900,15 @@ $(TIMESTAMP_FILE):
                @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
 
 easylogo env gdb:
-       $(MAKE) $(build) tools/$@ MTD_VERSION=${MTD_VERSION}
+       $(MAKE) $(build)=tools/$@ MTD_VERSION=${MTD_VERSION}
 
 gdbtools: gdb
 
 xmldocs pdfdocs psdocs htmldocs mandocs: tools/kernel-doc/docproc
-       $(MAKE) U_BOOT_VERSION=$(U_BOOT_VERSION) -C doc/DocBook/ $@
+       $(MAKE) U_BOOT_VERSION=$(U_BOOT_VERSION) $(build)=doc/DocBook $@
 
 tools-all: easylogo env gdb $(VERSION_FILE) $(TIMESTAMP_FILE)
-       $(MAKE) $(build) tools HOST_TOOLS_ALL=y
+       $(MAKE) $(build)=tools HOST_TOOLS_ALL=y
 
 .PHONY : CHANGELOG
 CHANGELOG:
@@ -897,57 +920,52 @@ include/license.h: tools/bin2header COPYING
 #########################################################################
 
 unconfig:
-       @rm -f $(obj)include/config.h $(obj)include/config.mk \
-               $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp \
-               $(obj)include/autoconf.mk $(obj)include/autoconf.mk.dep \
-               $(obj)include/spl-autoconf.mk \
-               $(obj)include/tpl-autoconf.mk
+       @rm -f include/config.h include/config.mk \
+               board/*/config.tmp board/*/*/config.tmp \
+               include/autoconf.mk include/autoconf.mk.dep \
+               include/spl-autoconf.mk \
+               include/tpl-autoconf.mk
 
 %_config::     unconfig
        @$(MKCONFIG) -A $(@:_config=)
 
-sinclude $(obj).boards.depend
-$(obj).boards.depend:  boards.cfg
-       @awk '(NF && $$1 !~ /^#/) { print $$7 ": " $$7 "_config; $$(MAKE)" }' $< > $@
-
-#########################################################################
 #########################################################################
 
 clean:
-       @rm -f $(obj)examples/standalone/atmel_df_pow2                    \
-              $(obj)examples/standalone/hello_world                      \
-              $(obj)examples/standalone/interrupt                        \
-              $(obj)examples/standalone/mem_to_mem_idma2intr             \
-              $(obj)examples/standalone/sched                            \
-              $(addprefix $(obj)examples/standalone/, smc91111_eeprom smc911x_eeprom) \
-              $(obj)examples/standalone/test_burst                       \
-              $(obj)examples/standalone/timer
-       @rm -f $(addprefix $(obj)examples/api/, demo demo.bin)
-       @rm -f $(obj)tools/bmp_logo        $(obj)tools/easylogo/easylogo  \
-              $(obj)tools/env/fw_printenv                                \
-              $(obj)tools/envcrc                                         \
-              $(addprefix $(obj)tools/gdb/, gdbcont gdbsend)             \
-              $(obj)tools/gen_eth_addr    $(obj)tools/img2srec           \
-              $(obj)tools/dumpimage                                      \
-              $(addprefix $(obj)tools/, mkenvimage mkimage)              \
-              $(obj)tools/mpc86x_clk                                     \
-              $(addprefix $(obj)tools/, mk$(BOARD)spl mkexynosspl)       \
-              $(obj)tools/mxsboot                                        \
-              $(obj)tools/ncb             $(obj)tools/ubsha1             \
-              $(obj)tools/kernel-doc/docproc                             \
-              $(obj)tools/proftool
-       @rm -f $(addprefix $(obj)board/cray/L1/, bootscript.c bootscript.image) \
-              $(obj)board/matrix_vision/*/bootscript.img                 \
-              $(obj)spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl       \
-              $(obj)u-boot.lds                                           \
-              $(addprefix $(obj)arch/blackfin/cpu/, init.lds init.elf)
-       @rm -f $(obj)include/bmp_logo.h
-       @rm -f $(obj)include/bmp_logo_data.h
-       @rm -f $(obj)lib/asm-offsets.s
-       @rm -f $(obj)include/generated/asm-offsets.h
-       @rm -f $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
+       @rm -f examples/standalone/atmel_df_pow2                          \
+              examples/standalone/hello_world                            \
+              examples/standalone/interrupt                              \
+              examples/standalone/mem_to_mem_idma2intr                   \
+              examples/standalone/sched                                  \
+              $(addprefix examples/standalone/, smc91111_eeprom smc911x_eeprom) \
+              examples/standalone/test_burst                             \
+              examples/standalone/timer
+       @rm -f $(addprefix examples/api/, demo demo.bin)
+       @rm -f tools/bmp_logo      tools/easylogo/easylogo                \
+              tools/env/fw_printenv                                      \
+              tools/envcrc                                               \
+              $(addprefix tools/gdb/, gdbcont gdbsend)                   \
+              tools/gen_eth_addr    tools/img2srec                       \
+              tools/dumpimage                                            \
+              $(addprefix tools/, mkenvimage mkimage)                    \
+              tools/mpc86x_clk                                           \
+              $(addprefix tools/, mk$(BOARD)spl mkexynosspl)             \
+              tools/mxsboot                                              \
+              tools/ncb                   tools/ubsha1                   \
+              tools/kernel-doc/docproc                                   \
+              tools/proftool
+       @rm -f $(addprefix board/cray/L1/, bootscript.c bootscript.image) \
+              board/matrix_vision/*/bootscript.img                       \
+              spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl             \
+              u-boot.lds                                                 \
+              $(addprefix arch/blackfin/cpu/, init.lds init.elf)
+       @rm -f include/bmp_logo.h
+       @rm -f include/bmp_logo_data.h
+       @rm -f lib/asm-offsets.s
+       @rm -f include/generated/asm-offsets.h
+       @rm -f $(CPUDIR)/$(SOC)/asm-offsets.s
        @rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
-       @$(MAKE) -s -C doc/DocBook/ cleandocs
+       @$(MAKE) -f $(srctree)/doc/DocBook/Makefile cleandocs
        @find $(OBJTREE) -type f \
                \( -name 'core' -o -name '*.bak' -o -name '*~' -o -name '*.su' \
                -o -name '*.o'  -o -name '*.a' -o -name '*.exe' \
@@ -962,38 +980,38 @@ clobber:  tidy
        @find $(OBJTREE) -type f \( -name '*.srec' \
                -o -name '*.bin' -o -name u-boot.img \) \
                -print0 | xargs -0 rm -f
-       @rm -f $(OBJS) $(obj)*.bak $(obj)ctags $(obj)etags $(obj)TAGS \
-               $(obj)cscope.* $(obj)*.*~
-       @rm -f $(obj)u-boot $(obj)u-boot.map $(obj)u-boot.hex $(ALL-y)
-       @rm -f $(obj)u-boot.kwb
-       @rm -f $(obj)u-boot.pbl
-       @rm -f $(obj)u-boot.imx
-       @rm -f $(obj)u-boot-with-spl.imx
-       @rm -f $(obj)u-boot-with-nand-spl.imx
-       @rm -f $(obj)u-boot.ubl
-       @rm -f $(obj)u-boot.ais
-       @rm -f $(obj)u-boot.dtb
-       @rm -f $(obj)u-boot.sb
-       @rm -f $(obj)u-boot.spr
-       @rm -f $(addprefix $(obj)nand_spl/, u-boot.lds u-boot.lst System.map)
-       @rm -f $(addprefix $(obj)nand_spl/, u-boot-nand_spl.lds u-boot-spl u-boot-spl.map)
-       @rm -f $(addprefix $(obj)spl/, u-boot-spl u-boot-spl.bin u-boot-spl.map)
-       @rm -f $(obj)spl/u-boot-spl.lds
-       @rm -f $(addprefix $(obj)tpl/, u-boot-tpl u-boot-tpl.bin u-boot-tpl.map)
-       @rm -f $(obj)tpl/u-boot-spl.lds
-       @rm -f $(obj)MLO MLO.byteswap
-       @rm -f $(obj)SPL
-       @rm -f $(obj)tools/xway-swap-bytes
-       @rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
-       @rm -fr $(obj)include/generated
-       @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
-       @rm -f $(obj)dts/*.tmp
-       @rm -f $(addprefix $(obj)spl/, u-boot-spl.ais, u-boot-spl-pad.ais)
+       @rm -f $(OBJS) *.bak ctags etags TAGS \
+               cscope.* *.*~
+       @rm -f u-boot u-boot.map u-boot.hex $(ALL-y)
+       @rm -f u-boot.kwb
+       @rm -f u-boot.pbl
+       @rm -f u-boot.imx
+       @rm -f u-boot-with-spl.imx
+       @rm -f u-boot-with-nand-spl.imx
+       @rm -f u-boot.ubl
+       @rm -f u-boot.ais
+       @rm -f u-boot.dtb
+       @rm -f u-boot.sb
+       @rm -f u-boot.spr
+       @rm -f $(addprefix nand_spl/, u-boot.lds u-boot.lst System.map)
+       @rm -f $(addprefix nand_spl/, u-boot-nand_spl.lds u-boot-spl u-boot-spl.map)
+       @rm -f $(addprefix spl/, u-boot-spl u-boot-spl.bin u-boot-spl.map)
+       @rm -f spl/u-boot-spl.lds
+       @rm -f $(addprefix tpl/, u-boot-tpl u-boot-tpl.bin u-boot-tpl.map)
+       @rm -f tpl/u-boot-spl.lds
+       @rm -f MLO MLO.byteswap
+       @rm -f SPL
+       @rm -f tools/xway-swap-bytes
+       @rm -fr include/asm/proc include/asm/arch include/asm
+       @rm -fr include/generated
+       @[ ! -d nand_spl ] || find nand_spl -name "*" -type l -print | xargs rm -f
+       @rm -f dts/*.tmp
+       @rm -f $(addprefix spl/, u-boot-spl.ais, u-boot-spl-pad.ais)
 
 mrproper \
 distclean:     clobber unconfig
 ifneq ($(OBJTREE),$(SRCTREE))
-       rm -rf $(obj)*
+       rm -rf *
 endif
 
 backup:
@@ -1001,3 +1019,12 @@ backup:
        gtar --force-local -zcvf `LC_ALL=C date "+$$F-%Y-%m-%d-%T.tar.gz"` $$F
 
 #########################################################################
+
+endif  # skip-makefile
+
+PHONY += FORCE
+FORCE:
+
+# Declare the contents of the .PHONY variable as phony.  We keep that
+# information in a variable so we can use it in if_changed and friends.
+.PHONY: $(PHONY)
index f74228cdba1ef1a0271e9e2d52849d8a505d2614..ab1fc4ad156c4be3132f4c131c447cfbe89dee58 100644 (file)
@@ -14,6 +14,6 @@ ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/SPL
 endif
 else
-ALL-y  += $(obj)u-boot.imx
+ALL-y  += u-boot.imx
 endif
 endif
index 4d9895f5d8feee285b588b54fa6314970b0dba60..f27ca15086f28eb3c570077dec50456d0820d3e8 100644 (file)
@@ -13,6 +13,6 @@ ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/SPL
 endif
 else
-ALL-y  += $(obj)u-boot.imx
+ALL-y  += u-boot.imx
 endif
 endif
index d5c978b446754309b06c07178e20b4dd4610614e..69e9d5ab211253b722d1c00d0b0f605eae4c3dbf 100644 (file)
@@ -4,5 +4,5 @@
 # SPDX-License-Identifier:     GPL-2.0+
 #
 ifndef CONFIG_SPL_BUILD
-ALL-$(CONFIG_SPL_FRAMEWORK)    += $(obj)u-boot.ais
+ALL-$(CONFIG_SPL_FRAMEWORK)    += u-boot.ais
 endif
index 8e3668f781e9c449b7e67328b6bbbb250d737b09..1c06fb40a4f62e45503d8b042ea5c6465a0a2412 100644 (file)
@@ -7,5 +7,5 @@ ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/MLO
 ALL-$(CONFIG_SPL_SPI_SUPPORT) += $(OBJTREE)/MLO.byteswap
 else
-ALL-y  += $(obj)u-boot.img
+ALL-y  += u-boot.img
 endif
index 38b7c401f854936ac7dd06ee49d201da85185177..d01f3d9f5009f55fb81773873862954902d8879b 100644 (file)
@@ -20,6 +20,6 @@ ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/SPL
 endif
 else
-ALL-y  += $(obj)u-boot.imx
+ALL-y  += u-boot.imx
 endif
 endif
index 1d6a57c66c6f07fc09b9fb5fbe6808a7f053318f..2a3d1c5c3a5385dd690ebf34b046bdd2b79d676f 100644 (file)
@@ -11,5 +11,5 @@
 ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/MLO
 else
-ALL-y  += $(obj)u-boot.img
+ALL-y  += u-boot.img
 endif
index 1d6a57c66c6f07fc09b9fb5fbe6808a7f053318f..2a3d1c5c3a5385dd690ebf34b046bdd2b79d676f 100644 (file)
@@ -11,5 +11,5 @@
 ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/MLO
 else
-ALL-y  += $(obj)u-boot.img
+ALL-y  += u-boot.img
 endif
index 2673af96681aa62ddb3fc774a09465b6ca88357c..261b272234a507dfe8fe1cd24aa57ba4f6925248 100644 (file)
@@ -9,5 +9,5 @@
 ifdef CONFIG_SPL_BUILD
 ALL-y  += $(OBJTREE)/MLO
 else
-ALL-y  += $(obj)u-boot.img
+ALL-y  += u-boot.img
 endif
index d33ab7d62fdc5b9fa16965c87b69d1f2810a5db7..3d18491577f2ec845787ffcd30c88c532e097062 100644 (file)
@@ -4,5 +4,5 @@
 # SPDX-License-Identifier:     GPL-2.0+
 #
 ifndef CONFIG_SPL_BUILD
-ALL-y  += $(obj)u-boot.img
+ALL-y  += u-boot.img
 endif
index 73fa79855f59bf38715d55160010ce25d2cedbff..c752025aaf73e86ff81f3714a916b968e66411d8 100644 (file)
@@ -12,7 +12,7 @@ CONFIG_STANDALONE_LOAD_ADDR ?= 0x1000 -m elf32bfin
 ifeq ($(CONFIG_BFIN_CPU),)
 CONFIG_BFIN_CPU := \
        $(shell awk '$$2 == "CONFIG_BFIN_CPU" { print $$3 }' \
-               $(src)include/configs/$(BOARD).h)
+               $(srctree)/include/configs/$(BOARD).h)
 else
 CONFIG_BFIN_CPU := $(strip $(CONFIG_BFIN_CPU:"%"=%))
 endif
@@ -28,10 +28,10 @@ PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
 PLATFORM_RELFLAGS += -mcpu=$(CONFIG_BFIN_CPU)
 
 ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
-ALL-y += $(obj)u-boot.ldr
+ALL-y += u-boot.ldr
 endif
 ifeq ($(CONFIG_ENV_IS_EMBEDDED_IN_LDR),y)
-CREATE_LDR_ENV = $(obj)tools/envcrc --binary > $(obj)env-ldr.o
+CREATE_LDR_ENV = tools/envcrc --binary > env-ldr.o
 HOSTCFLAGS_NOPED_ADSP := \
        $(shell $(CPP) -dD - -mcpu=$(CONFIG_BFIN_CPU) </dev/null \
                | awk '$$2 ~ /ADSP/ { print "-D" $$2 }')
@@ -47,10 +47,10 @@ LDR_FLAGS-$(CONFIG_BFIN_BOOTROM_USES_EVT1) += -J
 
 LDR_FLAGS += --bmode $(subst BFIN_BOOT_,,$(CONFIG_BFIN_BOOT_MODE))
 LDR_FLAGS += --use-vmas
-LDR_FLAGS += --initcode $(obj)$(CPUDIR)/initcode.o
+LDR_FLAGS += --initcode $(CPUDIR)/initcode.o
 ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_UART)
 LDR_FLAGS-$(CONFIG_ENV_IS_EMBEDDED_IN_LDR) += \
-       --punchit $$(($(CONFIG_ENV_OFFSET))):$$(($(CONFIG_ENV_SIZE))):$(obj)env-ldr.o
+       --punchit $$(($(CONFIG_ENV_OFFSET))):$$(($(CONFIG_ENV_SIZE))):env-ldr.o
 endif
 ifneq (,$(findstring s,$(MAKEFLAGS)))
 LDR_FLAGS += --quiet
index a61594ab72a9c94c6a4791b651a31e4703abf5b0..369dc74e947848c94543b9050fb0433bbd200432 100644 (file)
@@ -25,9 +25,9 @@ extra-y += check_initcode
 
 # make sure our initcode (which goes into LDR) does not
 # have relocs or external references
-$(obj)initcode.o: CFLAGS += -fno-function-sections -fno-data-sections
+$(obj)/initcode.o: CFLAGS += -fno-function-sections -fno-data-sections
 READINIT = env LC_ALL=C $(CROSS_COMPILE)readelf -s $<
-$(obj)check_initcode: $(obj)initcode.o
+$(obj)/check_initcode: $(obj)/initcode.o
 ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
        @if $(READINIT) | grep '\<GLOBAL\>.*\<UND\>' ; then \
                echo "$< contains external references!" 1>&2 ; \
@@ -35,7 +35,7 @@ ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
        fi
 endif
 
-$(obj)init.lds: init.lds.S
+$(obj)/init.lds: $(src)/init.lds.S
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P $^ -o $@
-$(obj)init.elf: $(obj)init.lds $(obj)init.o $(obj)initcode.o
+$(obj)/init.elf: $(obj)/init.lds $(obj)/init.o $(obj)/initcode.o
        $(LD) $(LDFLAGS) -T $^ -o $@
index 067f8715259385da245a7b70516feee7a14124ff..7ee7faae8f749d2a33dd0475d94307ddd1a88c60 100644 (file)
@@ -21,4 +21,4 @@ else
 PLATFORM_LDFLAGS  += -m elf32ltsmip
 endif
 
-CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 -T mips.lds
+CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 -T $(srctree)/$(src)/mips.lds
index d1a8b2c7aa35ced56cebbf05f9c04873dbcbf40f..02113a1f09161b5862d66a7397a50011e19ea281 100644 (file)
@@ -21,4 +21,4 @@ else
 PLATFORM_LDFLAGS  += -m elf64ltsmip
 endif
 
-CONFIG_STANDALONE_LOAD_ADDR ?= 0xffffffff80200000 -T mips64.lds
+CONFIG_STANDALONE_LOAD_ADDR ?= 0xffffffff80200000 -T $(srctree)/$(src)/mips64.lds
index d81da210170529c36c383b03d2a2becc2a3746f8..00b0fd9c9c63e8525c90aada51ffc22656cf709d 100644 (file)
@@ -12,4 +12,4 @@ else
 PLATFORM_LDFLAGS  += -m elf32ltsmip
 endif
 
-CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 -T mips.lds
+CONFIG_STANDALONE_LOAD_ADDR ?= 0x80200000 -T $(srctree)/$(src)/mips.lds
index e93e3a8c28d229ab8ac08867bc951b86a9e0b4ac..550f8a440e6dbd44feab981ca587f8d80378c330 100644 (file)
@@ -10,7 +10,7 @@
 
 CROSS_COMPILE ?= nds32le-linux-
 
-CONFIG_STANDALONE_LOAD_ADDR = 0x300000 -T nds32.lds
+CONFIG_STANDALONE_LOAD_ADDR = 0x300000 -T $(srctree)/$(src)/nds32.lds
 
 PLATFORM_RELFLAGS      += -fno-strict-aliasing -fno-common -mrelax
 PLATFORM_RELFLAGS      += -gdwarf-2
index a706d3cc70f5a5a7ae614b6aa659c97b72979212..ac780d4077f5d38794d906912de5a009e66033ed 100644 (file)
@@ -54,11 +54,11 @@ ifndef CONFIG_SPL_BUILD
 # Workaround for local bus unaligned access problems
 # on MPC512x and MPC5200
 ifdef CONFIG_MPC512X
-$(obj)ppcstring.o: AFLAGS += -Dmemcpy=__memcpy
+$(obj)/ppcstring.o: AFLAGS += -Dmemcpy=__memcpy
 obj-y += memcpy_mpc5200.o
 endif
 ifdef CONFIG_MPC5200
-$(obj)ppcstring.o: AFLAGS += -Dmemcpy=__memcpy
+$(obj)/ppcstring.o: AFLAGS += -Dmemcpy=__memcpy
 obj-y += memcpy_mpc5200.o
 endif
 endif
index b564294a847891eac0d69470b2ab3c5954194433..c5f5426b05f2041e5d15e14ae45ffb244d0b56f5 100644 (file)
@@ -10,7 +10,7 @@
 obj-y  := cpu.o os.o start.o state.o
 
 # os.c is build in the system environment, so needs standard includes
-$(obj)os.o: CFLAGS := $(filter-out -nostdinc,\
+$(obj)/os.o: CFLAGS := $(filter-out -nostdinc,\
        $(patsubst -I%,-idirafter%,$(CFLAGS)))
-$(obj).depend.os: CPPFLAGS := $(filter-out -nostdinc,\
+$(obj)/.depend.os: CPPFLAGS := $(filter-out -nostdinc,\
        $(patsubst -I%,-idirafter%,$(CPPFLAGS)))
index e94e7cbab5600e21d0fc0b9b688281e057f46be7..9bb37241d2e57de53c4ca849fcf3e4d9db6102d7 100644 (file)
@@ -7,6 +7,7 @@
 
 CROSS_COMPILE ?= sparc-elf-
 
-CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000 -L $(gcclibdir) -T sparc.lds
+CONFIG_STANDALONE_LOAD_ADDR ?= 0x00000000 -L $(gcclibdir) \
+                       -T $(srctree)/$(src)/sparc.lds
 
 PLATFORM_CPPFLAGS += -DCONFIG_SPARC -D__sparc__
index 638f79069ccaa09269436d65db3dbe1f950aa08c..a35d062792a4f20a4cada129816bb2be2cf8a90f 100644 (file)
@@ -23,5 +23,5 @@ obj-$(CONFIG_CMD_ZBOOT)       += zimage.o
 LIBGCC := $(notdir $(NORMAL_LIBGCC))
 extra-y := $(LIBGCC)
 
-$(obj)$(LIBGCC): $(NORMAL_LIBGCC)
+$(obj)/$(LIBGCC): $(NORMAL_LIBGCC)
        $(OBJCOPY) $< $@ --prefix-symbols=__normal_
index d7e7894831d090d2f78de734c1f4a7c4eb1041e1..c7cfacacba8f601e2eec3c58efce06e31a94cb12 100644 (file)
@@ -9,7 +9,7 @@
 
 UBL_CONFIG = $(SRCTREE)/board/$(BOARDDIR)/ublimage.cfg
 ifndef CONFIG_SPL_BUILD
-ALL-y += $(obj)u-boot.ubl
+ALL-y += u-boot.ubl
 else
 # as SPL_TEXT_BASE is not page-aligned, we need for some
 # linkers the -n flag (Do not page align data), to prevent
index 87e19123b0427f9cf8abf92bf3e7b7401a9de2fe..bcf7ccfe2acb3957a59540ea302bef9e702c27b4 100644 (file)
@@ -9,4 +9,4 @@
 
 obj-y  := ../common/tamonten.o
 
-include ../../nvidia/common/common.mk
+include $(srctree)/board/nvidia/common/common.mk
index 87e19123b0427f9cf8abf92bf3e7b7401a9de2fe..bcf7ccfe2acb3957a59540ea302bef9e702c27b4 100644 (file)
@@ -9,4 +9,4 @@
 
 obj-y  := ../common/tamonten.o
 
-include ../../nvidia/common/common.mk
+include $(srctree)/board/nvidia/common/common.mk
index 79d86026261be586889202f6c25f927c6e3d3fe0..a556b92e8ed50da6007cc2de2009fd3a0dd89495 100644 (file)
@@ -7,4 +7,4 @@
 
 obj-y  := ../common/tamonten-ng.o
 
-include ../../nvidia/common/common.mk
+include $(srctree)/board/nvidia/common/common.mk
index 87e19123b0427f9cf8abf92bf3e7b7401a9de2fe..bcf7ccfe2acb3957a59540ea302bef9e702c27b4 100644 (file)
@@ -9,4 +9,4 @@
 
 obj-y  := ../common/tamonten.o
 
-include ../../nvidia/common/common.mk
+include $(srctree)/board/nvidia/common/common.mk
index b2d3b6b4b25d2b31b4c85d5af1a9f4c288905a84..e6a0b29997373d08707ce502823f2074cc1c7365 100644 (file)
@@ -16,4 +16,4 @@
 
 obj-y  := paz00.o
 
-include ../../nvidia/common/common.mk
+include $(srctree)/board/nvidia/common/common.mk
index f3bd00dbf18d1c042eb9f10a076792494203ceee..311eb92d7b9b31bd5c596c252f29ba46dcd0514f 100644 (file)
@@ -7,4 +7,4 @@
 
 obj-y  := trimslice.o
 
-include ../../nvidia/common/common.mk
+include $(srctree)/board/nvidia/common/common.mk
index 5f6c690b7c2c41c2c18b63e9d194b92895ecaef7..6aae9fa62f46d7cd999a1406709fce4a9ae1bff8 100644 (file)
@@ -9,8 +9,8 @@ obj-y   = L1.o flash.o
 obj-y  += init.o
 obj-y  += bootscript.o
 
-$(obj)bootscript.c: $(obj)bootscript.image
-       od -t x1 -v -A x $^ | awk -f x2c.awk > $@
+$(obj)/bootscript.c: $(obj)/bootscript.image
+       od -t x1 -v -A x $^ | awk -f $(srctree)/$(src)/x2c.awk > $@
 
-$(obj)bootscript.image: $(src)bootscript.hush $(src)Makefile
-       -$(OBJTREE)/tools/mkimage -A ppc -O linux -T script -C none -a 0 -e 0 -n bootscript -d $(src)bootscript.hush $@
+$(obj)/bootscript.image: $(src)/bootscript.hush
+       -$(OBJTREE)/tools/mkimage -A ppc -O linux -T script -C none -a 0 -e 0 -n bootscript -d $< $@
index d4fa15344cc642539fd2aa2ac86c2757476e4cfe..e516e916b41f69121176c972ed16f28b537cce2f 100644 (file)
@@ -10,5 +10,5 @@ obj-y := h2200.o
 
 extra-y := h2200-header.bin
 
-$(obj)h2200-header.bin: $(obj)h2200-header.o
+$(obj)/h2200-header.bin: $(obj)/h2200-header.o
        $(OBJCOPY) -O binary $< $@
index 879d79465547801dac47b1e8cfa71c5b9ab792d5..1bc1d61dcf623c5fe1e35a5031eeee0a659c45ba 100644 (file)
@@ -8,5 +8,5 @@ obj-y   := mvblm7.o pci.o fpga.o
 
 extra-y := bootscript.img
 
-$(obj)bootscript.img:
-       @mkimage -T script -C none -n M7_script -d bootscript $@
+$(obj)/bootscript.img: $(src)/bootscript
+       @mkimage -T script -C none -n M7_script -d $< $@
index b6a4f6754bf5f8c413515eabb5893d4e5bc585f2..9454259c17204e1667be44a3fd4442a0d2693b58 100644 (file)
@@ -12,5 +12,5 @@ obj-y := mvsmr.o fpga.o
 
 extra-y := bootscript.img
 
-$(obj)bootscript.img: bootscript
+$(obj)/bootscript.img: $(src)/bootscript
        @mkimage -T script -C none -n mvSMR_Script -d $< $@
index e3fcf2bdffcb4e052bd809b9d967159f11e46c4c..e3b2651570dad52cede30a3390710341d5ab4ee3 100644 (file)
@@ -1,4 +1,4 @@
 # Copyright (c) 2011 The Chromium OS Authors.
 # SPDX-License-Identifier:     GPL-2.0+
 
-include common.mk
+include $(src)/common.mk
index 1e761284e4dc6c62047703b9764f3e9aeb0a4438..b90d5d0ec1f0238e72f62595bcb1a0801721e950 100644 (file)
@@ -10,7 +10,7 @@
 #
 
 # Check the U-Boot Image with a SHA1 checksum
-ALL-y += $(obj)u-boot.sha1
+ALL-y += u-boot.sha1
 
 PLATFORM_CPPFLAGS += -DCONFIG_440=1
 
index 31e88f4424600e80e411c720e448cfcb10b49d90..37acba71e010f4c3a6b0198bd021f42bb8503aaf 100644 (file)
@@ -13,7 +13,7 @@ always := $(hostprogs-y)
 #
 # TODO:
 # Fix the root cause in tools/mkorigenspl.c and delete the following work-around
-$(obj)tools/mkorigenspl: HOSTCFLAGS:=$(filter-out -O2,$(HOSTCFLAGS))
+$(obj)/tools/mkorigenspl: HOSTCFLAGS:=$(filter-out -O2,$(HOSTCFLAGS))
 else
 obj-y  += origen.o
 endif
index 2fe14ccc41b95704025ad22f466091388885ae2a..2d7584362844001038e9298a135cb16ff1a83190 100644 (file)
@@ -238,11 +238,10 @@ obj-$(CONFIG_FIT_SIGNATURE) += image-sig.o
 obj-y += memsize.o
 obj-y += stdio.o
 
-$(obj)env_embedded.o: $(src)env_embedded.c
+$(obj)/env_embedded.o: $(src)/env_embedded.c
        $(CC) $(AFLAGS) -Wa,--no-warn \
-               -DENV_CRC=$(shell $(obj)../tools/envcrc) \
-               -c -o $@ $(src)env_embedded.c
+               -DENV_CRC=$(shell tools/envcrc) -c -o $@ $<
 
 # SEE README.arm-unaligned-accesses
-$(obj)hush.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
-$(obj)fdt_support.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
+$(obj)/hush.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
+$(obj)/fdt_support.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
index ed1a51972f55fd5de0e290c46b756388668bd80f..0fa316743ce99476a8bedb77fded14f28c3821f5 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -6,42 +6,6 @@
 #
 #########################################################################
 
-ifeq ($(CURDIR),$(SRCTREE))
-dir :=
-else
-dir := $(subst $(SRCTREE)/,,$(CURDIR))
-endif
-
-ifneq ($(OBJTREE),$(SRCTREE))
-# Create object files for SPL in a separate directory
-ifeq ($(CONFIG_SPL_BUILD),y)
-ifeq ($(CONFIG_TPL_BUILD),y)
-obj := $(if $(dir),$(TPLTREE)/$(dir)/,$(TPLTREE)/)
-else
-obj := $(if $(dir),$(SPLTREE)/$(dir)/,$(SPLTREE)/)
-endif
-else
-obj := $(if $(dir),$(OBJTREE)/$(dir)/,$(OBJTREE)/)
-endif
-src := $(if $(dir),$(SRCTREE)/$(dir)/,$(SRCTREE)/)
-
-$(shell mkdir -p $(obj))
-else
-# Create object files for SPL in a separate directory
-ifeq ($(CONFIG_SPL_BUILD),y)
-ifeq ($(CONFIG_TPL_BUILD),y)
-obj := $(if $(dir),$(TPLTREE)/$(dir)/,$(TPLTREE)/)
-else
-obj := $(if $(dir),$(SPLTREE)/$(dir)/,$(SPLTREE)/)
-
-endif
-$(shell mkdir -p $(obj))
-else
-obj :=
-endif
-src :=
-endif
-
 # clean the slate ...
 PLATFORM_RELFLAGS =
 PLATFORM_CPPFLAGS =
@@ -52,14 +16,14 @@ PLATFORM_LDFLAGS =
 # Load generated board configuration
 ifeq ($(CONFIG_TPL_BUILD),y)
 # Include TPL autoconf
-sinclude $(OBJTREE)/include/tpl-autoconf.mk
+sinclude include/tpl-autoconf.mk
 else
 ifeq ($(CONFIG_SPL_BUILD),y)
 # Include SPL autoconf
-sinclude $(OBJTREE)/include/spl-autoconf.mk
+sinclude include/spl-autoconf.mk
 else
 # Include normal autoconf
-sinclude $(OBJTREE)/include/autoconf.mk
+sinclude include/autoconf.mk
 endif
 endif
 sinclude $(OBJTREE)/include/config.mk
index 29b79d7cd11e5c83b24601add7c70c10365a7a4d..aa7c44b127ce1f95f3a628ee697c4834e6967f21 100644 (file)
@@ -6,8 +6,6 @@
 # To add a new book the only step required is to add the book to the
 # list of DOCBOOKS.
 
-include $(TOPDIR)/config.mk
-
 DOCBOOKS := fs.xml linker_lists.xml stdio.xml
 
 ###
@@ -122,7 +120,7 @@ quiet_cmd_db2pdf = PDF     $@
 
 
 index = index.html
-main_idx = $(index)
+main_idx = doc/DocBook/$(index)
 build_main_index = rm -rf $(main_idx); \
                   echo '<h1>U-Boot Bootloader HTML Documentation</h1>' >> $(main_idx) && \
                   echo '<h2>U-Boot Version: $(U_BOOT_VERSION)</h2>' >> $(main_idx) && \
@@ -151,7 +149,7 @@ quiet_cmd_db2man = MAN     $@
        @(which xmlto > /dev/null 2>&1) || \
         (echo "*** You need to install xmlto ***"; \
          exit 1)
-       $(Q)mkdir -p $(obj)man
+       $(Q)mkdir -p $(obj)/man
        $(call cmd_db2man)
        @touch $@
 
index 52a2ceb4759ae181c95a5d0c2d17c84a245d915b..330f36f3bd21a3e45641c223700b5b150c884b1f 100644 (file)
@@ -8,7 +8,7 @@ obj-y = atibios.o biosemu.o besys.o bios.o \
        $(X86DIR)/sys.o \
        $(X86DIR)/debug.o
 
-EXTRA_CFLAGS += -I. -I./include \
+EXTRA_CFLAGS += -I$(srctree)/$(src) -I$(srctree)/$(src)/include \
        -D__PPC__  -D__BIG_ENDIAN__
 
 CFLAGS += $(EXTRA_CFLAGS)
index 6c7198f65ff565da9d305d318f1047551c5764cc..d81f32d914de1f8d9df6e0a8399c52628ec5c2b6 100644 (file)
@@ -26,7 +26,7 @@ DTC_FLAGS := -R 4 -p 0x1000 \
 # Use a constant name for this so we can access it from C code.
 # objcopy doesn't seem to allow us to set the symbol name independently of
 # the filename.
-DT_BIN := $(obj)dt.dtb
+DT_BIN := $(obj)/dt.dtb
 
 $(DT_BIN): $(TOPDIR)/board/$(VENDOR)/dts/$(DEVICE_TREE).dts
        $(CPP) $(DTS_CPPFLAGS) $< -o $(DT_BIN).dts.tmp
@@ -38,7 +38,7 @@ process_lds = \
 # Run the compiler and get the link script from the linker
 GET_LDS = $(CC) $(CFLAGS) $(LDFLAGS) -Wl,--verbose 2>&1
 
-$(obj)dt.o: $(DT_BIN)
+$(obj)/dt.o: $(DT_BIN)
        # We want the output format and arch.
        # We also hope to win a prize for ugliest Makefile / shell interaction
        # We look in the LDSCRIPT first.
@@ -62,7 +62,7 @@ $(obj)dt.o: $(DT_BIN)
        \
        cd $(dir ${DT_BIN}) && \
        $(OBJCOPY) -I binary -O $${oformat} -B $${oarch} \
-               $(notdir ${DT_BIN}) $@
+               $(notdir ${DT_BIN}) $(notdir $@)
        rm $(DT_BIN)
 
 obj-$(CONFIG_OF_EMBED) := dt.o
index ee3c487c13253904593e09376730a7b20984c5ac..db0bb34afeb6eeb9fe618af8ad148701bfaf6984 100644 (file)
@@ -40,23 +40,23 @@ SRCS        += $(addprefix $(SRCTREE)/examples/api/,$(COBJ_FILES-y:.o=.c))
 SRCS   += $(addprefix $(SRCTREE)/examples/api/,$(SOBJ_FILES-y:.o=.S))
 
 # Create a list of object files to be compiled
-OBJS   += $(addprefix $(obj),$(SOBJ_FILES-y))
-OBJS   += $(addprefix $(obj),$(COBJ_FILES-y))
-OBJS   += $(addprefix $(obj),$(notdir $(EXT_COBJ_FILES-y)))
-OBJS   += $(addprefix $(obj),$(notdir $(EXT_SOBJ_FILES-y)))
+OBJS   += $(addprefix $(obj)/,$(SOBJ_FILES-y))
+OBJS   += $(addprefix $(obj)/,$(COBJ_FILES-y))
+OBJS   += $(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y)))
+OBJS   += $(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y)))
 
 #########################################################################
 
-$(obj)demo:    $(OBJS)
+$(obj)/demo:   $(OBJS)
                $(LD) --gc-sections -Ttext $(LOAD_ADDR) -o $@ $^ $(PLATFORM_LIBS)
 
-$(obj)demo.bin: $(obj)demo
+$(obj)/demo.bin: $(obj)/demo
                $(OBJCOPY) -O binary $< $@ 2>/dev/null
 
 # Rule to build generic library C files
-$(addprefix $(obj),$(notdir $(EXT_COBJ_FILES-y))): $(obj)%.o: $(SRCTREE)/lib/%.c
+$(addprefix $(obj)/,$(notdir $(EXT_COBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/lib/%.c
        $(CC) -g $(CFLAGS) -c -o $@ $<
 
 # Rule to build architecture-specific library assembly files
-$(addprefix $(obj),$(notdir $(EXT_SOBJ_FILES-y))): $(obj)%.o: $(SRCTREE)/arch/$(ARCH)/lib/%.S
+$(addprefix $(obj)/,$(notdir $(EXT_SOBJ_FILES-y))): $(obj)/%.o: $(SRCTREE)/arch/$(ARCH)/lib/%.S
        $(CC) -g $(CFLAGS) -c -o $@ $<
index 1f8d70ce8a73f78015a0b8ce96bde89d7ec50485..a6819f7792989db39692deec247ee32bcbea47c9 100644 (file)
@@ -31,7 +31,7 @@ clean-files  := $(extra-) $(addsuffix .srec,$(extra-)) $(addsuffix .bin,$(extra-
 
 COBJS  := $(ELF:=.o)
 
-LIB    = $(obj)libstubs.o
+LIB    = $(obj)/libstubs.o
 
 LIBAOBJS-$(CONFIG_PPC) += ppc_longjmp.o ppc_setjmp.o
 LIBAOBJS-$(CONFIG_8xx) += test_burst_lib.o
@@ -39,11 +39,11 @@ LIBAOBJS := $(LIBAOBJS-y)
 
 LIBCOBJS = stubs.o
 
-LIBOBJS        = $(addprefix $(obj),$(LIBAOBJS) $(LIBCOBJS))
+LIBOBJS        = $(addprefix $(obj)/,$(LIBAOBJS) $(LIBCOBJS))
 
 SRCS   := $(COBJS:.o=.c) $(LIBCOBJS:.o=.c) $(LIBAOBJS:.o=.S)
-OBJS   := $(addprefix $(obj),$(COBJS))
-ELF    := $(addprefix $(obj),$(ELF))
+OBJS   := $(addprefix $(obj)/,$(COBJS))
+ELF    := $(addprefix $(obj)/,$(ELF))
 
 gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
 
@@ -67,13 +67,13 @@ $(LIB):     $(LIBOBJS)
        $(call cmd_link_o_target, $(LIBOBJS))
 
 $(ELF):
-$(obj)%:       $(obj)%.o $(LIB)
+$(obj)/%:      $(obj)/%.o $(LIB)
                $(LD) $(LDFLAGS) -g -Ttext $(CONFIG_STANDALONE_LOAD_ADDR) \
                        -o $@ -e $(SYM_PREFIX)$(notdir $(<:.o=)) $< $(LIB) \
                        -L$(gcclibdir) -lgcc
 
-$(obj)%.srec:  $(obj)%
+$(obj)/%.srec: $(obj)/%
                $(OBJCOPY) -O srec $< $@ 2>/dev/null
 
-$(obj)%.bin:   $(obj)%
+$(obj)/%.bin:  $(obj)/%
                $(OBJCOPY) -O binary $< $@ 2>/dev/null
index 389b0e37e796cbd9d6cca0f48fc8b076a31e30da..5682b16916ad8873bb29efc6e1f4aad4cf5b755c 100644 (file)
@@ -15,4 +15,4 @@ obj-y += tnc.o tnc_misc.o debug.o crc16.o budget.o
 obj-y += log.o orphan.o recovery.o replay.o
 
 # SEE README.arm-unaligned-accesses
-$(obj)super.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
+$(obj)/super.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
index 760340fbdef85f0ad1980b6c062093522ba8d0d5..43b13d09e2f88cddc9cf1d125728f907a3d0e996 100644 (file)
@@ -67,4 +67,4 @@ obj-$(CONFIG_BOOTP_RANDOM_DELAY) += rand.o
 obj-$(CONFIG_CMD_LINK_LOCAL) += rand.o
 
 # SEE README.arm-unaligned-accesses
-$(obj)bzlib.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
+$(obj)/bzlib.o: CFLAGS += $(PLATFORM_NO_UNALIGNED)
index b96c81fbc2b50336e279cd3d78495badaf1fb9de..5f516f214a3995633a93c4e95a26feb12b8de546 100755 (executable)
--- a/mkconfig
+++ b/mkconfig
@@ -23,7 +23,7 @@ options=""
 
 if [ \( $# -eq 2 \) -a \( "$1" = "-A" \) ] ; then
        # Automatic mode
-       line=`awk '($0 !~ /^#/ && $7 ~ /^'"$2"'$/) { print $1, $2, $3, $4, $5, $6, $7, $8 }' boards.cfg`
+       line=`awk '($0 !~ /^#/ && $7 ~ /^'"$2"'$/) { print $1, $2, $3, $4, $5, $6, $7, $8 }' $srctree/boards.cfg`
        if [ -z "$line" ] ; then
                echo "make: *** No rule to make target \`$2_config'.  Stop." >&2
                exit 1
index 3b00d496ea29f8b1c02d2d7c3a602e899eeb9262..041213f3346b19f2a579a826fae3b17a4b2ef0a9 100644 (file)
@@ -18,8 +18,8 @@ CFLAGS        += -DCONFIG_NAND_SPL
 SOBJS  = start.o resetvec.o cache.o
 COBJS  = gpio.o nand_boot.o nand_ecc.o memory.o ndfc.o pll.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -47,49 +47,41 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 # create symbolic links for common files
 
 # from cpu directory
-$(obj)cache.S:
+$(obj)/cache.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/cache.S $@
 
-$(obj)gpio.c:
+$(obj)/gpio.c:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/gpio.c $@
 
-$(obj)ndfc.c:
+$(obj)/ndfc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@
 
-$(obj)start.S:
+$(obj)/start.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@
 
 # from board directory
-$(obj)memory.c:
+$(obj)/memory.c:
        @rm -f $@
        ln -s $(SRCTREE)/board/amcc/acadia/memory.c $@
 
-$(obj)pll.c:
+$(obj)/pll.c:
        @rm -f $@
        ln -s $(SRCTREE)/board/amcc/acadia/pll.c $@
 
 # from nand_spl directory
-$(obj)nand_boot.c:
+$(obj)/nand_boot.c:
        @rm -f $@
        ln -s $(SRCTREE)/nand_spl/nand_boot.c $@
 
 # from drivers/mtd/nand directory
-$(obj)nand_ecc.c:
+$(obj)/nand_ecc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 4063274de66b2cc0e1d87b274ab324f5a497aff8..92b604e9f56b444806f98a4e644e0411c4fdc9ae 100644 (file)
@@ -18,8 +18,8 @@ CFLAGS        += -DCONFIG_NAND_SPL
 SOBJS  = start.o init.o resetvec.o
 COBJS  = nand_boot.o nand_ecc.o ndfc.o sdram.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -41,43 +41,29 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 # create symbolic links for common files
 
 # from cpu directory
-$(obj)ndfc.c:
+$(obj)/ndfc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@
 
-$(obj)start.S:
+$(obj)/start.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@
 
 # from board directory
-$(obj)init.S:
+$(obj)/init.S:
        @rm -f $@
        ln -s $(SRCTREE)/board/amcc/bamboo/init.S $@
 
 # from nand_spl directory
-$(obj)nand_boot.c:
+$(obj)/nand_boot.c:
        @rm -f $@
        ln -s $(SRCTREE)/nand_spl/nand_boot.c $@
 
 # from drivers/mtd/nand directory
-$(obj)nand_ecc.c:
+$(obj)/nand_ecc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)sdram.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/sdram.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 13c8b3690dac9dacc33f2fe562644af76e54bd6e..9a730e95f54d229382c230f117237e857e1b9793 100644 (file)
@@ -23,8 +23,8 @@ COBJS += nand_boot.o
 COBJS  += nand_ecc.o
 COBJS  += ndfc.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -46,43 +46,29 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 # create symbolic links for common files
 
 # from cpu directory
-$(obj)ndfc.c:
+$(obj)/ndfc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@
 
-$(obj)start.S:
+$(obj)/start.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@
 
 # from board directory
-$(obj)init.S:
+$(obj)/init.S:
        @rm -f $@
        ln -s $(SRCTREE)/board/amcc/canyonlands/init.S $@
 
 # from nand_spl directory
-$(obj)nand_boot.c:
+$(obj)/nand_boot.c:
        @rm -f $@
        ln -s $(SRCTREE)/nand_spl/nand_boot.c $@
 
 # from drivers/mtd/nand directory
-$(obj)nand_ecc.c:
+$(obj)/nand_ecc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)ddr2_fixed.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/ddr2_fixed.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 9d07147d400c38aa7c8a4da64db92d4a988073c7..1c5498cfa56ef9d82dd7eeb79725963b499f0c7a 100644 (file)
@@ -18,8 +18,8 @@ CFLAGS        += -DCONFIG_NAND_SPL
 SOBJS  = start.o resetvec.o cache.o
 COBJS  = 44x_spd_ddr2.o nand_boot.o nand_ecc.o ndfc.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -41,44 +41,36 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 # create symbolic links for common files
 
 # from cpu directory
-$(obj)44x_spd_ddr2.c: $(obj)ecc.h
+$(obj)/44x_spd_ddr2.c: $(obj)/ecc.h
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c $@
 
-$(obj)cache.S:
+$(obj)/cache.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/cache.S $@
 
-$(obj)ecc.h:
+$(obj)/ecc.h:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/ecc.h $@
 
-$(obj)ndfc.c:
+$(obj)/ndfc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@
 
-$(obj)start.S:
+$(obj)/start.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@
 
 # from nand_spl directory
-$(obj)nand_boot.c:
+$(obj)/nand_boot.c:
        @rm -f $@
        ln -s $(SRCTREE)/nand_spl/nand_boot.c $@
 
 # from drivers/nand directory
-$(obj)nand_ecc.c:
+$(obj)/nand_ecc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 111bb0d3aa552d60cba268528126dedb53255fd5..62131ab39963b6ec70fe64b23d6b1c26a084e62c 100644 (file)
@@ -18,8 +18,8 @@ CFLAGS        += -DCONFIG_NAND_SPL
 SOBJS  = start.o init.o resetvec.o
 COBJS  = denali_data_eye.o nand_boot.o nand_ecc.o ndfc.o sdram.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -41,47 +41,39 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 # create symbolic links for common files
 
 # from cpu directory
-$(obj)denali_data_eye.c:
+$(obj)/denali_data_eye.c:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/denali_data_eye.c $@
 
-$(obj)ndfc.c:
+$(obj)/ndfc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/ndfc.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/resetvec.S $@
 
-$(obj)start.S:
+$(obj)/start.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/ppc4xx/start.S $@
 
 # from board directory
-$(obj)init.S:
+$(obj)/init.S:
        @rm -f $@
        ln -s $(SRCTREE)/board/amcc/sequoia/init.S $@
 
-$(obj)sdram.c:
+$(obj)/sdram.c:
        @rm -f $@
-       @rm -f $(obj)sdram.h
+       @rm -f $(obj)/sdram.h
        ln -s $(SRCTREE)/board/amcc/sequoia/sdram.c $@
-       ln -s $(SRCTREE)/board/amcc/sequoia/sdram.h $(obj)sdram.h
+       ln -s $(SRCTREE)/board/amcc/sequoia/sdram.h $(obj)/sdram.h
 
 # from nand_spl directory
-$(obj)nand_boot.c:
+$(obj)/nand_boot.c:
        @rm -f $@
        ln -s $(SRCTREE)/nand_spl/nand_boot.c $@
 
 # from drivers/mtd/nand directory
-$(obj)nand_ecc.c:
+$(obj)/nand_ecc.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/mtd/nand/nand_ecc.c $@
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 781382378398c2099dc07170ce5b46ae9f1fe9f5..a2054ee1ab5e3683957ce9beb7665a66bf2ff914 100644 (file)
@@ -20,8 +20,8 @@ SOBJS = start.o ticks.o
 COBJS  = nand_boot_fsl_elbc.o $(BOARD).o sdram.o ns16550.o spl_minimal.o \
          time.o cache.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -42,37 +42,29 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)start.S:
+$(obj)/start.S:
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc83xx/start.S $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        ln -sf $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)sdram.c:
+$(obj)/sdram.c:
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/sdram.c $@
 
-$(obj)$(BOARD).c:
+$(obj)/$(BOARD).c:
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/$(BOARD).c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        ln -sf $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc83xx/spl_minimal.c $@
 
-$(obj)cache.c:
+$(obj)/cache.c:
        ln -sf $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)time.c:
+$(obj)/time.c:
        ln -sf $(SRCTREE)/arch/powerpc/lib/time.c $@
 
-$(obj)ticks.S:
+$(obj)/ticks.S:
        ln -sf $(SRCTREE)/arch/powerpc/lib/ticks.S $@
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 5d9953b6f3de4b13b4399f09a60910f99405ae98..f711cf30ba59ee75ba576b6d99b3d4d5a1cf4a47 100644 (file)
@@ -22,8 +22,8 @@ SOBJS = start.o resetvec.o
 COBJS  = cache.o cpu_init_early.o spl_minimal.o fsl_law.o law.o \
          nand_boot.o nand_boot_fsl_elbc.o ns16550.o tlb.o tlb_table.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -45,64 +45,50 @@ $(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)cache.c:
+$(obj)/cache.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)cpu_init_early.c:
+$(obj)/cpu_init_early.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/cpu_init_early.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/spl_minimal.c $@
 
-$(obj)fsl_law.c:
+$(obj)/fsl_law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc8xxx/law.c $@
 
-$(obj)law.c:
+$(obj)/law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/law.c $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        @rm -f $@
        ln -sf $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        @rm -f $@
        ln -sf $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $@
 
-$(obj)fixed_ivor.S:
+$(obj)/fixed_ivor.S:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/fixed_ivor.S $@
 
-$(obj)start.S: $(obj)fixed_ivor.S
+$(obj)/start.S: $(obj)/fixed_ivor.S
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/start.S $@
 
-$(obj)tlb.c:
+$(obj)/tlb.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/tlb.c $@
 
-$(obj)tlb_table.c:
+$(obj)/tlb_table.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/tlb.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)nand_boot.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/nand_boot.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 5d9953b6f3de4b13b4399f09a60910f99405ae98..f711cf30ba59ee75ba576b6d99b3d4d5a1cf4a47 100644 (file)
@@ -22,8 +22,8 @@ SOBJS = start.o resetvec.o
 COBJS  = cache.o cpu_init_early.o spl_minimal.o fsl_law.o law.o \
          nand_boot.o nand_boot_fsl_elbc.o ns16550.o tlb.o tlb_table.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -45,64 +45,50 @@ $(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)cache.c:
+$(obj)/cache.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)cpu_init_early.c:
+$(obj)/cpu_init_early.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/cpu_init_early.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/spl_minimal.c $@
 
-$(obj)fsl_law.c:
+$(obj)/fsl_law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc8xxx/law.c $@
 
-$(obj)law.c:
+$(obj)/law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/law.c $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        @rm -f $@
        ln -sf $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        @rm -f $@
        ln -sf $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $@
 
-$(obj)fixed_ivor.S:
+$(obj)/fixed_ivor.S:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/fixed_ivor.S $@
 
-$(obj)start.S: $(obj)fixed_ivor.S
+$(obj)/start.S: $(obj)/fixed_ivor.S
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/start.S $@
 
-$(obj)tlb.c:
+$(obj)/tlb.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/tlb.c $@
 
-$(obj)tlb_table.c:
+$(obj)/tlb_table.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/tlb.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)nand_boot.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/nand_boot.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 5d9953b6f3de4b13b4399f09a60910f99405ae98..f711cf30ba59ee75ba576b6d99b3d4d5a1cf4a47 100644 (file)
@@ -22,8 +22,8 @@ SOBJS = start.o resetvec.o
 COBJS  = cache.o cpu_init_early.o spl_minimal.o fsl_law.o law.o \
          nand_boot.o nand_boot_fsl_elbc.o ns16550.o tlb.o tlb_table.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -45,64 +45,50 @@ $(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)cache.c:
+$(obj)/cache.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)cpu_init_early.c:
+$(obj)/cpu_init_early.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/cpu_init_early.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/spl_minimal.c $@
 
-$(obj)fsl_law.c:
+$(obj)/fsl_law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc8xxx/law.c $@
 
-$(obj)law.c:
+$(obj)/law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/law.c $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        @rm -f $@
        ln -sf $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        @rm -f $@
        ln -sf $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $@
 
-$(obj)fixed_ivor.S:
+$(obj)/fixed_ivor.S:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/fixed_ivor.S $@
 
-$(obj)start.S: $(obj)fixed_ivor.S
+$(obj)/start.S: $(obj)/fixed_ivor.S
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/start.S $@
 
-$(obj)tlb.c:
+$(obj)/tlb.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/tlb.c $@
 
-$(obj)tlb_table.c:
+$(obj)/tlb_table.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/tlb.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)nand_boot.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/nand_boot.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 652590df8d13710a0e3b0542776838bcb5fd9237..21a6920e6386acf9912742d4b0f50b3287e943ab 100644 (file)
@@ -18,8 +18,8 @@ SOBJS = start.o resetvec.o
 COBJS  = cache.o cpu_init_early.o spl_minimal.o fsl_law.o law.o \
          nand_boot.o nand_boot_fsl_elbc.o ns16550.o tlb.o tlb_table.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -41,64 +41,50 @@ $(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)cache.c:
+$(obj)/cache.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)cpu_init_early.c:
+$(obj)/cpu_init_early.c:
        @rm -f $@
        ln -sf $(SRCTREE)/$(CPUDIR)/cpu_init_early.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        @rm -f $@
        ln -sf $(SRCTREE)/$(CPUDIR)/spl_minimal.c $@
 
-$(obj)fsl_law.c:
+$(obj)/fsl_law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc8xxx/law.c $@
 
-$(obj)law.c:
+$(obj)/law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/law.c $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        @rm -f $@
        ln -sf $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        @rm -f $@
        ln -sf $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $@
 
-$(obj)fixed_ivor.S:
+$(obj)/fixed_ivor.S:
        @rm -f $@
        ln -sf $(SRCTREE)/$(CPUDIR)/fixed_ivor.S $@
 
-$(obj)start.S: $(obj)fixed_ivor.S
+$(obj)/start.S: $(obj)/fixed_ivor.S
        @rm -f $@
        ln -sf $(SRCTREE)/$(CPUDIR)/start.S $@
 
-$(obj)tlb.c:
+$(obj)/tlb.c:
        @rm -f $@
        ln -sf $(SRCTREE)/$(CPUDIR)/tlb.c $@
 
-$(obj)tlb_table.c:
+$(obj)/tlb_table.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/tlb.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)nand_boot.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/nand_boot.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 5d9953b6f3de4b13b4399f09a60910f99405ae98..f711cf30ba59ee75ba576b6d99b3d4d5a1cf4a47 100644 (file)
@@ -22,8 +22,8 @@ SOBJS = start.o resetvec.o
 COBJS  = cache.o cpu_init_early.o spl_minimal.o fsl_law.o law.o \
          nand_boot.o nand_boot_fsl_elbc.o ns16550.o tlb.o tlb_table.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -45,64 +45,50 @@ $(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)cache.c:
+$(obj)/cache.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)cpu_init_early.c:
+$(obj)/cpu_init_early.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/cpu_init_early.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/spl_minimal.c $@
 
-$(obj)fsl_law.c:
+$(obj)/fsl_law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc8xxx/law.c $@
 
-$(obj)law.c:
+$(obj)/law.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/law.c $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        @rm -f $@
        ln -sf $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        @rm -f $@
        ln -sf $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)resetvec.S:
+$(obj)/resetvec.S:
        @rm -f $@
        ln -s $(SRCTREE)/$(CPUDIR)/resetvec.S $@
 
-$(obj)fixed_ivor.S:
+$(obj)/fixed_ivor.S:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/fixed_ivor.S $@
 
-$(obj)start.S: $(obj)fixed_ivor.S
+$(obj)/start.S: $(obj)/fixed_ivor.S
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/start.S $@
 
-$(obj)tlb.c:
+$(obj)/tlb.c:
        @rm -f $@
        ln -sf $(SRCTREE)/arch/powerpc/cpu/mpc85xx/tlb.c $@
 
-$(obj)tlb_table.c:
+$(obj)/tlb_table.c:
        @rm -f $@
        ln -sf $(SRCTREE)/board/$(BOARDDIR)/tlb.c $@
-
-ifneq ($(OBJTREE), $(SRCTREE))
-$(obj)nand_boot.c:
-       @rm -f $@
-       ln -s $(SRCTREE)/nand_spl/board/$(BOARDDIR)/nand_boot.c $@
-endif
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index 5e83abcb14ce57a353ea08e213086858c99c384d..ca45ecd328074f4e24d18bd0a5c6cfb77165a163 100644 (file)
@@ -19,8 +19,8 @@ SOBJS = start.o ticks.o
 COBJS  = nand_boot_fsl_elbc.o $(BOARD).o sdram.o ns16550.o spl_minimal.o \
          time.o cache.o
 
-SRCS   := $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
-OBJS   := $(addprefix $(obj),$(SOBJS) $(COBJS))
+SRCS   := $(addprefix $(obj)/,$(SOBJS:.o=.S) $(COBJS:.o=.c))
+OBJS   := $(addprefix $(obj)/,$(SOBJS) $(COBJS))
 __OBJS := $(SOBJS) $(COBJS)
 LNDIR  := $(nandobj)board/$(BOARDDIR)
 
@@ -41,46 +41,38 @@ $(nandobj)u-boot.lds: $(LDSCRIPT)
 
 # create symbolic links for common files
 
-$(obj)start.S:
+$(obj)/start.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/mpc83xx/start.S $@
 
-$(obj)nand_boot_fsl_elbc.c:
+$(obj)/nand_boot_fsl_elbc.c:
        @rm -f $@
        ln -s $(SRCTREE)/nand_spl/nand_boot_fsl_elbc.c $@
 
-$(obj)sdram.c:
+$(obj)/sdram.c:
        @rm -f $@
        ln -s $(SRCTREE)/board/$(BOARDDIR)/sdram.c $@
 
-$(obj)$(BOARD).c:
+$(obj)/$(BOARD).c:
        @rm -f $@
        ln -s $(SRCTREE)/board/$(BOARDDIR)/$(BOARD).c $@
 
-$(obj)ns16550.c:
+$(obj)/ns16550.c:
        @rm -f $@
        ln -s $(SRCTREE)/drivers/serial/ns16550.c $@
 
-$(obj)spl_minimal.c:
+$(obj)/spl_minimal.c:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/cpu/mpc83xx/spl_minimal.c $@
 
-$(obj)cache.c:
+$(obj)/cache.c:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/lib/cache.c $@
 
-$(obj)time.c:
+$(obj)/time.c:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/lib/time.c $@
 
-$(obj)ticks.S:
+$(obj)/ticks.S:
        @rm -f $@
        ln -s $(SRCTREE)/arch/powerpc/lib/ticks.S $@
-
-#########################################################################
-
-$(obj)%.o:     $(obj)%.S
-       $(CC) $(AFLAGS) -c -o $@ $<
-
-$(obj)%.o:     $(obj)%.c
-       $(CC) $(CFLAGS) -c -o $@ $<
index a7aa5bcb7ea8e65b8c714a141c7a39bda60ec659..c720a26f61d141f70055bb493b918d2df238967b 100644 (file)
@@ -18,7 +18,7 @@ obj-y += darwin-ldouble.o
 CFLAGS := $(shell echo $(CFLAGS) | sed s/-msoft-float//)
 CFLAGS += -mhard-float -fkeep-inline-functions
 
-$(addprefix $(obj),$(obj-y)): $(obj)%.o:       %.c
+$(addprefix $(obj)/,$(obj-y)): $(obj)/%.o: $(src)/%.c
        $(CC)  $(ALL_CFLAGS) -o $@.fp $< -c
        $(OBJCOPY) -R .gnu.attributes $@.fp $@
        rm -f $@.fp
index b36de4daa2b4db45d4a43dcf987fe4128581c56e..e4fd3371df52eff0a5d24f3c772133db778478c8 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -6,41 +6,42 @@
 #
 #########################################################################
 
-_depend:       $(obj).depend
+_depend:       $(obj)/.depend
 
 # Split the source files into two camps: those in the current directory, and
 # those somewhere else. For the first camp we want to support CPPFLAGS_<fname>
 # and for the second we don't / can't.
-PWD_SRCS := $(filter $(notdir $(SRCS)),$(SRCS))
-OTHER_SRCS := $(filter-out $(notdir $(SRCS)),$(SRCS))
+PWD_SRCS := $(foreach f,$(SRCS), $(if \
+       $(filter $(if $(KBUILD_SRC),$(srctree)/)$(src)/$(notdir $f),$f), $f))
+OTHER_SRCS := $(filter-out $(PWD_SRCS),$(SRCS))
 
 # This is a list of dependency files to generate
-DEPS := $(basename $(patsubst %,$(obj).depend.%,$(PWD_SRCS)))
+DEPS := $(basename $(addprefix $(obj)/.depend., $(notdir $(PWD_SRCS))))
 
 # Join all the dependencies into a single file, in three parts
 #      1 .Concatenate all the generated depend files together
 #      2. Add in the deps from OTHER_SRCS which we couldn't process
 #      3. Add in the HOSTSRCS
-$(obj).depend: $(src)Makefile $(TOPDIR)/config.mk $(DEPS) $(OTHER_SRCS) \
+$(obj)/.depend:        $(TOPDIR)/config.mk $(DEPS) $(OTHER_SRCS) \
                $(HOSTSRCS)
        cat /dev/null $(DEPS) >$@
        @for f in $(OTHER_SRCS); do \
                g=`basename $$f | sed -e 's/\(.*\)\.[[:alnum:]_]/\1.o/'`; \
-               $(CC) -M $(CPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \
+               $(CC) -M $(CPPFLAGS) -MQ $(obj)/$$g $$f >> $@ ; \
        done
        @for f in $(HOSTSRCS); do \
                g=`basename $$f | sed -e 's/\(.*\)\.[[:alnum:]_]/\1.o/'`; \
-               $(HOSTCC) -M $(HOSTCPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \
+               $(HOSTCC) -M $(HOSTCPPFLAGS) -MQ $(obj)/$$g $$f >> $@ ; \
        done
 
 MAKE_DEPEND = $(CC) -M $(CPPFLAGS) $(EXTRA_CPPFLAGS_DEP) \
                -MQ $(addsuffix .o,$(obj)$(basename $<)) $< >$@
 
 
-$(obj).depend.%:       %.c
+$(obj)/.depend.%:      $(src)/%.c
        $(MAKE_DEPEND)
 
-$(obj).depend.%:       %.S
+$(obj)/.depend.%:      $(src)/%.S
        $(MAKE_DEPEND)
 
 #########################################################################
index ca5fd56ca2543df1e3f4b30343040b00b4c53e8e..6113c13d161b676cb1b367035bcf3c0d3d4b0428 100644 (file)
@@ -165,9 +165,7 @@ ar-option = $(call try-run, $(AR) rc$(1) "$$TMP",$(1),$(2))
 # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj=
 # Usage:
 # $(Q)$(MAKE) $(build)=dir
-#build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
-# temporary
-build := -f $(srctree)/scripts/Makefile.build -C
+build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
 
 ###
 # Shorthand for $(Q)$(MAKE) -f scripts/Makefile.modbuiltin obj=
index 7789efab82ccbfb867cd83574abbbe3613fd6f6e..52a44ff377734bf6d06c13ee412d87c5570e85e0 100644 (file)
@@ -2,17 +2,28 @@
 .PHONY: all
 all:
 
+ifeq ($(CONFIG_TPL_BUILD),y)
+  src := $(patsubst tpl/%,%,$(obj))
+else
+  ifeq ($(CONFIG_SPL_BUILD),y)
+    src := $(patsubst spl/%,%,$(obj))
+  else
+    src := $(obj)
+  endif
+endif
+
 include $(srctree)/scripts/Kbuild.include
-include $(TOPDIR)/config.mk
+include $(srctree)/config.mk
 
 # variable LIB is used in examples/standalone/Makefile
-__LIB := $(obj)built-in.o
-LIBGCC = $(obj)libgcc.o
+__LIB := $(obj)/built-in.o
+LIBGCC = $(obj)/libgcc.o
 SRCS :=
 subdir-y :=
 obj-dirs :=
 
-include Makefile
+kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
+include $(kbuild-dir)/Makefile
 
 # Do not include host rules unless needed
 ifneq ($(hostprogs-y)$(hostprogs-m),)
@@ -28,31 +39,37 @@ lib-y := $(sort $(lib-y))
 subdir-y       += $(patsubst %/,%,$(filter %/, $(obj-y)))
 obj-y          := $(patsubst %/, %/built-in.o, $(obj-y))
 subdir-obj-y   := $(filter %/built-in.o, $(obj-y))
-subdir-obj-y   := $(addprefix $(obj),$(subdir-obj-y))
+subdir-obj-y   := $(addprefix $(obj)/,$(subdir-obj-y))
+
+SRCS   += $(obj-y:.o=.c) $(obj-y:.o=.S) $(lib-y:.o=.c) \
+       $(lib-y:.o=.S) $(extra-y:.o=.c) $(extra-y:.o=.S)
 
-SRCS   += $(wildcard $(obj-y:.o=.c) $(obj-y:.o=.S) $(lib-y:.o=.c) \
-       $(lib-y:.o=.S) $(extra-y:.o=.c) $(extra-y:.o=.S))
-OBJS   := $(addprefix $(obj),$(obj-y))
+SRCS := $(addprefix $(if $(KBUILD_SRC),$(srctree)/$(src)/,$(src)/),$(SRCS))
+SRCS := $(wildcard $(SRCS))
+
+OBJS   := $(addprefix $(obj)/,$(obj-y))
 
 # $(obj-dirs) is a list of directories that contain object files
 
 obj-dirs += $(dir $(OBJS))
 
+_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
+
 # Create directories for object files if directory does not exist
 # Needed when obj-y := dir/file.o syntax is used
 _dummy := $(foreach d,$(obj-dirs), $(shell [ -d $(d) ] || mkdir -p $(d)))
 
-LGOBJS := $(addprefix $(obj),$(sort $(lib-y)))
+LGOBJS := $(addprefix $(obj)/,$(sort $(lib-y)))
 
-all: $(__LIB) $(addprefix $(obj),$(extra-y) $(always)) $(subdir-y)
+all: $(__LIB) $(addprefix $(obj)/,$(extra-y) $(always)) $(subdir-y)
 
-$(__LIB):      $(obj).depend $(OBJS)
+$(__LIB):      $(obj)/.depend $(OBJS)
        $(call cmd_link_o_target, $(OBJS))
 
 ifneq ($(strip $(lib-y)),)
 all: $(LIBGCC)
 
-$(LIBGCC): $(obj).depend $(LGOBJS)
+$(LIBGCC): $(obj)/.depend $(LGOBJS)
        $(call cmd_link_o_target, $(LGOBJS))
 endif
 
@@ -63,7 +80,7 @@ endif
 
 ifneq ($(subdir-y),)
 $(subdir-y): FORCE
-       $(MAKE) -C $@ -f $(TOPDIR)/scripts/Makefile.build
+       $(MAKE) $(build)=$(obj)/$@
 endif
 
 #########################################################################
@@ -78,18 +95,18 @@ ALL_CFLAGS += $(EXTRA_CPPFLAGS)
 # See rules.mk
 EXTRA_CPPFLAGS_DEP = $(CPPFLAGS_$(BCURDIR)/$(addsuffix .o,$(basename $<))) \
                $(CPPFLAGS_$(BCURDIR))
-$(obj)%.s:     %.S
+$(obj)/%.s:    $(src)/%.S
        $(CPP) $(ALL_AFLAGS) -o $@ $<
-$(obj)%.o:     %.S
+$(obj)/%.o:    $(src)/%.S
        $(CC)  $(ALL_AFLAGS) -o $@ $< -c
-$(obj)%.o:     %.c
+$(obj)/%.o:    $(src)/%.c
 ifneq ($(CHECKSRC),0)
        $(CHECK) $(CHECKFLAGS) $(ALL_CFLAGS) $<
 endif
        $(CC)  $(ALL_CFLAGS) -o $@ $< -c
-$(obj)%.i:     %.c
+$(obj)/%.i:    $(src)/%.c
        $(CPP) $(ALL_CFLAGS) -o $@ $< -c
-$(obj)%.s:     %.c
+$(obj)/%.s:    $(src)/%.c
        $(CC)  $(ALL_CFLAGS) -o $@ $< -c -S
 
 # If the list of objects to link is empty, just create an empty built-in.o
@@ -99,11 +116,11 @@ cmd_link_o_target = $(if $(strip $1),\
 
 #########################################################################
 
-# defines $(obj).depend target
+# defines $(obj)/.depend target
 
 include $(TOPDIR)/rules.mk
 
-sinclude $(obj).depend
+sinclude $(obj)/.depend
 
 #########################################################################
 
index 4b57846f4a3ed1d0ad5275be36defead7f6a5c36..53fe9300be7641c497f42836bd9d7c46203d7ea1 100644 (file)
@@ -21,11 +21,11 @@ host-objdirs += $(foreach f,$(host-cmulti),                  \
 
 host-objdirs := $(strip $(sort $(filter-out ./,$(host-objdirs))))
 
-__hostprogs     := $(addprefix $(obj),$(__hostprogs))
-host-csingle   := $(addprefix $(obj),$(host-csingle))
-host-cmulti    := $(addprefix $(obj),$(host-cmulti))
-host-cobjs     := $(addprefix $(obj),$(host-cobjs))
-host-objdirs    := $(addprefix $(obj),$(host-objdirs))
+__hostprogs     := $(addprefix $(obj)/,$(__hostprogs))
+host-csingle   := $(addprefix $(obj)/,$(host-csingle))
+host-cmulti    := $(addprefix $(obj)/,$(host-cmulti))
+host-cobjs     := $(addprefix $(obj)/,$(host-cobjs))
+host-objdirs    := $(addprefix $(obj)/,$(host-objdirs))
 
 obj-dirs += $(host-objdirs)
 
@@ -49,13 +49,13 @@ hostc_flags    = $(__hostc_flags)
 #####
 # Compile programs on the host
 
-$(host-csingle): $(obj)%: %.c
+$(host-csingle): $(obj)/%: $(src)/%.c
        $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(HOSTLDFLAGS) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $<
 
-$(host-cmulti): $(obj)%: $(host-cobjs)
-       $(HOSTCC) $(HOSTLDFLAGS) -o $@ $(addprefix $(obj),$($(@F)-objs)) $(HOSTLOADLIBES_$(@F))
+$(host-cmulti): $(obj)/%: $(host-cobjs)
+       $(HOSTCC) $(HOSTLDFLAGS) -o $@ $(addprefix $(obj)/,$($(@F)-objs)) $(HOSTLOADLIBES_$(@F))
 
-$(host-cobjs): $(obj)%.o: %.c
+$(host-cobjs): $(obj)/%.o: $(src)/%.c
        $(HOSTCC) $(HOSTCFLAGS) $(HOST_EXTRACFLAGS) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c
 
 targets += $(host-csingle)  $(host-cmulti) $(host-cobjs)
index 8d0e6c3b313f88f46dcb8289756131b062b87718..18606ac34c757453f8344b303ca36b097df484cb 100644 (file)
 # Based on top-level Makefile.
 #
 
+src := $(obj)
+
+# Create output directory if not already present
+_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
+
 include $(srctree)/scripts/Kbuild.include
 
 CONFIG_SPL_BUILD := y
@@ -37,14 +42,6 @@ endif
 
 include $(TOPDIR)/config.mk
 
-# We want the final binaries in this directory
-ifeq ($(CONFIG_TPL_BUILD),y)
-obj := $(OBJTREE)/tpl/
-SPLTREE := $(TPLTREE)
-else
-obj := $(OBJTREE)/spl/
-endif
-
 HAVE_VENDOR_COMMON_LIB = $(if $(wildcard $(SRCTREE)/board/$(VENDOR)/common/Makefile),y,n)
 
 ifdef  CONFIG_SPL_START_S_PATH
@@ -113,11 +110,13 @@ PLATFORM_LIBGCC = $(SPLTREE)/arch/$(ARCH)/lib/libgcc.o
 PLATFORM_LIBS := $(filter-out %/libgcc.o, $(filter-out -lgcc, $(PLATFORM_LIBS))) $(PLATFORM_LIBGCC)
 endif
 
-START := $(addprefix $(SPLTREE)/,$(head-y))
-LIBS := $(addprefix $(SPLTREE)/,$(sort $(LIBS-y)))
+LIBS-y := $(sort $(LIBS-y))
+
+__START := $(head-y)
+__LIBS := $(LIBS-y)
 
-__START := $(subst $(obj),,$(START))
-__LIBS := $(subst $(obj),,$(LIBS))
+START := $(addprefix $(obj)/,$(head-y))
+LIBS := $(addprefix $(obj)/,$(LIBS-y))
 
 # Linker Script
 ifdef CONFIG_SPL_LDSCRIPT
@@ -148,21 +147,21 @@ LDPPFLAGS += \
        $(shell $(LD) --version | \
          sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
 
-$(OBJTREE)/MLO:        $(obj)u-boot-spl.bin
+$(OBJTREE)/MLO:        $(obj)/u-boot-spl.bin
        $(OBJTREE)/tools/mkimage -T omapimage \
                -a $(CONFIG_SPL_TEXT_BASE) -d $< $@
 
-$(OBJTREE)/MLO.byteswap: $(obj)u-boot-spl.bin
+$(OBJTREE)/MLO.byteswap: $(obj)/u-boot-spl.bin
        $(OBJTREE)/tools/mkimage -T omapimage -n byteswap \
                -a $(CONFIG_SPL_TEXT_BASE) -d $< $@
 
-$(OBJTREE)/SPL : $(obj)u-boot-spl.bin depend
-               $(MAKE) $(build) $(SRCTREE)/arch/arm/imx-common $@
+$(objtree)/SPL : $(obj)/u-boot-spl.bin depend
+               $(MAKE) $(build)=spl/arch/arm/imx-common $@
 
-ALL-y  += $(obj)$(SPL_BIN).bin
+ALL-y  += $(obj)/$(SPL_BIN).bin
 
 ifdef CONFIG_SAMSUNG
-ALL-y  += $(obj)$(BOARD)-spl.bin
+ALL-y  += $(obj)/$(BOARD)-spl.bin
 endif
 
 all:   $(ALL-y)
@@ -173,16 +172,16 @@ VAR_SIZE_PARAM = --vs
 else
 VAR_SIZE_PARAM =
 endif
-$(obj)$(BOARD)-spl.bin: $(obj)u-boot-spl.bin
+$(obj)/$(BOARD)-spl.bin: $(obj)/u-boot-spl.bin
        $(if $(wildcard $(OBJTREE)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl),\
        $(OBJTREE)/spl/board/samsung/$(BOARD)/tools/mk$(BOARD)spl,\
        $(OBJTREE)/tools/mkexynosspl) $(VAR_SIZE_PARAM) $< $@
 endif
 
-$(obj)$(SPL_BIN).bin:  $(obj)$(SPL_BIN)
+$(obj)/$(SPL_BIN).bin: $(obj)/$(SPL_BIN)
        $(OBJCOPY) $(OBJCFLAGS) $(SPL_OBJCFLAGS) -O binary $< $@
 
-LDFLAGS_$(SPL_BIN) += -T $(obj)u-boot-spl.lds $(LDFLAGS_FINAL)
+LDFLAGS_$(SPL_BIN) += -T u-boot-spl.lds $(LDFLAGS_FINAL)
 ifneq ($(CONFIG_SPL_TEXT_BASE),)
 LDFLAGS_$(SPL_BIN) += -Ttext $(CONFIG_SPL_TEXT_BASE)
 endif
@@ -192,19 +191,19 @@ GEN_UBOOT = \
                --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
                -Map $(SPL_BIN).map -o $(SPL_BIN)
 
-$(obj)$(SPL_BIN):      depend $(START) $(LIBS) $(obj)u-boot-spl.lds
+$(obj)/$(SPL_BIN):     depend $(START) $(LIBS) $(obj)/u-boot-spl.lds
        $(GEN_UBOOT)
 
 $(START):
        @:
 
 $(LIBS):       depend
-       $(MAKE) $(build) $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
+       $(MAKE) $(build)=$(patsubst %/,%,$(dir $@))
 
-$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
+$(obj)/u-boot-spl.lds: $(LDSCRIPT) depend
        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
 
-depend:        $(obj).depend
+depend:        $(obj)/.depend
 .PHONY: depend
 
 # defines $(obj).depend target
index 21341b7aff5faffff9f7663c62297cc169f7bc7b..9b19dcb2645218a4a9b77b5cbeb47980f43c8ce7 100644 (file)
@@ -142,8 +142,8 @@ HOSTCFLAGS_sha1.o := -pedantic
 always := $(hostprogs-y)
 
 # Generated LCD/video logo
-LOGO_H = $(OBJTREE)/include/bmp_logo.h
-LOGO_DATA_H = $(OBJTREE)/include/bmp_logo_data.h
+LOGO_H = $(objtree)/include/bmp_logo.h
+LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
 LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
 LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H)
 LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
@@ -151,14 +151,14 @@ LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H)
 
 # Generic logo
 ifeq ($(LOGO_BMP),)
-LOGO_BMP= logos/denx.bmp
+LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp
 
 # Use board logo and fallback to vendor
 ifneq ($(wildcard logos/$(BOARD).bmp),)
-LOGO_BMP= logos/$(BOARD).bmp
+LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
 else
 ifneq ($(wildcard logos/$(VENDOR).bmp),)
-LOGO_BMP= logos/$(VENDOR).bmp
+LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
 endif
 endif
 
@@ -187,8 +187,8 @@ all:        $(LOGO-y)
 
 subdir-y := kernel-doc
 
-$(LOGO_H):     $(obj)bmp_logo $(LOGO_BMP)
-       $(obj)./bmp_logo --gen-info $(LOGO_BMP) > $@
+$(LOGO_H):     $(obj)/bmp_logo $(LOGO_BMP)
+       $(obj)/bmp_logo --gen-info $(LOGO_BMP) > $@
 
-$(LOGO_DATA_H):        $(obj)bmp_logo $(LOGO_BMP)
-       $(obj)./bmp_logo --gen-data $(LOGO_BMP) > $@
+$(LOGO_DATA_H):        $(obj)/bmp_logo $(LOGO_BMP)
+       $(obj)/bmp_logo --gen-data $(LOGO_BMP) > $@