Hi all, I have released pyKook 0.0.1. http://pypi.python.org/pypi/Kook/0.0.1 http://www.kuwata-lab.com/kook/ http://www.kuwata-lab.com/kook/pykook-users-guide.html
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 ## @ingreds("hello") def task_all(c): pass @product("hello") @ingreds("hello.o") def file_command(c): """generates hello command""" system(c%"$(cc) $(cflags) -o $(product) $(ingred)") @product("*.o") @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): rm_f("*.o") -------------------------------------------------- Exampe of result: ================================================== sh> ls Kookbook.py hello.c hello.h sh> pykook -l Properties: 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 kookbook.) 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. http://www.kuwata-lab.com/kook/pykook-users-guide.html Have fun! -- regards, makoto kuwata -- http://mail.python.org/mailman/listinfo/python-list