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