summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* kbuild: use Linux Kernel build scriptsMasahiro Yamada2014-02-191-39/+200
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* kbuild: change out-of-tree buildMasahiro Yamada2014-02-191-271/+298
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-boot Here, $(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 <sub-dir>" 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=<sub-dir>" syntax for descending into sub-directories. (We can write it like "make $(obj)=<sub-dir>" with a shorthand.) This means the current working directory is always the top of the output directory. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Tested-by: Gerhard Sittig <gsi@denx.de>
* Makefile: move more stuff to top MakefileMasahiro Yamada2014-02-191-3/+17
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: refactor include path settingsMasahiro Yamada2014-02-191-1/+13
| | | | | | | | 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 <yamada.m@jp.panasonic.com>
* Makefile: move more flags to the top MakefileMasahiro Yamada2014-02-191-0/+35
| | | | | | | | | | | | | Before this commit, most of compiler flags were defined in config.mk. But it is redundant because config.mk is included from all recursive make. This commit moves many complier flags to the top Makefile and export them. And we use new vaiarables to store them: KBUILD_CPPFLAGS, KBUILD_CFLAGS, KBUILD_AFLAGS. This will allow us to switch more smoothly to Kbuild. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* kbuild: Use Kbuild.includeMasahiro Yamada2014-02-191-3/+6
| | | | | | | | | | | | | | | | This commit adjusts some files to use Kbuild.include. - Use cc-option defined in Kbuild.include (Delete cc-option in config.mk) - Use cc-version defined in (Delete cc-version in config.mk) - Move binutils-version and dtc-version to Kbuild.include by analogy to cc-version This commit also adds srctree (same as SRCTREE) to use Kbuild scripts. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* Makefile: move some variable definitions to the top MakefileMasahiro Yamada2014-02-191-13/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit moves some variable definitions from config.mk to the top Makefile: - HOSTCC, HOSTCFLAGS, HOSTLDFLAGS - AS, LD, CC, CPP, etc. - SHELL (renamed to CONFIG_SHELL) I'd like to slim down config.mk file because it is included from all recursive make. It is redundant to re-define the variables every time descending into sub directories. We should rather define them at the top Makefile and export them. U-Boot makefiles has been used "SHELL" variable to store shell chosen for the user, whereas Linux Kernel uses "CONFIG_SHELL". We should never use "SHELL" variable because it is a special variable for GNU Make. Changing SHELL may cause unpredictable side effects whose root cause is usually difficult to find. We should use a generic variable name "CONFIG_SHELL". We should not use the syntax as follows either: rm -f $(obj)tools/env/{fw_printenv,fw_setenv} This depends on "bash" although GNU Make generally invokes "sh" to run the each rule. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* nand-spl: Use scripts/Makefile.buildMasahiro Yamada2014-02-191-1/+1
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* examples: Use scripts/Makefile.buildMasahiro Yamada2014-02-191-4/+1
| | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* board: samsung: refactor host programsMasahiro Yamada2014-02-191-0/+1
| | | | | | | Some Samsung boards have their own tools under board/samsung/<board>/tools/. This commit refactor more makefiles with "hostprogs-y". Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* tools: convert makefiles to kbuild styleMasahiro Yamada2014-02-191-7/+11
| | | | | | | | | | | | | Before this commit, makefiles under tools/ directory were implemented with their own way. This commit refactors them by using "hostprogs-y" variable. Several C sources have been added to wrap other C sources to simplify Makefile. For example, tools/crc32.c includes lib/crc32.c Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* powerpc:Rename CONFIG_PBLRCW_CONFIG & CONFIG_SYS_FSL_PBL_PBIPrabhakar Kushwaha2014-01-211-2/+2
| | | | | | | | | Rename CONFIG_PBLRCW_CONFIG and CONFIG_PBLRCW_CONFIG. Also add their details in README. Signed-off-by: Prabhakar Kushwaha <prabhakar@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
* Prepare v2014.01Tom Rini2014-01-201-1/+1
| | | | Signed-off-by: Tom Rini <trini@ti.com>
* Prepare v2014.01-rc3Tom Rini2014-01-131-1/+1
| | | | Signed-off-by: Tom Rini <trini@ti.com>
* Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini2014-01-101-5/+36
|\ | | | | | | | | | | | | | | | | | | Bringing in the MMC tree means that CONFIG_BOUNCE_BUFFER needed to be added to include/configs/exynos5-dt.h now. Conflicts: include/configs/exynos5250-dt.h Signed-off-by: Tom Rini <trini@ti.com>
| * arm64: Make checkarmreloc accept arm64 relocationsScott Wood2014-01-091-5/+9
| | | | | | | | | | Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: David Feng <fenghua@phytium.com.cn>
| * arm64: Turn u-boot.bin back into an ELF file after relocate-relaScott Wood2014-01-091-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | While performing relocations on u-boot.bin should be good enough for booting on real hardware, some simulators insist on booting an ELF file (and yet don't perform ELF relocations), so convert the relocated binary back into an ELF file. This can go away in the future if we change relocate-rela to operate directly on the ELF file, or if and when we stop caring about a simulator with this restriction. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: David Feng <fenghua@phytium.com.cn>
| * arm64: Add tool to statically apply RELA relocationsScott Wood2014-01-091-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ARM64 uses the newer RELA-style relocations rather than the older REL. RELA relocations have an addend in the relocation struct, rather than expecting the loader to read a value from the location to be updated. While this is beneficial for ordinary program loading, it's problematic for U-Boot because the location to be updated starts out with zero, rather than a pre-relocation value. Since we need to be able to run C code before relocation, we need a tool to apply the relocations at build time. In theory this tool is applicable to other newer architectures (mainly 64-bit), but currently the only relocations it supports are for arm64, and it assumes a 64-bit little-endian target. If the latter limitation is ever to be changed, we'll need a way to tell the tool what format the image is in. Eventually this may be replaced by a tool that uses libelf or similar and operates directly on the ELF file. I've written some code for such an approach but libelf does not make it easy to poke addresses by memory address (rather than by section), and I was hesitant to write code to manually parse the program headers and do the update outside of libelf (or to iterate over sections) -- especially since it wouldn't get test coverage on things like binaries with multiple PT_LOAD segments. This should be good enough for now to let the manual relocation stuff be removed from the arm64 patches. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: David Feng <fenghua@phytium.com.cn>
| * tegra: allow build to succeed with SPL disabledVidya Sagar2013-12-181-0/+2
| | | | | | | | | | | | | | | | | | u-boot-dtb-tegra.bin and u-boot-nodtb-tegra.bin binaries are generated only if the SPL build is enabled as they have dependency on SPL build Signed-off-by: Vidya Sagar <vidyas@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
* | Makefile: fix broken pipe error for lcd4_lwmon5 boardMasahiro Yamada2013-12-181-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, a broken pipe error sometimes happened when building lcd4_lwmon5 board with Buildman. This commit re-writes build rules of u-boot.spr and u-boot-img-spl-at-end.bin more simply without using a pipe. Besides fixing a broken pipe error, this commit gives us other advantages: - Do not generate intermidiate files, spl/u-boot-spl.img and spl/u-boot-spl-pad.img for creating u-boot.spr - Do not generate an intermidiate file, u-boot-pad.img for creating u-boot-img-spl-at-end.bin Such intermidiate files were not deleted by "make clean" or "make mrpropr". Nor u-boot-pad.img was ignored by git. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Acked-by: Stefan Roese <sr@denx.de>
* | Makefile: fix the typo error for mrproperBo Shen2013-12-181-1/+1
| | | | | | | | | | | | | | Fix the typo error for mrproper from mkproper. Signed-off-by: Bo Shen <voice.shen@atmel.com> Acked-by: Simon Glass <sjg@chromium.org>
* | Prepare v2014.01-rc2Tom Rini2013-12-161-1/+1
| | | | | | | | Signed-off-by: Tom Rini <trini@ti.com>
* | Makefile, .gitignore: Cleanup non-existing binariesMasahiro Yamada2013-12-161-5/+2
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | examples: x86: delete 82559_eepromMasahiro Yamada2013-12-161-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Commit fea25720 renamed arch/i386 to arch/x86. But it missed to modify examples/standalone/Makefile. Since then, examples/standalone/82559_eeprom has never compiled and nobody has noticed that. After some discussion on ML, we agreed to delete this example. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: Select objects by CONFIG_ rather than $(ARCH) or $(CPU)Masahiro Yamada2013-12-161-8/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert like follows: CPU mpc83xx -> CONFIG_MPC83xx CPU mpc85xx -> CONFIG_MPC85xx CPU mpc86xx -> CONFIG_MPC86xx CPU mpc5xxx -> CONFIG_MPC5xxx CPU mpc8xx -> CONFIG_8xx CPU mpc8260 -> CONFIG_8260 CPU ppc4xx -> CONFIG_4xx CPU x86 -> CONFIG_X86 ARCH x86 -> CONFIG_X86 ARCH powerpc -> CONFIG_PPC Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: delete unnecessary linesMasahiro Yamada2013-12-161-5/+0
| | | | | | | | | | | | REMOTE_BUILD is not used any more. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: Move some scripts imported from LinuxMasahiro Yamada2013-12-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have some scripts imported from Linux Kernel: setlocalversion, checkstack.pl, checkpatch.pl, cleanpatch They are located under tools/ directory in U-Boot now. But they were originally located under scripts/ directory in Linux Kernel. This commit moves them to the original location. It is true that binutils-version.sh and dtc-version.sh do not originate in Linux Kernel, but they should be moved by analogy to gcc-version.sh. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | drivers/mtd: descend into sub directories only when it is necessaryMasahiro Yamada2013-12-131-2/+2
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | post: descend only when CONFIG_HAS_POST is definedMasahiro Yamada2013-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | All objects under post/ directory are enabled by CONFIG_HAS_POST. (post/tests.o is enabled by CONFIG_POST_STD_LIST. But CONFIG_POST_STD_LIST depends on CONFIG_HAS_POST.) We can move CONFIG_HAS_POST switch to the top Makefile. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: delete a make rule of $(LDSCRIPT)Masahiro Yamada2013-12-131-5/+2
| | | | | | | | | | | | | | | | | | | | $(LDSCRIPT) is a source file, not a generated file. We do not need a make rule of $(LDSCRIPT). And one more trivial fix: $(obj)/u-boot should not dierectly depend on $(LDSCRIPTS). Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: correct dependencies of asm-offsets.[hs]Masahiro Yamada2013-12-131-15/+4
| | | | | | | | | | | | | | These four generated files depends on neither {spl,tpl}-autoconf.mk nor autoconf.mk.dep. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: use two double-quotations as a pairMasahiro Yamada2013-12-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Some editors such as Emacs can highlight source files. But their parser algorithm is not perfect. If you use one double-quotation alone, some editor cannot handle it nicely and mark source lines as a string by mistake. It is preferable to use two double-quotations as a pair. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: Do not create empty autoconf.mk on errorMasahiro Yamada2013-12-131-14/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The build rules of - include/autoconf.mk.dep - include/autoconf.mk - include/spl-autoconf.mk - include/tpl-autoconf.mk were not nice. They created empty files (which are never updated) if an error occurs during preprocessing. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Add dumpimage, a tool to extract data from U-Boot imagesGuilherme Maciel Ferreira2013-12-131-0/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given a multi-file image created through the mkimage's -d option: $ mkimage -A x86 -O linux -T multi -n x86 -d vmlinuz:initrd.img:System.map \ multi.img Image Name: x86 Created: Thu Jul 25 10:29:13 2013 Image Type: Intel x86 Linux Multi-File Image (gzip compressed) Data Size: 13722956 Bytes = 13401.32 kB = 13.09 MB Load Address: 00000000 Entry Point: 00000000 Contents: Image 0: 4040128 Bytes = 3945.44 kB = 3.85 MB Image 1: 7991719 Bytes = 7804.41 kB = 7.62 MB Image 2: 1691092 Bytes = 1651.46 kB = 1.61 MB It is possible to perform the innverse operation -- extracting any file from the image -- by using the dumpimage's -i option: $ dumpimage -i multi.img -p 2 System.map Although it's feasible to retrieve "data files" from image through scripting, the requirement to embed tools such 'dd', 'awk' and 'sed' for this sole purpose is cumbersome and unreliable -- once you must keep track of file sizes inside the image. Furthermore, extracting data files using "dumpimage" tool is faster than through scripting. Signed-off-by: Guilherme Maciel Ferreira <guilherme.maciel.ferreira@gmail.com> Signed-off-by: Simon Glass <sjg@chromium.org>
* Merge branch 'master' of git://git.denx.de/u-boot-armTom Rini2013-12-101-1/+1
|\ | | | | | | | | | | | | | | Conflicts: board/samsung/trats2/trats2.c include/configs/exynos5250-dt.h Signed-off-by: Tom Rini <trini@ti.com>
| * Merge branch 'u-boot/master' into 'u-boot-arm/master'Albert ARIBAUD2013-12-101-101/+64
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/cpu/armv7/rmobile/Makefile doc/README.scrapyard Needed manual fix: arch/arm/cpu/armv7/omap-common/Makefile board/compulab/cm_t335/u-boot.lds
| * | arm: keep all sections in ELF fileAlbert ARIBAUD2013-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current LDS files /DISCARD/ a lot of sections when linking ELF files, causing diagnostic tools such as readelf or objdump to produce partial output. Keep all section at link stage, filter only at objcopy time so that .bin remains minimal. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
* | | blackfin: Do not generate unused header bootrom-asm-offsets.hMasahiro Yamada2013-12-061-1/+0
| |/ |/| | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
* | Merge branch 'master' of git://git.denx.de/u-boot-mpc85xxTom Rini2013-12-021-0/+1
|\ \
| * | Driver/DDR: Moving Freescale DDR driver to a common driverYork Sun2013-11-251-0/+1
| | | | | | | | | | | | | | | | | | | | | Freescale DDR driver has been used for mpc83xx, mpc85xx, mpc86xx SoCs. The similar DDR controllers will be used for ARM-based SoCs. Signed-off-by: York Sun <yorksun@freescale.com>
* | | Prepare v2014.01-rc1Tom Rini2013-11-251-3/+3
| | | | | | | | | | | | Signed-off-by: Tom Rini <trini@ti.com>
* | | Makefile: move some libraries to lib/MakefileMasahiro Yamada2013-11-251-5/+0
| | | | | | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | | Makefile: descend into subdirectories only when CONFIG_API is definedMasahiro Yamada2013-11-251-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All objects under api/ and examples/api/ directories are selected by CONFIG_API. So we can move CONFIG_API switch to the top Makefile. In order to use CONFIG_API, the definition of SUBDIR_EXAMPLES-y must be moved after "sinlude $(obj)include/autoconf.mk". Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | | tools: updater: Remove remainders of dead boardMasahiro Yamada2013-11-251-4/+1
|/ / | | | | | | | | | | | | | | | | tools/updater needs board/MAI/AmigaOneG3SE board for compiling. But AmigaOneG3SE board was already deleted by Commit 953b7e6. Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: move fs/fat/ entry to drivers/MakefileMasahiro Yamada2013-11-171-2/+1
| | | | | | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Cc: Simon Glass <sjg@chromium.org> Acked-by: Simon Glass <sjg@chromium.org>
* | powerpc: mpc824x: Do not create a symbolic link to bedbug_603e.cMasahiro Yamada2013-11-171-1/+0
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | powerpc: mpc83xx: Do not create a symbolic link to ddr-gen2.cMasahiro Yamada2013-11-171-1/+0
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: delete unused linesMasahiro Yamada2013-11-171-6/+0
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: refactor a littleMasahiro Yamada2013-11-171-3/+1
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
* | Makefile: rename all libraries to built-in.oMasahiro Yamada2013-11-171-56/+56
| | | | | | | | Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com>
OpenPOWER on IntegriCloud