Jun 4, 2009

Cool Features in Automake 1.11

Automake is not dead, and version 1.11 will soon be in openSUSE Factory (thx puzel!) I see two new features to like: parallel execution and terse compilation.

The parallel execution is enabled by the environment variable AUTOMAKE_JOBS=n. It reduced the run time for yast2-core from 18s to 7s for me.

As for compilation, how's this (kernel people may yawn now):
make[4]: Entering directory `/home/mvidner/svn/yast/trunk/core/wfm/testsuite'                                                                         
CXX runwfm.o
CXX runc.o
CXXLD runwfm
runc.cc:54: warning: unused parameter ‘name’
CXXLD runc
compared to:
g++ -DHAVE_CONFIG_H -I. -I../.. -I../../libycp/src/include -I../../liby2/src/include -I../../libscr/src/include -I./../src -I../../liby2util-r/src/include -DY2LOG=\"wfm\" -O0 -g3 -W -std=gnu++0x -DHAVE_CXX0X -Wall -Wformat=2 -MT runwfm.o -MD -MP -MF .deps/runwfm.Tpo -c -o runwfm.o runwfm.cc
mv -f .deps/runwfm.Tpo .deps/runwfm.Po
/bin/sh ../../libtool --tag=CXX --mode=link g++ -DY2LOG=\"wfm\" -O0 -g3 -W -std=gnu++0x -DHAVE_CXX0X -Wall -Wformat=2 -o runwfm runwfm.o ../src/libpy2wfm.la ../../scr/src/libpy2scr.la ../../libscr/src/libscr.la ../../libycp/src/libycp.la ../../libycp/src/libycpvalues.la ../../liby2/src/liby2.la ../../liby2util-r/src/liby2util.la

It is enabled by putting this to configure.in:
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
(The ifdef makes for graceful degradation with older automake.)

Use Webpin or the Software Portal to find a package built for your release.


darix said...

and then be sure to patch it out of every package you submit to the distro as this new feature breaks the check if you used the rpmoptflags.

Martin Vidner said...

IIUC you mean that our build checks scan the compilation output for the value of $RPM_OPT_FLAGS so if AM_SILENT_RULES is enabled that check will wrongly fail.

In that case, one can modify the configure call in the spec file to use --disable-silent-rules, or call make V=1.