<p>Nico Huber has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/27139">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Makefile: Revise support for generated sources<br><br>Handle generated source files more independently from normal source<br>files. This allows mixing of generated specs with existing source<br>bodies.<br><br>Change-Id: I5479c436f39088ae9d0ebddf9a97446be0f191f3<br>Signed-off-by: Nico Huber <nico.h@gmx.de><br>---<br>M Makefile<br>M Makefile.proof<br>2 files changed, 16 insertions(+), 9 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/libhwbase refs/changes/39/27139/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/Makefile b/Makefile</span><br><span>index 09881e5..a25deb6 100644</span><br><span>--- a/Makefile</span><br><span>+++ b/Makefile</span><br><span>@@ -190,12 +190,16 @@</span><br><span> # *-srcs. Extract / filter all specification files that have a matching</span><br><span> # body (.adb) file here (specifications without a body are valid sources</span><br><span> # in Ada).</span><br><span style="color: hsl(0, 100%, 40%);">-$(name)-extra-specs := \</span><br><span style="color: hsl(120, 100%, 40%);">+# $1 source list</span><br><span style="color: hsl(120, 100%, 40%);">+filter_extra_specs = \</span><br><span>     $(filter \</span><br><span style="color: hsl(0, 100%, 40%);">-              $(addprefix %/,$(patsubst %.adb,%.ads,$(notdir $(filter %.adb,$($(name)-srcs))))), \</span><br><span style="color: hsl(0, 100%, 40%);">-            $(filter %.ads,$($(name)-srcs) $($(name)-gens)))</span><br><span style="color: hsl(120, 100%, 40%);">+              $(addprefix %/,$(patsubst %.adb,%.ads, \</span><br><span style="color: hsl(120, 100%, 40%);">+                      $(notdir $(filter %.adb,$($(name)-srcs) $($(name)-gens))))), \</span><br><span style="color: hsl(120, 100%, 40%);">+                $(filter %.ads,$(1)))</span><br><span style="color: hsl(120, 100%, 40%);">+$(name)-extra-specs := $(call filter_extra_specs,$($(name)-srcs))</span><br><span> $(name)-srcs := $(filter-out $($(name)-extra-specs),$($(name)-srcs))</span><br><span style="color: hsl(0, 100%, 40%);">-$(name)-gens := $(filter-out $($(name)-extra-specs),$($(name)-gens))</span><br><span style="color: hsl(120, 100%, 40%);">+$(name)-extra-gens := $(call filter_extra_specs,$($(name)-gens))</span><br><span style="color: hsl(120, 100%, 40%);">+$(name)-gens := $(filter-out $($(name)-extra-gens),$($(name)-gens))</span><br><span> </span><br><span> $(name)-objs := $(call src-to-obj,,$($(name)-srcs) $($(name)-gens))</span><br><span> $(name)-alis := $(call src-to-ali,,$($(name)-srcs) $($(name)-gens))</span><br><span>@@ -216,8 +220,8 @@</span><br><span>  $(if $(wildcard $(1)),\</span><br><span>              $(filter \</span><br><span>                   $(addprefix %/,$(shell sed -ne's/^D \([^\t]\+\).*$$/\1/p' $(1) 2>/dev/null)), \</span><br><span style="color: hsl(0, 100%, 40%);">-                      $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs)), \</span><br><span style="color: hsl(0, 100%, 40%);">-              $($(name)-gens))</span><br><span style="color: hsl(120, 100%, 40%);">+                      $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs) $($(name)-extra-gens)), \</span><br><span style="color: hsl(120, 100%, 40%);">+              $($(name)-gens) $($(name)-extra-gens))</span><br><span> </span><br><span> # Adds dependency rules</span><br><span> # $1 source file</span><br><span>@@ -283,7 +287,7 @@</span><br><span> $(shell mkdir -p $(alldirs))</span><br><span> </span><br><span> $(name)-install-srcs = $(sort \</span><br><span style="color: hsl(0, 100%, 40%);">-  $($(name)-extra-specs) $(filter %.ads,$($(name)-srcs) $($(name)-gens)) \</span><br><span style="color: hsl(120, 100%, 40%);">+      $($(name)-extra-specs) $($(name)-extra-gens) $(filter %.ads,$($(name)-srcs) $($(name)-gens)) \</span><br><span>       $(foreach adb,$(filter %.adb,$($(name)-srcs)), \</span><br><span>             $(shell grep -q '^U .*\<BN\>' $(call src-to-ali,,$(adb)) 2>/dev/null && echo $(adb))))</span><br><span> </span><br><span>diff --git a/Makefile.proof b/Makefile.proof</span><br><span>index 45523c3..3d30c2b 100644</span><br><span>--- a/Makefile.proof</span><br><span>+++ b/Makefile.proof</span><br><span>@@ -17,7 +17,8 @@</span><br><span> </span><br><span> $(name)-exclude-srcs = \</span><br><span>         $(filter-out \</span><br><span style="color: hsl(0, 100%, 40%);">-          $(sort $(notdir $($(name)-proof) $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs))), \</span><br><span style="color: hsl(120, 100%, 40%);">+          $(sort $(notdir $($(name)-proof) \</span><br><span style="color: hsl(120, 100%, 40%);">+                    $($(name)-srcs) $($(name)-gens) $($(name)-extra-specs) $($(name)-extra-gens))), \</span><br><span>            $(sort $(notdir \</span><br><span>                    $(wildcard $(addsuffix *.ad[sb],$($(name)-proof-dirs))))))</span><br><span> </span><br><span>@@ -62,7 +63,9 @@</span><br><span>   echo '   for Object_Dir use external ("obj", "build");'     >>$@</span><br><span>   echo 'end lib$(name);'                                  >>$@</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-$(obj)/gnatprove/gnatprove.out: $(gpr) $$($(name)-srcs) $$($(name)-gens) $(obj)/proofmode</span><br><span style="color: hsl(120, 100%, 40%);">+$(obj)/gnatprove/gnatprove.out: $$($(name)-srcs) $$($(name)-gens)</span><br><span style="color: hsl(120, 100%, 40%);">+$(obj)/gnatprove/gnatprove.out: $$($(name)-extra-specs) $$($(name)-extra-gens)</span><br><span style="color: hsl(120, 100%, 40%);">+$(obj)/gnatprove/gnatprove.out: $(gpr) $(obj)/proofmode</span><br><span>  gnatprove -P$< $(SPARKFLAGS) -Xobj=$(abspath $(obj))</span><br><span> </span><br><span> proof:</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/27139">change 27139</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/27139"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: libhwbase </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I5479c436f39088ae9d0ebddf9a97446be0f191f3 </div>
<div style="display:none"> Gerrit-Change-Number: 27139 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Nico Huber <nico.h@gmx.de> </div>