summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJan Setje-Eilers <jan.setjeeilers@oracle.com>2025-02-03 20:15:09 -0500
committerPeter Jones <pjones@redhat.com>2025-02-05 09:10:35 -0500
commit5ae408aede0a410f28de92a5fdc5ce406f2c4515 (patch)
treef565bbdf4f77bf06fe3b8da5e4db1ba95229e422 /Makefile
parent743f3fa0e40c3971b3ea9c5eb7724cbf2a91c282 (diff)
downloadefi-boot-shim-5ae408aede0a410f28de92a5fdc5ce406f2c4515.tar.gz
efi-boot-shim-5ae408aede0a410f28de92a5fdc5ce406f2c4515.zip
Generate and use generated_sbat_var_defs.h
Build changes to generate include/generated_sbat_var_defs.h from SbatLevel_Variable.txt and use that header file. From here on forward SbatLevel_Variable.txt should be the only place a new revocation needs to be recorded. Signed-off-by: Jan Setje-Eilers <Jan.SetjeEilers@oracle.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile15
1 files changed, 11 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 266e764c..97a35b7c 100644
--- a/Makefile
+++ b/Makefile
@@ -38,8 +38,6 @@ CFLAGS += -DENABLE_SHIM_CERT
else
TARGETS += $(MMNAME) $(FBNAME)
endif
-# This is temporary and will go away soon
-TARGETS += generate_sbat_var_defs
OBJS = shim.o globals.o mok.o netboot.o cert.o dp.o replacements.o tpm.o version.o errlog.o sbat.o sbat_data.o sbat_var.o pe.o pe-relocate.o httpboot.o csv.o load-options.o
KEYS = shim_cert.h ocsp.* ca.* shim.crt shim.csr shim.p12 shim.pem shim.key shim.cer
ORIG_SOURCES = shim.c globals.c mok.c netboot.c dp.c replacements.c tpm.c errlog.c sbat.c pe.c pe-relocate.c httpboot.c shim.h version.h $(wildcard include/*.h) cert.S sbat_var.S
@@ -102,6 +100,7 @@ shim.crt:
shim.cer: shim.crt
$(OPENSSL) x509 -outform der -in $< -out $@
+
.NOTPARALLEL: shim_cert.h
shim_cert.h: shim.cer
echo "static UINT8 shim_cert[] __attribute__((__unused__)) = {" > $@
@@ -123,8 +122,12 @@ shim.o: $(SOURCES)
ifneq ($(origin ENABLE_SHIM_CERT),undefined)
shim.o: shim_cert.h
endif
+# Both of these need to be here so that when TOPDIR is unset, make isn't trying
+# to match against ./sbat_var.S, which isn't a target it will ever try to build.
+$(TOPDIR)/sbat_var.S sbat_var.S: generated_sbat_var_defs.h
shim.o: $(wildcard $(TOPDIR)/*.h)
+
sbat.%.csv : data/sbat.%.csv
$(DOS2UNIX) $(D2UFLAGS) $< $@
tail -c1 $@ | read -r _ || echo >> $@ # ensure a trailing newline
@@ -193,6 +196,10 @@ post-process-pe : $(TOPDIR)/post-process-pe.c
generate_sbat_var_defs: $(TOPDIR)/generate_sbat_var_defs.c
$(HOSTCC) -std=gnu11 -Og -g3 -Wall -Wextra -Wno-missing-field-initializers -Werror -o $@ $<
+.NOTPARALLEL: generated_sbat_var_defs.h
+generated_sbat_var_defs.h: generate_sbat_var_defs
+ ./generate_sbat_var_defs $(TOPDIR) > $@
+
buildid : $(TOPDIR)/buildid.c
$(HOSTCC) -I/usr/include -Og -g3 -Wall -Werror -Wextra -o $@ $< -lelf
@@ -317,7 +324,7 @@ fuzz fuzz-clean fuzz-coverage fuzz-lto :
EFI_INCLUDES="$(EFI_INCLUDES)" \
fuzz-clean $@
-test test-clean test-coverage test-lto :
+test test-clean test-coverage test-lto : generated_sbat_var_defs.h
@make -f $(TOPDIR)/include/test.mk \
COMPILER="$(COMPILER)" \
CROSS_COMPILE="$(CROSS_COMPILE)" \
@@ -361,7 +368,7 @@ clean-lib-objs:
clean-shim-objs:
@rm -rvf $(TARGET) *.o $(SHIM_OBJS) $(MOK_OBJS) $(FALLBACK_OBJS) $(KEYS) certdb $(BOOTCSVNAME)
@rm -vf *.debug *.so *.efi *.efi.* *.tar.* version.c buildid post-process-pe compile_commands.json
- @rm -vf generate_sbat_var_defs
+ @rm -vf generate_sbat_var_defs generated_sbat_var_defs.h
@rm -vf Cryptlib/*.[oa] Cryptlib/*/*.[oa]
@if [ -d .git ] ; then git clean -f -d -e 'Cryptlib/OpenSSL/*'; fi