[ANN] pyKook 0.0.1 - a simple build tool similar to Make or Ant
kwatch
kwatch at gmail.com
Sun Oct 19 04:02:42 EDT 2008
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
More information about the Python-list
mailing list