From nobody Sat Feb 7 06:13:28 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+96965+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+96965+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=linux.microsoft.com ARC-Seal: i=1; a=rsa-sha256; t=1670256969; cv=none; d=zohomail.com; s=zohoarc; b=VuRRaiM+50OBldIlR3u9YeNUG/pngDHHC52MF9EUO6O4IF9wXnI5RrDKHR82IAtdpKkw0PjQsBKX9fWafHR1fk8f1JydLQq2sRrXXwGBv3YmeJSrVRDUaLTowuD+SJhxt2hVJWeI3QGolry2GAZI+ALMF2eGNUlInvQ2cw5Sbo8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1670256969; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=Y5aoAntkZ1x/0C6lKvHnDpvM5hPcT5ces28Y6ROGEsQ=; b=KGxK/cKxfbfdPB/jRMOI5f7FVdG/OozsoTYuwpGfheirFQXBx+lZIFmqJMFsaYVRJ3b7YEKwIt1kxURe9wBpFF2imi6oYcz0yswoCZkWoES7+3MNBQw4mH0Edf+zZdQr8uy8tbHhq9egNN4kOMDlz1i5SPsuJqkxH1SrH0etCpQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+96965+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1670256969451975.1520647879818; Mon, 5 Dec 2022 08:16:09 -0800 (PST) Return-Path: X-Received: by 127.0.0.2 with SMTP id DrZRYY1788612xAXY5mS7iN4; Mon, 05 Dec 2022 08:16:09 -0800 X-Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web10.19529.1670256968522671723 for ; Mon, 05 Dec 2022 08:16:08 -0800 X-Received: from localhost.localdomain (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 9BECC20B83CB; Mon, 5 Dec 2022 08:16:07 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 9BECC20B83CB From: "Michael Kubacki" To: devel@edk2.groups.io Cc: Sean Brogan , Michael D Kinney , Liming Gao Subject: [edk2-devel] [edk2-wiki][PATCH v1 3/4] Add top-level build instructions file Date: Mon, 5 Dec 2022 11:15:22 -0500 Message-Id: <20221205161523.2627-4-mikuback@linux.microsoft.com> In-Reply-To: <20221205161523.2627-1-mikuback@linux.microsoft.com> References: <20221205161523.2627-1-mikuback@linux.microsoft.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,mikuback@linux.microsoft.com X-Gm-Message-State: MnGsii0cvbiFsBuhgrIX45Fyx1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1670256969; bh=Y5aoAntkZ1x/0C6lKvHnDpvM5hPcT5ces28Y6ROGEsQ=; h=Cc:Date:From:Reply-To:Subject:To; b=f9Wt8LJTmMVx1jVvQnXTRPxr/rR8SJibcpmHo5Yrtp5QYQ/oZIIMda+ocPCnAa14B77 fGxTjKpKeR1ZALISdse3JhnGqQIHNqO3XUvWOAXl7p302kRJJjj1dJY0EdtvrkiAczGD3 0krLdHa2JHfuQ2tVqmwaRG1ge8+g6zjjZXY= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1670256970357100006 Content-Type: text/plain; charset="utf-8" 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..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 com= mon theme has been reducing the number of +manual steps involved and easing environment setup and configuration so de= velopers can more quickly get started writing +firmware code. + +There's currently three high-level approaches to build (listed in recommen= ded 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 capa= bility 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 a= nd 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 su= pport possible (since issues in containers +are easy to reproduce, fix, and deploy), then start with the container ins= tructions. + +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 r= educed 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 wi= thout using containers, it is recommended +to use Stuart. Containers use Stuart and the CI system uses Stuart and man= y 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, con= tainers 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 m= ore manual steps and a lack of the feature +set brought by the other two options but you can produce a working firmwar= e image (in most cases) with `build`. --=20 2.28.0.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- 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/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-