Starting with tcl/tk 8.7 it is possible to build zip based executables with core tcl commands.
To simplify this task a shell script is provided.
&|Version|20240308909|&
&|Sources|https://chiselapp.com/usrcefor/rge.net/reprojects/kbskitory/files/zipkit/doc20200909/trunk/zipkit.sh%|%zipkit.sh%|%|&
&|DocBumentationlds|https://chiselapp.com/usrcefor/rge.net/reprojects/kbskitory/files/zipkit/d|&
&|Doc/trumenk/zipkitation|.md%..|%README%|%|&
&|Author|[René Zaumseil]|&
&|License|BSD|&
The list of supported packages can be found with:
======
zipkit.sh info
======
VersiTon 20240308 contains:
pdf4tcl0_9_4
sqlitge3_43_1
sqlite3_44_2
tablelist6_10
tablelist7_0
tcl8_7a5
tcl9_0b1
tcllib1_20
tdbc1_1_1
tdbc1_1_6
tdbcmysql1_1_1
tdbcmysql1_1_6
tdbcodbc1_1_1
tdbcodbc1_1_6
tdbcpostgres1_1_1
tdbcpostgres1_1_6
tdbcsqlite3_1_1_1
tdbcsqlite3_1_1_6
thread2_8_5
thread3_0b1
tk8_7a5
tk9_0b1
tkdnd2_9_4
tko0_4
To get package sources use:
======
zipkit.sh sources ?package ..?
======
To compile packages or build executables or plain zip files use (macos is not tested!):
======
zipkit.sh win|unix|macos ?--* ..? ?tclsh|wish|zip name? ?package ..?
======
[MHo] 2020-12-15: What about Windows? No .sh Skripts there.
[RZ] I use msys/mingw. Try p.e. the following bat file:
======
:: https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/6.3.0/threads-win32/sjlj/i686-6.3.0-release-win32-sjlj-rt_v5-rev1.7z
:: https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/msys+7za+wget+svn+git+mercurial+cvs-rev13.7z
:: External programs
set CMD_ZIP1="C:\Programme\WinZip\wzunzip.exe"
set CMD_ZIP2="C:\Programme\7-zip\7z.exe"
set VOL=D:
set DIR=%~dp0
echo === Install mingw/msys system ...
call :_UNZIP %VOL% mingw32 %DIR%\i686-6.3.0-release-win32-sjlj-rt_v5-rev1.7z
call :_UNZIP %VOL%\mingw32 msys %DIR%\msys+7za+wget+svn+git+mercurial+cvs-rev13.7z
echo %VOL%/mingw32 /mingw > %VOL%\mingw32\msys\etc\fstab
echo === Create tclsh/wish binaries ...
%VOL%\mingw32\msys\bin\sh.exe --login %DIR%\zipkit.sh <here come your args>
echo === Done
pause
exit /B 0
:: call :_UNZIP targetdir zipdir zipfile
:_UNZIP
if not exist "%1\%2" (
if exist %CMD_ZIP1% (
echo %CMD_ZIP1% -d %3 %1
%CMD_ZIP1% -d %3 %1 > nul
)
)
if not exist "%1\%2" (
if exist %CMD_ZIP2% (
echo %CMD_ZIP2% x %3 -o%1
%CMD_ZIP2% x %3 -o%1 > nul
)
)
if not exist "%1\%2" (
echo ABORT Missing unzip dir "%1\%2"
pause
exit
)
echo --- Unzip %1\%2 OK
exit /B 0
======