##
## cct - TMakeLib - Procs
##
## IPN - Ingenieurbuero fuer Praezisionsnumerik
##
## Dipl.-Ing. Andreas Otto
## Ulmenstrasse 3
## D-34289 Zierenberg
##
## Alle Rechte vorbehalten
##
proc Install { Mode File Dir } {
##CUM
if {![ file exists $File]} {
puts "WARNING: file<$File> don't exist"
return
}
set Tail [ file tail $File ]
CopyNoLink $File $Dir
set TFile [ file join $Dir $Tail ]
#file attributes $TFile -permissions $Mode
}
proc Msg { S1 S2 } {
set N1 [ string length $S1 ]
set N2 [ expr { 20 - $N1 - 2 } ]
puts "$S1 [ string repeat "." $N2 ] $S2"
}
proc Link { Out Dir Args } {
set TXT {}
foreach A $Args {
set FH [ open [ file join $Dir ${A}.etcl ] r ]
append TXT [ read $FH ]
close $FH
}
set FH [ open $Out a ]
puts $FH $TXT
close $FH
}
proc ErrorTest { FH SEITE } {
seek $FH 0 start
set TMP [ string trim [ read $FH ] ]
#Print TMP
if {[string length $TMP ]} { ::StdLib::Error $TMP }
close $FH
DelIfExist [ Target $SEITE.err ]
Touch [ Target $SEITE ]
}
proc addprefix { Pre List { Post {} } } {
set RET {}
foreach l $List {
lappend RET $Pre$l$Post
}
return $RET
}
proc Target { File } {
global VARDIR
return [ file join $VARDIR $File ]
}
proc SetBuildString {} {
global OT_PKG OT_MAJOR OT_MINOR VARDIR TMPDIR
##set ::tcl_traceExec 2
set TDIR [ file join $VARDIR BUILD ]
set PKGFILE [ file join $VARDIR BUILD $OT_PKG ]
set PKGLOG [ file join $VARDIR BUILD ${OT_PKG}.log ]
set BFLAG [ file join $TMPDIR BFLAG ]
package require FileLib
::StdLib::Push CHANNEL DEFAULT
if {![file isdirectory $TDIR]} {
if {[ catch { file mkdir $TDIR } ]} {
puts "can't create BUILD directory <$TDIR>"
::StdLib::Release
return
}
}
if {![file isfile $PKGFILE]} {
set NUM 0
} else {
set NUM [ ::FileLib::Read $PKGFILE ]
}
set Date [ clock format [ clock seconds ] -format "%Y_%m_%d__%H_%M_%S" ]
set LMax 30
set LPkg [ string length "${OT_PKG}(v$OT_MAJOR.$OT_MINOR)" ]
set Sp [ string repeat "." [ expr {$LMax - $LPkg - 2} ] ]
set Str "${OT_PKG}(v$OT_MAJOR.$OT_MINOR) $Sp BUILD([ incr NUM])"
puts ">>>>>>>>>> $Str"
::FileLib::Write $PKGFILE $NUM
::FileLib::Append $PKGLOG ${OT_PKG}_${OT_MAJOR}_${OT_MINOR}_${NUM}_${Date}
set MSG "Ot_Print(interp,\"$Str\\n\");"
::FileLib::Write $BFLAG $MSG
}
proc MakeALNUM { Str } {
regsub -all {[^\w]} $Str {_} NStr
return $NStr
}