From 1c2185b80a7ccc6c26a0dd880af81cb5713614e2 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=utf8 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 c468516b87..09aec7b501 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 c35910ead4..d5e8ff0264 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 38468ab8f3..0eab137e6f 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 $@-t $@ && \ - sed -n -e '/GL_ARG_NONNULL/,$$p' \ - < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \ - > $@-t && \ - mv $@-t $@ -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 6f32ce063a..9612c8b75d 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 $@-t $@ && \ - sed -n -e '/_GL_CXXDEFS/,$$p' \ - < $(top_srcdir)/build-aux/snippet/c++defs.h \ - > $@-t && \ - mv $@-t $@ -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 f4a7da6be8..8c1b16b0be 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 $@-t $@ && \ sed -n -e '/HAVE_FEATURES_H/,$$p' \ diff --git a/modules/snippet/unused-parameter b/modules/snippet/unused-parameter index a4376a0b8d..4a231fed0d 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 $@-t $@ && \ - sed -n -e '/GL_UNUSED_PARAMETER/,$$p' \ - < $(top_srcdir)/build-aux/snippet/unused-parameter.h \ - > $@-t && \ - mv $@-t $@ -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 77f0f77d07..2642bc2ebc 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 $@-t $@ && \ - sed -n -e '/^.ifndef/,$$p' \ - < $(top_srcdir)/build-aux/snippet/warn-on-use.h \ - > $@-t && \ - mv $@-t $@ -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.39.5