
set ::rebuild_tree 0

proc build.mkdir dir {

 if {!$::rebuild_tree && [file exists $dir]} {
   puts DELETING:$dir
   file delete -force $dir
 } 
 catch {file mkdir $dir}
}

proc build.exec cmd {
 if {[catch [concat exec $cmd] err] && "NONE" ne $::errorCode} {
   puts stderr "error: $err"
   exit 1
 }
}


proc main {argc argv} {
  if {1 == $argc && "rebuild" eq [lindex $argv 0]} {
    set ::rebuild_tree 1
  }


  set root [pwd]
  puts ROOT:$root
  set prefix [clock format [clock seconds] -format  "%a-%b-%d"]


  set install_prefix [file join $root [set prefix]-runtime]
  set tcldir "[set prefix]-tcl"
  set tkdir "[set prefix]-tk"

  build.mkdir $tcldir
  cd $tcldir
  build.exec "sh ../tcl/unix/configure --prefix=$install_prefix"
  build.exec {make install} 

  puts "built tcl"

  cd $root

  build.mkdir $tkdir
  cd $tkdir
  # XXX don't use spaces in the filenames XXX
  build.exec "sh ../tk/unix/configure --prefix=$install_prefix --with-tcl=[file join $root $tcldir]"
  build.exec {make install}

  puts "built tk"

  puts DONE

  return 0
}
exit [main $::argc $::argv]