summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* ARM: Generalize armv7 as arm.Gabe Black2014-09-081-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are ARM systems which are essentially heterogeneous multicores where some cores implement a different ARM architecture version than other cores. A specific example is the tegra124 which boots on an ARMv4 coprocessor while most code, including most of the firmware, runs on the main ARMv7 core. To support SOCs like this, the plan is to generalize the ARM architecture so that all versions are available, and an SOC/CPU can then select what architecture variant should be used for each component of the firmware; bootblock, romstage, and ramstage. Old-Change-Id: I22e048c3bc72bd56371e14200942e436c1e312c2 Signed-off-by: Gabe Black <gabeblack@google.com> Reviewed-on: https://chromium-review.googlesource.com/171338 Reviewed-by: Gabe Black <gabeblack@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org> (cherry picked from commit 8423a41529da0ff67fb9873be1e2beb30b09ae2d) Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com> ARM: Split out ARMv7 code and make it possible to have other arch versions. We don't always want to use ARMv7 code when building for ARM, so we should separate out the ARMv7 code so it can be excluded, and also make it possible to include code for some other version of the architecture instead, all per build component for cases where we need more than one architecture version at a time. The tegra124 bootblock will ultimately need to be ARMv4, but until we have some ARMv4 code to switch over to we can leave it set to ARMv7. Old-Change-Id: Ia982c91057fac9c252397b7c866224f103761cc7 Reviewed-on: https://chromium-review.googlesource.com/171400 Reviewed-by: Gabe Black <gabeblack@chromium.org> Tested-by: Gabe Black <gabeblack@chromium.org> Commit-Queue: Gabe Black <gabeblack@chromium.org> (cherry picked from commit 799514e6060aa97acdcf081b5c48f965be134483) Squashed two related patches for splitting ARM support into general ARM support and ARMv7 specific pieces. Change-Id: Ic6511507953a2223c87c55f90252c4a4e1dd6010 Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com> Reviewed-on: http://review.coreboot.org/6782 Tested-by: build bot (Jenkins)
* build system: avoid warning about missing .xcompilePatrick Georgi2014-07-201-0/+4
| | | | | | | | | | | | | | That file will be generated, but not before make managed to complain about it. So let's just generate it if missing - it won't hurt the dependency tracking some lines later which is looking at time stamps. Change-Id: I615f38457eb27a8ffb4352b5234e262ee95d84ac Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/6305 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
* build system: create .xcompile dependencyPatrick Georgi2014-07-151-2/+4
| | | | | | | | | | | | | | | | It's probably safe to say that .xcompile needs an update if util/xcompile/xcompile changed, so tell make about this dependency. Updates are honored immediately due to GNU make's feature of reinterpreting everything when an included file changes. See "How Makefiles Are Remade" in the GNU make documentation for details. Change-Id: Ide2f028eaddcee66028c6403688cc83e1622fa6b Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/6255 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
* Makefile: HOSTCC set too late in clang buildsEdward O'Callaghan2014-06-291-2/+3
| | | | | | | | | | | | Currently we set HOSTCC=clang a little late meaning some minor bits (utils/kconfig) are built with GCC. Move the assignment up the Makefile. Change-Id: Ic72ad808eba0c0bf508bde34fb9bf0390c0b1d4d Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-on: http://review.coreboot.org/6140 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Idwer Vollering <vidwer@gmail.com>
* build: remove -ccopts mechanismPatrick Georgi2014-06-291-5/+4
| | | | | | | | | | | | We now use the slightly more familiar CFLAGS_* and CPPFLAGS_* for the same purpose. Change-Id: Ifd2bd13f67f71fa0a15611a6d11a6a4c7994271b Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5875 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
* build system: re-enable clang usePatrick Georgi2014-05-261-3/+21
| | | | | | | | Change-Id: I6e07fdec449d0b259d77986f65a60aa36d367cc8 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-on: http://review.coreboot.org/5747 Tested-by: build bot (Jenkins)
* build: re-enable ccache supportPatrick Georgi2014-05-171-12/+0
| | | | | | | | | | | | | | | The ccache support was mostly disabled because it didn't hook onto most compilers anymore. Caveat: ccache and scan-build don't work together since scan-build doesn't like arguments in its compiler command line (eg. "ccache gcc"). Change-Id: I7c1c6e22cb662f2b08e774ea484ac1c412fdd2db Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5775 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
* build: make scan-build work againPatrick Georgi2014-05-171-30/+0
| | | | | | | | | | | | | | | | | | | | This drops the scan-build related Kconfig options since it's now possible to simply run scan-build [-o outdir] make and get coreboot built with its report. There's also no inner make process anymore, and the way things work should be clearer now. Also adapt abuild to this new reality. Change-Id: I03e03334761ec83f718b3235ebf811834cd2e3e3 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5774 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
* build: allow romcc to be wrappedPatrick Georgi2014-05-171-1/+1
| | | | | | | | | | | | Allow ccache and scan-build to wrap romcc. This works a bit different from the other compilers because we only define it later. Change-Id: I3adce91d3dde9dd50aa6a2baad5b457744f35575 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5773 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
* build: separate CPPFLAGS from CFLAGSPatrick Georgi2014-05-171-1/+1
| | | | | | | | | | | There are a couple of places where CPPFLAGS are pasted into CFLAGS, eliminate them. Change-Id: Ic7f568cf87a7d9c5c52e2942032a867161036bd7 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5765 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
* Makefile: Don't use llvm-mc for the momentEdward O'Callaghan2014-05-091-1/+1
| | | | | | | | | | | | | | | | The LLVM integrated assembler has some deficiencies in support for building AGESA. See: LLVM PR18918 - [RFE]: Missing altmacro support in integrated assembler Disable llvm-mc for the moment until these have been addressed fully upstream. Change-Id: Id4131d1de04d01c0bec284f976f0ba9662b950ab Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-on: http://review.coreboot.org/5711 Reviewed-by: Patrick Georgi <patrick@georgi-clan.de> Tested-by: build bot (Jenkins)
* kconfig: update to follow upstream more closelyPatrick Georgi2014-05-071-1/+5
| | | | | | | | | | | | | | This might break a bunch of stuff (eg. win32 support), but otherwise introduces nconfig (ncurses based configuration frontend), partial configuration headers for improved dependency tracking (which requires some more build system support) and various bug fixes. Change-Id: I5d8a280810c6a26fc3fd056d5d94cb9e591a0ff5 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5487 Tested-by: build bot (Jenkins) Reviewed-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
* Introduce stage-specific architecture for corebootFurquan Shaikh2014-05-061-29/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make all three coreboot stages (bootblock, romstage and ramstage) aware of the architecture specific to that stage i.e. we will have CONFIG_ARCH variables for each of the three stages. This allows us to have an SOC with any combination of architectures and thus every stage can be made to run on a completely different architecture independent of others. Thus, bootblock can have an x86 arch whereas romstage and ramstage can have arm32 and arm64 arch respectively. These stage specific CONFIG_ARCH_ variables enable us to select the proper set of toolchain and compiler flags for every stage. These options can be considered as either arch or modes eg: x86 running in different modes or ARM having different arch types (v4, v7, v8). We have got rid of the original CONFIG_ARCH option completely as every stage can have any architecture of its own. Thus, almost all the components of coreboot are identified as being part of one of the three stages (bootblock, romstage or ramstage). The components which cannot be classified as such e.g. smm, rmodules can have their own compiler toolset which is for now set to *_i386. Hence, all special classes are treated in a similar way and the compiler toolset is defined using create_class_compiler defined in Makefile. In order to meet these requirements, changes have been made to CC, LD, OBJCOPY and family to add CC_bootblock, CC_romstage, CC_ramstage and similarly others. Additionally, CC_x86_32 and CC_armv7 handle all the special classes. All the toolsets are defined using create_class_compiler. Few additional macros have been introduced to identify the class to be used at various points, e.g.: CC_$(class) derives the $(class) part from the name of the stage being compiled. We have also got rid of COREBOOT_COMPILER, COREBOOT_ASSEMBLER and COREBOOT_LINKER as they do not make any sense for coreboot as a whole. All these attributes are associated with each of the stages. Change-Id: I923f3d4fb097d21071030b104c372cc138c68c7b Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: http://review.coreboot.org/5577 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin <adurbin@gmail.com>
* build: allow building crossgcc when .config existsPatrick Georgi2014-05-031-1/+1
| | | | | | | | | | | | | | | | Under some circumstances the coreboot toolchain test prevented building crossgcc, which is counter-productive: If a .config file exists but no suitable .xcompile. Don't assume anything about the tree when building crossgcc or crosstools targets. Change-Id: I4d6e7a88908dc967342daf30df0fcbcc269ae63d Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/5584 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com> Reviewed-by: Martin Roth <martin.roth@se-eng.com>
* Revert "Makefile: Check $CC variable returned from xcompile is not empty."Alexandru Gagniuc2014-01-261-5/+0
| | | | | | | | | | | | This reverts commit 1287d1cc80c52ff2598f2bae235fc42d8456f44a. This commit has the side-effect of making abuild fail, and as such is reverted until a safe solution can be found. Change-Id: Ib8cb78468c2922322b490e0b52c0bd24f3de7ef9 Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-on: http://review.coreboot.org/3269 Tested-by: build bot (Jenkins) Reviewed-by: Vladimir Serbinenko <phcoder@gmail.com>
* Makefile: Check $CC variable returned from xcompile is not empty.Andrew Wu2014-01-231-0/+5
| | | | | | | | | | | | | | | | | If xcompile can't find out suitable GCC compiler for i386/armv7, it will not set $CC_i386/$CC_armv7 variable. Makefile sets $CC variable from xcompile, and will print strange error messages when executing $CC program if $CC is empty. Add checking to avoid this problem. If $CC is empty, also delete invalid .xcompile file, so Make can recreate this file next time. Change-Id: Ia8d481d76ca52f3351cb99f05779d06947161c5d Signed-off-by: Andrew Wu <arw@dmp.com.tw> Reviewed-on: http://review.coreboot.org/3905 Tested-by: build bot (Jenkins) Reviewed-by: Jonathan A. Kollasch <jakllsch@kollasch.net> Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
* arch/x86/Makefile.inc: Pass $(AS) and $(CPP) to SeaBIOSAndrew Wu2013-10-171-0/+1
| | | | | | | | | | | | | | | | | SeaBIOS’ Makefile requires cpp (C Preprocessor) to build. Modify the xcompile script to search for cpp program path, and pass it to SeaBIOS’ `Makefile.inc`. Also pass the program path for as (GNU assembler). This is needed, so the crossgcc toolchain to build the SeaBIOS payload under Mac OSX. OSX ships a cpp program, but it works differently from GNU CPP, so we need to override it. Change-Id: If996ffbb76ec4bd16079b54b41f3fac07bfe25be Signed-off-by: Andrew Wu <arw@dmp.com.tw> Reviewed-on: http://review.coreboot.org/3896 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Jonathan A. Kollasch <jakllsch@kollasch.net>
* Make: Use unaltered object list for dependency inclusionNico Huber2013-05-201-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It looks like the inclusion of dependency files was broken for all ramstage objects since the list of those gets processed through the ramstage-postprocess macro. Fix that by taking the unaltered list for dependency files. The output of `make printall` (look for DEPENDENCIES=) shows which dependency files will be included. See also: commit 79f9010e80a04f2e0fb0cca5759e3215dff79aff Author: Patrick Georgi <patrick@georgi-clan.de> Date: Sun Nov 25 14:31:08 2012 +0100 build system: Add hook to postprocess classes (object lists) and: commit f33e395213f0516a9256f33ede4c6bba3babb0e9 Author: Patrick Georgi <patrick@georgi-clan.de> Date: Sun Nov 25 17:10:47 2012 +0100 build system: Split linking into multiple steps Change-Id: If93b1773c5d53240f98382aab11bf7f5a4649ee8 Signed-off-by: Nico Huber <nico.huber@secunet.com> Reviewed-on: http://review.coreboot.org/3258 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
* build system: Retire REQUIRES_BLOBPatrick Georgi2013-02-191-0/+3
| | | | | | | | | | | | | | | | | | | REQUIRES_BLOB assumes that all blob files come from the 3rdparty directory, builds failed when all files were configured to point to other sources. This change modifies the blob mechanism so that cbfs-files can be tagged as "required" with some specification what is missing. If the configured files can't be found (wrong path, missing file), the build system returns a list of descriptions, then aborts. Change-Id: Icc128e3afcee8acf49bff9409b93af7769db3517 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/2418 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martin.roth@se-eng.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Marc Jones <marcj303@gmail.com>
* build system: Don't run the full build system on "make clean"Patrick Georgi2013-02-121-7/+4
| | | | | | | | | | | | | | | | | | | When running "make clean" the build system used to parse the entire build system. Besides costing time, it prevents cleaning the tree if a blobs-board is selected but blobs are not enabled. Instead, clean always removes all of $(obj) and .xcompile, while distclean additionally removes .config and the like. Besides cleaning up more completely (eg. dependency files), a side effect is that this also removes $(obj)/util, if it exists (default location for build tools). Change-Id: Ief6362460d4eb7edcb4b0a47ec76cb9a61bf3b86 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/2338 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* build system: Mark clean-for-update phonyPatrick Georgi2013-02-111-1/+1
| | | | | | | | | | build system hygiene, not known if this actually matters. Change-Id: Ic800a2acecff123fc2055047fab67df107ac43ab Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/2356 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
* Fix broken scan-buildMartin Roth2012-12-141-0/+2
| | | | | | | | | | | | | Adding support for the multiple architectures broke the scan-build option. The new CC setting needed to be wrapped and not run again when doing the scan-build second pass. Change-Id: Ieb418f51d44803308040926a4154fb5fdc3ba67f Signed-off-by: Martin Roth <martin@se-eng.com> Reviewed-on: http://review.coreboot.org/2031 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* Makefile cosmeticsStefan Reinauer2012-12-081-2/+2
| | | | | | | | | | align architectures Change-Id: Ie3fe29d830d45e76c183411c04598e82b4b3a010 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/2003 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks <dhendrix@chromium.org>
* Drop ARCH_ARM in favor of ARCH_ARMV7Stefan Reinauer2012-12-061-2/+2
| | | | | | | | | | | | | | | | The ARM architecture is really many architectures, and most of them need their own toolchain. After discussing with Ron and David, we decided that we're going to call the architecture of our ARM board armv7.. This patch cleans out the remainders of ARCH_ARM in the tree and moves on to consistent ARMv7 naming. As of now, we only support little endian ARMv7 CPUs. We can fix that for big endian if/when it comes our way. Change-Id: Id70c7ef615f600e4d09961d811e7ac974fce4811 Signed-off-by: Stefan Reinauer <reinauer@google.com> Reviewed-on: http://review.coreboot.org/1968 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
* build system: Add hook to postprocess classes (object lists)Patrick Georgi2012-11-271-0/+4
| | | | | | | | | | | | This will be used to minimize the ramstage class, to avoid command line lengths to exceed the limit on mingw, esp. after we got rid of ramstage.a Change-Id: I80582d04476545c275e8d1d08fb52a99f58cebcc Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/1910 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* Make xcompile support multiple architecturesRonald G. Minnich2012-11-271-1/+25
| | | | | | | | | | | | | | | With this change the the xcompile script now creates environment variables for more than one architecture. Signed-off-by: David Hendricks <dhendrix@chromium.org> Signed-off-by: Hung-Te Lin <hungte@chromium.org> Signed-off-by: Stefan Reinauer <stepan@coresystems.de> Change-Id: I349a1fd1d865ef16979f1dfd6aeca12b1ee2eed6 Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: http://review.coreboot.org/1915 Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Tested-by: build bot (Jenkins)
* Makefile: No need to mkdir when distcleanZheng Bao2012-10-221-0/+3
| | | | | | | | | | | | | | | | | | make distclean causes error on mingw: ------- rm: cannot lstat `build/util': Permission denied make: *** [distclean] Error 1 ------- Guess, When the distclean is made by multi-process, the mkdir in the Makefile will execute when build is removed. That causes conflicts. Change-Id: Ia41ecc5d1db2fa9d3328c81ac1d33fa94779492d Signed-off-by: Zheng Bao <zheng.bao@amd.com> Signed-off-by: Zheng Bao <fishbaozi@gmail.com> Reviewed-on: http://review.coreboot.org/1602 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
* Isolate Kconfig host compiler optionsPatrick Georgi2012-09-141-2/+2
| | | | | | | | | | | | | | | | This reverts commit 645f2dd5d97ffbaa80da7fbd776a08a76eb758e3. Instead of adding a special case to nvramtool to avoid it picking up Kconfig's regex.h, have the host compiler only consider util/kconfig for includes (ie. -Iutil/kconfig) for kconfig related object files. Change-Id: Ie4f97ce38cb3e911f6e6c1e5b6f86f6998d93f69 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/1509 Tested-by: build bot (Jenkins) Reviewed-by: Zheng Bao <zheng.bao@amd.com> Reviewed-by: Anton Kochkov <anton.kochkov@gmail.com>
* Keep cscope.out when distclean.zbao2012-03-311-1/+1
| | | | | | | | | | | | | | It doesnt make sense to delete cscope.out when make distclean. Distclean is done all the time, and cscope database is also needed all the time. If we need to delete all the untracked files, we can use git-clean. Change-Id: Ic248ccd602ddc88d0b98d5d7f6cbbf530cd82e87 Signed-off-by: Zheng Bao <zheng.bao@amd.com> Signed-off-by: zbao <fishbaozi@gmail.com> Reviewed-on: http://review.coreboot.org/831 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
* clang: Don't use mmx nor ssePatrick Georgi2012-03-161-1/+1
| | | | | | | | | | clang is much more trigger happy than gcc on those. Change-Id: Ie7c219de3cc26675692eab7361a4ad551f1c65a7 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/786 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* Prevent multiple inclusions of object files and rulesPatrick Georgi2011-10-281-0/+3
| | | | | | | | | | | This removes 54 make warnings from the build Change-Id: I94ac9875526febe2f95334c1c3971641c1d27f8f Signed-off-by: Stefan Reinauer <reinauer@google.com> Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/338 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
* Allow XGCCPATH to be set on the make command line.Marc Jones2011-10-231-1/+1
| | | | | | | | | | The xgcc toolchain may be moved by the user and passed in on the commandline. Updates the Makefile and the xcompile script. Change-Id: I05797b2cabce39bdd7868c2515f30d34043fc8cc Signed-off-by: Marc Jones <marcj303@gmail.com> Reviewed-on: http://review.coreboot.org/318 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
* Relicense Makefile to match libpayloadPatrick Georgi2011-07-011-11/+21
| | | | | | | | | | | | | | | libpayload's license is more liberal than coreboot's. If we are to use the coreboot build system for libpayload (bringing a couple of new features to libpayload), we should adopt it for this shared part even if not strictly necessary. Change-Id: I1349616861e193b3e01407debbec3d82e09e72c2 Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Reviewed-on: http://review.coreboot.org/70 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-by: Uwe Hermann <uwe@hermann-uwe.de> Reviewed-by: Cristian Măgherușan-Stanciu <cristi.magherusan@gmail.com>
* Add regression test for build directory handling to make lint targetPatrick Georgi2011-05-211-0/+2
| | | | | | | | | | | A couple of scenarios that were fixed in the last few revisions are tested to ensure that it's easy to determine breakage. Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6607 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Handle absolute source file pathsPatrick Georgi2011-05-201-1/+1
| | | | | | | | | | | | | | | | | | | We used to fail there because we unconditionally prefixed the relative directory where it was referenced. Tested in various scenarios: - obj=build - obj=../obj - obj=$PWD/../obj - obj=/some/other/absolute/path - obj=/./some/other/absolute/path In-tree relative paths still work as before, the only change in behaviour is when a source file name (as specified in one of the *-y variables) starts with "/". Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6606 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Fix ccache behaviour if more than one ccache in PATHPatrick Georgi2011-05-201-1/+1
| | | | | | | | Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6602 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Move crossgcc rules to coreboot specific MakefilePatrick Georgi2011-05-161-6/+0
| | | | | | | | | | | Toplevel Makefile should (as far as possible) be coreboot-agnostic, we have Makefile.inc for that. Signed-off-by: Patrick Georgi <patrick@georgi-clan.de> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6599 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Add crossgcc target to automatically build reference toolchainCristian Magherusan-Stanciu2011-05-161-0/+6
| | | | | | | | | | | | | | | | | This means that a simple: $ make crossgcc creates the reference toolchain in the correct directory. Thanks to the dependency on the clean-for-update target, an existing .xcompile along with any compiled objects in build/ will be cleaned out, so the next build will automatically use the newly created reference toolchain. Signed-off-by: Cristian Magherusan-Stanciu <cristi.magherusan@gmail.com> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6598 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* In 2007 Adrian Reber suggested that we drop ASSEMBLY in favor of __ASSEMBLER__.Stefan Reinauer2011-04-101-1/+0
| | | | | | | | | | | | | | | | http://www.coreboot.org/pipermail/coreboot/2007-September/024665.html It's about time we follow this advice. Also move some manually set __PRE_RAM__ defines (ap_romstage.c) to the Makefile and drop unused CPP define Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Acked-by: Patrick Georgi <patrick@georgi-clan.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6482 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Add option_table.h as dependency for all C based object files if option ↵Patrick Georgi2011-03-081-2/+3
| | | | | | | | | | | | tables are used. This is to make sure that the file exists when it is needed. While this isn't the case for every C source file, it doesn't hurt either to create the file a bit sooner than strictly necessary. Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Jonathan Kollasch <jakllsch@kollasch.net> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6438 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Fix double inclusion of toplevel Makefile.incPatrick Georgi2011-03-011-3/+6
| | | | | | | | Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Patrick Georgi <patrick.georgi@secunet.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6419 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Move coreboot specific rules and setup to toplevel Makefile.incPatrick Georgi2011-02-221-202/+22
| | | | | | | | | | KERNELVERSION issue found by Stefan is fixed. Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6375 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Handle compiler options for source classes more genericallyPatrick Georgi2011-02-171-8/+11
| | | | | | | | | Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6372 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Make Makefile.inc parser loop more genericPatrick Georgi2011-02-171-34/+43
| | | | | | | | | Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6371 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* This code fixes a number of build issues related to the AMD Agesa code. The ↵Frank Vibrans2011-02-141-1/+4
| | | | | | | | | | | | particular issues are global variables existing in romstage and the use of GCC intrinsics in the build. The former issue will be addressed shortly, and the latter issue requires community assistance. This code is dependent on the AMD Family 14h mainboard code. Signed-off-by: Frank Vibrans <frank.vibrans@amd.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Acked-by: Marc Jones <marcj303@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6348 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Fix cmos-files-y for relative pathsPatrick Georgi2011-02-081-4/+4
| | | | | | | | | Thanks to Josef Kellermann <seppk@arcor.de> for reporting the issue. Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Patrick Georgi <patrick.georgi@secunet.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6337 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Inverse two arguments of cbfs-files-y and adapts its users (one of which ↵Patrick Georgi2011-01-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | already used the new order) This is in reponse to feedback that the original setup was too complicated. New cbfs-files-y behaviour: cbfs-files-y contains the names of files as they appear in CBFS. The arguments describe the on-filesystem name, the type and (optionally) the position. Example: cbfs-files-y += foo foo-file := bar foo-type := splashscreen foo-position := 0xffff8000 This configures a CBFS file called "foo" that is marked "splashscreen", located at 0xffff8000 in flash and contains the data of the file "bar" in the filesystem (either in the current directory, ie. where the corresponding Makefile.inc resides, or if that doesn't exist, relative to the toplevel directory). Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com> Acked-by: Stefan Reinauer <stefan.reinauer@coreboot.org> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6319 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Make cbfstool available in $(obj) for simple user access.Kevin O'Connor2011-01-301-1/+4
| | | | | | | | | | | - integrated Peter's suggestion ($< $@) - removed @ prefix, we use the .SILENT pseudo-target Signed-off-by: Kevin O'Connor <kevin@koconnor.net> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6318 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* Add new ec subdir for Embedded Controllers and common ACPI EC supportSven Schnelle2011-01-271-1/+1
| | | | | | | | | | | | Adds a new src/ec subdir for embedded controllers (mostly found in laptops) and converts Getac P470 and Roda RK886EX to use the new ACPI EC instead of having their own copies of those functions. Signed-off-by: Sven Schnelle <svens@stackframe.org> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6304 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
* remove the code which is not ready to release.Zheng Bao2011-01-181-1/+0
| | | | | | | | | Signed-off-by: Zheng Bao <zheng.bao@amd.com> Acked-by: Zheng Bao <zheng.bao@amd.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6265 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1