evol

evol - entrenched virtues of lisp (love reversed) aims to be a compatible and full-fledged replacement for the GNU autotools stack targeted at coping with the autotools' shortcomings while not repeating the mistakes made and still being made at comparable build tool projects.

It is under development, still has a long way to go and its top-level API is still a moving target but what exists is well-documented and mostly covered by an extensive Stefil-based test suite. Other libraries currently in use are CL-FAD, external-program, Alexandria, CL-PPCRE, unix-options, Bordeaux-Threads and patron. Right now, only SBCL is supported though.

One interesting thing you can already do with evol is:

sh$ cat >> Evolution <

And basic stuff not requiring autoconf-like functionality does also work:

cat >> Evolution <(devolution "main" ("objects") :type 'program :rule "%cc %< -o %@"
            :sourcefn #'(lambda (target modifier)
                          (declare (ignore target modifier))
                          (getenv "objects")))

(devolution "objects" () :type 'hive :of 'generic :spawn '("main.o" "program.o") :rule "%cc ${CFLAGS} -c -o %@ %<" :sourcefn #'(lambda (target modifier) (declare (ignore modifier)) (pathname-change-suffix "c" target)))

(devolution "clean" () :type 'generic :rule "rm -f %objects %main") EOF sh$ evol -j 3 (cc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c -o main.o main.c) (cc -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c -o program.o program.c) (cc main.o program.o -o main) (chmod +x main) sh$ evol clean (rm -f main.o program.o main)

Appealing enough? :) The author, Alexander Kahl, hopes this could also pull in more people to the wonderful world of Lisp(s).

The package is asdf-installable. The link to the git repository is available from Github.

Download ASDF package from http://github.com/e-user/evol/tarball/master


Topics: build

This page is linked from: cl-m4  

CLiki pages can be edited by anyone at any time. Imagine a fearsomely comprehensive disclaimer of liability. Now fear, comprehensively