============= plKook README ============= Release:: 0.0100 About ----- plKook is a smart build tool similar to Make, Rake, Ant, Scons, or Cook. Kookbook.pl, which is a task definition file for plKook, is written in Perl. You can write any Perl code in your Kookbook.pl. *NOTICE* plKook is under alpha release. Specs and features are subject to change without notice. Installation ------------ $ cpanm Kook Or: $ tar xzf Kook-0.0100.tar.gz $ cd plkook-0.0100/ $ perl Makefile.PL $ make $ make test $ sudo make install Example ------- Kookbook.pl:: ## default task name $kook_default = 'all'; ## properties my $release = prop('release', '1.0.0'); my $CC = prop('CC', 'gcc'); ## file recipe recipe 'hello', { # product ingreds => ['hello.o'], # ingredients kind => 'file', desc => "build 'hello' command", method => sub { my ($c) = @_; sys "$CC -o $c->{product} $c->{ingred}"; } }; ## file recipe recipe '*.o', { # product ingreds => ['$(1).c', '$(1).h'], # ingredients desc => "compile *.c into *.o", method => sub { my ($c) = @_; sys "$CC -c $c->{ingred}"; } }; ## task recipe recipe 'package', { ingreds => ['hello'], # ingredients desc => "create package", method => sub { my $base = "hello-$release"; my $pkgdir = "build/$base"; rm_rf $pkgdir; mkdir_p $pkgdir; cp 'README', 'hello', $pkgdir; cd "build", sub { sys "tar czf $base.tar.gz $base"; }; } }; ## task recipe recipe 'all', { ingreds => ['package'], # ingredients desc => "build all", }; ## task recipe recipe 'clean', { desc => "remove *.o", method => sub { rm_f '*.o'; } }; Command-line example:: bash> kk -l # or plkook -l Properties: release : "1.0.0" CC : "gcc" Task recipes (default=all): package : create package all : build all clean : remove *.o File recipes: hello : build 'hello' command *.o : compile *.c into *.o (Tips: it is able to separate properties into 'Properties.pl' file.) bash> kk # or plkook ### **** hello.o (recipe=*.o) $ gcc -c hello.c ### *** hello (recipe=hello) $ gcc -o hello hello.o ### ** package (recipe=package) $ rm -rf build/hello-1.0.0 $ mkdir -p build/hello-1.0.0 $ cp README hello build/hello-1.0.0 ### * all (recipe=all) bash> kk clean # or plkook clean ### * clean (recipe=task_clean) $ rm -f *.o #See 'doc/users-guide.html' for details. <- coming soon! License ------- MIT License Author ------ makoto kuwata copyright(c) 2009-2011 kuwata-lab.com all rights reserved.