scsh-users
[Top] [All Lists]

Re: make clean & config.cache; multiple platform support

To: shriram@cs.rice.edu
Subject: Re: make clean & config.cache; multiple platform support
From: Steven Jenkins <sjenkins@ms.com>
Date: Tue, 18 Mar 1997 17:24:33 -0500
Cc: scsh-bugs@martigny.ai.mit.edu
The answer, of course, is 'autoconf'. heh, heh.

There are some problems here:  different platforms will produce
different bin/scsh, include/scheme48.h, and lib files.  For example,
now that the prescheme compiler source is available, I've built
a 64-bit image, which will mean that many of the above will change.
Even with the 32-bit systems lib/scsh will change from platform to
platform (I believe -- I know the C code is different, and I think
many of the magic numbers also change, cf the networking problems on
IRIX & Solaris).

So what you/we would really like is an install script 'smart' enough
to put in blah/.platform trees, then do something appropriate (as in AFS's
@sys mechanism) to resolve the platform dependencies, figure it all out,
etc.  Perhaps you (Shriram) or Olin should get a summer undergrad to do
it as a summer project?  (toss in a few buzzwords like 'agent', 'distributed',
etc and it might even get funding)..sorry, couldn't resist the jab.  But
seriously, a re-write of autoconf (in scsh, of course) to add the
smarts to do this would not be out of the question.  You would just need
to hammer out the specs you wanted:

1) Make the 'multiple platform installation' a configure option
2) Make a ruleset for common vs platform specific files
3) Have 'shadow' dirs for each src tree
4) Have 'shadow' dirs for what is not shared
5) Have some sanity-checking script make sure you somehow resolve the
   shadows to your 'real' directory.  eg, in AFS, you might have

src -> .src/@sys
where @sys is handled by AFS.  Under non-AFS, though...well, that's why
you pay a summer student to hammer it out :)  One 'obvious' mechanism
would be the configure script itself -- look at the config.sub script
for ideas, or the wrapper script for mzscheme from PLT at Rice. 

>Also, perhaps I'm just using the configuration and installation
>process poorly, but is there a better way of settings things up for
>multiple platforms?  I ran
>
>  ./configure --prefix=/home/shriram/.Packages/scsh \
>              --exec-prefix=/home/shriram/.Packages/scsh/.bin/sparc-solaris
>
>  ./configure --prefix=/home/shriram/.Packages/scsh \
>              --exec-prefix=/home/shriram/.Packages/scsh/.bin/i386-freebsd
>
>and ended up with
>
>- bin/scsh files which were indeed different;
>- identical include/scheme48.h files, but I'm willing to concede these
>  could be distinct, so they should be kept separate;
>- a bunch of stuff in lib/scsh/, of which:
>  - cig/, libscshvm.a, scsh.image, scshvm need to be different;
>  - everything else looks completely identical.
>
>In short, there's a lot of duplicated stuff here.  Maybe I'm just not
>configuring properly.  Could you include instructions in the
>distribution to help with this?  The generic GNU INSTALL file falls a
>bit short of what one would hope for.
>
>Thanks for Scsh!
>
>Keepin' the faith,
>'shriram

Steven L. Jenkins

<Prev in Thread] Current Thread [Next in Thread>