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

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • kwatch

    #1

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

    Hi all,

    I have released pyKook 0.0.1.
    http://pypi.python.org/pypi/Kook/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
    ##
    @ingreds("hello ")
    def task_all(c):
    pass

    @product("hello ")
    @ingreds("hello .o")
    def file_command(c) :
    """generate s 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:

    =============== =============== =============== =====
    shls
    Kookbook.py hello.c hello.h

    shpykook -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_p roduct' variable in your
    kookbook.)

    shpykook all # or, pykook --cc=gcc4 all
    ### *** hello.o (func=file_ext_ o)
    $ gcc -g -Wall -c hello.c
    ### ** hello (func=file_comm and)
    $ gcc -g -Wall -o hello hello.o
    ### * all (func=task_all)
    =============== =============== =============== =====


    See users-guide for more details.



    Have fun!

    --
    regards,
    makoto kuwata

Working...