[ANN] pyKook 0.0.1 - a simple build tool similar to Make or Ant

kwatch kwatch at gmail.com
Sun Oct 19 10:02:42 CEST 2008

Hi all,

I have released pyKook 0.0.1.

pyKook is a simple build tool similar to Make, Ant, Rake, or SCons.
pyKook regards software project as cooking.
Terms used in pyKook are cooking terms.
For example:

    cookbook    -  Makefile
    product     -  target file
    ingredient  -  source file
    recipe      -  how to create target from source

Cookbook (= Makefile) is written in pure Python.
You can write any statements or expressions in cookbook.

Example of cookbook (Kookbook.py):

    ## properties
    cc     = prop('cc',     'gcc')
    cflags = prop('cflags', '-g -Wall')

    ## recipes
    def task_all(c):

    def file_command(c):
        """generates hello command"""
        system(c%"$(cc) $(cflags) -o $(product) $(ingred)")

    @ingreds("$(1).c", if_exists("$(1).h"))
    def file_ext_o(c):
        """compile '*.c' and '*.h'"""
        system(c%"$(cc) $(cflags) -c $(1).c")

    def task_clean(c):

Exampe of result:

    sh> ls
    Kookbook.py   hello.c    hello.h

    sh> pykook -l
      cc                  : 'gcc'
      cflags              : '-g -Wall'

    Task recipes:
      all                 : cook all products
      clean               : remove by-products

    File recipes:
      hello               : generates hello command
      *.o                 : compile '*.c' and '*.h'

    (Tips: you can set 'kook_default_product' variable in your

    sh> pykook all           # or, pykook --cc=gcc4 all
    ### *** hello.o (func=file_ext_o)
    $ gcc -g -Wall -c hello.c
    ### ** hello (func=file_command)
    $ gcc -g -Wall -o hello hello.o
    ### * all (func=task_all)

See users-guide for more details.

Have fun!

makoto kuwata

More information about the Python-list mailing list