Now that I can use coreboot and libpayload on FreeBSD, it’s time to try the new Python-based build process for the TianoCore EDK II on FreeBSD.
- A copy of the EDK II sources, available at https://edk2.tianocore.org/svn/edk2/trunk/edk2.
- The sources of the Python tools which can be obtained from https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools.
- The misc/e2fs-libuuid port.
- GNU Make, i.e. the devel/gmake port.
Note that Subversion access requires a user account at the TianoCore project.
Installing the e2fs-libuuid port
This is trivially easy, just do:
$ cd /usr/ports/misc/e2fs-libuuid $ sudo make install
That’s all. The headers and libraries are installed under /usr/local.
Building the Base Tools
Compiling the Base Tools, i.e. the Python-based TianoCore build tools, isn’t complicated but doesn’t work out of the box, either. First, these two patches (patch 1, patch 2) must be applied:
$ cd /path/to/basetools $ patch -p0 < basetools_include.diff $ patch -p0 < basetools_make.diff
The first patch adjusts some include paths so that /usr/local/include is searched, too, which is required in order to find the uuid/uuid.h header. The second patch replaces invocations of make to use the $(MAKE) variable which holds the name of invoked the make binary. This is required as in FreeBSD (and other BSDs), make is not GNU make, however the latter is required to build the Base Tools. Consequently, when building the project, make sure that gmake is used: