From: Michael Kubacki <michael.kuba...@microsoft.com> Adds a file that describes various build approaches in edk2 at a high-level and points to the documents with specific instructions for each approach.
This is a starting point for this file and it will likely be expanded upon in the future. Cc: Sean Brogan <sean.bro...@microsoft.com> Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Signed-off-by: Michael Kubacki <michael.kuba...@microsoft.com> --- Build-Instructions.md | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Build-Instructions.md b/Build-Instructions.md new file mode 100644 index 000000000000..33545bde7b48 --- /dev/null +++ b/Build-Instructions.md @@ -0,0 +1,35 @@ +# EDK II Build Instructions + +Over the life of the project, EDK II has evolved it's build process. A common theme has been reducing the number of +manual steps involved and easing environment setup and configuration so developers can more quickly get started writing +firmware code. + +There's currently three high-level approaches to build (listed in recommended order): + +1. [Containers](How-to-Develop-With-Containers.md) +2. [Stuart](How-to-Build-With-Stuart.md) +3. [build](Getting-Started-with-EDK-II.mediawiki) + +## Build Option Comparison + +Containers have seen widespread adoption in software development. The capability to deploy well-defined, ready-to-go +images, results in unmatched performance, portability, and consistency of build environments. By extension, TianoCore +leverages containers for both server-side builds (e.g. for pull requests and continuous integration) and for local +developer builds. The TianoCore project maintains containers in +[tianocore/containers](https://github.com/tianocore/containers). + +If you just want to get started quickly and be able to receive the best support possible (since issues in containers +are easy to reproduce, fix, and deploy), then start with the container instructions. + +Prior to containers, building involved a lot of manual steps. Downloading compilers, various dependencies, running +the right commands in the right order, and so on. A lot of that work was reduced and moved into a tool that +orchestrates a lot of the underlying steps needed to simply set up a build environment and start building code. That +tool is called "Stuart". So if you would like a local build environment without using containers, it is recommended +to use Stuart. Containers use Stuart and the CI system uses Stuart and many CI checks are performed by Stuart to allow +pull requests to be submitted. So running CI locally with Stuart will put you in a great position to have code ready +for contribution to the project. + +At the core of the build is an application called `build`. Ultimately, containers and Stuart will eventually call +`build` to actually build the code and prior to the introduction of those two approaches, `build` was the primary +build path. So, you can still call `build` directly. This will result in more manual steps and a lack of the feature +set brought by the other two options but you can produce a working firmware image (in most cases) with `build`. -- 2.28.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#96965): https://edk2.groups.io/g/devel/message/96965 Mute This Topic: https://groups.io/mt/95472139/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-