The tools/generate-configlist.sh script generates two files:
* config-list.h
* config-list.h.d
The former is included by the source code and the latter defines on
which files the former depends.
The contents of `config-list.h.d` consists of two sections:
config-list.h: Documentation/config.adoc
config-list.h: Documentation/git-config.adoc
config-list.h: Documentation/config/add.adoc
config-list.h: Documentation/config/advice.adoc
config-list.h: Documentation/config/alias.adoc
config-list.h: Documentation/config/am.adoc
config-list.h: Documentation/config/apply.adoc
...
This first section actually defines on which individual files
`config-list.h` depends and thus needs to be rebuild if one of those
changes.
And the second section contains content like:
Documentation/config.adoc:
Documentation/git-config.adoc:
Documentation/config/add.adoc:
Documentation/config/advice.adoc:
Documentation/config/alias.adoc:
Documentation/config/am.adoc:
Documentation/config/apply.adoc:
...
These rules exist to ensure Make won't fail with the following error if
one of the .adoc files is renamed or removed:
make: *** No rule to make target 'Documentation/config.adoc', needed by 'config-list.h'.
With the no-op targets defined in `config-list.h.d`, Make knows there's
no work to be done to generate these files, so it doesn't error out if
it doesn't exist.
For the Makefile build system this works great. And since
|
||
|---|---|---|
| .. | ||
| coccinelle | ||
| update-unicode | ||
| README.md | ||
| check-builtins.sh | ||
| coverage-diff.sh | ||
| detect-compiler | ||
| generate-cmdlist.sh | ||
| generate-configlist.sh | ||
| generate-hooklist.sh | ||
| generate-perl.sh | ||
| generate-python.sh | ||
| generate-script.sh | ||
| meson.build | ||
| precompiled.h | ||
README.md
Developer Tooling
This directory is expected to contain all sorts of tooling that relates to our build infrastructure. This includes scripts and inputs required by our build systems, but also scripts that developers are expected to run manually.