Hi Bruno,

On 3/10/24 5:13 AM, Bruno Haible wrote:
>   automake_options = {x for y in configure_ac_automake_options for x in 
> y.split()}

I've attached the fixed patch. The only change is turning this line
to:

    automake_options = { x
                         for y in configure_ac_automake_options
                         for x in y.split() }

I would like to double check the regular expression I used:

    pattern = re.compile(r'^.*AM_INIT_AUTOMAKE\([\[ ]*([^\]\)]*).*$', 
re.MULTILINE)

Compared to the sed one:

    s,^.*AM_INIT_AUTOMAKE([[ ]*\([^])]*\).*$,\1,p

But I did not do it this patch since it would make the changes harder
to follow.

Collin
From c0772b3fe45a61dc686ce945e6decfb7ff4a84c4 Mon Sep 17 00:00:00 2001
From: Collin Funk <collin.fu...@gmail.com>
Date: Sun, 10 Mar 2024 21:50:59 -0700
Subject: [PATCH 2/2] gnulib-tool.py: Follow gnulib-tool changes, part 52.

Follow gnulib-tool change
2021-12-15  Bruno Haible  <br...@clisp.org>
automake-subdir support: Look for 'subdir-objects' also in configure.ac.

* pygnulib/GLImport.py (GLImport.__init__): Check for 'subdir-objects'
in the AM_INIT_AUTOMAKE macro of configure.ac.
---
 ChangeLog            |  9 +++++++++
 gnulib-tool.py.TODO  | 11 -----------
 pygnulib/GLImport.py | 14 ++++++++++++--
 3 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 324e0bc04f..34323c66e8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2024-03-10  Collin Funk  <collin.fu...@gmail.com>
+
+	gnulib-tool.py: Follow gnulib-tool changes, part 52.
+	Follow gnulib-tool change
+	2021-12-15  Bruno Haible  <br...@clisp.org>
+	automake-subdir support: Look for 'subdir-objects' also in configure.ac.
+	* pygnulib/GLImport.py (GLImport.__init__): Check for 'subdir-objects'
+	in the AM_INIT_AUTOMAKE macro of configure.ac.
+
 2024-03-10  Bruno Haible  <br...@clisp.org>
 
 	gnulib-tool.py: Tweak last commit.
diff --git a/gnulib-tool.py.TODO b/gnulib-tool.py.TODO
index 51e6cd9e18..e6c94c8bb8 100644
--- a/gnulib-tool.py.TODO
+++ b/gnulib-tool.py.TODO
@@ -305,17 +305,6 @@ Date:   Sun Dec 19 12:49:16 2021 +0100
 
 --------------------------------------------------------------------------------
 
-commit b8124d982f454b8526b5e11934a2f71faac2b600
-Author: Bruno Haible <br...@clisp.org>
-Date:   Wed Dec 15 21:49:41 2021 +0100
-
-    automake-subdir support: Look for 'subdir-objects' also in configure.ac.
-
-    * gnulib-tool: Look for the automake options also in the first argument
-    of the AM_INIT_AUTOMAKE invocation in configure.ac.
-
---------------------------------------------------------------------------------
-
 commit 4b071c115309079528db7b60e8d2ffb22b129088
 Author: Paul Eggert <egg...@cs.ucla.edu>
 Date:   Mon Apr 26 23:31:29 2021 -0700
diff --git a/pygnulib/GLImport.py b/pygnulib/GLImport.py
index 64a0bc9b13..de2961c55e 100644
--- a/pygnulib/GLImport.py
+++ b/pygnulib/GLImport.py
@@ -261,12 +261,22 @@ class GLImport(object):
 
         # Determine whether --automake-subdir is supported.
         if self.config['automake_subdir']:
-            found_subdir_objects = False
+            automake_options = set()
+            if self.config['destdir']:
+                pattern = re.compile(r'^.*AM_INIT_AUTOMAKE\([\[ ]*([^\]\)]*).*$', re.MULTILINE)
+                with open(self.config['configure_ac'], encoding='utf-8') as file:
+                    data = file.read()
+                configure_ac_automake_options = pattern.findall(data)
+                if configure_ac_automake_options:
+                    automake_options = { x
+                                         for y in configure_ac_automake_options
+                                         for x in y.split() }
+            found_subdir_objects = 'subdir-objects' in automake_options
             if self.config['destdir']:
                 base = self.config['destdir']
             else:
                 base = '.'
-            if isfile(joinpath(base, 'Makefile.am')):
+            if not found_subdir_objects and isfile(joinpath(base, 'Makefile.am')):
                 pattern = re.compile(r'^AUTOMAKE_OPTIONS[\t ]*=(.*)$', re.MULTILINE)
                 with open(joinpath(base, 'Makefile.am'), encoding='utf-8') as file:
                     data = file.read()
-- 
2.44.0

Reply via email to