Building the VM

1,215 views
1,137 views

Published on



ESUG 2011, Edinburgh

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,215
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Building the VM

  1. 1. Building The Virtual Machine Igor Stasenko RMoD Team INRIA Lille Nord-Europe Edinburgh ESUG, 2011
  2. 2. Outline• Automated VM build system• Preparing your environment for build• Build VM• Customizing builds 2
  3. 3. Automated build system Input Platform sources Base image (Pharo) Git tracker Job (gitorious.org) LoadVMMaker.st generator.image CMakeVMMaker Generated source Platform-specific files source files CMakeLists.txt VM Builder Job CMake Built artifacts (Mac/Windows/Unix)VM test runner job Tests
  4. 4. Why git?Git is distributed source management tool, while SVNis centralized one.This means that git fits better for developing andmanaging open-source projects driven by communityrather than single or selected team of developers.With gitorious.org, one can easily make own branchpublicly available, without need to ask for VIP’spermission. 5
  5. 5. Getting VM platform sourcesgit clone git://gitorious.org/cogvm/blessed.git cogvm(but do not try it right now!!)For our exercise, download sources tarball from here:https://ci.lille.inria.fr/pharo/view/Cog/Job named: Cog Git Tracker (blessed)cog.tar.gzvmmaker-image.zip 6
  6. 6. Sources directory structure/ <root dir> platforms/ Cross/ common code for all platforms Mac OS/ RiscOS/ platform-specific source code unix/ & configuration files/tools win32/ src/ VMMaker generated code build/ directory used for cmake configuration files results/ built VMs are stored here 7
  7. 7. Loading VMMaker into image• take a fresh Pharo 1.3 or Pharo 1.4 image• place it into /build subdir• evaluate a script from codegen-scripts/LoadVMMaker.st or do it by youself:Gofer new squeaksource: ‘MetacelloRepository’; package: ‘ConfigurationOfCog’; load.ConfigurationOfCog project lastVersion load 8
  8. 8. Generating source code + makefiles<MyConfiguration> generateWithSourcesDepends what you building: 9
  9. 9. Preparing build environmentMacWindowsUnixToo much for the slide :)Follow a guide, made by Mariano Martinez Peck:http://code.google.com/p/cog/wiki/Guide 10
  10. 10. Building VMcd buildcmake . (on Windows: cmake -G”MSYS Makefiles . )make.. run .. 11
  11. 11. Customizing builds: pluginsAdding custom plugins:CogMacOSConfig new addExternalPlugins: #( FT2Plugin ); addInternalPlugins: #( UnixOSProcessPlugin ); generateSources; generate.You could also completely replace the plugins to build,using #internalPlugins: and #externalPlugins:to supply own set of plugins for build. 12
  12. 12. Creating own configuration- as you do for anything in smalltalk: - subclass from appropriate XYZConfig class - change flags/settings - provide own default plugins - etcMyConfig generateWithSources. 13

×