Sometimes BIOS engineers need to tweak EDKII BaseTools to add some enhancements. Most of EDKII build tools are developed in Python scripts that are frozen into executables (EXE files) by cx_freeze. The BaseTools directory contains Python source code. The path is, for example.
We can modify them and rebuilt them into executables. This page teach us how to do it. If you have modified Python scripts files in the BaseTools directory, please follow the following steps to build executables.
Step 1. Install Python 2.7.
Please make sure that if the Python 2.7 is installed. If not, please go to python website, download it, and install it. The installed path is, for example.
Step 2. Install cx_freeze.
Please check if cx_freeze installs in Python 2.7. How do we check it? Just run dir.
C:\Python27\Scripts> dir *freeze*.*
If the cx_freeze has been installed. The dir command displays as follows.
If the cx_freeze has not been installed, please go to the page. http://cx-freeze.sourceforge.net
Please click the PyPI link in the page, download cx_Freeze-4.3.3.win32-py2.7.exe, and install it.
Step 3. Check if the cxfreeze.bat exists.
Sometimes the cxfreeze.bat is missed after we install cx_freeze. If the file doesn't exist in python script path, (e.g., C:\Python27\Scripts), please manually create it as follows.
C:\Python27\python.exe C:\Python27\Scripts\cxfreeze %*
Step 4. Go to BaseTools directory.
Step 5. Check the Makefile file and change it if necessary.
Sometimes we use old BaseTools where Makefile uses FreezePython.exe not cxfreeze.bat. Please modify it as follows.
FREEZE = $(PYTHON_FREEZER_PATH)\cxfreeze.bat
Step 6. Set environment variables before building.
> set PYTHON_FREEZER_PATH=C:\Python27\Scripts
> set BASE_TOOLS_PATH=D:\EDKII\BaseTools
> set EDK_TOOLS_PATH=D:\EDKII\BaseTools
Step 7. Run "nmake all"
D:\EDKII\BaseTools\Source\Python> nmake all
You can find that the executables are generated in BaseTools Win32 path. For example,