This page tries to collect information needed to build Tcl/Tk and extensions for [WinCE] as of October 2003. It's not for comments regarding writing Tcl for these devices (see [PocketPC] for that), nor for adjusting the GUI to fit the small screens. -[jcw] ---- In 2001/2002, Rainer Keuchel built Tcl/Tk 8.4a2, see [http://www.rainer-keuchel.de/wince/tcltk-ce.html]. As side effect of this great job, he wrote the "celib" utility library and headers which provide wrappers and replacement definitions for things needed to make this work. ''And it does, indeed. The challenge now is to take this further with newer releases of Tcl (8.4a2 does not support VFS, hence no Starkits).'' In July 2003, Jeff Hobbs then built Tcl/Tk 8.4.4, and announced it here [http://aspn.activestate.com/ASPN/Mail/Message/tcl-core/1745097]. This is based on having Cygwin and EVC3 installed in their standard locations on the C drive. Some important comments about that: The sources are set up in such that they coexist in the regular win/ subdir, you just configure like so: $ /cygdrive/z/cvs/tcl/tcl8.4ce/win/configure \ --prefix=C:/build/inst/tclce \ --enable-wince=300,ARM \ --with-celib=/cygdrive/z/src/celib-palm-3.0 Also, they require changes to the default celib devel stuff from Rainer Keuchel ( http://www.rainer-keuchel.de/software.html - thanks for the porting library Rainer!), in order to be more WinCE3.0 compliant. In September 2003, [jcw] did some work to try and get Starkits going. The original goal was to build Tclkit, but there were some issues with finding encodings, so this was changed to creating a "starkit" package with all the necessary scripts and code inside. In October, this appears to be nearly done. The WinCE Mk4tcl.dll is available here [http://www.equi4.com/pub/mk/mk-2.4.9.2-wince/Mk4tcl.dll] (but read on, no need to get it separately). The rechan and zlib binaries were built with EVC3 and work. The last hurdle is TclVFS, which digs a little into Tcl's internals, and seems to have a configure mismatch right now (e.g. "vfs::filesystem fullynormalize ." crashes). It's now Oct 7, 2003 - the "package starkit" that is intended to make starkits work is described here [http://www.equi4.com/pipermail/starkit/2003-September/001545.html]. The starkit.tar.gz download at [http://www.equi4.com/pub/sk/starkit.tar.gz] now also includes WinCE binaries, but at this moment the vfs12.dll in there is not right. ''Stay tooned...'' ---- [JH] Steps to building for WinCE from scratch. * Obtain WinCE sources from http://sourceforge.net/projects/tcltkce/ Files section. * Install cygwin on your machine from http://www.cygwin.org/. Ensure that you include ''make''. * Get Rainer Keuchel's celib binaries [http://www.rainer-keuchel.de/wince/celib.html]. * Install MSVC++ 6 or other functional compiler (this is kind of bogus ... we need to get past the working compiler part of configure that I haven't figured out how to avoid). * Install embedded Visual Tools 3 - 2002 Edition[http://www.microsoft.com/windowsmobile/resources/downloads/developer/default.mspx]. You can skip embedded VB, but let it install in the default ''C:\Windows CE Tools\''. This should also install ''MS Windows SDK for Pocket PC 2002''. You need evc3 if you want to build for Pocket PC 2002. If you just target PPC 2003 or newer, evc4 can be installed, but it has not been tested in the build environment (changes will be required). * Pray that it all installed OK ... you should have the following: * An installed Win32 compiler found on the path * Various CE Tools in ''C:/Windows CE Tools''. * The embedded VC in ''C:/Program Files/Microsoft eMbedded Tools'' * The PPC 2002 SDK in ''C:/Windows CE Tools/wce300/Pocket PC 2002'' * Configure the system in the cygwin shell with: /path/to/tclce-src/win/configure --enable-wince=300,ARM --with-celib=/path/to/celib * make * Rinse, repeat for Tk. Extensions can also be built. They will need to use the latest [TEA] macros from the [sampleextension], as those include the --enable-wince stuff. An example of a working ported extension is [Tktable]. Minor adjustments may need to be made to an extension to get it to work on WinCE (Tktable required one line of C code changes amongst 25K LOC). ---- [Category Porting]