"Pug, the UDK Guide dog" is a front-end to build a standalone UDK/EDK2 driver using .C source files and a .PY as the config file.
- The UDK build process is automated and simplified by Pug, so the user does not need to tackle the tedious details in .INF/.DSC files when she/he is simply intent to write a tiny driver for proof-of-concept.
- Since only .C and .PY files are created or touched, the user can easily deliver those touched files to peers/repositories for reviewing/archiving purpose.
- Pug runs with MSVC(Windows) or GCC(Linux) or Xcode(Mac)
- Python 2.7.x or Python 3.7.x
- git 2.17.x
- Reference:
- nasm (2.0 or above)
- iasl (version 2018xxxx or later)
- MSVC(Windows) or Xcode(Mac) or GCC(Open-source Posix)
- build-essential uuid-dev (Posix)
- pip2 install future (Python 2.7.x)
- motc (Xcode)
$ sudo apt update ; sudo apt install nasm iasl build-essential uuid-dev
- Change-directory to folder Pug .
- (Optional) Edit
config.py
for the settings accordingly in: WORKSPACE, PLATFORM, TARGET_TXT. - (Optional) Edit
CODETREE
inconfig.py
to specify where to place the downloaded source files of the UDK git repo or any other additional respos. - (Optional) Edit
COMPONENTS
inconfig.py
for the target entry(-ies) to be built. - Run
./pug.py
pug.py
would automatically try to git-clone the edk2 code tree and the submodule, openssl for the 1st time. - Browse folder _pug_ for the temporary files (.dsc/.inf) and folder _pug_/Conf for CONF_PATH setting files.
- Browse folder ../Build for the build results.
- Run
./pug.py clean
or./pug.py cleanall
to clean (all) the artifact files.
- To build an edk2 package: (Taking OvmfPkg and ShellPkg for examples.)
$ ./pug.py -p OvmfPkg/OvmfPkgX64.dsc
$ ./pug.py -p ShellPkg/ShellPkg.dsc