| 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"], | 
 | ) |