Makefile: Warn if submodule status '+'-prefixed

A '+'-prefix means that the submodule is initialized and checked out, but a different commit is checked out.
If this is accidental then the user should run `git submodule update` to fix it.
If it is intentional (because e.g. the user is explicitly wanting to test Yosys with a different version of abc), then creating a new commit in Yosys to update the expected commit is also a valid solution.
This commit is contained in:
Krystine Sherwin 2025-02-18 11:25:04 +13:00
parent 38f858374c
commit b8777d7893
No known key found for this signature in database
1 changed files with 5 additions and 0 deletions

View File

@ -775,6 +775,11 @@ check-git-abc:
elif [ -f "$(YOSYS_SRC)/abc/.gitcommit" ] && ! grep -q '\$$Format:%[hH]\$$' "$(YOSYS_SRC)/abc/.gitcommit"; then \ elif [ -f "$(YOSYS_SRC)/abc/.gitcommit" ] && ! grep -q '\$$Format:%[hH]\$$' "$(YOSYS_SRC)/abc/.gitcommit"; then \
echo "'abc' comes from a tarball. Continuing."; \ echo "'abc' comes from a tarball. Continuing."; \
exit 0; \ exit 0; \
elif git -C "$(YOSYS_SRC)" submodule status abc 2>/dev/null | grep -q '^+'; then \
echo "'abc' submodule does not match expected commit."; \
echo "Run 'git submodule update' to check out the correct version."; \
echo "Note: If testing a different version of abc, call `git commit abc` in the Yosys source directory to update the expected commit."; \
exit 1; \
elif [ -f "$(YOSYS_SRC)/abc/.gitcommit" ] && grep -q '\$$Format:%[hH]\$$' "$(YOSYS_SRC)/abc/.gitcommit"; then \ elif [ -f "$(YOSYS_SRC)/abc/.gitcommit" ] && grep -q '\$$Format:%[hH]\$$' "$(YOSYS_SRC)/abc/.gitcommit"; then \
echo "Error: 'abc' is not configured as a git submodule."; \ echo "Error: 'abc' is not configured as a git submodule."; \
echo "To resolve this:"; \ echo "To resolve this:"; \