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 | 20240308 |
Source | zipkit.sh |
Documentation | README |
Author | René Zaumseil |
License | BSD |
The list of supported packages can be found with:
zipkit.sh info
Version 20240308 contains:
pdf4tcl0_9_4 sqlite3_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