| genrule( |
| name = "firmware", |
| srcs = glob( |
| ["**"], |
| exclude = [ |
| "CryptoPkg/Library/OpensslLib/openssl/boringssl/fuzz/*_corpus/**", |
| "CryptoPkg/Library/OpensslLib/openssl/fuzz/corpora/**", |
| ], |
| ), |
| outs = [ |
| "OVMF_CODE.fd", |
| "OVMF_VARS.fd", |
| ], |
| cmd = """ |
| ( |
| # The edk2 build does not like Bazel's default genrule environment. |
| set +u |
| |
| cd external/edk2 |
| . edksetup.sh |
| make -C BaseTools/Source/C |
| build -DTPM2_ENABLE -DSECURE_BOOT_ENABLE -t GCC5 -a X64 -b RELEASE -p $$PWD/OvmfPkg/OvmfPkgX64.dsc |
| ) > /dev/null |
| |
| cp external/edk2/Build/OvmfX64/RELEASE_GCC5/FV/{OVMF_CODE.fd,OVMF_VARS.fd} $(RULEDIR) |
| """, |
| visibility = ["//visibility:public"], |
| ) |