Hi Timothy,

On Thu, May 29, 2014 at 8:57 AM, gettimothy <gettimothy@zoho.com> wrote:
Hi Clement.

Although Eliot has not submitted to SVN on Squeak yet. I have implemented that functionality for squeak and emailed him a tarball with the scripts etc. 

Yes I did, yesterday evening.  See rev 2932.

(although I have not done the headless version that you demonstrate--that looks good)

Eliot has similar scripts in Cog/image directory that do some of the work you describe, but they are not as advanced.



---- On Thu, 29 May 2014 01:01:40 -0700 Clément Bera<bera.clement@gmail.com> wrote ----

Hello gettimothy,

If you want to integrate the Pharo build, here is the script I use to build the VM (I use this script since I built first the Pharo VM in 2012)

cd pharo-vm
cd image
./pharo generator.image eval 'PharoVMBuilder buildMacOSX32'
cd ../build 
bash build.sh

Then the VM is in results folder.

newImage.sh creates a generator.image (Now we have that for the Cog branch as Eliot added it when I was visiting him in May).
build.sh consists basically in calling cmake then make:
if [ ! -e vmVersionInfo.h ]; then
cmake .
make install

Now your process is not as easy at it looks like. I know you are aware but compiling the VM requires people to install different softwares (typically git, cmake, wget, Xcode command line tools for me on Mac) and for the Pharo build, it requires CLang which is fine but I am not able to build from Eliot sources which requires gcc.

So I think your app should in addition check depending on the platform (windows, Linux, Mac OS X, RISC OS) if everything required to compile the VM is installed, and else install it automatically.

The best would be to try to compile the VM on a freshly installed computer so you can know if it installs everything that is needed.

Keep going with this great work :-)



2014-05-28 23:34 GMT+02:00 gettimothy <gettimothy@zoho.com>:
>>No preference.  It's up to you.  But I'm curious; why are you putting it in an app?

As I do one gnu-build tree, I am going to do its corresponding CMake tree.

The CMake configuration files are generated from Squeak.

It would be like GNU makefiles and autoconf files are generated from Squeak.

Process is like this:

1. have a directory structure.
2. Tell CMakeVMMakerSqueak to generate which creates the CMake infrastructure within the specified directory. (Or generateWithSources to create VMMaker sources and CMake files)
3. from the command line, run the generated buils script 'build.sh' which
      3.a (on pharo, does some git stuff) 
      3.b invokes cmake
      3.c invokes make
4. get your results out of the oscogvm/results directory.

If everything is stable, the end user just does a svn co of the cmake branch they want and invokes the build.sh script. <---THIS is what Tim R. wants as the deliverable

I have another process in place for vm developers similar to your buildsqueaktrunk.sh scripts. I sent you those scripts last week. They set you up with either 
a standard VM build environment (complete with source tree set up relative to Squeak) or a CogVM build environment. The idea being to make it easy on newbie vm guys to get up and running.