aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2026-03-04 10:53:00 -0800
committerJunio C Hamano <gitster@pobox.com>2026-03-04 10:53:00 -0800
commitefd5fdbcf9efce78eb536d440dcf42379d9b3197 (patch)
tree0875d4d17684040a2aa5e504f6fbd5f9c2f8cf29
parentbcc2fc2311da726e1da3c0eb0b539a802f8589c0 (diff)
parentebeea3c471c82638170764989d57d9dc24cc7450 (diff)
downloadgit-efd5fdbcf9efce78eb536d440dcf42379d9b3197.tar.xz
Merge branch 'dk/meson-regen-config-list'
Fix dependency screw-up in meson-based builds. * dk/meson-regen-config-list: build: regenerate config-list.h when Documentation changes
-rw-r--r--Makefile5
-rwxr-xr-xgenerate-configlist.sh16
-rw-r--r--meson.build5
3 files changed, 22 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index b5231dff66..f3264d0a37 100644
--- a/Makefile
+++ b/Makefile
@@ -2688,9 +2688,10 @@ $(BUILT_INS): git$X
cp $< $@
config-list.h: generate-configlist.sh
+ @mkdir -p .depend
+ $(QUIET_GEN)$(SHELL_PATH) ./generate-configlist.sh . $@ .depend/config-list.h.d
-config-list.h: Documentation/*config.adoc Documentation/config/*.adoc
- $(QUIET_GEN)$(SHELL_PATH) ./generate-configlist.sh . $@
+-include .depend/config-list.h.d
command-list.h: generate-cmdlist.sh command-list.txt
diff --git a/generate-configlist.sh b/generate-configlist.sh
index 75c39ade20..e28054f9e0 100755
--- a/generate-configlist.sh
+++ b/generate-configlist.sh
@@ -2,10 +2,11 @@
SOURCE_DIR="$1"
OUTPUT="$2"
+DEPFILE="$3"
if test -z "$SOURCE_DIR" || ! test -d "$SOURCE_DIR" || test -z "$OUTPUT"
then
- echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT>"
+ echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT> [<DEPFILE>]"
exit 1
fi
@@ -36,3 +37,16 @@ EOF
echo
print_config_list
} >"$OUTPUT"
+
+if test -n "$DEPFILE"
+then
+ QUOTED_OUTPUT="$(printf '%s\n' "$OUTPUT" | sed 's,[&/\],\\&,g')"
+ {
+ printf '%s\n' "$SOURCE_DIR"/Documentation/*config.adoc \
+ "$SOURCE_DIR"/Documentation/config/*.adoc |
+ sed -e 's/[# ]/\\&/g' -e "s/^/$QUOTED_OUTPUT: /"
+ printf '%s:\n' "$SOURCE_DIR"/Documentation/*config.adoc \
+ "$SOURCE_DIR"/Documentation/config/*.adoc |
+ sed -e 's/[# ]/\\&/g'
+ } >"$DEPFILE"
+fi
diff --git a/meson.build b/meson.build
index 6f155beafa..4b536e0124 100644
--- a/meson.build
+++ b/meson.build
@@ -722,11 +722,14 @@ endif
builtin_sources += custom_target(
output: 'config-list.h',
+ depfile: 'config-list.h.d',
+ depend_files: [ 'generate-configlist.sh' ],
command: [
shell,
- meson.current_source_dir() + '/generate-configlist.sh',
+ meson.current_source_dir() / 'generate-configlist.sh',
meson.current_source_dir(),
'@OUTPUT@',
+ '@DEPFILE@',
],
env: script_environment,
)