]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - Makefile
GCC4.6: Squash warnings in diu.c
[karo-tx-uboot.git] / Makefile
index 1a9a4dbbf05eb011a2ca2295abcefd894300696e..684cdb6aafd7770c4f1877dc27bcf8ed1e96184d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -30,8 +30,8 @@ U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 else
 U_BOOT_VERSION = $(VERSION).$(PATCHLEVEL)$(EXTRAVERSION)
 endif
-TIMESTAMP_FILE = $(obj)include/timestamp_autogenerated.h
-VERSION_FILE = $(obj)include/version_autogenerated.h
+TIMESTAMP_FILE = $(obj)include/generated/timestamp_autogenerated.h
+VERSION_FILE = $(obj)include/generated/version_autogenerated.h
 
 HOSTARCH := $(shell uname -m | \
        sed -e s/i.86/x86/ \
@@ -137,9 +137,14 @@ unexport CDPATH
 
 # The "tools" are needed early, so put this first
 # Don't include stuff already done in $(LIBS)
-SUBDIRS        = tools \
-         examples/standalone \
-         examples/api
+# The "examples" conditionally depend on U-Boot (say, when USE_PRIVATE_LIBGCC
+# is "yes"), so compile examples after U-Boot is compiled.
+SUBDIR_TOOLS = tools
+SUBDIR_EXAMPLES = examples/standalone examples/api
+SUBDIRS = $(SUBDIR_TOOLS)
+ifndef CONFIG_SANDBOX
+SUBDIRS += $(SUBDIR_EXAMPLES)
+endif
 
 .PHONY : $(SUBDIRS) $(VERSION_FILE) $(TIMESTAMP_FILE)
 
@@ -224,6 +229,9 @@ endif
 ifeq ($(CPU),ixp)
 LIBS += arch/arm/cpu/ixp/npe/libnpe.o
 endif
+ifeq ($(CONFIG_OF_EMBED),y)
+LIBS += dts/libdts.o
+endif
 LIBS += arch/$(ARCH)/lib/lib$(ARCH).o
 LIBS += fs/cramfs/libcramfs.o fs/fat/libfat.o fs/fdos/libfdos.o fs/jffs2/libjffs2.o \
        fs/reiserfs/libreiserfs.o fs/ext2/libext2fs.o fs/yaffs2/libyaffs2.o \
@@ -351,8 +359,16 @@ ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
 ONENAND_BIN ?= $(obj)onenand_ipl/onenand-ipl-2k.bin
 ALL-$(CONFIG_MMC_U_BOOT) += $(obj)mmc_spl/u-boot-mmc-spl.bin
 ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
+ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
+
+all:           $(ALL-y) $(SUBDIR_EXAMPLES)
 
-all:           $(ALL-y)
+$(obj)u-boot.dtb:      $(obj)u-boot
+               $(MAKE) -C dts binary
+               mv $(obj)dts/dt.dtb $@
+
+$(obj)u-boot-dtb.bin:  $(obj)u-boot.bin $(obj)u-boot.dtb
+               cat $^ >$@
 
 $(obj)u-boot.hex:      $(obj)u-boot
                $(OBJCOPY) ${OBJCFLAGS} -O ihex $< $@
@@ -400,14 +416,22 @@ $(obj)u-boot.ubl:       $(obj)u-boot-nand.bin
                $(obj)tools/mkimage -n $(UBL_CONFIG) -T ublimage \
                -e $(CONFIG_SYS_TEXT_BASE) -d $< $@
 
+ifeq ($(CONFIG_SANDBOX),y)
+GEN_UBOOT = \
+               cd $(LNDIR) && $(CC) $(SYMS) -T $(obj)u-boot.lds \
+                       -Wl,--start-group $(__LIBS) -Wl,--end-group \
+                       $(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map -o u-boot
+else
 GEN_UBOOT = \
                UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
                sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
                cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
                        --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
                        -Map u-boot.map -o u-boot
+endif
+
 $(obj)u-boot:  depend \
-               $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
+               $(SUBDIR_TOOLS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) $(obj)u-boot.lds
                $(GEN_UBOOT)
 ifeq ($(CONFIG_KALLSYMS),y)
                smap=`$(call SYSTEM_MAP,u-boot) | \
@@ -420,7 +444,7 @@ endif
 $(OBJS):       depend
                $(MAKE) -C $(CPUDIR) $(if $(REMOTE_BUILD),$@,$(notdir $@))
 
-$(LIBS):       depend $(SUBDIRS)
+$(LIBS):       depend $(SUBDIR_TOOLS)
                $(MAKE) -C $(dir $(subst $(obj),,$@))
 
 $(LIBBOARD):   depend $(LIBS)
@@ -429,6 +453,8 @@ $(LIBBOARD):        depend $(LIBS)
 $(SUBDIRS):    depend
                $(MAKE) -C $@ all
 
+$(SUBDIR_EXAMPLES): $(obj)u-boot
+
 $(LDSCRIPT):   depend
                $(MAKE) -C $(dir $@) $(notdir $@)
 
@@ -503,7 +529,7 @@ $(obj)include/autoconf.mk.dep: $(obj)include/config.h include/common.h
        @$(XECHO) Generating $@ ; \
        set -e ; \
        : Generate the dependancies ; \
-       $(CC) -x c -DDO_DEPS_ONLY -M $(HOSTCFLAGS) $(CPPFLAGS) \
+       $(CC) -x c -DDO_DEPS_ONLY -M $(CFLAGS) $(CPPFLAGS) \
                -MQ $(obj)include/autoconf.mk include/common.h > $@
 
 $(obj)include/autoconf.mk: $(obj)include/config.h
@@ -570,8 +596,9 @@ $(VERSION_FILE):
 
 $(TIMESTAMP_FILE):
                @mkdir -p $(dir $(TIMESTAMP_FILE))
-               @LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > $@
-               @LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> $@
+               @LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > $@.tmp
+               @LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> $@.tmp
+               @cmp -s $@ $@.tmp && rm -f $@.tmp || mv -f $@.tmp $@
 
 easylogo env gdb:
        $(MAKE) -C tools/$@ all MTD_VERSION=${MTD_VERSION}
@@ -610,14 +637,11 @@ ucname    = $(shell echo $(1) | sed -e 's/\(.*\)_config/\U\1/')
 #########################################################################
 ## Coldfire
 #########################################################################
-
-astro_mcf5373l_config \
-astro_mcf5373l_RAM_config :    unconfig
-       @$(MKCONFIG) -n $@ -t $@ astro_mcf5373l m68k mcf532x mcf5373l astro
-
 M52277EVB_config \
 M52277EVB_spansion_config \
 M52277EVB_stmicro_config :     unconfig
+       @mkdir -p $(obj)include
+       @mkdir -p $(obj)board/freescale/m52277evb
        @case "$@" in \
        M52277EVB_config)               FLASH=SPANSION;; \
        M52277EVB_spansion_config)      FLASH=SPANSION;; \
@@ -626,19 +650,19 @@ M52277EVB_stmicro_config :        unconfig
        if [ "$${FLASH}" = "SPANSION" ] ; then \
                echo "#define CONFIG_SYS_SPANSION_BOOT" >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m52277evb/config.tmp ; \
-               cp $(obj)board/freescale/m52277evb/u-boot.spa $(obj)board/freescale/m52277evb/u-boot.lds ; \
        fi; \
        if [ "$${FLASH}" = "STMICRO" ] ; then \
                echo "#define CONFIG_CF_SBF"    >> $(obj)include/config.h ; \
                echo "#define CONFIG_SYS_STMICRO_BOOT"  >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0x43E00000" > $(obj)board/freescale/m52277evb/config.tmp ; \
-               cp $(obj)board/freescale/m52277evb/u-boot.stm $(obj)board/freescale/m52277evb/u-boot.lds ; \
        fi
        @$(MKCONFIG) -n $@ -a M52277EVB m68k mcf5227x m52277evb freescale
 
 M5235EVB_config \
 M5235EVB_Flash16_config \
 M5235EVB_Flash32_config:       unconfig
+       @mkdir -p $(obj)include
+       @mkdir -p $(obj)board/freescale/m5235evb
        @case "$@" in \
        M5235EVB_config)                FLASH=16;; \
        M5235EVB_Flash16_config)        FLASH=16;; \
@@ -647,63 +671,36 @@ M5235EVB_Flash32_config:  unconfig
        if [ "$${FLASH}" != "16" ] ; then \
                echo "#define NORFLASH_PS32BIT  1" >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0xFFC00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
-               cp $(obj)board/freescale/m5235evb/u-boot.32 $(obj)board/freescale/m5235evb/u-boot.lds ; \
        else \
                echo "CONFIG_SYS_TEXT_BASE = 0xFFE00000" > $(obj)board/freescale/m5235evb/config.tmp ; \
-               cp $(obj)board/freescale/m5235evb/u-boot.16 $(obj)board/freescale/m5235evb/u-boot.lds ; \
        fi
        @$(MKCONFIG) -n $@ -a M5235EVB m68k mcf523x m5235evb freescale
 
-cobra5272_config :             unconfig
-       @$(MKCONFIG) $@ m68k mcf52x2 cobra5272
-
 EB+MCF-EV123_config :          unconfig
-       @mkdir -p $(obj)include
        @mkdir -p $(obj)board/BuS/EB+MCF-EV123
        @echo "CONFIG_SYS_TEXT_BASE = 0xFFE00000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
        @$(MKCONFIG) -n $@ EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
 
 EB+MCF-EV123_internal_config : unconfig
-       @mkdir -p $(obj)include
        @mkdir -p $(obj)board/BuS/EB+MCF-EV123
        @echo "CONFIG_SYS_TEXT_BASE = 0xF0000000"|tee $(obj)board/BuS/EB+MCF-EV123/textbase.mk
        @$(MKCONFIG) -n $@ EB+MCF-EV123 m68k mcf52x2 EB+MCF-EV123 BuS
 
-M5329AFEE_config \
-M5329BFEE_config :     unconfig
-       @case "$@" in \
-       M5329AFEE_config)       NAND=0;; \
-       M5329BFEE_config)       NAND=16;; \
-       esac; \
-       if [ "$${NAND}" != "0" ] ; then \
-               echo "#define NANDFLASH_SIZE    $${NAND}" > $(obj)include/config.h ; \
-       fi
-       @$(MKCONFIG) -n $@ -a M5329EVB m68k mcf532x m5329evb freescale
-
-M5373EVB_config :      unconfig
-       @case "$@" in \
-       M5373EVB_config)        NAND=16;; \
-       esac; \
-       if [ "$${NAND}" != "0" ] ; then \
-               echo "#define NANDFLASH_SIZE    $${NAND}" > $(obj)include/config.h ; \
-       fi
-       @$(MKCONFIG) -a M5373EVB m68k mcf532x m5373evb freescale
-
 M54451EVB_config \
 M54451EVB_stmicro_config :     unconfig
+       @mkdir -p $(obj)include
+       @mkdir -p $(obj)board/freescale/m54451evb
        @case "$@" in \
        M54451EVB_config)               FLASH=NOR;; \
        M54451EVB_stmicro_config)       FLASH=STMICRO;; \
        esac; \
        if [ "$${FLASH}" = "NOR" ] ; then \
                echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54451evb/config.tmp ; \
-               cp $(obj)board/freescale/m54451evb/u-boot.spa $(obj)board/freescale/m54451evb/u-boot.lds ; \
        fi; \
        if [ "$${FLASH}" = "STMICRO" ] ; then \
                echo "#define CONFIG_CF_SBF"    >> $(obj)include/config.h ; \
                echo "#define CONFIG_SYS_STMICRO_BOOT"  >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0x47E00000" > $(obj)board/freescale/m54451evb/config.tmp ; \
-               cp $(obj)board/freescale/m54451evb/u-boot.stm $(obj)board/freescale/m54451evb/u-boot.lds ; \
        fi; \
        echo "#define CONFIG_SYS_INPUT_CLKSRC 24000000" >> $(obj)include/config.h ;
        @$(MKCONFIG) -n $@ -a M54451EVB m68k mcf5445x m54451evb freescale
@@ -716,6 +713,8 @@ M54455EVB_a66_config \
 M54455EVB_i33_config \
 M54455EVB_i66_config \
 M54455EVB_stm33_config :       unconfig
+       @mkdir -p $(obj)include
+       @mkdir -p $(obj)board/freescale/m54455evb
        @case "$@" in \
        M54455EVB_config)               FLASH=ATMEL; FREQ=33333333;; \
        M54455EVB_atmel_config)         FLASH=ATMEL; FREQ=33333333;; \
@@ -729,91 +728,20 @@ M54455EVB_stm33_config :  unconfig
        if [ "$${FLASH}" = "INTEL" ] ; then \
                echo "#define CONFIG_SYS_INTEL_BOOT" >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0x00000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
-               cp $(obj)board/freescale/m54455evb/u-boot.int $(obj)board/freescale/m54455evb/u-boot.lds ; \
        fi; \
        if [ "$${FLASH}" = "ATMEL" ] ; then \
                echo "#define CONFIG_SYS_ATMEL_BOOT"    >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0x04000000" > $(obj)board/freescale/m54455evb/config.tmp ; \
-               cp $(obj)board/freescale/m54455evb/u-boot.atm $(obj)board/freescale/m54455evb/u-boot.lds ; \
        fi; \
        if [ "$${FLASH}" = "STMICRO" ] ; then \
                echo "#define CONFIG_CF_SBF"    >> $(obj)include/config.h ; \
                echo "#define CONFIG_SYS_STMICRO_BOOT"  >> $(obj)include/config.h ; \
                echo "CONFIG_SYS_TEXT_BASE = 0x4FE00000" > $(obj)board/freescale/m54455evb/config.tmp ; \
-               cp $(obj)board/freescale/m54455evb/u-boot.stm $(obj)board/freescale/m54455evb/u-boot.lds ; \
        fi; \
        echo "#define CONFIG_SYS_INPUT_CLKSRC $${FREQ}" >> $(obj)include/config.h ; \
        $(XECHO) "... with $${FREQ}Hz input clock"
        @$(MKCONFIG) -n $@ -a M54455EVB m68k mcf5445x m54455evb freescale
 
-M5475AFE_config \
-M5475BFE_config \
-M5475CFE_config \
-M5475DFE_config \
-M5475EFE_config \
-M5475FFE_config \
-M5475GFE_config :      unconfig
-       @case "$@" in \
-       M5475AFE_config)        BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
-       M5475BFE_config)        BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \
-       M5475CFE_config)        BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \
-       M5475DFE_config)        BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \
-       M5475EFE_config)        BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \
-       M5475FFE_config)        BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \
-       M5475GFE_config)        BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
-       esac; \
-       echo "#define CONFIG_SYS_BUSCLK 133333333" > $(obj)include/config.h ; \
-       echo "#define CONFIG_SYS_BOOTSZ $${BOOT}" >> $(obj)include/config.h ; \
-       echo "#define CONFIG_SYS_DRAMSZ $${RAM}" >> $(obj)include/config.h ; \
-       if [ "$${RAM1}" != "0" ] ; then \
-               echo "#define CONFIG_SYS_DRAMSZ1        $${RAM1}" >> $(obj)include/config.h ; \
-       fi; \
-       if [ "$${CODE}" != "0" ] ; then \
-               echo "#define CONFIG_SYS_NOR1SZ $${CODE}" >> $(obj)include/config.h ; \
-       fi; \
-       if [ "$${VID}" == "1" ] ; then \
-               echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
-       fi; \
-       if [ "$${USB}" == "1" ] ; then \
-               echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
-       fi
-       @$(MKCONFIG) -n $@ -a M5475EVB m68k mcf547x_8x m547xevb freescale
-
-M5485AFE_config \
-M5485BFE_config \
-M5485CFE_config \
-M5485DFE_config \
-M5485EFE_config \
-M5485FFE_config \
-M5485GFE_config \
-M5485HFE_config :      unconfig
-       @case "$@" in \
-       M5485AFE_config)        BOOT=2;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
-       M5485BFE_config)        BOOT=2;CODE=16;VID=0;USB=0;RAM=64;RAM1=0;; \
-       M5485CFE_config)        BOOT=2;CODE=16;VID=1;USB=1;RAM=64;RAM1=0;; \
-       M5485DFE_config)        BOOT=2;CODE=0;VID=0;USB=1;RAM=64;RAM1=0;; \
-       M5485EFE_config)        BOOT=2;CODE=0;VID=1;USB=1;RAM=64;RAM1=0;; \
-       M5485FFE_config)        BOOT=2;CODE=32;VID=1;USB=1;RAM=64;RAM1=64;; \
-       M5485GFE_config)        BOOT=4;CODE=0;VID=0;USB=0;RAM=64;RAM1=0;; \
-       M5485HFE_config)        BOOT=2;CODE=16;VID=1;USB=0;RAM=64;RAM1=0;; \
-       esac; \
-       echo "#define CONFIG_SYS_BUSCLK 100000000" > $(obj)include/config.h ; \
-       echo "#define CONFIG_SYS_BOOTSZ $${BOOT}" >> $(obj)include/config.h ; \
-       echo "#define CONFIG_SYS_DRAMSZ $${RAM}" >> $(obj)include/config.h ; \
-       if [ "$${RAM1}" != "0" ] ; then \
-               echo "#define CONFIG_SYS_DRAMSZ1        $${RAM1}" >> $(obj)include/config.h ; \
-       fi; \
-       if [ "$${CODE}" != "0" ] ; then \
-               echo "#define CONFIG_SYS_NOR1SZ $${CODE}" >> $(obj)include/config.h ; \
-       fi; \
-       if [ "$${VID}" == "1" ] ; then \
-               echo "#define CONFIG_SYS_VIDEO" >> $(obj)include/config.h ; \
-       fi; \
-       if [ "$${USB}" == "1" ] ; then \
-               echo "#define CONFIG_SYS_USBCTRL" >> $(obj)include/config.h ; \
-       fi
-       @$(MKCONFIG) -n $@ -a M5485EVB m68k mcf547x_8x m548xevb freescale
-
 #========================================================================
 # ARM
 #========================================================================
@@ -944,6 +872,7 @@ clean:
        @rm -f $(ONENAND_BIN)
        @rm -f $(obj)onenand_ipl/u-boot.lds
        @rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
+       @rm -f $(obj)MLO
        @rm -f $(TIMESTAMP_FILE) $(VERSION_FILE)
        @find $(OBJTREE) -type f \
                \( -name 'core' -o -name '*.bak' -o -name '*~' \
@@ -951,7 +880,7 @@ clean:
                | xargs rm -f
 
 clobber:       clean
-       @find $(OBJTREE) -type f \( -name '*.depend' \
+       @find $(OBJTREE) -type f \( -name '*.depend*' \
                -o -name '*.srec' -o -name '*.bin' -o -name u-boot.img \) \
                -print0 \
                | xargs -0 rm -f
@@ -961,6 +890,7 @@ clobber:    clean
        @rm -f $(obj)u-boot.kwb
        @rm -f $(obj)u-boot.imx
        @rm -f $(obj)u-boot.ubl
+       @rm -f $(obj)u-boot.dtb
        @rm -f $(obj)tools/{env/crc32.c,inca-swap-bytes}
        @rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
        @rm -fr $(obj)include/asm/proc $(obj)include/asm/arch $(obj)include/asm
@@ -968,6 +898,7 @@ clobber:    clean
        @[ ! -d $(obj)nand_spl ] || find $(obj)nand_spl -name "*" -type l -print | xargs rm -f
        @[ ! -d $(obj)onenand_ipl ] || find $(obj)onenand_ipl -name "*" -type l -print | xargs rm -f
        @[ ! -d $(obj)mmc_spl ] || find $(obj)mmc_spl -name "*" -type l -print | xargs rm -f
+       @rm -f $(obj)dts/*.tmp
 
 mrproper \
 distclean:     clobber unconfig