m4: enable silent build
PATCH 1/1 m4: enable silent build
--- configure.ac | 3 +++ 1 file changed, 3 insertions(+)
configure.ac +3 -0
@@ -374,6 +374,9 @@ AC_DEFINE_UNQUOTED([IPROUTE_PATH], ["$IPROUTE"], [Path to iproute tool]) AC_DEFINE_UNQUOTED([ROUTE_PATH], ["$ROUTE"], [Path to route tool]) AC_DEFINE_UNQUOTED([SYSTEMD_ASK_PASSWORD_PATH], ["$SYSTEMD_ASK_PASSWORD"], [Path to systemd-ask-password tool]) +# enable silent build +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes]])) + # # Libtool #
Signature · 1 line
2.1.0
Hi,
configure.ac AC_DEFINE_UNQUOTED([IPROUTE_PATH], ["$IPROUTE"], [Path to iproute tool]) · line 379
Quoted 3 lines · Yegor Yefremov
configure.ac +3
-0+# enable silent build +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes]])) +
I don't understand autoconf magic well enough to understand what that does - do you have a pointer for me which would explain it?
thanks
gert
Signature · 4 lines
USENET is *not* the non-clickable part of WWW!
//www.muc.de/~gert/
Gert Doering - Munich, Germany [email protected]...
fax: +49-89-35655025 [email protected]...Quoted 9 lines · Gert Doering
Hi,
configure.ac AC_DEFINE_UNQUOTED([IPROUTE_PATH], ["$IPROUTE"], [Path to iproute tool]) · line 379
Quoted 3 lines · Yegor Yefremov
configure.ac +3
-0+# enable silent build +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes]])) +I don't understand autoconf magic well enough to understand what that does - do you have a pointer for me which would explain it?
I don't understand autoconf magic either :-)
But this site https://autotools.io/automake/silent.html explains the silent build feature. For me, it makes build output cleaner, so that warnings and errors can be better distinguished from the normal build output. Many projects use this feature.
Yegor
Matthias Andree
NAKAm 14.04.2015 um 20:34 schrieb Yegor Yefremov:
Quoted 11 lines
Signed-off-by Yegor Yefremov <[email protected]...>--- configure.ac | 3 +++ 1 file changed, 3 insertions(+)configure.ac +0
-0
configure.ac AC_DEFINE_UNQUOTED([IPROUTE_PATH], ["$IPROUTE"], [Path to iproute tool]) · line 382
Quoted 9 lines
configure.ac +3
-0@@ -374,6 +374,9 @@ AC_DEFINE_UNQUOTED([IPROUTE_PATH], ["$IPROUTE"], [Path to iproute tool]) AC_DEFINE_UNQUOTED([ROUTE_PATH], ["$ROUTE"], [Path to route tool]) AC_DEFINE_UNQUOTED([SYSTEMD_ASK_PASSWORD_PATH], ["$SYSTEMD_ASK_PASSWORD"], [Path to systemd-ask-password tool]) +# enable silent build +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes]])) + # # Libtool #
Thanks for the proposal.
NAK, on these grounds:
- the m4_ifdef() makes the Makefile behaviour dependent on automake version used, hence inconsistent across developer distros. This potentially causes confusion.
- it changes policy through the [yes] argument to AM_SILENT_RULES(). This flips the switch for the default without good reason, and that makes debugging harder - this is a policy decision, not mechanism.
If the oldest distro we need to support (James? Samuli?) offers "silent-rules" through AM_INIT_AUTOMAKE, we should just add it there, but we should not touch the default. Then still anyone can call "make V=0" or ./configure --enable-silent-rules and hide the output details.
Or else you can always "make -s".
This patch changes all the command line output from Make to something like:
CC openvpn.o
CC route.o
LD openvpn
thus hiding compiler options, linker and -I flags and thereabouts.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Quoted 5 lines · Matthias Andree
If the oldest distro we need to support (James? Samuli?) offers "silent-rules" through
AM_INIT_AUTOMAKE, we should just add it there, but we should not touch the default. Then still anyone can call "make V=0" or ./configure --enable-silent-rules and hide the output details.
The oldest distribution we support currently is RHEL5 (which implicitly includes CentOS 5 and Scientific Linux 5).
Just checked on an updated CentOS 5 box:
$ automake --version automake (GNU automake) 1.9.6
$ rpm -q automake automake-1.9.6-3.el5
$ cat /etc/redhat-release CentOS release 5.11 (Final)
- --
kind regards,
David Sommerseth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlUuOdEACgkQDC186MBRfrracQCcCT/MxjVbw36dsFj3ND2IKIkU kMMAnRsPfFLmInI8YyB/rrtpKmIzJF2o
=X4Jr
-----END PGP SIGNATURE-----
Hi,
Quoted 3 lines · Matthias Andree
- it changes policy through the [yes] argument to
AM_SILENT_RULES(). This flips the switch for the default without good reason, and that makes debugging harder - this is a policy decision, not mechanism.
Indeed, this we don't want.
Having "V=0" or "--enable-silent-rules" is fine for me, but changing the defaults to hide even more detail is not (annoying enough that recent autoconfs hide the detailed results from "make test")
gert
Signature · 4 lines
USENET is *not* the non-clickable part of WWW!
//www.muc.de/~gert/
Gert Doering - Munich, Germany [email protected]...
fax: +49-89-35655025 [email protected]...-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Quoted 8 lines · Gert Doering
Hi,
Quoted 4 lines · Matthias Andree
- it changes policy through the [yes] argument to
AM_SILENT_RULES(). This flips the switch for the default without good reason, and that makes debugging harder - this is a policy decision, not mechanism.
Quoted 6 lines
Indeed, this we don't want.
Having "V=0" or "--enable-silent-rules" is fine for me, but changing the defaults to hide even more detail is not (annoying enough that recent autoconfs hide the detailed results from "make test")
Just tested a ./configure (used automake 1.13.4 on RHEL7) with
- --enable-silent-rules. That worked like a charm out-of-the-box without any patching.
I do understand people wanting less output when compiling (which has been a Linux kernel compile feature for a very long time too, and many other projects as well). And I don't think that we loose that much information building it this way. In fact we can actually more easily see compiler warnings - which I would say is a good thing. If you need the full compile command line, it is available using 'V=1'.
But I don't think we should make this behaviour the default yet, and at least not if that require dependencies to specific automake versions, especially when we know that RHEL5 (the oldest supported distro) runs a far older automake. I think it is best if the default behaviour is consistent across all distributions.
Having this said, if you do builds on systems with a more modern automake, I do want to encourage people to run 'make V=0' or use ./configure --enable-silent-rules. This will ensure we can capture compiler warnings far easier. For now I do consider this fine, as you do this explicitly - a different behaviour should be expected when using explicit options.
When the oldest distro we need to support have a modern enough automake, we should revisit this topic of making the 'silent rules' the default behaviour - being consistent across all distros.
- --
kind regards,
David Sommerseth
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlU+TEYACgkQDC186MBRfroooACgrl7YapqCtq4NbtNAGRogEHpn 2zUAnRnyLDgDVMYzXF5DCXEy/ds583yL
=QNhv
-----END PGP SIGNATURE-----
Hi,
Quoted 3 lines · David Sommerseth
Just tested a ./configure (used automake 1.13.4 on RHEL7) with
- --enable-silent-rules. That worked like a charm out-of-the-box without any patching.
David, thanks for testing and reporting. With this, I think we can let this thread end - people that want silent output can have it today, no patches needed.
(I, for one, like seeing the actual compiler and especially linker statements, as they are often needed to understand failures...)
gert
Signature · 4 lines
USENET is *not* the non-clickable part of WWW!
//www.muc.de/~gert/
Gert Doering - Munich, Germany [email protected]...
fax: +49-89-35655025 [email protected]...-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Am 27.04.2015 um 16:48 schrieb David Sommerseth:
Quoted 10 lines
Having this said, if you do builds on systems with a more modern automake, I do want to encourage people to run 'make V=0' or use ./configure --enable-silent-rules. This will ensure we can capture compiler warnings far easier. For now I do consider this fine, as you do this explicitly - a different behaviour should be expected when using explicit options.
When the oldest distro we need to support have a modern enough automake, we should revisit this topic of making the 'silent rules' the default behaviour - being consistent across all distros.
The question is who needs what information.
I see the dichotomy as follows:
- - Whilst operating on known terrain, as a developer, you can often ignore compiler command-lines because you usually are acquainted with what you're doing (and if not, it's time for sleep, sport, or food). That's "make -sj10 V=0" ground.
- - Whilst providing end-user builds, perhaps through automated package builders, you do want verbose information, in order to avoid round-trips for asking further questions. Some build frameworks trigger verbose builds automatically, other's don't.
(And if you flip the switch for default behaviour, I expect to see other consumers/end users show up and complain.)
HTH
Matthias
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iEYEARECAAYFAlU+eM4ACgkQvmGDOQUufZXmeQCfZzULHSU1evIzOvFp+os7Fdro 7wMAoOzFI6g9h9tREL/RgNkWnsypiO6I
=3HdT
-----END PGP SIGNATURE-----