Warning: |
GNOME Goal: Nicer Builds
Summary
Make building GNOME clearer by using automake1.11 AM_SILENT_RULES.
Dolt was suggested to faster compilation, but seems that libtool 2.2 is fast enough (see this thread or this bug report)
This new automake rule turns the usual messy output of autotools into a pretty Kbuild-like one. For example:
$ make Making all in foo Making all in internal CC internal-file0.o LINK libinternal.la CC lib-file0.o CC lib-file1.o LINK libfoo.la
If you need to see the details, just run make V=1.
Guidelines
Only add
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
to your configure.{in,ac} and you get a pretty Kbuild-like output if you have automake1.11 installed. The macro is compatible with earlier automake versions too.
Note: The yes parameter must be passed to AM_SILENT_RULES or it will not have the desired effect. |
Also, you can use $(AM_V_GEN) to make custom commands silent (instead $(QUIET_GEN)) . See an example in this evince bug or in this gnome-panel commit
Read this for details: http://www.flameeyes.eu/autotools-mythbuster/automake/silent.html
Comments before approval
Shave (a external tool to make clearer compilations) is used by GStreamer and others. Clutter and libunique use shave as fallback if AM_SILENT_RULES is not available. Dolt is used by webkit (combined with AM_SILENT_RULES). Switching to AM_SILENT_RULES/libtool 2.2 is encouraged.
VincentUntz: let's do it the right way and use gnome-common for this. See bug #580062 and bug #582955
JavierJardon: As pointed in bug #580062, automake1.11 has a feature that do the same as shave do.
JavierJardon: There already are automake1.11 packages for Debian and Ubuntu
ThomasAndersen: gnome-doc-utils bug #589278 and gtk-doc bug #590927 needs to be fixed before modules using them will become silent with AM_SILENT_RULES.
DamienLespiau: shave users, please, migrate to automake's silent rules, deep magic and relying on private autoconf variables can't be the way forward, shave is really deprecated.
Status of this goal
Note: Updated automatical stats can be found at http://www.gnome.org/~fpeters/reports/silent-rules.html |
Tip: If you choose to work on a module, create the bug report on the GNOME bugzilla. This way people will know someone already works on it, and won't duplicate the work you're doing. |
State |
Markup |
todo |
<: #ff8080> todo |
patch |
<: #ffc849> [[GnomeBug:xxxxx|patch]] |
done |
<: #80ff80> [[GnomeBug:xxxxx|done]] |
not needed |
<: #80ff80> not needed |
Above are the states and corresponding markup to update the modules state table below.
Tarball |
Shave or AM_SILENT_RULES |
|
Desktop |
||
alacarte |
done for AM_SILENT_RULES |
|
brasero |
AM_SILENT_RULES |
|
bug-buddy |
to do |
|
dasher |
to do |
|
done |
||
done for AM_SILENT_RULES |
||
evolution-data-server |
||
evolution-exchange |
||
evolution-mapi |
||
evolution-webcal |
to do |
|
file-roller |
||
gcalctool |
||
gconf-editor |
||
AM_SILENT_RULES |
||
done for AM_SILENT_RULES |
||
gnome-backgrounds |
||
gnome-control-center |
AM_SILENT_RULES |
|
gnome-desktop |
AM_SILENT_RULES |
|
gnome-desktop-sharp |
to do |
|
gnome-icon-theme |
to do |
|
gnome-keyring |
AM_SILENT_RULES |
|
gnome-netstatus |
to do |
|
gnome-nettool |
to do |
|
gnome-mag |
to do |
|
gnome-menus |
AM_SILENT_RULES |
|
gnome-power-manager |
AM_SILENT_RULES |
|
gnome-python-desktop |
to do |
|
AM_SILENT_RULES |
||
gnome-session |
AM_SILENT_RULES |
|
gnome-settings-daemon |
to do |
|
gnome-sharp |
AM_SILENT_RULES |
|
to do |
||
gnome-system-monitor |
||
AM_SILENT_RULES |
||
gnome-terminal |
AM_SILENT_RULES |
|
AM_SILENT_RULES |
||
gnome-user-docs |
to do |
|
gnome-user-share |
AM_SILENT_RULES |
|
AM_SILENT_RULES |
||
shave |
||
gst-plugins-base |
shave |
|
gst-plugins-good |
shave |
|
gtkhtml |
||
AM_SILENT_RULES |
||
gvfs |
AM_SILENT_RULES |
|
hamster-applet |
||
libgail-gnome |
to do |
|
libgnomekbd |
||
libgtop |
to do |
|
AM_SILENT_RULES |
||
liboobs |
AM_SILENT_RULES |
|
librsvg |
||
libwnck |
AM_SILENT_RULES |
|
metacity |
done for AM_SILENT_RULES |
|
mousetweaks |
||
AM_SILENT_RULES |
||
orca |
to do |
|
pygtksourceview |
to do |
|
AM_SILENT_RULES |
||
swfdec-gnome |
to do |
|
tomboy |
to do |
|
totem-pl-parser |
to do |
|
vinagre |
||
vino |
||
vte |
||
AM_SILENT_RULES |
||
Platform |
||
GConf |
to do |
|
at-spi |
to do |
|
atk |
||
glib |
||
gtk-doc |
||
pango |
||
Admin |
||
AM_SILENT_RULES |
||
sabayon |
to do |
|
Development Tools |
||
accerciser |
to do |
|
anjuta |
to do |
|
devhelp |
||
gdl |
to do |
|
glade3 |
||
gnome-devel-docs |
to do |
|
Bindings (C++) |
||
glibmm |
AM_SILENT_RULES |
|
pangomm |
AM_SILENT_RULES |
|
gtkmm |
AM_SILENT_RULES |
|
libglademm |
to do |
|
gconfmm |
to do |
|
libgnomecanvasmm |
to do |
|
libgnome-vfsmm |
to do |
|
libgnomemm |
to do |
|
libgnomeuimm |
to do |
|
libxml++ |
to do |
|
Bindings (java) |
||
glib-java (jg-common) |
to do |
|
libgtk-java |
to do |
|
libgnome-java |
to do |
|
libgconf-java |
to do |
|
libglade-java |
to do |
|
Bindings (mono) |
||
gtk-sharp |
AM_SILENT_RULES |
|
Bindings (perl) |
||
Glib |
not needed |
Uses own mechanism |
Gtk2 |
not needed |
|
Gtk2-GladeXML |
not needed |
|
Gnome2-GConf |
not needed |
|
Gnome2-Canvas |
not needed |
|
Gnome2-VFS |
not needed |
|
Gnome2 |
not needed |
|
Bindings (python) |
||
pygobject |
to do |
|
to do |
||
pyorbit |
to do |
|
to do |
||
Mobile |
||
GConf (dbus-based) |
to do |
|
evolution-data-server (dbus-based) |
to do |
|
clutter-gst |
AM_SILENT_RULES |
|
External Dependencies |
||
avahi |
to do |
|
cairo |
to do |
|
cairomm |
to do |
|
clutter |
AM_SILENT_RULES (Shave as fallback) |
|
clutter-cairo |
to do |
|
clutter-gtk |
to do |
|
conduit |
to do |
|
dbus |
to do |
|
dbus-glib |
to do |
|
dbus-python |
to do |
|
desktop-file-utils |
to do |
|
Devicekit-power |
to do |
|
enchant |
to do |
|
expat |
to do |
|
farsight2 |
to do |
|
fontconfig |
to do |
|
gamin |
to do |
|
gnutls |
to do |
|
gpgme |
to do |
|
gtk-vnc |
to do |
|
hal |
to do |
|
hicolor-icon-theme |
to do |
|
icon-naming-utils |
to do |
|
intltool |
to do |
|
iso-codes |
to do |
|
libcanberra |
to do |
|
libcolorblind |
to do |
|
libcroco |
to do |
|
libgda |
AM_SILENT_RULES |
|
libgdata |
||
libggz, ggz-client-libs |
to do |
|
libgpg-error |
to do |
|
libgcrypt |
to do |
|
libical |
to do |
|
libmapi |
to do |
|
libmusicbrainz |
to do |
|
libnotify |
to do |
|
liboil |
to do |
|
libproxy |
to do |
|
libtasn1 |
to do |
|
libtelepathy |
to do |
|
libxklavier |
to do |
|
libxml2 |
to do |
|
libxslt |
to do |
|
Mono.Addins |
to do |
|
mozilla (firefox) |
to do |
|
ndesk-dbus |
to do |
|
ndesk-dbus-glib |
to do |
|
opal |
to do |
|
pkg-config |
to do |
|
to do |
||
PolicyKit-gnome |
to do |
|
pulseaudio |
||
poppler |
to do |
|
pycairo |
to do |
|
ptlib |
to do |
|
Python |
to do |
|
rarian |
to do |
|
shared-mime-info |
to do |
|
sqlite |
to do |
|
startup-notification |
to do |
|
swfdec |
to do |
|
system-tools-backends |
to do |
|
telepathy-glib |
||
telepathy-mission-control |
to do |
|
unique |
AM_SILENT_RULES (Shave as fallback) |
|
webkit |
AM_SILENT_RULES |
|
Other |
||
abiword |
shave |
|
anjal |
||
atomix |
||
balsa |
||
banshee |
to do |
|
to do |
||
to do |
||
contact-lookup-applet |
to do |
|
to do |
||
eggcups |
to do |
|
f-spot |
to do |
|
giggle |
||
gimp |
||
gitg |
||
gnome-blog |
to do |
|
gnome-cups-manager |
to do |
|
gnome-main-menu |
to do |
|
to do |
||
GParted |
to do |
|
GNOME Phone Manager |
||
AM_SILENT_RULES |
||
to do |
||
gtetrinet |
to do |
|
gthumb |
||
libbtctl |
to do |
|
libchamplain |
||
libgnomekbd |
to do |
|
libgoffice |
AM_SILENT_RULES |
|
libgsf |
||
liferea |
||
modest |
||
mutter |
||
nautilus-sendto |
||
nautilus-vcs |
to do |
|
nemiver |
||
tinymail |
||