]> Savannah Git Hosting - gnulib.git/commit
Support several gnulib-tool invocations under the same configure.ac.
authorBruno Haible <bruno@clisp.org>
Sun, 11 Apr 2021 19:25:54 +0000 (21:25 +0200)
committerBruno Haible <bruno@clisp.org>
Sun, 11 Apr 2021 19:25:54 +0000 (21:25 +0200)
commit80a344e3237b878734295cbe696b7f1e4a8541f0
tree25fae0a848e083103ee2a721f8846d7991370cbd
parent8b857ed1ad1cbbf265d43016ee7ee93c7b7c6cb4
Support several gnulib-tool invocations under the same configure.ac.

Reported by Reuben Thomas <rrt@sc3d.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2021-04/msg00104.html>.

This is done by defining the Gnulib module indicator variables per
gnulib-tool invocation. So that a generated .h file is no longer
influenced by the set of modules used in other gnulib-tool invocations.

* gnulib-tool (func_compute_include_guard_prefix): Set
module_indicator_prefix.
(func_emit_lib_Makefile_am, func_emit_tests_Makefile_am): Use it to
modify $(GNULIB_*) variable references in the Automake snippets.
(func_emit_initmacro_start): Push macro definitions for GL_MACRO_PREFIX
and GL_MODULE_INDICATOR_PREFIX.
(func_emit_initmacro_end): Pop these macro definitions.
* pygnulib/GLConfig.py (GLConfig.getIncludeGuardPrefix): New method.
* pygnulib/GLEmiter.py (GLEmiter.initmacro_start): Push macro
definitions for GL_MACRO_PREFIX and GL_MODULE_INDICATOR_PREFIX.
(GLEmiter.initmacro_end): Pop these macro definitions.
(GLEmiter.lib_Makefile_am, GLEmiter.tests_Makefile_am): Use the module
indicator prefix to modify $(GNULIB_*) variable references in the
Automake snippets.
* m4/gnulib-common.m4 (gl_MODULE_INDICATOR_INIT_VARIABLE,
gl_MODULE_INDICATOR_SET_VARIABLE): Use the value of
GL_MODULE_INDICATOR_PREFIX.
* m4/arpa_inet_h.m4: Use new idiom for header files that contain
references to Gnulib module indicator variables:
- Define the main macro through AC_DEFUN_ONCE.
- Define a macro gl_*_H_REQUIRE_DEFAULTS that initializes the Gnulib
  module indicator variables (each prefixed with
  GL_MODULE_INDICATOR_PREFIX).
- Invoke this macro in the gl_*_MODULE_INDICATOR macro.
* m4/ctype.m4: Likewise.
* m4/dirent_h.m4: Likewise.
* m4/fcntl_h.m4: Likewise.
* m4/fnmatch_h.m4: Likewise.
* m4/glob_h.m4: Likewise.
* m4/iconv_h.m4: Likewise.
* m4/inttypes.m4: Likewise.
* m4/langinfo_h.m4: Likewise.
* m4/locale_h.m4: Likewise.
* m4/malloc_h.m4: Likewise.
* m4/math_h.m4: Likewise.
* m4/monetary_h.m4: Likewise.
* m4/netdb_h.m4: Likewise.
* m4/poll_h.m4: Likewise.
* m4/pthread_h.m4: Likewise.
* m4/pty_h.m4: Likewise.
* m4/sched_h.m4: Likewise.
* m4/search_h.m4: Likewise.
* m4/signal_h.m4: Likewise.
* m4/spawn_h.m4: Likewise.
* m4/stddef_h.m4: Likewise.
* m4/stdio_h.m4: Likewise.
* m4/stdlib_h.m4: Likewise.
* m4/string_h.m4: Likewise.
* m4/strings_h.m4: Likewise.
* m4/sys_file_h.m4: Likewise.
* m4/sys_ioctl_h.m4: Likewise.
* m4/sys_random_h.m4: Likewise.
* m4/sys_resource_h.m4: Likewise.
* m4/sys_select_h.m4: Likewise.
* m4/sys_socket_h.m4: Likewise.
* m4/sys_stat_h.m4: Likewise.
* m4/sys_time_h.m4: Likewise.
* m4/sys_times_h.m4: Likewise.
* m4/sys_types_h.m4: Likewise.
* m4/sys_uio_h.m4: Likewise.
* m4/sys_utsname_h.m4: Likewise.
* m4/sys_wait_h.m4: Likewise.
* m4/termios_h.m4: Likewise.
* m4/threads.m4: Likewise.
* m4/time_h.m4: Likewise.
* m4/uchar.m4: Likewise.
* m4/unistd_h.m4: Likewise.
* m4/utime_h.m4: Likewise.
* m4/wchar_h.m4: Likewise.
* m4/wctype_h.m4: Likewise.
* modules/arpa_inet (configure.ac): Invoke the macro
gl_*_H_REQUIRE_DEFAULTS explicitly.
* modules/ctype (configure.ac): Likewise.
* modules/dirent (configure.ac): Likewise.
* modules/fcntl-h (configure.ac): Likewise.
* modules/fnmatch-h (configure.ac): Likewise.
* modules/glob-h (configure.ac): Likewise.
* modules/iconv-h (configure.ac): Likewise.
* modules/inttypes-incomplete (configure.ac): Likewise.
* modules/langinfo (configure.ac): Likewise.
* modules/locale (configure.ac): Likewise.
* modules/malloc-h (configure.ac): Likewise.
* modules/math (configure.ac): Likewise.
* modules/monetary (configure.ac): Likewise.
* modules/netdb (configure.ac): Likewise.
* modules/poll-h (configure.ac): Likewise.
* modules/pthread-h (configure.ac): Likewise.
* modules/pty (configure.ac): Likewise.
* modules/sched (configure.ac): Likewise.
* modules/search (configure.ac): Likewise.
* modules/signal-h (configure.ac): Likewise.
* modules/spawn (configure.ac): Likewise.
* modules/stddef (configure.ac): Likewise.
* modules/stdio (configure.ac): Likewise.
* modules/stdlib (configure.ac): Likewise.
* modules/string (configure.ac): Likewise.
* modules/strings (configure.ac): Likewise.
* modules/sys_file (configure.ac): Likewise.
* modules/sys_ioctl (configure.ac): Likewise.
* modules/sys_random (configure.ac): Likewise.
* modules/sys_resource (configure.ac): Likewise.
* modules/sys_select (configure.ac): Likewise.
* modules/sys_socket (configure.ac): Likewise.
* modules/sys_stat (configure.ac): Likewise.
* modules/sys_time (configure.ac): Likewise.
* modules/sys_times (configure.ac): Likewise.
* modules/sys_types (configure.ac): Likewise.
* modules/sys_uio (configure.ac): Likewise.
* modules/sys_utsname (configure.ac): Likewise.
* modules/sys_wait (configure.ac): Likewise.
* modules/termios (configure.ac): Likewise.
* modules/threads-h (configure.ac): Likewise.
* modules/time (configure.ac): Likewise.
* modules/uchar (configure.ac): Likewise.
* modules/unistd (configure.ac): Likewise.
* modules/utime-h (configure.ac): Likewise.
* modules/wchar (configure.ac): Likewise.
* modules/wctype-h (configure.ac): Likewise.
* m4/af_alg.m4: Update after a macro name changed.
* m4/ctime.m4: Likewise.
* m4/explicit_bzero.m4: Likewise.
* m4/ffs.m4: Likewise.
* m4/ffsl.m4: Likewise.
* m4/ffsll.m4: Likewise.
* m4/flock.m4: Likewise.
* m4/fstat.m4: Likewise.
* m4/getaddrinfo.m4: Likewise.
* m4/getdomainname.m4: Likewise.
* m4/gettimeofday.m4: Likewise.
* m4/hostent.m4: Likewise.
* m4/ioctl.m4: Likewise.
* m4/localtime.m4: Likewise.
* m4/mbslen.m4: Likewise.
* m4/memchr.m4: Likewise.
* m4/memmem.m4: Likewise.
* m4/mempcpy.m4: Likewise.
* m4/memrchr.m4: Likewise.
* m4/mktime.m4: Likewise.
* m4/nanosleep.m4: Likewise.
* m4/passfd.m4: Likewise.
* m4/pselect.m4: Likewise.
* m4/rawmemchr.m4: Likewise.
* m4/select.m4: Likewise.
* m4/servent.m4: Likewise.
* m4/sigabbrev_np.m4: Likewise.
* m4/sigdescr_np.m4: Likewise.
* m4/sockpfaf.m4: Likewise.
* m4/stat.m4: Likewise.
* m4/stpcpy.m4: Likewise.
* m4/stpncpy.m4: Likewise.
* m4/strcase.m4: Likewise.
* m4/strcasestr.m4: Likewise.
* m4/strchrnul.m4: Likewise.
* m4/strdup.m4: Likewise.
* m4/strerror.m4: Likewise.
* m4/strerror_r.m4: Likewise.
* m4/strerrorname_np.m4: Likewise.
* m4/strftime-fixes.m4: Likewise.
* m4/strncat.m4: Likewise.
* m4/strndup.m4: Likewise.
* m4/strnlen.m4: Likewise.
* m4/strpbrk.m4: Likewise.
* m4/strptime.m4: Likewise.
* m4/strsep.m4: Likewise.
* m4/strsignal.m4: Likewise.
* m4/strstr.m4: Likewise.
* m4/strtok_r.m4: Likewise.
* m4/strverscmp.m4: Likewise.
* m4/time_r.m4: Likewise.
* m4/time_rz.m4: Likewise.
* m4/timegm.m4: Likewise.
* m4/timespec_get.m4: Likewise.
* m4/tzset.m4: Likewise.
* modules/accept (configure.ac): Likewise.
* modules/bind (configure.ac): Likewise.
* modules/connect (configure.ac): Likewise.
* modules/flock (configure.ac): Likewise.
* modules/getpeername (configure.ac): Likewise.
* modules/getsockname (configure.ac): Likewise.
* modules/getsockopt (configure.ac): Likewise.
* modules/listen (configure.ac): Likewise.
* modules/recv (configure.ac): Likewise.
* modules/recvfrom (configure.ac): Likewise.
* modules/send (configure.ac): Likewise.
* modules/sendto (configure.ac): Likewise.
* modules/setsockopt (configure.ac): Likewise.
* modules/shutdown (configure.ac): Likewise.
* modules/socket (configure.ac): Likewise. Use the
gl_*_H_REQUIRE_DEFAULTS macros.
* modules/nonblocking (configure.ac): Use the gl_*_H_REQUIRE_DEFAULTS
and gl_MODULE_INDICATOR_INIT_VARIABLE macros.
* modules/sigpipe (configure.ac): Likewise.
* modules/windows-stat-override (configure.ac): Likewise.
* m4/nonblocking.m4: Update a comment.
* m4/sigpipe.m4: Likewise.
174 files changed:
ChangeLog
gnulib-tool
m4/af_alg.m4
m4/arpa_inet_h.m4
m4/ctime.m4
m4/ctype.m4
m4/dirent_h.m4
m4/explicit_bzero.m4
m4/fcntl_h.m4
m4/ffs.m4
m4/ffsl.m4
m4/ffsll.m4
m4/flock.m4
m4/fnmatch_h.m4
m4/fstat.m4
m4/getaddrinfo.m4
m4/getdomainname.m4
m4/gettimeofday.m4
m4/glob_h.m4
m4/gnulib-common.m4
m4/hostent.m4
m4/iconv_h.m4
m4/inttypes.m4
m4/ioctl.m4
m4/langinfo_h.m4
m4/locale_h.m4
m4/localtime.m4
m4/malloc_h.m4
m4/math_h.m4
m4/mbslen.m4
m4/memchr.m4
m4/memmem.m4
m4/mempcpy.m4
m4/memrchr.m4
m4/mktime.m4
m4/monetary_h.m4
m4/nanosleep.m4
m4/netdb_h.m4
m4/nonblocking.m4
m4/passfd.m4
m4/poll_h.m4
m4/pselect.m4
m4/pthread_h.m4
m4/pty_h.m4
m4/rawmemchr.m4
m4/sched_h.m4
m4/search_h.m4
m4/select.m4
m4/servent.m4
m4/sigabbrev_np.m4
m4/sigdescr_np.m4
m4/signal_h.m4
m4/sigpipe.m4
m4/sockpfaf.m4
m4/spawn_h.m4
m4/stat.m4
m4/stddef_h.m4
m4/stdio_h.m4
m4/stdlib_h.m4
m4/stpcpy.m4
m4/stpncpy.m4
m4/strcase.m4
m4/strcasestr.m4
m4/strchrnul.m4
m4/strdup.m4
m4/strerror.m4
m4/strerror_r.m4
m4/strerrorname_np.m4
m4/strftime-fixes.m4
m4/string_h.m4
m4/strings_h.m4
m4/strncat.m4
m4/strndup.m4
m4/strnlen.m4
m4/strpbrk.m4
m4/strptime.m4
m4/strsep.m4
m4/strsignal.m4
m4/strstr.m4
m4/strtok_r.m4
m4/strverscmp.m4
m4/sys_file_h.m4
m4/sys_ioctl_h.m4
m4/sys_random_h.m4
m4/sys_resource_h.m4
m4/sys_select_h.m4
m4/sys_socket_h.m4
m4/sys_stat_h.m4
m4/sys_time_h.m4
m4/sys_times_h.m4
m4/sys_types_h.m4
m4/sys_uio_h.m4
m4/sys_utsname_h.m4
m4/sys_wait_h.m4
m4/termios_h.m4
m4/threads.m4
m4/time_h.m4
m4/time_r.m4
m4/time_rz.m4
m4/timegm.m4
m4/timespec_get.m4
m4/tzset.m4
m4/uchar.m4
m4/unistd_h.m4
m4/utime_h.m4
m4/wchar_h.m4
m4/wctype_h.m4
modules/accept
modules/arpa_inet
modules/bind
modules/connect
modules/ctype
modules/dirent
modules/fcntl-h
modules/flock
modules/fnmatch-h
modules/getpeername
modules/getsockname
modules/getsockopt
modules/glob-h
modules/iconv-h
modules/inttypes-incomplete
modules/langinfo
modules/listen
modules/locale
modules/malloc-h
modules/math
modules/monetary
modules/netdb
modules/nonblocking
modules/poll-h
modules/pthread-h
modules/pty
modules/recv
modules/recvfrom
modules/sched
modules/search
modules/send
modules/sendto
modules/setsockopt
modules/shutdown
modules/signal-h
modules/sigpipe
modules/socket
modules/spawn
modules/stddef
modules/stdio
modules/stdlib
modules/string
modules/strings
modules/sys_file
modules/sys_ioctl
modules/sys_random
modules/sys_resource
modules/sys_select
modules/sys_socket
modules/sys_stat
modules/sys_time
modules/sys_times
modules/sys_types
modules/sys_uio
modules/sys_utsname
modules/sys_wait
modules/termios
modules/threads-h
modules/time
modules/uchar
modules/unistd
modules/utime-h
modules/wchar
modules/wctype-h
modules/windows-stat-override
pygnulib/GLConfig.py
pygnulib/GLEmiter.py