From b1522f7551ad6f1a989770b144109ea90bd0d99b Mon Sep 17 00:00:00 2001 From: lecoanet Date: Fri, 24 Sep 2004 12:53:11 +0000 Subject: *** empty log message *** --- starkit.tcl.in | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 starkit.tcl.in (limited to 'starkit.tcl.in') diff --git a/starkit.tcl.in b/starkit.tcl.in new file mode 100644 index 0000000..dac4a63 --- /dev/null +++ b/starkit.tcl.in @@ -0,0 +1,140 @@ +# +# This script is intended to be run in the top directory +# with: tclsh starkit.tcl. +# It needs a tclkit and the sdx command as a starkit in the path. +# + +set MAJOR_VERSION @MAJOR_VERSION@ +set MINOR_VERSION @MINOR_VERSION@ +set PATCHLEVEL @PATCHLEVEL@ + + +# +# Starkit structure +# +# demo.tcl +# lib +# tkimg1.3 +# files from the Tkimg starkit +# TkzincX.Y +# Copyright +# demos +# demos files and sub-directories +# Linux-x86 +# Tkzinc.so +# pkgIndex.tcl +# Windows-x86 +# Tkzinc.dll +# zincGraphics.tcl +# zincLogo.tcl +# zincText.tcl +# main.tcl +# + +proc updateKit {} { + global MAJOR_VERSION MINOR_VERSION PATCHLEVEL + + set zincPath [file join Tkzinc.vfs lib Tkzinc$MAJOR_VERSION.$MINOR_VERSION] + set version $MAJOR_VERSION.$MINOR_VERSION.$PATCHLEVEL + set winVersion $MAJOR_VERSION$MINOR_VERSION$PATCHLEVEL + + file copy -force [file join starkit demo.tcl] [file join starkit main.tcl] Tkzinc.vfs + + set zincPath [file join Tkzinc.vfs lib Tkzinc$MAJOR_VERSION.$MINOR_VERSION] + file mkdir $zincPath + file copy -force Copyright \ + [file join library zincGraphics.tcl] \ + [file join library zincLogo.tcl] \ + [file join library zincText.tcl] \ + $zincPath + + set demosPath [file join $zincPath demos] + file mkdir $demosPath + foreach f [glob -directory demos *.tcl] { + file copy -force $f $demosPath + } + file delete -force [file join $demosPath data] [file join $demosPath images] + file copy -force [file join demos zinc-widget] [file join demos data] [file join demos images] $demosPath + + # + # Emit a merged pkgIndex.tcl + # + set fOut [open [file join $zincPath pkgIndex.tcl] w] + puts $fOut "proc Platform {} {" + puts -nonewline $fOut [info body Platform] + puts $fOut "}" + set fIn [open [file join library pkgIndex.tcl]] + foreach line [split [read $fIn] \n] { + if {![regexp {^\s*$|^#} $line]} { + puts $fOut $line + } + } + close $fIn + puts -nonewline $fOut "package ifneeded Tkzinc $version " + puts $fOut {[list load [file join $dir [Platform] Tkzinc[info sharedlibext]]]} + close $fOut + + # + # Copy the platform dependent libraries + # + if { [file exists libTkzinc$version.so] } { + set platformPath [file join $zincPath Linux-x86] + file mkdir $platformPath + file copy -force libTkzinc$version.so [file join $platformPath Tkzinc.so] + } + if { [file exists Tkzinc$winVersion.dll] } { + set platformPath [file join $zincPath Windows-x86] + file mkdir $platformPath + file copy -force Tkzinc330.dll [file join $platformPath Tkzinc.dll] + } + + exec sdx wrap Tkzinc.kit +} + + +proc Platform {} { + global tcl_platform + set plat [lindex $tcl_platform(os) 0] + set mach $tcl_platform(machine) + switch -glob -- $mach { + sun4* { set mach sparc } + intel - + i*86* { set mach x86 } + "Power Macintosh" { set mach ppc } + } + switch -- $plat { + AIX { set mach ppc } + HP-UX { set mach hppa } + } + return "$plat-$mach" +} + +# +# If the starkit Tkzinc.kit already exist in the top directory +# simply update it else build a new one according to the layout +# above. In this later case one need to make sure there is a +# valid Tkimg.kit in the top directory's parent. +# +if { [file exists Tkzinc.kit] } { + if { [file exists Tkzinc.vfs] } { + file delete -force Tkzinc.vfs + } + exec sdx unwrap Tkzinc.kit + updateKit +} { + if { [file exists Tkzinc.vfs] } { + file delete -force Tkzinc.vfs + } + file mkdir Tkzinc.vfs + + if { [file exists Tkimg.vfs] } { + file delete -force Tkimg.vfs + } + exec sdx unwrap [file join .. Tkimg.kit] + file copy [file join Tkimg.vfs lib] Tkzinc.vfs + + updateKit +} + +file delete -force Tkimg.vfs +#file delete -force Tkzinc.vfs -- cgit v1.1