Repository navigation
Conversation
5730fa7 to
27cfb46
Compare
- Specify actual filename for SOURCES in Makefile.am. Prior to this change some of the Makefiles in tests used a variable `$(BUNDLE).c` to specify the filename. Old automake does not expand the variable properly at some point, resulting in depfiles like `$(BUNDLE).Po` on disk rather than the actual name, eg '.deps/perf.Po'. That would cause `make test` to fail: make[2]: *** No rule to make target '.deps/perf.Po'. Stop. Likely caused by a bug in old automake. Ref: https://lists.gnu.org/archive/html/bug-automake/2015-01/msg00001.html Fixes curl#22958 Closes #xxxx
27cfb46 to
a852ac0
Compare
|
Automake 1.16 was released on February 25, 2018 As this is a rather small fix I think it is acceptable, but otherwise I wouldn't mind bumping up our requirement. |
|
As this is a rather small fix I think it is acceptable, but otherwise I
wouldn't mind bumping up our requirement.
Especially since we ship source with a working version of autoconf output, so
it's only developers that would be affected by such a version bump.
|
Good point that I think says we should just bump the minimum support version. |
|
My thought also to bump, since catching this (and other old old-linux uses automake 1.15, yet the issue doesn't surface there. |
According to this answer the reason is because that configure runs with --disable-dependency-tracking. Except for tests the rest of curl doesn't need the updated automake afaict so I will see if there's a way to apply a minimum version just to tests. However if there isn't or everyone is ok with making it apply to the entire build process then I think this would probably work: diff --git a/configure.ac b/configure.ac
index a2843b4..98103ab 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,6 +42,7 @@ AH_TOP([/* !checksrc! disable COPYRIGHT all */])
AC_CONFIG_MACRO_DIR([m4])
AM_MAINTAINER_MODE
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+AM_INIT_AUTOMAKE([1.16])
CURL_CHECK_OPTION_DEBUG
AM_CONDITIONAL(DEBUGBUILD, test "$want_debug" = "yes") |
I've confirmed this to be accurate, via this test job: Looks like a feasible workaround to use 1.15 (and below?).
Wouldn't this break CI for old-linux? Perhaps we could instead document |
Prior to this change some of the Makefiles in tests used a variable
$(BUNDLE).cto specify the filename. Old automake does not expand the variable properly at some point, resulting in depfiles like$(BUNDLE).Poon disk rather than the actual name, eg '.deps/perf.Po'.That would cause
make testto fail:make[2]: *** No rule to make target '.deps/perf.Po'. Stop.
Likely caused by a bug in old automake.
Ref: https://lists.gnu.org/archive/html/bug-automake/2015-01/msg00001.html
Fixes #22958
Closes #xxxx