Posted to tcl by hypnotoad at Tue Sep 06 17:14:19 GMT 2016view raw
- package require practcl
- ::practcl::target all {
- depends {a b c}
- }
- ::practcl::target clean {
- }
- ::practcl::target a {
- depends b c
- filename a
- }
- ::practcl::target b {
- depends Makefile.b
- }
- ::practcl::target Makefile.b {
- filename Makefile.b
- }
- ::practcl::target c {
- filename c
- }
- ::practcl::trigger {*}$argv
- if $make(clean) {
- foreach file {a b c d e f Makefile.b} {
- if {[file exists $file]} { file delete -force $file }
- }
- }
- if $make(a) {
- ::practcl::cat {b c} a
- }
- if $make(Makefile.b) {
- set fout [open Makefile.b w]
- puts $fout "b: d e f
- \tcat d e f > b.new
- \techo test:B >> b.new
- \tmv b.new b'
- d:
- \techo test:D > d
- \tsleep 10
- e:
- \ttest:E > e
- \tsleep 10
- f:
- \techo test:F > f
- \tsleep 10"
- close $fout
- }
- if $make(b) {
- domake [pwd] -f Makefile.b b
- }
- if $make(c) {
- set fout [open $target(c) w]
- puts $fout "test:C"
- close $fout
- after 10000
- }