Subject: Re: [PATCH v5] build: regenerate config-list.h when Documentation changes

From: Patrick Steinhardt <[email-masked]>
Date: Thu, 19 Feb 2026 14:56:59 +0100

On Wed, Feb 18, 2026 at 09:37:59AM -0500, D. Ben Knoble wrote:
> diff --git a/generate-configlist.sh b/generate-configlist.sh
> index 75c39ade20..39ac8845ab 100755
> --- a/generate-configlist.sh
> +++ b/generate-configlist.sh
> @@ -36,3 +37,11 @@ print_config_list () {
>  	echo
>  	print_config_list
>  } >"$OUTPUT"
> +
> +if test -n "$DEPFILE"

We could arguably drop conditional now that both the Makefile and Meson
pass that argument, but I don't mind it much.

> +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: /" >"$DEPFILE"
> +fi

Okay, so we first quote the target output file once, and then we quote
the sources with a single call to sed(1), too. To not perform quoting
of the target output file twice we don't include it in the printf call,
but instead prepend it to each line.

Looks reasonable to me, and we spawn at most two sed(1) processes. Nice.

> diff --git a/meson.build b/meson.build
> index 762e2d0fc0..74b459b004 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -720,11 +720,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,
>  )
> 
> Diff-intervalle contre v4 :
> 1:  e2f4e1f9ba < -:  ---------- completion: add stash import, export

The range-diff is a bit broken, but that doesn't really matter much.
Overall this patch looks good to me, thanks!

Patrick