Hi, After cleaning up the @GNULIB_XYZ@ variables for possible use in tests-related modules, now the same for the GNULIB_XYZ C macros.
Two third of the gl_MODULE_INDICATOR invocations produce a GNULIB_XYZ macro that is used to test whether the 'xyz' module _can be used_. The other third of the gl_MODULE_INDICATOR invocations produce a GNULIB_XYZ macro that is used to test whether _the unit test for 'xyz' should be enabled_. In the case of a tests-related module, for which the files get copied into gltests/ rather than gllib/: - In the former case, the GNULIB_XYZ macro should evaluate to 1 or 0, depending whether the compilation unit sits in gltests/ or not. - In the latter case, the GNULIB_XYZ macro should evaluate to 1. This means that we need different macros for produding the value of GNULIB_XYZ. This is addressed by the patch below. (For how to reproduce the former case: use "gnulib-tool --import --with-tests renameat". 'renameat-tests' depends on 'filenamecat', so 'filenamecat' will be among the tests-related modules. The macro GNULIB_FILENAMECAT, defined in config.h, shall evaluate to 1 or 0, depending from where config.h is included.) Even worse, for some modules, the GNULIB_XYZ macro is used in both ways: modules/faccessat:gl_MODULE_INDICATOR_FOR_USE([faccessat]) modules/fdopendir:gl_MODULE_INDICATOR_FOR_USE([fdopendir]) modules/mkostemp:gl_MODULE_INDICATOR_FOR_USE([mkostemp]) modules/mkostemps:gl_MODULE_INDICATOR_FOR_USE([mkostemps]) modules/mkstemps:gl_MODULE_INDICATOR_FOR_USE([mkstemps]) This will be addressed in the next patch. 2010-03-27 Bruno Haible <br...@clisp.org> Distinguish two kinds of module indicators. * m4/gnulib-common.m4 (gl_MODULE_INDICATOR_FOR_TESTS): Renamed from gl_MODULE_INDICATOR. (gl_MODULE_INDICATOR): New macro. * m4/dirent_h.m4 (gl_DIRENT_MODULE_INDICATOR): Invoke gl_MODULE_INDICATOR_FOR_TESTS instead of gl_MODULE_INDICATOR. * m4/fcntl_h.m4 (gl_FCNTL_MODULE_INDICATOR): Likewise. * m4/langinfo_h.m4 (gl_LANGINFO_MODULE_INDICATOR): Likewise. * m4/locale_h.m4 (gl_LOCALE_MODULE_INDICATOR): Likewise. * m4/math_h.m4 (gl_MATH_MODULE_INDICATOR): Likewise. * m4/pty_h.m4 (gl_PTY_MODULE_INDICATOR): Likewise. * m4/search_h.m4 (gl_SEARCH_MODULE_INDICATOR): Likewise. * m4/signal_h.m4 (gl_SIGNAL_MODULE_INDICATOR): Likewise. * m4/spawn_h.m4 (gl_SPAWN_MODULE_INDICATOR): Likewise. * m4/stdio_h.m4 (gl_STDIO_MODULE_INDICATOR): Likewise. * m4/stdlib_h.m4 (gl_STDLIB_MODULE_INDICATOR): Likewise. * m4/string_h.m4 (gl_STRING_MODULE_INDICATOR): Likewise. * m4/sys_ioctl_h.m4 (gl_SYS_IOCTL_MODULE_INDICATOR): Likewise. * m4/sys_select_h.m4 (gl_SYS_SELECT_MODULE_INDICATOR): Likewise. * m4/sys_socket_h.m4 (gl_SYS_SOCKET_MODULE_INDICATOR): Likewise. * m4/sys_stat_h.m4 (gl_SYS_STAT_MODULE_INDICATOR): Likewise. * m4/sys_time_h.m4 (gl_SYS_TIME_MODULE_INDICATOR): Likewise. * m4/time_h.m4 (gl_TIME_MODULE_INDICATOR): Likewise. * m4/unistd_h.m4 (gl_UNISTD_MODULE_INDICATOR): Likewise. * m4/wchar_h.m4 (gl_WCHAR_MODULE_INDICATOR): Likewise. * modules/cloexec (configure.ac): Likewise. * modules/getopt-gnu (configure.ac): Likewise. * modules/uninorm/u8-normalize (configure.ac): Likewise. * modules/uninorm/u16-normalize (configure.ac): Likewise. * modules/uninorm/u32-normalize (configure.ac): Likewise. * modules/fdopendir (configure.ac): Invoke gl_MODULE_INDICATOR. --- m4/gnulib-common.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/gnulib-common.m4 Sun Mar 28 00:15:55 2010 @@ -1,4 +1,4 @@ -# gnulib-common.m4 serial 15 +# gnulib-common.m4 serial 16 dnl Copyright (C) 2007-2010 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -52,9 +52,39 @@ ]) # gl_MODULE_INDICATOR([modulename]) -# defines a C macro indicating the presence of the given module. +# defines a C macro indicating the presence of the given module +# in a location where it can be used. +# | Value | Value | +# | in lib/ | in tests/ | +# --------------------------------------------+---------+-----------+ +# Module present among main modules: | 1 | 1 | +# --------------------------------------------+---------+-----------+ +# Module present among tests-related modules: | 0 | 1 | +# --------------------------------------------+---------+-----------+ +# Module not present at all: | 0 | 0 | +# --------------------------------------------+---------+-----------+ AC_DEFUN([gl_MODULE_INDICATOR], [ + AC_DEFINE_UNQUOTED([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), + [gl_MODULE_INDICATOR_CONDITION], + [Define to a C preprocessor expression that evaluates to 1 or 0, depending whether the gnulib module ]$1[ shall be considered present.]) +]) + +# gl_MODULE_INDICATOR_FOR_TESTS([modulename]) +# defines a C macro indicating the presence of the given module +# in lib or tests. This is useful to determine whether the module +# should be tested. +# | Value | Value | +# | in lib/ | in tests/ | +# --------------------------------------------+---------+-----------+ +# Module present among main modules: | 1 | 1 | +# --------------------------------------------+---------+-----------+ +# Module present among tests-related modules: | 1 | 1 | +# --------------------------------------------+---------+-----------+ +# Module not present at all: | 0 | 0 | +# --------------------------------------------+---------+-----------+ +AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], +[ AC_DEFINE([GNULIB_]translit([$1],[abcdefghijklmnopqrstuvwxyz./-],[ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1], [Define to 1 when using the gnulib module ]$1[.]) ]) --- m4/dirent_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/dirent_h.m4 Sat Mar 27 19:21:29 2010 @@ -34,7 +34,7 @@ AC_REQUIRE([gl_DIRENT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_DIRENT_H_DEFAULTS], --- m4/fcntl_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/fcntl_h.m4 Sat Mar 27 19:21:37 2010 @@ -26,7 +26,7 @@ AC_REQUIRE([gl_FCNTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_FCNTL_H_DEFAULTS], --- m4/langinfo_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/langinfo_h.m4 Sat Mar 27 19:21:53 2010 @@ -65,7 +65,7 @@ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LANGINFO_H_DEFAULTS], --- m4/locale_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/locale_h.m4 Sat Mar 27 19:22:01 2010 @@ -80,7 +80,7 @@ AC_REQUIRE([gl_LOCALE_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_LOCALE_H_DEFAULTS], --- m4/math_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/math_h.m4 Sat Mar 27 19:22:11 2010 @@ -49,7 +49,7 @@ AC_REQUIRE([gl_MATH_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_MATH_H_DEFAULTS], --- m4/pty_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/pty_h.m4 Sat Mar 27 19:22:22 2010 @@ -50,7 +50,7 @@ AC_REQUIRE([gl_PTY_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_PTY_H_DEFAULTS], --- m4/search_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/search_h.m4 Sat Mar 27 19:22:29 2010 @@ -28,7 +28,7 @@ AC_REQUIRE([gl_SEARCH_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SEARCH_H_DEFAULTS], --- m4/signal_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/signal_h.m4 Sat Mar 27 19:22:35 2010 @@ -29,7 +29,7 @@ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SIGNAL_H_DEFAULTS], --- m4/spawn_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/spawn_h.m4 Sat Mar 27 19:22:43 2010 @@ -79,7 +79,7 @@ AC_REQUIRE([gl_SPAWN_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SPAWN_H_DEFAULTS], --- m4/stdio_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/stdio_h.m4 Sat Mar 27 19:22:56 2010 @@ -46,7 +46,7 @@ AC_REQUIRE([gl_STDIO_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDIO_H_DEFAULTS], --- m4/stdlib_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/stdlib_h.m4 Sat Mar 27 19:23:04 2010 @@ -45,7 +45,7 @@ AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_STDLIB_H_DEFAULTS], --- m4/string_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/string_h.m4 Sat Mar 27 19:23:18 2010 @@ -36,7 +36,7 @@ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], --- m4/sys_ioctl_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/sys_ioctl_h.m4 Sat Mar 27 19:23:31 2010 @@ -57,7 +57,7 @@ AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_IOCTL_H_DEFAULTS], --- m4/sys_select_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/sys_select_h.m4 Sat Mar 27 19:23:39 2010 @@ -74,7 +74,7 @@ AC_REQUIRE([gl_SYS_SELECT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SELECT_H_DEFAULTS], --- m4/sys_socket_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/sys_socket_h.m4 Sat Mar 27 19:23:51 2010 @@ -127,7 +127,7 @@ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], --- m4/sys_stat_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/sys_stat_h.m4 Sat Mar 27 19:24:00 2010 @@ -40,7 +40,7 @@ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], --- m4/sys_time_h.m4.orig Sun Mar 28 00:25:50 2010 +++ m4/sys_time_h.m4 Sat Mar 27 19:24:08 2010 @@ -58,7 +58,7 @@ AC_REQUIRE([gl_HEADER_SYS_TIME_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_SYS_TIME_H_DEFAULTS], --- m4/time_h.m4.orig Sun Mar 28 00:25:51 2010 +++ m4/time_h.m4 Sat Mar 27 19:24:27 2010 @@ -67,7 +67,7 @@ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_HEADER_TIME_H_DEFAULTS], --- m4/unistd_h.m4.orig Sun Mar 28 00:25:51 2010 +++ m4/unistd_h.m4 Sat Mar 27 19:24:39 2010 @@ -48,7 +48,7 @@ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_UNISTD_H_DEFAULTS], --- m4/wchar_h.m4.orig Sun Mar 28 00:25:51 2010 +++ m4/wchar_h.m4 Sat Mar 27 19:24:48 2010 @@ -109,7 +109,7 @@ AC_REQUIRE([gl_WCHAR_H_DEFAULTS]) gl_MODULE_INDICATOR_SET_VARIABLE([$1]) dnl Define it also as a C macro, for the benefit of the unit tests. - gl_MODULE_INDICATOR([$1]) + gl_MODULE_INDICATOR_FOR_TESTS([$1]) ]) AC_DEFUN([gl_WCHAR_H_DEFAULTS], --- modules/cloexec.orig Sun Mar 28 00:25:51 2010 +++ modules/cloexec Sat Mar 27 19:28:37 2010 @@ -13,7 +13,7 @@ configure.ac: gl_CLOEXEC -gl_MODULE_INDICATOR([cloexec]) +gl_MODULE_INDICATOR_FOR_TESTS([cloexec]) Makefile.am: --- modules/fdopendir.orig Sun Mar 28 00:25:51 2010 +++ modules/fdopendir Sat Mar 27 23:55:56 2010 @@ -18,6 +18,7 @@ configure.ac: gl_FUNC_FDOPENDIR gl_DIRENT_MODULE_INDICATOR([fdopendir]) +gl_MODULE_INDICATOR([fdopendir]) Makefile.am: --- modules/getopt-gnu.orig Sun Mar 28 00:25:51 2010 +++ modules/getopt-gnu Sat Mar 27 19:51:34 2010 @@ -9,7 +9,7 @@ configure.ac: gl_FUNC_GETOPT_GNU -gl_MODULE_INDICATOR([getopt-gnu]) +gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu]) Makefile.am: --- modules/uninorm/u8-normalize.orig Sun Mar 28 00:25:51 2010 +++ modules/uninorm/u8-normalize Sat Mar 27 19:53:40 2010 @@ -15,7 +15,7 @@ uninorm/decompose-internal configure.ac: -gl_MODULE_INDICATOR([uninorm/u8-normalize]) +gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u8-normalize]) Makefile.am: lib_SOURCES += uninorm/u8-normalize.c --- modules/uninorm/u16-normalize.orig Sun Mar 28 00:25:51 2010 +++ modules/uninorm/u16-normalize Sat Mar 27 19:53:18 2010 @@ -15,7 +15,7 @@ uninorm/decompose-internal configure.ac: -gl_MODULE_INDICATOR([uninorm/u16-normalize]) +gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u16-normalize]) Makefile.am: lib_SOURCES += uninorm/u16-normalize.c --- modules/uninorm/u32-normalize.orig Sun Mar 28 00:25:51 2010 +++ modules/uninorm/u32-normalize Sat Mar 27 19:53:42 2010 @@ -15,7 +15,7 @@ uninorm/decompose-internal configure.ac: -gl_MODULE_INDICATOR([uninorm/u32-normalize]) +gl_MODULE_INDICATOR_FOR_TESTS([uninorm/u32-normalize]) Makefile.am: lib_SOURCES += uninorm/u32-normalize.c