= Caca Labs build systems = == autotools == Most of our software uses the [http://en.wikipedia.org/wiki/GNU_build_system autotools]. We ship a generic [/export/HEAD/research/autotools/bootstrap bootstrap] script that is used to prepare the build tree by calling `autoconf`, `automake` and other utilities. == Utilities == We generate changelogs from a git-svn checkout of the projects using the following snippet in the Makefile: {{{ #!makefile update-changelog: FORCE git --help >/dev/null 2>&1 \ && test -d .git \ && git log --stat | awk 'function flush() { if (m != "") { print "Commit: " v "\nAuthor: " a m } m=""; v="UNSUBMITTED" } { if ($$1 == "commit") flush(); else if ($$1 == "Author:") { a = $$2 } else if ($$1 == "git-svn-id:") { split($$2,tmp,"@"); v=tmp[2] } else if ($$_ != " ") { m=m "\n" $$_ } } END { flush() }' > ChangeLog }}}