aboutsummaryrefslogtreecommitdiff
path: root/Makerules
diff options
context:
space:
mode:
Diffstat (limited to 'Makerules')
-rw-r--r--Makerules27
1 files changed, 18 insertions, 9 deletions
diff --git a/Makerules b/Makerules
index dc5f25ead0..9bf62c6cf6 100644
--- a/Makerules
+++ b/Makerules
@@ -276,22 +276,31 @@ ifndef sysd-rules-done
no_deps=t
endif
-# Generate version maps.
+# Generate version maps, but wait until sysdep-subdirs is known
+ifdef sysd-dirs-done
ifeq ($(versioning),yes)
-ifndef no_deps
-include $(common-objpfx)sysd-versions
$(addprefix $(common-objpfx),$(version-maps)): $(common-objpfx)sysd-versions
-generated += $(version-maps)
+common-generated += $(version-maps) sysd-versions
+ifndef avoid-generated
+ifneq ($(sysd-versions-subdirs),$(all-subdirs) $(config-sysdirs))
+sysd-versions-force = FORCE
+FORCE:
+endif
$(common-objpfx)sysd-versions: $(..)Versions.def $(..)scripts/versions.awk \
$(wildcard $(all-subdirs:%=$(..)%/Versions)) \
- $(wildcard $(+sysdep_dirs:%=%/Versions))
- $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
- -v move_if_change='$(move-if-change)' \
- -f $(filter-out $<,$^) > $@T
+ $(wildcard $(sysdirs:%=%/Versions)) \
+ $(sysd-versions-force)
+ { echo 'sysd-versions-subdirs = $(all-subdirs) $(config-sysdirs)' ; \
+ $(AWK) -v buildroot=$(common-objpfx) -v defsfile=$< \
+ -v move_if_change='$(move-if-change)' \
+ -f $(filter-out $< $(sysd-versions-force),$^); \
+ } > $@T
mv -f $@T $@
-endif
-endif
+endif # avoid-generated
+endif # $(versioning) = yes
+endif # sysd-dirs-done
ifndef compile-command.S
compile-command.S = $(compile.S) $(OUTPUT_OPTION)