20 Feb, 2014
40 commits
-
Signed-off-by: Tom Rini
-
In Kbuild, every makefile must have non-empty obj- or obj-y.
Otherwise, built-in.o will not be created and the link stage
will fail.Signed-off-by: Masahiro Yamada
-
There is a strange comment in fit_image_load().
This function can be used for loading Kernel Image, FDT
as well as ramdisk.Signed-off-by: Masahiro Yamada
Cc: Simon Glass
Acked-by: Simon Glass -
If the whole code is surrounded by #ifdef(CONFIG_ ) .. #endif,
it should be moved to Makefile.Signed-off-by: Masahiro Yamada
-
- When CONFIG_DISPLAY_CPUINFO is not enabled,
print_cpuinfo() should be defined as an empty function
in a header, include/common.h- Remove #ifdef CONFIG_DISPLAY_CPUINFO .. #endif
from caller, common/board_f.c and arch/arm/lib/board.c- Remove redundant prototypes in arch/arm/lib/board.c,
arch/arm/include/asm/arch-am33x/sys_proto.h and
board/nokia/rx51/rx51.h, keeping the one in include/common.h- Add #ifdef CONFIG_DISPLAY_CPUINFO to the func definition
where it is missingSigned-off-by: Masahiro Yamada
-
Signed-off-by: Masahiro Yamada
-
CONFIG_SYS_GBL_DATA_SIZE is not used any more.
The size of struct "global_data" is automatically calculated
by asm-offsets. (See lib/asm-offsets.c)GENERATED_GBL_DATA_SIZE should be used instead of
CONFIG_SYS_GBL_DATA_SIZE.Signed-off-by: Masahiro Yamada
-
It is convenient to have all device trees on the same SoC compiled.
It allows for later easy repackaging without the need to re-run
the make file.- Build device trees with the same SoC under arch/$(ARCH)/dts
- Copy the one specified by CONFIG_DEFAULT_DEVICE_TREE or
DEVICE_TREE=... to dts/dt.dtbSigned-off-by: Masahiro Yamada
-
Unlike Linux Kernel, U-Boot historically had *.dts files under
board/$(VENDOR)/dts/ and *.dtsi files under arch/$(ARCH)/dts/.I think arch/$(ARCH)/dts dicretory is a better location
to store both *.dts and *.dtsi files.For example, before this commit, board/xilinx/dts directory
had both Microblaze dts (microblaze-generic.dts) and
ARM dts (zynq-*.dts), which are totally unrelated.This commit moves *.dts to arch/$(ARCH)/dts/ directories,
allowing us to describe nicely mutiple DTBs generation in the next commit.Signed-off-by: Masahiro Yamada
-
Useful rules in scripts/Makefile.lib allows us to easily
generate a device tree blob and wrap it in assembly code.We do not need to parse a linker script to get output format and arch.
This commit deletes ./u-boot.dtb since it is a copy of dts/dt.dtb.
Signed-off-by: Masahiro Yamada
-
- Delete fs.xml from DOCBOOKS to fix an error.
Commit e3ff797c added fs.xml to DOCBOOKS
but missed to add doc/DocBook/fs.tmpl.
- Fix the location of include guard in include/linker_lists.h.Signed-off-by: Masahiro Yamada
Reported-by: Abraham Varricatt
Acked-by: Simon Glass -
Signed-off-by: Masahiro Yamada
Acked-by: Simon Glass -
tools/kernel-doc/docproc.c and tools/kernel-doc/kernel-doc are
files imported from Linux Kernel.They originally resided under scripts/ directory in Linux Kernel.
This commit moves them to the original location.
Signed-off-by: Masahiro Yamada
Acked-by: Simon Glass -
Commit bb02c536 stopped creaing a symbolic link include/asm.
Signed-off-by: Masahiro Yamada
-
fw_printenv is a program which mostly runs on the target Linux.
Before switching to Kbuild, we needed to set HOSTCC at the
command line like this:
make HOSTCC= envGoing forward we can cross compile it by specifying CROSS_COMPILE:
make CROSS_COMPILE= env
This looks more natural.Signed-off-by: Masahiro Yamada
Tested-by: Gerhard Sittig -
Without this workaround, you will see a lot of ".*.su" files
at the top directory after building with a compiler
which supports "-fstack-usage" option.Signed-off-by: Masahiro Yamada
-
We had switched to Kbuild, so we do not need to
delete sandburst board files at every build.U-Boot conventional build system did not check the
update of command line option, -DBUILDUSER.Kbuild can handle it nicely and re-builds object files
when command line options are changed.
(The file ".*.cmd" stores the information how the file
was generated at the previous build.)Signed-off-by: Masahiro Yamada
-
For out-of-tree build
- Check if the source tree is clean
- Create a Makefile in the output directorySigned-off-by: Masahiro Yamada
-
This commit fixes two problems:
[1] We could not do board configuration and "make all"
in one command line.For example, the following did not work as we expect:
$ make sandbox_config all
Configuring for sandbox board...
make: Nothing to be done for `all'.[2] mixed-target build did not work with -j option
For example, the following did not work:
$ make -j8 sandbox_config u-boot
Makefile:481: *** "System not configured - see README". Stop.
make: *** [u-boot] Error 2
make: *** Waiting for unfinished jobs....
Configuring for sandbox board...Going forward, we can do
$ make -j8 sandbox_config allThis is the same as
$ make sandbox_config
$ make -j8Signed-off-by: Masahiro Yamada
-
This commit refactors cleaning targets such as
clean, clobber, mrpropper, distclean
with scripts/Makefile.clean.By using scripts/Makefile.clean, we can recursively descend
into subdirectories and delete generated files there.We do not need add a big list of generated files
to the "clean" target.Signed-off-by: Masahiro Yamada
-
- Move "easylogo", "gdb" tagets to tools/Makefile
- Delete "gdbtools" target (same as "gdb")Signed-off-by: Masahiro Yamada
-
$(MTD_VERSION) is used in tools/env/Makefile
If you specify a variable at a command line like:
$ make MTD_VERSION=old env
or specify it thru an envrionment variable like:
$ export MTD_VERSION=old
$ make env
it is inherited to the sub-make too.
We do not need to pass it from the top Makefile explicitely.Signed-off-by: Masahiro Yamada
-
This commit refactors rules of directory descending
and defines u-boot-dirs and u-boot-all-dirs.
(We will need u-boot-all-dirs when using
scripts/Makefile.clean)Additionally, rename LIBS-y to libs-y.
Signed-off-by: Masahiro Yamada
-
Signed-off-by: Masahiro Yamada
-
This commit changes the top Makefile to handle various targets
nicely.
Make targets are divided into four categories:- mixed-targets
We can call a configuration target and build targets
at one command line like follows:
$ make _config u-bootThey are handled one by one.
- config targets
_config- no-dot-config-targets
Targets we can run without board configuration such as
clean, mrproper, distclean, TAGS, %docs, etc.- build targets
The other target which need board configuration.Signed-off-by: Masahiro Yamada
-
Before this commit, "make tidy" did
"make clean" + delete "*.depend*" files.But, we do not have "*.depend*" files any more,
which means "make tidy" is the same as "make clean".This commit removes the redandant target "tidy".
Signed-off-by: Masahiro Yamada
-
Before this commit, {spl,tpl}-autoconf.mk was always generated
at the top Makefile even if SPL(TPL) build was not selected.This commit moves the build rule of {spl,tpl}-autoconf.mk
from the top Makefile to spl/Makefile.
It prevents unnecessary {spl,tpl}-autoconf.mk from being
generated.Signed-off-by: Masahiro Yamada
-
This commit changes the location of include directives
of board configuration files.The purpose of this change is:
- Slim down $(TOPDIR)/config.mk
- Prevent $(TOPDIR)/Makefile from including the same
configuration file twice
- Do not include include/config.mk multiple times
because ARCH, CPU, BOARD, VENDOR, SOC are exportedBefore this commit:
- include/autoconf.mk was included from $(TOPDIR)/Makefile
and $(TOPDIR)/config.mk
(This means $(TOPDIR)/Makefile included include/autoconf.mk twice)- include/{spl,tpl}-autoconf.mk was included from $(TOPDIR)/config.mk
- include/config.mk was included from $(TOPDIR)/Makefile
and $(TOPDIR)/config.mk
(This means $(TOPDIR)/Makefile included include/config.mk twice)After this commit:
- include/autoconf.mk is included from $(TOPDIR)/Makefile
and $(TOPDIR)/scripts/Makefile.build- include/{spl,tpl}-autoconf.mk is included from $(TOPDIR)/spl/Makefile
and $(TOPDIR)/scripts/Makefile.build- include/config.mk is included from $(TOPDIR)/config.mk and
$(TOPDIR)/spl/MakefileSigned-off-by: Masahiro Yamada
-
We can get Kbuild-ish log style like this:
GEN include/autoconf.mk
GEN include/autoconf.mk.depWe do not need XECHO any more.
And also change checkstack target like Linux Kernel.
Signed-off-by: Masahiro Yamada
-
Signed-off-by: Masahiro Yamada
-
We had switched to Kbuild.
We do not need old build scripts any more.Signed-off-by: Masahiro Yamada
-
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 objWe 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
Tested-by: Gerhard Sittig -
This commit imports build scripts from Linux Kernel v3.13
as they are.I know they include some trailing spaces
but I am intentionally keeping them untouched.Signed-off-by: Masahiro Yamada
-
Some build scripts including scripts/Makefile.build
will be imported from Linux Kernel in the next commit.
We need to adjust them for U-Boot in the following commits.To make it easier for reviewers to track the modification,
this commit renames scripts/Makefile.build to
scripts/Makefile.build.tmp beforehand.Signed-off-by: Masahiro Yamada
-
We are going to switch over to Kbuild in upcoming commits.
Each makefile must have non-empty obj- or obj-y
to generate built-in.o on Kbuild.Signed-off-by: Masahiro Yamada
-
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-bootHere, $(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 " 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="
syntax for descending into sub-directories.
(We can write it like "make $(obj)=" with a shorthand.)
This means the current working directory is always the top
of the output directory.Signed-off-by: Masahiro Yamada
Tested-by: Gerhard Sittig -
This commit moves some flags which are used
under examples/ directory only.Signed-off-by: Masahiro Yamada
-
Some flags are used for SPL (and TPL) build only.
This commit moves them from config.mk to spl/Makefile.Signed-off-by: Masahiro Yamada
-
Signed-off-by: Masahiro Yamada
-
This commit merges commonly-used header include paths
to UBOOTINCLUDE and NOSTDINC_FLAGS variables, which are placed
at the top Makefile.Signed-off-by: Masahiro Yamada