[coreboot-gerrit] Change in libhwbase[master]: Makefile: Revise support for generated sources
Nico Huber (Code Review)
gerrit at coreboot.org
Sun Jun 17 18:03:13 CEST 2018
Nico Huber has uploaded this change for review. ( https://review.coreboot.org/27139
Change subject: Makefile: Revise support for generated sources
......................................................................
Makefile: Revise support for generated sources
Handle generated source files more independently from normal source
files. This allows mixing of generated specs with existing source
bodies.
Change-Id: I5479c436f39088ae9d0ebddf9a97446be0f191f3
Signed-off-by: Nico Huber <nico.h at gmx.de>
---
M Makefile
M Makefile.proof
2 files changed, 16 insertions(+), 9 deletions(-)
git pull ssh://review.coreboot.org:29418/libhwbase refs/changes/39/27139/1
diff --git a/Makefile b/Makefile
index 09881e5..a25deb6 100644
--- a/Makefile
+++ b/Makefile
@@ -190,12 +190,16 @@
# *-srcs. Extract / filter all specification files that have a matching
# body (.adb) file here (specifications without a body are valid sources
# in Ada).
-$(name)-extra-specs := \
+# $1 source list
+filter_extra_specs = \
$(filter \
- $(addprefix %/,$(patsubst %.adb,%.ads,$(notdir $(filter %.adb,$($(name)-srcs))))), \
- $(filter %.ads,$($(name)-srcs) $($(name)-gens)))
+ $(addprefix %/,$(patsubst %.adb,%.ads, \
+ $(notdir $(filter %.adb,$($(name)-srcs) $($(name)-gens))))), \
+ $(filter %.ads,$(1)))
+$(name)-extra-specs := $(call filter_extra_specs,$($(name)-srcs))
$(name)-srcs := $(filter-out $($(name)-extra-specs),$($(name)-srcs))
-$(name)-gens := $(filter-out $($(name)-extra-specs),$($(name)-gens))
+$(name)-extra-gens := $(call filter_extra_specs,$($(name)-gens))
+$(name)-gens := $(filter-out $($(name)-extra-gens),$($(name)-gens))
$(name)-objs := $(call src-to-obj,,$($(name)-srcs) $($(name)-gens))
$(name)-alis := $(call src-to-ali,,$($(name)-srcs) $($(name)-gens))
@@ -216,8 +220,8 @@
$(if $(wildcard $(1)),\
$(filter \
$(addprefix %/,$(shell sed -ne's/^D \([^\t]\+\).*$$/\1/p' $(1) 2>/dev/null)), \
- $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs)), \
- $($(name)-gens))
+ $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs) $($(name)-extra-gens)), \
+ $($(name)-gens) $($(name)-extra-gens))
# Adds dependency rules
# $1 source file
@@ -283,7 +287,7 @@
$(shell mkdir -p $(alldirs))
$(name)-install-srcs = $(sort \
- $($(name)-extra-specs) $(filter %.ads,$($(name)-srcs) $($(name)-gens)) \
+ $($(name)-extra-specs) $($(name)-extra-gens) $(filter %.ads,$($(name)-srcs) $($(name)-gens)) \
$(foreach adb,$(filter %.adb,$($(name)-srcs)), \
$(shell grep -q '^U .*\<BN\>' $(call src-to-ali,,$(adb)) 2>/dev/null && echo $(adb))))
diff --git a/Makefile.proof b/Makefile.proof
index 45523c3..3d30c2b 100644
--- a/Makefile.proof
+++ b/Makefile.proof
@@ -17,7 +17,8 @@
$(name)-exclude-srcs = \
$(filter-out \
- $(sort $(notdir $($(name)-proof) $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs))), \
+ $(sort $(notdir $($(name)-proof) \
+ $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs) $($(name)-extra-gens))), \
$(sort $(notdir \
$(wildcard $(addsuffix *.ad[sb],$($(name)-proof-dirs))))))
@@ -62,7 +63,9 @@
echo ' for Object_Dir use external ("obj", "build");' >>$@
echo 'end lib$(name);' >>$@
-$(obj)/gnatprove/gnatprove.out: $(gpr) $$($(name)-srcs) $$($(name)-gens) $(obj)/proofmode
+$(obj)/gnatprove/gnatprove.out: $$($(name)-srcs) $$($(name)-gens)
+$(obj)/gnatprove/gnatprove.out: $$($(name)-extra-specs) $$($(name)-extra-gens)
+$(obj)/gnatprove/gnatprove.out: $(gpr) $(obj)/proofmode
gnatprove -P$< $(SPARKFLAGS) -Xobj=$(abspath $(obj))
proof:
--
To view, visit https://review.coreboot.org/27139
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: libhwbase
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5479c436f39088ae9d0ebddf9a97446be0f191f3
Gerrit-Change-Number: 27139
Gerrit-PatchSet: 1
Gerrit-Owner: Nico Huber <nico.h at gmx.de>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20180617/8e98468a/attachment.html>
More information about the coreboot-gerrit
mailing list