mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 20:26:13 +02:00
kbuild: Use if_changed for font and splash .incbin rules
The generated .S files for fonts and splash screens use .incbin with the full prerequisite path. When building with O= this bakes an absolute path into the .S file. If the build directory is later used on a different machine (e.g. in a container), the assembler cannot find the source file. Follow the existing DTB convention: rename the object targets to use compound suffixes (.ttf.o, .bmp.o), switch the pattern rules from direct $(call cmd,...) to FORCE + $(call if_changed,...), and register the new suffixes with intermediate_targets so that kbuild loads their .cmd files. This lets if_changed detect when the recorded command (including source paths) has changed and regenerate the .S file automatically. The EFI rule is left unchanged since its prerequisite is a generated file in the build directory, like the DTB and DTBO rules. The intermediate_targets entries stay in scripts/Makefile.build rather than moving to scripts/Makefile.lib-u-boot, because that file is included before intermediate_targets is defined and 'targets' is ':=', so a '$(call intermediate_targets, ...)' inside it would expand to empty and silently drop the entries. To keep the upstream block untouched, the U-Boot additions go in a separate 'targets +=' block immediately below. Suggested-by: Rasmus Villemoes <ravi@prevas.dk> Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Rasmus Villemoes <ravi@prevas.dk>
This commit is contained in:
parent
24b99d2933
commit
09297182ad
@ -24,7 +24,7 @@ obj-$(CONFIG_$(PHASE_)PANEL) += panel-uclass.o
|
||||
obj-$(CONFIG_PANEL_HX8238D) += hx8238d.o
|
||||
obj-$(CONFIG_$(PHASE_)SIMPLE_PANEL) += simple_panel.o
|
||||
|
||||
obj-$(CONFIG_VIDEO_LOGO) += u_boot_logo.o
|
||||
obj-$(CONFIG_VIDEO_LOGO) += u_boot_logo.bmp.o
|
||||
obj-$(CONFIG_$(PHASE_)BMP) += bmp.o
|
||||
|
||||
endif
|
||||
|
||||
@ -3,8 +3,8 @@
|
||||
# (C) Copyright 2000-2007
|
||||
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
||||
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_NIMBUS) += nimbus_sans_l_regular.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_ANKACODER) += ankacoder_c75_r.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_RUFSCRIPT) += rufscript010.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_CANTORAONE) += cantoraone_regular.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_DEJAVU) += dejavu_mono.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_NIMBUS) += nimbus_sans_l_regular.ttf.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_ANKACODER) += ankacoder_c75_r.ttf.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_RUFSCRIPT) += rufscript010.ttf.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_CANTORAONE) += cantoraone_regular.ttf.o
|
||||
obj-$(CONFIG_CONSOLE_TRUETYPE_DEJAVU) += dejavu_mono.ttf.o
|
||||
|
||||
@ -440,6 +440,10 @@ targets += $(call intermediate_targets, .asn1.o, .asn1.c .asn1.h) \
|
||||
$(call intermediate_targets, .lex.o, .lex.c) \
|
||||
$(call intermediate_targets, .tab.o, .tab.c .tab.h)
|
||||
|
||||
# Added for U-Boot
|
||||
targets += $(call intermediate_targets, .ttf.o, .ttf.S) \
|
||||
$(call intermediate_targets, .bmp.o, .bmp.S)
|
||||
|
||||
# Build
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@ cmd_S_ttf= \
|
||||
echo '.balign 16'; \
|
||||
) > $@
|
||||
|
||||
$(obj)/%.S: $(src)/%.ttf
|
||||
$(call cmd,S_ttf)
|
||||
$(obj)/%.ttf.S: $(src)/%.ttf FORCE
|
||||
$(call if_changed,S_ttf)
|
||||
|
||||
# Splash logos
|
||||
# ---------------------------------------------------------------------------
|
||||
@ -40,8 +40,8 @@ cmd_S_splash= \
|
||||
echo '.balign 16'; \
|
||||
) > $@
|
||||
|
||||
$(obj)/%.S: $(src)/%.bmp
|
||||
$(call cmd,S_splash)
|
||||
$(obj)/%.bmp.S: $(src)/%.bmp FORCE
|
||||
$(call if_changed,S_splash)
|
||||
|
||||
# EFI applications
|
||||
# A Makefile target *.efi is built as EFI application.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user