Unsermake Howto


A brief guide or tutorial to Unsermake.

Unsermake is a replacement for automake by KDE developer Stephan Kulow.

KDE uses the GNU build system which:

Unsermake replaces automake and make but keeps everything else, including the strange Makefile.am syntax the same.

Lubos adds But not completely the same, at least for the time being. Unsermake cannot currently handle complex automake conditionals. I tried that as well, before simply writting the remove_hack script. In KDE CVS such things are solved by using conditionally compiled directories.

Using unsermake you still need autoconf installed. You don't need automake installed but you do need aclocal which comes with automake (so usually you end up with automake being installed anyway).

Unsermake differences


Unsermake creates one large Makefile rather than one per directory. Makefiles are also made per directory so you can build just a part of a module if you want to (they call the master Makefile). This makes it faster to compile especially on SMP or distributed compiling machines.

New targets:

Unsermake has changed quite a lot at the start of October 2004 after KDE 3.3. You now set the PATH to include unsermake and you use it in place of make.

Using (downloading) Unsermake for KDE 3.4 and later

With KDE 3.4, SVN (subversion) is used instead of CVS for KDE sources management. You need to download "Subversion (SVN)" to download the latest KDE from svn and "Unsermake". Run these commands to get "unsermake" in your folder:

"svn co -N svn://anonsvn.kde.org/home/kde/trunk/kdenonbeta/unsermake"

(make sure you've installed subversion software before running the above command)

Reference: kopete from svn:
http://kopete.kde.org/svnaccess.php


Using Unsermake for KDE 3.3 and before


Unsermake is in KDE's kdenonbeta CVS module.

$ export CVSROOT=:pserver:[email protected]:/home/kde
$ cvs login
$ cvs checkout -l kdenonbeta
$ cvs checkout kdenonbeta/unsermake

Unsermake is written in Python and does not need to be compiled.

Set your PATH to include Unsermake:

export PATH=~/projects/kde/kdenonbeta/unsermake/:$PATH

Then you can compile KDE modules using unsermake instead of make

$ unsermake -f Makefile.cvs

You will get a good luck message about using Unsermake

$ ./configure
$ cd myapp
$ unsermake
$ sudo unsermake install

See Also


KDE Build system or Into Hell and Back, Stephan Kulow
http://webcvs.kde.org/cgi-bin/cvsweb.cgi/~checkout~/kdenonbeta/unsermake/doc/unsermake-talk.sxi (Impress slides)
http://webcvs.kde.org/cgi-bin/cvsweb.cgi/~checkout~/kdenonbeta/unsermake/doc/unsermake-talk.txt?content-type=text/plain (plain text)
http://jriddell.org/programs/kde-conference-2003-talk-writeups.html#talk8 (writeup)

Recursive Make Considered Harmful, Peter Miller
http://webcvs.kde.org/cgi-bin/cvsweb.cgi/~checkout~/kdenonbeta/unsermake/doc/auug97.pdf?content-type=application/pdf (PDF)


The name is a pun. You have to speak German to understand it.

Note: unsermake is not present in the fedora core releases, and there are no rpm packages available for fedora (2005-07-16)