[Vm-dev] [Cog] I want to be able to configure the executable name

Mariano Martinez Peck marianopeck at gmail.com
Sat Feb 23 15:00:36 UTC 2013


I know it doesn't help, but with the Pharo infrastructure (using CMake and
CMakeVMMaker), you can very easily change binary's name. In fact, we
already use different names for different configurations (Stack, CogVM,
CogMT, iOSVM, etc...).

Best,

On Fri, Feb 22, 2013 at 9:13 PM, Eliot Miranda <eliot.miranda at gmail.com>wrote:

>
> Hi Ken,
>
> On Fri, Feb 22, 2013 at 3:54 PM, Ken Causey <ken at kencausey.com> wrote:
> >
> > I'm (slowly) setting up the hosting infrastructure for the Squeak
> community
> > and I'm trying to utilize somewhat more standard procedures and generally
> > make things more easily repeatable where possible.
> >
> > One aspect of this is when installing software from source to use
> > checkinstall to automatically create and install something that at least
> > resembles a proper package for the given distribution (Debian in this
> case).
> >
> > It is useful on the community server(s) to have multiple versions of the
> > Squeak VM installed so that if a particular image works better with a
> given
> > VM, then it is available and easy to use.
> >
> > To make a long story short I would like to be able to, preferably at the
> > configure step I think, to be able to specify an alternate name for the
> > installed Cog squeak executable so that there is no clash with the
> classic
> > Squeak Unix VM.
> >
> > Taking a quick look around it looks like there is an assumption in many
> > places in the Cog Unix configuration that the executable is named Squeak.
> > I'm willing to do some work to produce my desired change but I would
> > appreciate any pointers to where I might start.  Perhaps I'm mistaken
> but it
> > looks to me like platforms/unix/config/ in SVN is a combination of source
> > and generated files.  If I'm not mistaken about that, some guidance in
> which
> > files are properly source files and which are not along with how to
> > regenerate the generated files would be greatly appreciated.
>
> First, I've needed this for both the Newspeak VM and the special VM we
> use at Cadence.
> Second, I've failed to implement this by editing the files in
> platforms/unix/config/.
>
> The way I do it is with a script, e.g.
>
> http://www.squeakvm.org/svn/squeak/branches/Cog/nscogbuild/unixbuild/bld/mvm
> .
>  There-in you'll find this excrescence:
>
>  if [ -f squeak ]; then
>         mv squeak nsvm
>         ex -u NONE "+g/squeak/s/squeak/nsvm/g" +w +q nsvm
>   fi
>   if [ -f bin/squeak ]; then
>         mv bin/squeak bin/nsvm
>         ex -u NONE "+g/squeak/s/squeak/nsvm/g" +w +q bin/nsvm
>   fi
>
> It gets run in the target install dir.
>
> If that's not good enough for you (and you've been forewarned ;) ) then...
>
> The input files that generate the configure script are all postfixed
> with .in.  Don't try and edit anything else except perhaps
> configure.ac.
>
> The Makefile in platforms/unix/config/ makes configure.  So (on Linux)
> one edits (in my case, flails around) the various .in files, runs make
> in platforms/unix/config/, and then tests the resulting configure.
> Rinse and repeat.
>
> I see squeak hard-coded in configure.ac and I *don't* know where to
> supply the name as a parameter to the files apparently operated on by
> platforms/unix/config/Makefile.
>
> > Also, is there any reason such a change would not be welcome in the
> > canonical source?
>
> None on my part.  I'd be very grateful.
>
> >
> > Thanks,
> >
> > Ken
> >
> > P.S. It occurs to me that I may be mistaken in thinking that only the
> > executable (link?) in $prefix/bin/ is going to result in a crash and that
> > the plugins and so on are installed in directories distinct from those
> used
> > by the classic UNIX vm.  Is the problem more widespread than I think?
> > Should I just give up on having them both in /usr/local/?
>
> No, that should be fine.  The way Ian set it up one could even have
> multiple VMs under the same root directory because the VM and plugins
> actually live in
>
>     rootdir/lib/squeak/VERSIONNUMBER
>
> e.g. coglinux/lib/squeak/4.0-2692
>
> So you could even do
>
>     squeak/lib/cog/4.0-2692/{squeak,vm-display-X11,etc}
>     squeak/lib/squeak/4..4.7-2357/{squeakvm,so.vm-display-X11,etc}
>
> and have
>
>     squeak/{squeak,cog} squeak/bin/{squeak,cog}
>
> wrapper scripts.
>
> But I think its easier to keep these distinct.
>
> HTH and good luck!
> --
> best,
> Eliot
>



-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20130223/10c669df/attachment.htm


More information about the Vm-dev mailing list