# example of pure perl rules as well as example using dependent matchers PbsUse('Dependers/Matchers') ; #~ # %TARGET_PATH is usefull as soon as the target has a path it otherwise generates cycles! #~ # the following rule would recurse infinitely if the target is 'all' but not if the target is 'somepath/all' #~ AddRule '1', [qr<%TARGET_PATH/all$> => '$path/muu/all', '$path/f1', '$path/a.o', '$path/muu/xxxxx.o'] ; AddRule 'rule_1', [qr<\./all$> => '$path/muu/all', '$path/f1', '$path/a.o', '$path/muu/xxxxx.o'] ; AddRule 'rule_2', [qr<\.o$> => '$path/$basename.c'] ; AddRule 'rule_3', [ [sub{return(@_[4 .. 5])}] # creator #~ => qr<\.c$> => # regex #~ => sub{ $_[0] =~ qr<\.c$>} => # regex #~ => AnyMatch(qr<\.c$>, qr) => # regex #~ => CompositMatch #~ ( #~ AnyMatch(qr<\.c$>, qr) #~ , NoMatch(qr/xx/) #~ ) => # regex => AndMatch(qr<\.c$>, NoMatch(qr/xx/)) => # regex #normal dependency definition # available: $path $basename $name $ext '$path/$basename.h' , [ # post depender sub { return([1, "hi_there2"], @_[5 .. 6]) } ] , sub #depender { return([1, "hi_there1"], @_[5 .. 6]) } ] ; #~ AddRule '4', [qr/%TARGET_PATH.+$/ => '$path/$basename.muu'] ; #~ AddRule '3', [[sub{return(@_[4 .. 6])}], '*/*.c' => 'zzz'] ; #~ AddRule '', [qr// => ] ;