uboot/spl/Makefile
<<
>>
Prefs
   1#
   2# (C) Copyright 2000-2011
   3# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
   4#
   5# (C) Copyright 2011
   6# Daniel Schwierzeck, daniel.schwierzeck@googlemail.com.
   7#
   8# (C) Copyright 2011
   9# Texas Instruments Incorporated - http://www.ti.com/
  10# Aneesh V <aneesh@ti.com>
  11#
  12# This file is released under the terms of GPL v2 and any later version.
  13# See the file COPYING in the root directory of the source tree for details.
  14#
  15# Based on top-level Makefile.
  16#
  17
  18CONFIG_SPL_BUILD := y
  19export CONFIG_SPL_BUILD
  20
  21include $(TOPDIR)/config.mk
  22
  23# We want the final binaries in this directory
  24obj := $(OBJTREE)/spl/
  25
  26HAVE_VENDOR_COMMON_LIB := $(shell [ -f $(SRCTREE)/board/$(VENDOR)/common/Makefile ] \
  27                        && echo y || echo n)
  28
  29ifdef   CONFIG_SPL_START_S_PATH
  30START_PATH := $(subst ",,$(CONFIG_SPL_START_S_PATH))
  31else
  32START_PATH := $(CPUDIR)
  33endif
  34
  35START := $(START_PATH)/start.o
  36
  37LIBS-y += arch/$(ARCH)/lib/lib$(ARCH).o
  38LIBS-y += $(CPUDIR)/lib$(CPU).o
  39ifdef SOC
  40LIBS-y += $(CPUDIR)/$(SOC)/lib$(SOC).o
  41endif
  42LIBS-y += board/$(BOARDDIR)/lib$(BOARD).o
  43LIBS-$(HAVE_VENDOR_COMMON_LIB) += board/$(VENDOR)/common/lib$(VENDOR).o
  44
  45LIBS-$(CONFIG_SPL_LIBCOMMON_SUPPORT) += common/libcommon.o
  46LIBS-$(CONFIG_SPL_LIBDISK_SUPPORT) += disk/libdisk.o
  47LIBS-$(CONFIG_SPL_I2C_SUPPORT) += drivers/i2c/libi2c.o
  48LIBS-$(CONFIG_SPL_GPIO_SUPPORT) += drivers/gpio/libgpio.o
  49LIBS-$(CONFIG_SPL_MMC_SUPPORT) += drivers/mmc/libmmc.o
  50LIBS-$(CONFIG_SPL_SERIAL_SUPPORT) += drivers/serial/libserial.o
  51LIBS-$(CONFIG_SPL_SPI_FLASH_SUPPORT) += drivers/mtd/spi/libspi_flash.o
  52LIBS-$(CONFIG_SPL_SPI_SUPPORT) += drivers/spi/libspi.o
  53LIBS-$(CONFIG_SPL_FAT_SUPPORT) += fs/fat/libfat.o
  54LIBS-$(CONFIG_SPL_LIBGENERIC_SUPPORT) += lib/libgeneric.o
  55LIBS-$(CONFIG_SPL_POWER_SUPPORT) += drivers/power/libpower.o
  56LIBS-$(CONFIG_SPL_NAND_SUPPORT) += drivers/mtd/nand/libnand.o
  57LIBS-$(CONFIG_SPL_ONENAND_SUPPORT) += drivers/mtd/onenand/libonenand.o
  58LIBS-$(CONFIG_SPL_DMA_SUPPORT) += drivers/dma/libdma.o
  59LIBS-$(CONFIG_SPL_POST_MEM_SUPPORT) += post/drivers/memory.o
  60
  61ifneq ($(CONFIG_AM33XX)$(CONFIG_OMAP34XX)$(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX),)
  62LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
  63endif
  64
  65START := $(addprefix $(SPLTREE)/,$(START))
  66LIBS := $(addprefix $(SPLTREE)/,$(sort $(LIBS-y)))
  67
  68__START := $(subst $(obj),,$(START))
  69__LIBS := $(subst $(obj),,$(LIBS))
  70
  71# Linker Script
  72ifdef CONFIG_SPL_LDSCRIPT
  73# need to strip off double quotes
  74LDSCRIPT := $(addprefix $(SRCTREE)/,$(subst ",,$(CONFIG_SPL_LDSCRIPT)))
  75endif
  76
  77ifeq ($(wildcard $(LDSCRIPT)),)
  78        LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-spl.lds
  79endif
  80ifeq ($(wildcard $(LDSCRIPT)),)
  81        LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-spl.lds
  82endif
  83ifeq ($(wildcard $(LDSCRIPT)),)
  84        LDSCRIPT := $(TOPDIR)/arch/$(ARCH)/cpu/u-boot.lds
  85endif
  86ifeq ($(wildcard $(LDSCRIPT)),)
  87$(error could not find linker script)
  88endif
  89
  90# Special flags for CPP when processing the linker script.
  91# Pass the version down so we can handle backwards compatibility
  92# on the fly.
  93LDPPFLAGS += \
  94        -include $(TOPDIR)/include/u-boot/u-boot.lds.h \
  95        -include $(OBJTREE)/include/config.h \
  96        -DCPUDIR=$(CPUDIR) \
  97        $(shell $(LD) --version | \
  98          sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
  99
 100ifdef CONFIG_OMAP
 101$(OBJTREE)/MLO: $(obj)u-boot-spl.bin
 102        $(OBJTREE)/tools/mkimage -T omapimage \
 103                -a $(CONFIG_SPL_TEXT_BASE) -d $< $@
 104endif
 105ifdef CONFIG_AM33XX
 106$(OBJTREE)/MLO: $(obj)u-boot-spl.bin
 107        $(OBJTREE)/tools/mkimage -T omapimage \
 108                -a $(CONFIG_SPL_TEXT_BASE) -d $< $@
 109endif
 110
 111ALL-y   += $(obj)u-boot-spl.bin
 112
 113ifdef CONFIG_SAMSUNG
 114ALL-y   += $(obj)$(BOARD)-spl.bin
 115endif
 116
 117all:    $(ALL-y)
 118
 119ifdef CONFIG_SAMSUNG
 120$(obj)$(BOARD)-spl.bin: $(obj)u-boot-spl.bin
 121        $(OBJTREE)/tools/mk$(BOARD)spl \
 122                $(obj)u-boot-spl.bin $(obj)$(BOARD)-spl.bin
 123endif
 124
 125$(obj)u-boot-spl.bin:   $(obj)u-boot-spl
 126        $(OBJCOPY) $(OBJCFLAGS) -O binary $< $@
 127
 128GEN_UBOOT = \
 129        UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) | \
 130        sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
 131        cd $(obj) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__START) \
 132                --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 133                -Map u-boot-spl.map -o u-boot-spl
 134
 135$(obj)u-boot-spl:       depend $(START) $(LIBS) $(obj)u-boot-spl.lds
 136        $(GEN_UBOOT)
 137
 138$(START):       depend
 139        $(MAKE) -C $(SRCTREE)/$(START_PATH) $@
 140
 141$(LIBS):        depend
 142        $(MAKE) -C $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
 143
 144$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
 145        $(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - < $< > $@
 146
 147depend: $(obj).depend
 148.PHONY: depend
 149
 150# defines $(obj).depend target
 151include $(SRCTREE)/rules.mk
 152