93 lines
3.7 KiB
Plaintext
93 lines
3.7 KiB
Plaintext
|
-*- Mode: Indented-text; -*-
|
||
|
|
||
|
Here are some remarks to complement what's in the INSTALL file.
|
||
|
|
||
|
Some Scheme48 info is included here. For the original look at
|
||
|
doc/install.text.s48-0.36.
|
||
|
|
||
|
-----
|
||
|
|
||
|
When running "make", don't worry if the ".notify" target fails. Its
|
||
|
only purpose is to send an email message so that we can get a rough
|
||
|
idea of how much the Scheme Shell is being used and by whom. We
|
||
|
will not to use your name or email address for any commercial
|
||
|
purpose. It does help us justify our activities to our superiors
|
||
|
if we can quantify useage. If you don't want us to know, just do
|
||
|
"make -t .notify" first.
|
||
|
|
||
|
-----
|
||
|
|
||
|
What to do when your system isn't supported
|
||
|
|
||
|
First of all: DON'T PANIC. It's easy to get scsh to work on a new
|
||
|
system. Besides, you'll be a hero to the masses waiting for the Scheme
|
||
|
Shell on your platform. There is a sample "generic" system in
|
||
|
scsh/generic which you can copy as a base to modify. The modifications
|
||
|
mainly involve pulling some constants in from C header files and hacking
|
||
|
a few lines of C based on your standard I/O internals. I know, its C and
|
||
|
all, together we can survive. If you need some hand holding, feel free
|
||
|
to write to the scsh mailing list at scsh@martigny.ai.mit.edu.
|
||
|
|
||
|
stdio_dep.c:
|
||
|
This is the one C file you have to actually deal with. The code in here
|
||
|
defines two or three simple operations on stdio FILE*'s that are not
|
||
|
part of the stdio.h interface. The main things it needs to be able
|
||
|
to do is see if there is input ready, how much is ready, and to change
|
||
|
the file descriptor associated with a FILE*. Usually how to do this
|
||
|
is fairly obvious from <stdio.h>. Check out the other platforms for ideas.
|
||
|
|
||
|
errno.scm:
|
||
|
Scheme defines for C header values found in <errno.h>.
|
||
|
|
||
|
fdflags.scm:
|
||
|
Scheme defines for C header values found in <fcntl.h>.
|
||
|
|
||
|
netconst.scm:
|
||
|
Scheme defines for C header values found in socket and network includes.
|
||
|
|
||
|
signals.scm:
|
||
|
Scheme defines for C header values found in <sys/signal.h>.
|
||
|
|
||
|
waitcodes.scm:
|
||
|
Scheme defines for C header values and macros found in <sys/wait.h>.
|
||
|
|
||
|
packages.scm:
|
||
|
Scheme48 module definitions for the values in the above scheme files.
|
||
|
|
||
|
load-scsh.scm:
|
||
|
The script of commands and expressions used to build scsh.
|
||
|
|
||
|
After you've hacked these files together, it'd be nice to also hack
|
||
|
config.scsh to support your new machine. Run config.guess to see what it
|
||
|
thinks your machine is. Then, send us the info, and we'll make sure it
|
||
|
gets in a future release. (That means you, Jonathan.)
|
||
|
|
||
|
-----
|
||
|
|
||
|
Customizing the installation
|
||
|
|
||
|
1. If you don't believe in configure scripts, or don't have a
|
||
|
/bin/sh that can handle the configure script, you can make
|
||
|
sysdep.h and Makefile manually from sysdep.h.in and Makefile.in.
|
||
|
The technique is fairly obvious. For Makefile, just give
|
||
|
reasonable values for all of the variables at the top that are
|
||
|
defined as "foo = @foo@", e.g. srcdir=., CC=cc, LIBS=-lm,
|
||
|
INSTALL=cp, etc. For sysdep.h, read the comments. If your OS
|
||
|
is Posix compliant and you don't care whether char-ready? works,
|
||
|
you can copy sysdep.h.in to sysdep.h unmodified and everything
|
||
|
should work.
|
||
|
|
||
|
2. If you definitely won't be installing scsh, you should set
|
||
|
libdir to the distribution directory (e.g. "make libdir=`pwd`").
|
||
|
This will make the ,open and ,load-package commands work for the
|
||
|
library packages defined in more-packages.scm.
|
||
|
|
||
|
3. If desired, customize the contents of the development environment
|
||
|
heap image by editing the definitions of USUAL-COMMANDS and/or
|
||
|
USUAL-FEATURES in more-packages.scm; see below.
|
||
|
|
||
|
4. If you're using a DEC MIPS, and want to use the foreign function
|
||
|
interface, specify LDFLAGS=-N (with e.g. "make LDFLAGS=-N").
|
||
|
|
||
|
-Brian, Olin, and David
|