[Vm-dev] Check new directory structure for RiscOS build (was: [commit][2807] look for plugins.{int,ext,exc} in build, unix/cmake and src; parse plugin lists more robustly)

David T. Lewis lewis at mail.msen.com
Sun Nov 17 05:00:46 UTC 2013

Hi Tim,

Can you please check if the following makes sense for compiling on Risc OS?

As previously discussed, we are changing the directory layout of generated
sources so that all plugins (internal and external) are generated into a
single subdirectory. This matches the organization that Eliot is using for
Cog builds. VMMaker is already updated to do this by default unless you
explicitly set "VMMaker useSinglePluginsDirectory: false".

You may have noticed from the recent string of commit notices that Ian
has reworked the Unix build to use the new flattened directory structure.
Along with this, we are adopting the conventions of using the plugins.int,
plugins.ext, and plugins.exc configuration files to control the build:

On Wed, Nov 13, 2013 at 07:44:43PM -0800, commits at squeakvm.org wrote:
> Revision: 2807
> Author:   piumarta
> Date:     2013-11-13 19:44:42 -0800 (Wed, 13 Nov 2013)
> Log Message:
> -----------
> look for plugins.{int,ext,exc} in build, unix/cmake and src; parse plugin lists more robustly

This is intended to be compatible with the Cog build conventions, in which
plugins.int/ext/exc are located in the build directory, and are used at
compile time to control which plugins are built. This permits a full set
of generated sources to be present in the src directory, even if only a
subset is used for a particular platform build.

Along with this, there is a search path convention for the plugins.int/ext/exc

- If plugins.int/ext/exc exist in the build directory, these are used. This
matches the approach for Cog build, and is generally appropriate for a person
or organization that wants to build VMs for multiple platforms from a single
controlled set of C source files.

- Otherwise, if plugins.int/ext/exc exist in the unix/cmake directory (or
presumably in the case of Risc OS, in some location that you might choose
in platforms/RiscOC), then these are used. This is the use case of a platform
maintainer (e.g. Ian) building official VMs for distribution, where the 
trunk/src files may have been generated by someone else (e.g. you or me),
and he wants to explicitly specify the configuration for the platform build.
It may also be appropriate for Linux distribution maintainers.

- Otherwise, use the plugins.int/ext/exc in the src directory. This is the
default case, in which VMMaker generates plugins.int and plugins.ext as
part of the source generation. This is also the normal case for an individual
person (such as myself) building a VM, or using VMMaker to develop a new
plugin, debug a VM problem, etc. Very likely it is also the normal case
when you build a VM for Risc OS.

I think that most of the above is pretty much self-evident, but I wanted to
run it by you in case any of this conflicts with the way in which you
build a VM for Risc OS (or more generally, any non-unixish platform).


More information about the Vm-dev mailing list