From d52e6a5b55c84f444eed41533e3da5763febf125 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Tue, 14 Mar 2017 01:20:11 -0700 Subject: [PATCH] snippets: work around GNU Make 3.82 VPATH MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When using 'gnulib-tool --gnu-make' on Emacs, and building the resulting tarball on Solaris 10 which bundles GNU Make 3.82, an out-of-source (VPATH) build failed because the sans-copyright snippet file was not built before the file that used it. Presumably this is some sort of VPATH thing. Work around the problem by using the original snippet, i.e., don’t bother to remove its copyright notice. * modules/snippet/_Noreturn, modules/snippet/link-warning: Don’t assume Automake in comments. Omit long-incorrect comment. * modules/snippet/arg-nonnull (BUILT_SOURCES, arg-nonnull.h) (MOSTLYCLEANFILES): * modules/snippet/c++defs (BUILT_SOURCES, c++defs.h) (MOSTLYCLEANFILES): * modules/snippet/unused-parameter (BUILT_SOURCES, unused-parameter.h) (MOSTLYCLEANFILES): * modules/snippet/warn-on-use (BUILT_SOURCES, warn-on-use.h) (MOSTLYCLEANFILES): Remove. * modules/snippet/arg-nonnull (ARG_NONNULL_H): * modules/snippet/c++defs (CXXDEFS_H): * modules/snippet/unused-parameter (UNUSED_PARAMETER_H): * modules/snippet/warn-on-use (WARN_ON_USE_H): Don’t bother to remove the copyright notice; just use the original snippet as-is. --- ChangeLog | 28 ++++++++++++++++++++++++++++ modules/snippet/_Noreturn | 2 +- modules/snippet/arg-nonnull | 23 +++++------------------ modules/snippet/c++defs | 22 +++++----------------- modules/snippet/link-warning | 9 +++++---- modules/snippet/unused-parameter | 23 +++++------------------ modules/snippet/warn-on-use | 18 +++++------------- 7 files changed, 54 insertions(+), 71 deletions(-) diff --git a/ChangeLog b/ChangeLog index c468516..09aec7b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,31 @@ +2017-03-14 Paul Eggert + + snippets: work around GNU Make 3.82 VPATH + When using 'gnulib-tool --gnu-make' on Emacs, and building + the resulting tarball on Solaris 10 which bundles GNU Make 3.82, + an out-of-source (VPATH) build failed because the sans-copyright + snippet file was not built before the file that used it. + Presumably this is some sort of VPATH thing. Work around the + problem by using the original snippet, i.e., don’t bother to + remove its copyright notice. + * modules/snippet/_Noreturn, modules/snippet/link-warning: + Don’t assume Automake in comments. Omit long-incorrect comment. + * modules/snippet/arg-nonnull (BUILT_SOURCES, arg-nonnull.h) + (MOSTLYCLEANFILES): + * modules/snippet/c++defs (BUILT_SOURCES, c++defs.h) + (MOSTLYCLEANFILES): + * modules/snippet/unused-parameter (BUILT_SOURCES, unused-parameter.h) + (MOSTLYCLEANFILES): + * modules/snippet/warn-on-use (BUILT_SOURCES, warn-on-use.h) + (MOSTLYCLEANFILES): + Remove. + * modules/snippet/arg-nonnull (ARG_NONNULL_H): + * modules/snippet/c++defs (CXXDEFS_H): + * modules/snippet/unused-parameter (UNUSED_PARAMETER_H): + * modules/snippet/warn-on-use (WARN_ON_USE_H): + Don’t bother to remove the copyright notice; just use the + original snippet as-is. + 2017-03-13 Paul Eggert gnulib-tool: minor --gnu-make fixups diff --git a/modules/snippet/_Noreturn b/modules/snippet/_Noreturn index c35910e..d5e8ff0 100644 --- a/modules/snippet/_Noreturn +++ b/modules/snippet/_Noreturn @@ -13,7 +13,7 @@ configure.ac: Makefile.am: # Because this Makefile snippet defines a variable used by other -# gnulib Makefile snippets, it must be present in all Makefile.am that +# gnulib Makefile snippets, it must be present in all makefiles that # need it. This is ensured by the applicability 'all' defined above. _NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h diff --git a/modules/snippet/arg-nonnull b/modules/snippet/arg-nonnull index 38468ab..0eab137 100644 --- a/modules/snippet/arg-nonnull +++ b/modules/snippet/arg-nonnull @@ -12,24 +12,11 @@ Depends-on: configure.ac: Makefile.am: -# The BUILT_SOURCES created by this Makefile snippet are not used via #include -# statements but through direct file reference. Therefore this snippet must be -# present in all Makefile.am that need it. This is ensured by the applicability -# 'all' defined above. - -BUILT_SOURCES += arg-nonnull.h -# The arg-nonnull.h that gets inserted into generated .h files is the same as -# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut -# off. -arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h - $(AM_V_GEN)rm -f address@hidden $@ && \ - sed -n -e '/GL_ARG_NONNULL/,$$p' \ - < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ - > address@hidden && \ - mv address@hidden $@ -MOSTLYCLEANFILES += arg-nonnull.h arg-nonnull.h-t - -ARG_NONNULL_H=arg-nonnull.h +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +ARG_NONNULL_H=$(top_srcdir)/build-aux/snippet/arg-nonnull.h Include: diff --git a/modules/snippet/c++defs b/modules/snippet/c++defs index 6f32ce0..9612c8b 100644 --- a/modules/snippet/c++defs +++ b/modules/snippet/c++defs @@ -12,23 +12,11 @@ Depends-on: configure.ac: Makefile.am: -# The BUILT_SOURCES created by this Makefile snippet are not used via #include -# statements but through direct file reference. Therefore this snippet must be -# present in all Makefile.am that need it. This is ensured by the applicability -# 'all' defined above. - -BUILT_SOURCES += c++defs.h -# The c++defs.h that gets inserted into generated .h files is the same as -# build-aux/snippet/c++defs.h, except that it has the copyright header cut off. -c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h - $(AM_V_GEN)rm -f address@hidden $@ && \ - sed -n -e '/_GL_CXXDEFS/,$$p' \ - < $(top_srcdir)/build-aux/snippet/c++defs.h \ - > address@hidden && \ - mv address@hidden $@ -MOSTLYCLEANFILES += c++defs.h c++defs.h-t - -CXXDEFS_H=c++defs.h +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +CXXDEFS_H=$(top_srcdir)/build-aux/snippet/c++defs.h Include: diff --git a/modules/snippet/link-warning b/modules/snippet/link-warning index f4a7da6..8c1b16b 100644 --- a/modules/snippet/link-warning +++ b/modules/snippet/link-warning @@ -15,13 +15,14 @@ AC_REQUIRE([gl_FEATURES_H]) Makefile.am: # The BUILT_SOURCES created by this Makefile snippet are not used via #include # statements but through direct file reference. Therefore this snippet must be -# present in all Makefile.am that need it. This is ensured by the applicability +# present in all Makefiles that need it. This is ensured by the applicability # 'all' defined above. +# FIXME: The link-warning.h rule probably does not work if +# gnulib-tool's --gnu-make option is used, when the build is an +# out-of-source build that relies on VPATH. + BUILT_SOURCES += link-warning.h -# The link-warning.h that gets inserted into generated .h files is the same as -# build-aux/snippet/link-warning.h, except that it has the copyright header cut -# off. link-warning.h: $(top_srcdir)/build-aux/snippet/link-warning.h $(AM_V_GEN)rm -f address@hidden $@ && \ sed -n -e '/HAVE_FEATURES_H/,$$p' \ diff --git a/modules/snippet/unused-parameter b/modules/snippet/unused-parameter index a4376a0..4a231fe 100644 --- a/modules/snippet/unused-parameter +++ b/modules/snippet/unused-parameter @@ -12,24 +12,11 @@ Depends-on: configure.ac: Makefile.am: -# The BUILT_SOURCES created by this Makefile snippet are not used via #include -# statements but through direct file reference. Therefore this snippet must be -# present in all Makefile.am that need it. This is ensured by the applicability -# 'all' defined above. - -BUILT_SOURCES += unused-parameter.h -# The unused-parameter.h that gets inserted into generated .h files is the same -# as build-aux/snippet/unused-parameter.h, except that it has the copyright -# header cut off. -unused-parameter.h: $(top_srcdir)/build-aux/snippet/unused-parameter.h - $(AM_V_GEN)rm -f address@hidden $@ && \ - sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ - < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ - > address@hidden && \ - mv address@hidden $@ -MOSTLYCLEANFILES += unused-parameter.h unused-parameter.h-t - -UNUSED_PARAMETER_H=unused-parameter.h +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +UNUSED_PARAMETER_H=$(top_srcdir)/build-aux/snippet/unused-parameter.h Include: diff --git a/modules/snippet/warn-on-use b/modules/snippet/warn-on-use index 77f0f77..2642bc2 100644 --- a/modules/snippet/warn-on-use +++ b/modules/snippet/warn-on-use @@ -13,19 +13,11 @@ Depends-on: configure.ac: Makefile.am: -BUILT_SOURCES += warn-on-use.h -# The warn-on-use.h that gets inserted into generated .h files is the same as -# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut -# off. -warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h - $(AM_V_GEN)rm -f address@hidden $@ && \ - sed -n -e '/^.ifndef/,$$p' \ - < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ - > address@hidden && \ - mv address@hidden $@ -MOSTLYCLEANFILES += warn-on-use.h warn-on-use.h-t - -WARN_ON_USE_H=warn-on-use.h +# Because this Makefile snippet defines a variable used by other +# gnulib Makefile snippets, it must be present in all makefiles that +# need it. This is ensured by the applicability 'all' defined above. + +WARN_ON_USE_H=$(top_srcdir)/build-aux/snippet/warn-on-use.h Include: -- 2.9.3