|
|
|
#
|
|
|
|
# U-boot - Makefile
|
|
|
|
#
|
|
|
|
# Copyright (c) 2005-2008 Analog Device Inc.
|
|
|
|
#
|
|
|
|
# (C) Copyright 2000-2006
|
|
|
|
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
|
|
#
|
|
|
|
# Licensed under the GPL-2 or later.
|
|
|
|
#
|
|
|
|
|
|
|
|
extra-y := init.elf
|
|
|
|
extra-y += initcode.o
|
|
|
|
extra-y += start.o
|
|
|
|
obj-y := interrupt.o cache.o
|
|
|
|
obj-y += cpu.o
|
|
|
|
obj-y += gpio.o
|
|
|
|
obj-y += interrupts.o
|
|
|
|
obj-$(CONFIG_JTAG_CONSOLE) += jtag-console.o
|
|
|
|
obj-y += os_log.o
|
|
|
|
obj-y += reset.o
|
|
|
|
obj-y += traps.o
|
|
|
|
|
|
|
|
extra-y += check_initcode
|
|
|
|
|
|
|
|
# make sure our initcode (which goes into LDR) does not
|
|
|
|
# have relocs or external references
|
kbuild: use Linux Kernel build scripts
Now we are ready to switch over to real Kbuild.
This commit disables temporary scripts:
scripts/{Makefile.build.tmp, Makefile.host.tmp}
and enables real Kbuild scripts:
scripts/{Makefile.build,Makefile.host,Makefile.lib}.
This switch is triggered by the line in scripts/Kbuild.include
-build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
+build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
We need to adjust some build scripts for U-Boot.
But smaller amount of modification is preferable.
Additionally, we need to fix compiler flags which are
locally added or removed.
In Kbuild, it is not allowed to change CFLAGS locally.
Instead, ccflags-y, asflags-y, cppflags-y,
CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
are prepared for that purpose.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Tested-by: Gerhard Sittig <gsi@denx.de>
11 years ago
|
|
|
CFLAGS_REMOVE_initcode.o := -ffunction-sections -fdata-sections
|
|
|
|
READINIT = env LC_ALL=C $(CROSS_COMPILE)readelf -s $<
|
|
|
|
$(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 ; \
|
|
|
|
exit 1 ; \
|
|
|
|
fi
|
|
|
|
endif
|
|
|
|
|
kbuild: use Linux Kernel build scripts
Now we are ready to switch over to real Kbuild.
This commit disables temporary scripts:
scripts/{Makefile.build.tmp, Makefile.host.tmp}
and enables real Kbuild scripts:
scripts/{Makefile.build,Makefile.host,Makefile.lib}.
This switch is triggered by the line in scripts/Kbuild.include
-build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build.tmp obj
+build := -f $(if $(KBUILD_SRC),$(srctree)/)scripts/Makefile.build obj
We need to adjust some build scripts for U-Boot.
But smaller amount of modification is preferable.
Additionally, we need to fix compiler flags which are
locally added or removed.
In Kbuild, it is not allowed to change CFLAGS locally.
Instead, ccflags-y, asflags-y, cppflags-y,
CFLAGS_$(basetarget).o, CFLAGS_REMOVE_$(basetarget).o
are prepared for that purpose.
Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
Tested-by: Gerhard Sittig <gsi@denx.de>
11 years ago
|
|
|
CPPFLAGS_init.lds := -ansi
|
|
|
|
$(obj)/init.elf: $(obj)/init.lds $(obj)/init.o $(obj)/initcode.o
|
|
|
|
$(LD) $(LDFLAGS) -T $^ -o $@
|