Skip to content

Commit 5552dff

Browse files
committed
only rebuild if APPS_TO_EMBED changes
1 parent a7731f9 commit 5552dff

File tree

1 file changed

+16
-11
lines changed
  • examples/tutorials/dynamic-apps-and-policies/app_loader

1 file changed

+16
-11
lines changed

examples/tutorials/dynamic-apps-and-policies/app_loader/Makefile

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,25 @@ APPS_TO_EMBED := \
2222
2323
BINARY_COUNT = $(words $(APPS_TO_EMBED))
2424
AUTOGEN_HEADER = loadable_binaries.h
25-
APPS_HASH := build/apps_to_embed
26-
.PHONY: $(APPS_HASH)
2725
main.c: $(AUTOGEN_HEADER)
2826

29-
$(APPS_HASH):
30-
@mkdir -p $(dir $@)
31-
@echo '$(APPS_TO_EMBED)' > $@.tmp
32-
@if [ ! -f $@ ] || ! cmp -s $@ $@.tmp; then \
33-
mv $@.tmp $@; \
34-
else \
35-
rm $@.tmp; \
36-
fi
3727

38-
$(AUTOGEN_HEADER): $(APPS_HASH)
28+
build:
29+
$(TRACE_DIR)
30+
@mkdir -p $@
31+
32+
# Ensure we rebuild if `APPS_TO_EMBED` changes.
33+
.PHONY: FORCE
34+
define DEPENDABLE_VAR
35+
build/$(1): build
36+
@printf '%s' "$($(1))" > build/$(1)
37+
ifneq ("$(shell cat build/$(1) 2>/dev/null)","$($(1))")
38+
build/$(1): FORCE
39+
endif
40+
endef
41+
$(eval $(call DEPENDABLE_VAR,APPS_TO_EMBED))
42+
43+
$(AUTOGEN_HEADER): build/APPS_TO_EMBED
3944
@echo "// \`app_loader\`'s makefile autogenerates this file. Do not edit manually." > $(AUTOGEN_HEADER)
4045
@echo "#pragma once" >> $(AUTOGEN_HEADER)
4146
@echo "" >> $(AUTOGEN_HEADER)

0 commit comments

Comments
 (0)