[Vm-dev] Simple makefile for 32/64 bit interpreter VMs (was: VM Maker: VMMaker-dtl.347.mcz)

David T. Lewis lewis at mail.msen.com
Mon Jun 23 23:57:07 UTC 2014


On Mon, Jun 23, 2014 at 10:56:08PM +0000, commits at source.squeak.org wrote:
>  
> David T. Lewis uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker-dtl.347.mcz
> 
> ==================== Summary ====================
> 
> Name: VMMaker-dtl.347
> Author: dtl
> Time: 23 June 2014, 6:55:41.171 pm
> UUID: 0e985655-74a3-4561-8daf-4a4740c19a3b
> Ancestors: VMMaker-dtl.346
> 
> Ensure that initializeSmallIntegers is called before generating the interpreter file because pool constants may have been changed when running simulation (symptom: a 64 bit image crashes because ConstMinusOne has been rendered as unsigned 32 bit, when it should be twos complement -1).
> 
> Remove KedamaPlugin from defaultUnixSpec because it duplicates the more up to date KedamaPlugin2.
>

This update fixes a couple of glitches that I had overlooked in the generated
sources. The platforms and src trees should now work nicely together, at least
on a unix (linux) system. So, for example, if you have a Linux system with
Subversion, CMake, and the the usual development tools installed, you can check
out the platforms and src trees:

  $ svn co http://squeakvm.org/svn/squeak/trunk/platforms
  $ svn co http://squeakvm.org/svn/squeak/trunk/src

Then make a ./build directory next to your freshly downloaded ./platforms
and ./src directories, and use the attached Makefile to build your VMs.

  $ cd build
  $ make
  $ sudo make install

The resulting /usr/local/bin/squeak will run any normal Squeak or Etoys image, as well
as a 64 bit image such as the one at http://build.squeak.org/job/Squeak%2064-bit%20image/.

Dave

-------------- next part --------------
# Fri Nov 22 19:42:46 EST 2013
#
# Makefile to build and install a 32-bit and 64-bit object memory VM. This
# makefile can be run with /usr/sbin/checkinstall to create an RPM or Debian
# install package.
#
# Assume platforms is ../platforms and src is ../src
# 
# The SqueakSSL plugin cannot yet be built for image64, otherwise the 32-bit
# and 64-bit object memory VMs should be the same.

squeakvm:	build/squeakvm build64/squeakvm64

build/squeakvm:	build/CMakeCache.txt
	(cd build; make)

build/CMakeCache.txt:
	mkdir build || true
	(cd build; ../../platforms/unix/cmake/configure --src=../../src)
	#(cd build; ../../platforms/unix/cmake/configure --src=../../src --CFLAGS=-O0)


build64/squeakvm64:	build64/CMakeCache.txt
	(cd build64; make)

build64/CMakeCache.txt:
	mkdir build64 || true
	(cd build64; ../../platforms/unix/cmake/configure --src=../../src --image64 --vm-only --without-SqueakSSL)
	#(cd build64; ../../platforms/unix/cmake/configure --src=../../src --image64 --vm-only --without-SqueakSSL --CFLAGS=-O0)

install:	squeakvm
	(cd build; make install)
	(cd build64; make install)

clean:
	rm -rf build build64



More information about the Vm-dev mailing list