From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web11.33773.1670286082091267183 for ; Mon, 05 Dec 2022 16:21:22 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=pkheKLn+; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from localhost.localdomain (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 2CE6220B83CB; Mon, 5 Dec 2022 16:21:21 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 2CE6220B83CB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1670286081; bh=6vLmgLzrSUGxtnjGXn3R1L4KEMWlr/rtgau6XMpZkzU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=pkheKLn+7kmJ9TLv8QhBAko5PlVk1jsci+k9+3WQjdRHBa8DA9lgPRNlERqNbsAVa qWqpF4R35QgHAbZMgqvr7t5CHex1Cf3zAVmcubP/TOZ8auXDIPla3IX9V0cYMGPd/k Wk52x7l7LbqJpNTHkK2RPlHL9akJ+b8Cl9JDijzY= From: "Michael Kubacki" To: devel@edk2.groups.io Cc: Sean Brogan , Michael D Kinney , Liming Gao Subject: [edk2-wiki][PATCH v2 3/4] Add top-level build instructions file Date: Mon, 5 Dec 2022 19:20:48 -0500 Message-Id: <20221206002049.3155-4-mikuback@linux.microsoft.com> X-Mailer: git-send-email 2.28.0.windows.1 In-Reply-To: <20221206002049.3155-1-mikuback@linux.microsoft.com> References: <20221206002049.3155-1-mikuback@linux.microsoft.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Kubacki 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 Cc: Michael D Kinney Cc: Liming Gao Signed-off-by: Michael Kubacki --- 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..2b6d19725c7d --- /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 c= ommon 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 recomm= ended 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 ca= pability to deploy well-defined, ready-to-go +images, results in unmatched performance, portability, and consistency o= f 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 i= nstructions. + +Prior to containers, building involved a lot of manual steps. Downloadin= g 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 bui= ld 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 m= any CI checks are performed by Stuart to allow +pull requests to be submitted. So running CI locally with Stuart will pu= t 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, c= ontainers and Stuart will eventually call +`build` to actually build the code and prior to the introduction of thos= e 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 firmw= are image (in most cases) with `build`. --=20 2.28.0.windows.1