I'm pleased to say that I've integrated all the mac source into VMMaker. Fairly soon I'll issue the change sets which btw preserve the existing historically incorrect/mangled/muddled plugin names (sorry Tim) and post where the tar bar is for the tree. I realize of course the next big thing is to use CVS or something to update the tree, but I'll leave that for another day.
Via VM maker you can now build (via codewarrior) a macintosh 68k VM macintosh PowerPC VM macintosh Carbon VM macintosh PowerPC Browser plugin macintosh PowerPC Carbon Browser plugin A Fat VM...
Optionally you can build an Open Transport version for 68K if you get the correct files.
I've also integrated in the Mpeg3Plugin FFIPlugin testOSAPlugin (applescript)
as external plugins for PowerPC. In the past some of these have lurked as optional features if you could find an old plugin and/or figure out how to build your own.
Is VMMaker just for Mac? Or is this a new place for all of the platform files to be submitted?
--- Noel
Is VMMaker just for Mac? Or is this a new place for all of the platform files to be submitted?
--- Noel
No in theory it's for every platform. Tim has integrated his Acorn stuff and the common Unix stuff. I can't speak to when the windows or main stream Unix distro, or Jitter would/will/couldbe/mightbe/shouldbe integrated.
Right now the tree looks like below which follow the identifier attribute given by the VM. IE running on the MAC means the VM returns 'Mac OS'. The sub folders follow the names of the current plugins. 'Cross' is for stuff that is cross platform, so for example sqOpenGLRender.c is found in Cross/B3DAcceleratorPlugin and the macintosh specific static implementation files like sqMacOpenGL.c are found in Mac OS/B3DAcceleratorPlugin.
Tim did attempt to unify the plugin names, but I removed that support because it causes problems with older images that now would have mismatchs between plugin names. (Sad)...
Build means issuing cmds like
(VMMaker default initializeAllInternalBut: #(IntegerPokerPlugin Mpeg3Plugin FFIPlugin TestOSAPlugin FileCopyPlugin )) generateEntire.
To build the standard macintosh VM, with those 5 plugins as external entities.
or (MacOSPowerPCOS9BrowserVMMaker default initializeAllInternalBut: #(IntegerPokerPlugin Mpeg3Plugin FFIPlugin TestOSAPlugin)) generateInterpreterFile.
to get just the mac OS browser plugin interpreter built.
VM can be built with any mixture of internal/external plugins baring issues with getting some of the code that thinks it should be internal as external...
Note that the Slang code is generated on the fly as each plugin is being built, so nothing changes there. Plugins can basically remove their static C files, and require you to return a flag to indicate if there is a header file, and/or any platform files. Also remove of their translate routines, unless they are doing some custom modifications against the static files.
The resulting code is dumped into a target directory, if the tree contains subdirectories for the static files those are preserved.
platform Cross
AsynchFilePlugin B3DAcceleratorPlugin DropPlugin FileCopyPlugin FilePlugin JoystickTabletPlugin MIDIPlugin misc Mpeg3Plugin SecurityPlugin SerialPlugin SocketPlugin SoundCodecPrims SoundGenerationPlugin SoundPlugin SqueakFFIPrims SurfacePlugin vm
Mac OS
AsynchFilePlugin B3DAcceleratorPlugin DropPlugin FileCopyPlugin FilePlugin JoystickTabletPlugin MIDIPlugin SecurityPlugin SerialPlugin SocketPlugin SoundPlugin SqueakFFIPrims vm
RiscOS unix
squeak-dev@lists.squeakfoundation.org