<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style='font-size:10pt;font-family:Verdana,Arial,Helvetica,sans-serif;'><div>Hi All,</div><div><br></div><div>Just interjecting a couple of observations that might ease concerns.</div><div><br></div><div>First, thanks for the heads up on the "nm" command. I have it copied in my notes for when I return to debugging dynamically linked plugins.</div><div><br></div><div>Second, I think the CMakeVMakerSqueak will be easier to maintain than the GNU system and will provide better coverage. I have a long-winded explantion below if you are interested.</div><div><br></div><div>cheers.</div><div><br></div><div>tty</div><div><br></div><div><br></div><div><br></div><div>1. What I am seeing is two different build expectations.&nbsp;</div><div><br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pharo is set up to build on a server to support pharo releases. For this job, CMakeVMMaker fits the build as the machine is a known quantity (?)</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Squeak (will be) set up to support a build on an initial set of [OS][VMWordSize][Processor]/[Language][VM][MemoryManager]&nbsp;</div><div><br></div><div>2. Cog SVN build tree defines [OS][VMWordSize][Processor] directories for&nbsp;</div><p><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;build.linux32x86<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;build.macos32x86<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;build.win32x86</div><div>&nbsp; &nbsp; &nbsp; bochs?</div></p><div>&nbsp; &nbsp; &nbsp;each of must support 12 [Language][VM][MemoryManager] configurations.&nbsp;</div><div>newspeak.cog.spur</div><div>newspeak.cog.v3</div><div>newspeak.sista.spur<br>newspeak.sista.v3<br>newspeak.stack.spur<br>newspeak.stack.v3<br>squeak.cog.spur<br>squeak.cog.v3<br>squeak.sista.spur<br>squeak.sista.v3<br>squeak.stack.spur</div><div>squeak.stack.V3</div><div><br></div><div>each of which must support buildTypes of: build  build.assert  build.assert.itimerheartbeat  build.debug  build.debug.itimerheartbeat  build.itimerheartbeat  build.multithreaded  build.multithreaded.assert  build.multithreaded.debug</div><div><br></div><div>These MUST dynamically configure themselves for the GNU Builds.</div><div><br></div><div>However, in CMake these directories are coupled with Configuration Classes named after each combination of the above: [OS][VMWordSize][Processor][Language][VM][MemoryManager].</div><div><br></div><div>This gives us a base-line configuration that can be extended for edge cases. Each&nbsp;[OS][VMWordSize][Processor][Language][VM][MemoryManager] also dynamically configures itself for &nbsp;the different buildTypes, so in essence you have</div><div>[OS][VMWordSize][Processor][Language][VM][MemoryManager][buildType] baseline configs</div><div><br></div><div>Eliot is correct that this is not flexible as "Linux/Unix" specifies a lot if flavors of "Unix" as we see with the 3 possibilities of uuid.h in just one plugin for that platform. So....</div><div><br></div><div>3. We can stretch things a bit in&nbsp; CmakeVMaker(Squeak) we can extend this by creating additional [OS][VMWordSize][Processor] directories for "unix" platforms like this</div><div>&nbsp; &nbsp; &nbsp; BSD32x86</div><div>&nbsp; &nbsp; &nbsp; SunOS32x??&nbsp;</div><div>&nbsp; &nbsp; &nbsp; Linux32ARMv6</div><div>&nbsp; &nbsp; &nbsp; Linux64X86-32BitCompatibility</div><div>&nbsp;</div><div>&nbsp; &nbsp; &nbsp; So that "could" take care of the config.h specification for that platform.</div><div><br></div><div>&nbsp; &nbsp; &nbsp; Edge cases for a&nbsp;[OS][VMWordSize][Processor][Language][VM][MemoryManager] standard configuration are made by subclassing the standard</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; I (will be by tomorrow when I refactor the thing) am encapsulating the configuration for Linux64x86w32BitSqueakCogV3 in a subclass named Linux64x86w32BitSqueakCogV3SlackwareNoGL</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;CMakeVMaker has Debian configs that I will be rolling into the mix soon</div><div>&nbsp; &nbsp; &nbsp;&nbsp;</div><div>4. Once release 1 of this &nbsp;puppy, we can evaluate pursing using CMake to generate config.h. I don't know how to at the moment, but a quick search leads me to believe it can be done:</div><div><a href="http://stackoverflow.com/questions/9639449/cmake-how-to-pass-preprocessor-macros" target="_blank">&nbsp; &nbsp; &nbsp;http://stackoverflow.com/questions/9639449/cmake-how-to-pass-preprocessor-macros</a></div><div>&nbsp;</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div></body></html>