On Thu, Oct 17, 2013 at 08:38:50PM +0900, Masahiro Yamada wrote:

> I have been just wondering why the U-Boot top Makefile is so dirty.
> 
> It is sprinkled with SoC-specific code as follows:
> 
>     ifneq ($(CONFIG_OMAP_COMMON),)
>     LIBS-y += $(CPUDIR)/omap-common/libomap-common.o
>     endif
> 
>     ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx31 mx35 mxs vf610))
>     LIBS-y += arch/$(ARCH)/imx-common/libimx-common.o
>     endif
> 
>     ifeq ($(SOC),s5pc1xx)
>     LIBS-y += $(CPUDIR)/s5p-common/libs5p-common.o
>     endif
>     ifeq ($(SOC),exynos)
>     LIBS-y += $(CPUDIR)/s5p-common/libs5p-common.o
>     endif
>     ifneq ($(CONFIG_TEGRA),)
>     LIBS-y += arch/$(ARCH)/cpu/$(SOC)-common/lib$(SOC)-common.o
>     LIBS-y += arch/$(ARCH)/cpu/tegra-common/libcputegra-common.o
>     LIBS-y += $(CPUDIR)/tegra-common/libtegra-common.o
>     endif
> 
> And it describes drivers not right under the top directory, which should be 
> essentially cared
> by drivers/Makefile.
> 
>     LIBS-y += drivers/bios_emulator/libatibiosemu.o
>     LIBS-y += drivers/block/libblock.o
>     LIBS-$(CONFIG_BOOTCOUNT_LIMIT) += drivers/bootcount/libbootcount.o
>     LIBS-y += drivers/crypto/libcrypto.o
>     LIBS-y += drivers/dma/libdma.o
>          ...
> 
> This series adds the directory descending feature like Kbuild.
> 
> 1/6 tweaks scripts/Makefile.build to support 'obj-y += foo/' syntax.
> If the build system finds 'foo/' (trailed by a slash),
> it visits foo directory.
> 
> 2/6-6/6 demonstarate how we can refactor makefiles with this syntax.
> 
>   2/6: Move some drivers LIBS from top Makefile to drivers/Makefile
>   3/6: Move some fs LIBS from top Makefile to fs/Makefile
>   4/6: Move Tegra specific lines from top Makefile under arch/arm/
>   5/6: Move OMAP specific lines from top Makefile under arch/arm/
>   6/6: Move Samsung SoC specific lines from top Makefile under arch/arm/
> 
> Note:
> This series uses
> [PATCH v3]First step towards Kbuild: Use Kbuild-style makefiles (19 patch 
> files).
> as a prerequisite. Please apply them first.
> 
> I believe no boards are broken by this refactoring.
> In order to confirm my claim, I compiled all boards except
> nds32 and nios2 architrecutures.
> (I could not get an appropriate prebuilt cross compilers for those two arch.)
> 
> For arm, avr32, sandbox, x86, I could perfectly compile all boards
> without any warnings.
> 
> For the other architectures, I could compile some boards and I could not
> the others.
> But the SUMMARY result is still the same after applying this series.
> In addition I compared all the error and warning messages
> for all boards and they are the same.
> This means these patches do not introduce any additional errors, warnings.
> 
> Cc: Simon Glass <s...@chromium.org>
> Cc: Tom Rini <tr...@ti.com>
> 
> Masahiro Yamada (6):
>   Makefile: support descending down to subdirectories
>   drivers: move some drivers to drivers/Makefile
>   fs: move some file system to fs/Makefile
>   ARM: tegra: move Tegra specific code under arch/arm/
>   ARM: omap: move OMAP specific code under arch/arm/
>   ARM: s5pc, exynos: move Samsung ARM SoC specific code under arch/arm/
> 
>  Makefile                      | 44 
> +++----------------------------------------
>  arch/arm/cpu/Makefile         |  2 ++
>  arch/arm/cpu/arm720t/Makefile |  2 ++
>  arch/arm/cpu/armv7/Makefile   |  9 +++++++++
>  board/LEOX/elpt860/u-boot.lds |  1 -
>  board/tqc/tqm8xx/u-boot.lds   |  4 ++--
>  drivers/Makefile              | 15 +++++++++++++++
>  fs/Makefile                   | 11 +++++++++++
>  scripts/Makefile.build        | 15 +++++++++++++++
>  spl/Makefile                  | 14 +-------------
>  10 files changed, 60 insertions(+), 57 deletions(-)
>  create mode 100644 arch/arm/cpu/Makefile
>  create mode 100644 drivers/Makefile

For the series, applied to u-boot/master, thanks!

-- 
Tom

Attachment: signature.asc
Description: Digital signature

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to