--- /dev/null
+#! /bin/sh
+
+cd $(dirname $0)
+
+do_makefile() {
+ dir=$(dirname $1)
+ case $dir in
+ ./*/*/*) rel="../../..";;
+ ./*/*) rel="../.." ;;
+ ./*) rel=".." ;;
+ .) rel="." ;;
+ *) echo "cannot guess deepness of '$dir'"; exit 1
+ esac
+ echo "all %: ; @\$(MAKE) -s -C $rel/build/$dir \$*" > $dir/Makefile
+ echo "-include \$(wildcard *.mk)" >> $dir/Makefile
+}
+
+find . -name CMakeLists.txt | while read file; do do_makefile $file; done
+
+builddir=.build-$(hostname)-$(gcc -dumpmachine)-$(gcc -dumpversion)
+rm -rf $builddir
+mkdir -p $builddir
+ln -s $builddir build
+
+if test $# -eq 0; then
+ cd $builddir && cmake -DWITH_NNTP=1 -DWITH_IDN=1 -DUSE_HCACHE=1 -DWITH_LIBESMTP=1 --with-prefix=/usr ..
+else
+ cd $builddir && cmake "$@" ..
+fi