Hi Bruno,

On 3/21/24 2:26 PM, Bruno Haible wrote:
>                 if extra_files != [''] and extra_files:
>                     if extra_files != ['']:
>                 if buildaux_files != ['']:
> 
> Why does [''] represent the empty set/list here? Is something wrong with the
> function filter_filelist?

Yes, sorry for the confusion. I thought that it looked strange as well
and probably should have commented about it in the original email.

My goal was to fix GLModule.getAutomakeSnippet_Unconditional without
making modifications to other existing code. Because I thought these
checks looked strange, I have confirmed they are necessary. This is
because filter_filelist can return a non-empty list with an empty
string:

print(bool([]))
False
print(bool(['']))
True

Therefore when changing the condition to:

    if extra_files:

We see lines like this in lib/gnulib.mk.in:

+## begin gnulib module alignasof
+ifeq (,$(OMIT_GNULIB_MODULE_alignasof))
+
+
+EXTRA_DIST += 
+
+endif
+## end   gnulib module alignasof

The extra_files != [''] prevents this. They were there before this
patch so I left it without changing filter_filelist.

> Prepending $(top_srcdir)/build-aux/ *after* having concatenated the file 
> names?
> I would have expected that the code prepends $(top_srcdir)/build-aux/ to each
> file name, *before* combining the results to a single string.

Ah, yes sorry. Good catch. I was trying to fix the Emacs Makefile
which worked without this code. Therefore, I only had a *very* brief
glance over it. You are right though, it is incorrect. Thanks!

Collin

Reply via email to