+2019-11-29 Tim Rühsen <tim.ruehsen@gmx.de>
+
+ gnulib-tool.py: Fix libgnu_la_LDFLAGS section in generated Makefile.am.
+ Reported by Dagobert Michelsen <dam@opencsw.org> in
+ <https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00086.html>.
+ * pygnulib/GLModuleSystem.py (getLink): Don't join the parts. Return a
+ list of strings instead of one string.
+ * pygnulib/GLEmiter.py (lib_Makefile_am): Adapt accordingly.
+ * pygnulib/GLImport.py (execute): Likewise.
+
2019-11-27 Bruno Haible <bruno@clisp.org>
openpty, forkpty: Fix build error on Solaris 11.4.
emit += '%s_%s_LDFLAGS += -no-undefined\n' % (libname, libext)
# Synthesize an ${libname}_${libext}_LDFLAGS augmentation by combining
# the link dependencies of all modules.
- listing = list()
links = [module.getLink()
for module in modules if not module.isTests()]
+ ulinks = list()
for link in links:
- link = constants.nlremove(link)
- position = link.find(' when linking with libtool')
- if position != -1:
- link = link[:position]
- listing += [link]
- listing = sorted(set([link for link in listing if link != '']))
- for link in listing:
+ for lib in link:
+ lib = constants.nlremove(lib)
+ position = lib.find(' when linking with libtool')
+ if position != -1:
+ lib = lib[:position]
+ ulinks += [lib]
+ ulinks = sorted(set(ulinks))
+ for link in ulinks:
emit += '%s_%s_LDFLAGS += %s\n' % (libname, libext, link)
emit += '\n'
if pobase:
# Get link directives.
links = [module.getLink() for module in self.moduletable['main']]
- links = sorted(set([link for link in links if link.strip()]))
- if links:
+ ulinks = list()
+ for link in links:
+ for lib in link:
+ ulinks += [lib]
+ ulinks = sorted(set(ulinks))
+ if ulinks:
print('''
You may need to use the following Makefile variables when linking.
Use them in <program>_LDADD when linking a program, or
in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library.''')
- for link in links:
+ for link in ulinks:
print(' %s' % link)
# Print reminders.
Return link directive.'''
section = 'Link:'
if 'link' not in self.cache:
- if section not in self.content:
- result = string()
- else: # if section in self.content
+ parts = list()
+ if section in self.content:
snippet = self.content.split(section)[-1]
snippet = snippet.replace('\r\n', '\n')
lines = ['%s\n' % line for line in snippet.split('\n')]
- parts = list()
for line in lines:
regex = '^(Description|Comment|Status|Notice|Applicability|'
regex += 'Files|Depends-on|configure\\.ac-early|configure\\.ac|'
break
parts += [line]
parts = [part.strip() for part in parts if part.strip()]
- result = ''.join(parts)
- self.cache['link'] = result
+ # result = ' '.join(parts)
+ self.cache['link'] = parts
return(self.cache['link'])
def getLicense(self):