Hello,
I'm running into some trouble with building VMs on MacOS (v10.3.4, XCode 1.1) I successfully followed the instructions in the sourceforge platforms/ directory to build a vanilla VM, but ran into difficulties building both internal and external plugins.
I tried external plugins first, but quickly found myself over my head; I'm a new Mac developer and don't yet grok Bundles and such.
Seeking an easier way to get my feet wet, I decided to build Andrew Greenberg's RePlugin as an internal plugin. I loaded the package from SqueakMap, added RePlugin to the list of internal plugins in VMMaker, and followed the VM building instructions as before.
The VM successfully built, but didn't include the plugin, as verified via 'Smalltalk listBuiltinModules'. I figured that this was because the XCode project file didn't include the appropriate files in the build target. So, I added the files to the project manually. Specifically, I added them to the 'Squeak VM Opt' target. The VM built OK, but again didn't include the plugin.
I have a few questions:
Do I have to manually adjust the XCode project settings each time I change the VMMaker configuration? If so, how should I do this?
Do people always use XCode to build MacOS vms? What about command line tools?
What are the benefits of using the MacOS vs. the unix branch of the Sourceforge code?
Is there any documentation about building external plugins on MacOS?
Thanks, Joshua
On May 30, 2004, at 11:59 AM, Joshua 'Schwa' Gargus wrote:
Hello,
I'm running into some trouble with building VMs on MacOS (v10.3.4, XCode 1.1) I successfully followed the instructions in the sourceforge platforms/ directory to build a vanilla VM, but ran into difficulties building both internal and external plugins.
I tried external plugins first, but quickly found myself over my head; I'm a new Mac developer and don't yet grok Bundles and such.
Seeking an easier way to get my feet wet, I decided to build Andrew Greenberg's RePlugin as an internal plugin. I loaded the package from SqueakMap, added RePlugin to the list of internal plugins in VMMaker, and followed the VM building instructions as before.
The VM successfully built, but didn't include the plugin, as verified via 'Smalltalk listBuiltinModules'. I figured that this was because the XCode project file didn't include the appropriate files in the build target. So, I added the files to the project manually. Specifically, I added them to the 'Squeak VM Opt' target. The VM built OK, but again didn't include the plugin.
I have a few questions:
Do I have to manually adjust the XCode project settings each time I change the VMMaker configuration? If so, how should I do this?
There is some instructions to build the printjob plugin in the readme Building with PrintJobPlugin as internal
Add to the build as internal plugin list do a "clean out" do a "Generate all"
This should result in a folder being created src/vm/intplugins/PrintJobPlugin and of course we also use the code in platforms/Mac OS/plugins/PrintJobPlugin folder
Returning to the project builder project we need to add a number of files to the project.
In the "Files" tab view Select down to the location we want to put the built source Sources/src/plugins/vm/intplugins Create a new group called PrintJobPlugin Add the file PrintJobPlugin.c from src/vm/intplugins/PrintJobPlugin to that group
Do the same type of work to select the other files need to build the plugin PrintJobPlugin.h file from the platforms/Cross/plugins/PrintJobPlugin folder that should go in the Sources/Cross/plugins/PrintJobPlugin group that you will create sqMacPrinting.c & sqMacPrinting.h from the platforms/Mac OS/plugins/PrintJobPlugin these should go in the Sources/Mac OS/plugins/PrintJobPlugin group that you will create
Do people always use XCode to build MacOS vms? What about command line tools?
Usually, if you want to build using command tools you can use the unix vm.
What are the benefits of using the MacOS vs. the unix branch of the Sourceforge code?
The carbon/macos version has a few things like alias support that is not in the unix branch. We are planing on merging more of this into the unix mac vm.
Is there any documentation about building external plugins on MacOS?
There is a xcode project and resources stuffit doc in the printjob plugin source folder which is an example template to build a external plugin
Thanks, Joshua
-- ======================================================================== === John M. McIntosh johnmci@smalltalkconsulting.com 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== ===
Hi John,
Thanks for the help...
On Tue, Jun 01, 2004 at 09:19:10AM -0700, John M McIntosh wrote:
On May 30, 2004, at 11:59 AM, Joshua 'Schwa' Gargus wrote:
There is some instructions to build the printjob plugin in the readme Building with PrintJobPlugin as internal
Ok, thanks. I was confused, thinking that PrintJobPlugin was in some way special. Perhaps a line could be added to the documentation, indicating that this is the general method for generating internal plugins, and that PrintJobPlugin is being used for concreteness.
<some build instructions from the help file snipped>
In the "Files" tab view Select down to the location we want to put the built source Sources/src/plugins/vm/intplugins
'Sources/src/vm/intplugins' would seem to be more in line with the naming convention in the XCode project.
<snipped rest of help file>
I was finally successful building a VM with different internal plugins. My problem was that the XCode project has 2 versions of sqNamedPrims.h - one in the generated sources, and one in 'platforms/Mac OS' !?!? It was the latter that was being included. Is this a bug, or is this intended for some reason?
Is there any documentation about building external plugins on MacOS?
There is a xcode project and resources stuffit doc in the printjob plugin source folder which is an example template to build a external plugin
Giving this a try next.
Thanks again, Joshua
On Mon, Jun 07, 2004 at 08:44:10AM -0400, Joshua 'Schwa' Gargus wrote:
There is a xcode project and resources stuffit doc in the printjob plugin source folder which is an example template to build a external plugin
Giving this a try next.
I couldn't get it to work. One obvious problem is that some of the paths are absolute, and some are project-relative. I am also not sure whether the XCode project file should be placed in the directory above platforms/; can you confirm this.
Can a MacOS VM built using XCode load plugins built using the standard unix command line method? That would be much easier.
Thanks, Joshua
Thanks again, Joshua
On Jun 7, 2004, at 5:44 AM, Joshua 'Schwa' Gargus wrote:
I was finally successful building a VM with different internal plugins. My problem was that the XCode project has 2 versions of sqNamedPrims.h
one in the generated sources, and one in 'platforms/Mac OS' !?!? It was the latter that was being included. Is this a bug, or is this intended for some reason?
The one in the Mac OS folder is the standard one we use to build the standard VM. The generated source builds one based on your VMMaker selection. Delete the one you don't need and configure XCode accordingly.
-- ======================================================================== === John M. McIntosh johnmci@smalltalkconsulting.com 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== ===
squeak-dev@lists.squeakfoundation.org