+----------------------------+
		    | STk 4.0 Installation notes |
		    +----------------------------+


** This is the Unix INSTALL file. For Windows platform, please look at the 
** INSTALL.win32 file


IMPORTANT NOTE - IMPORTANT NOTE - IMPORTANT NOTE
------------------------------------------------
|  
|  STk bignums are implemented with the GNU mp APIs. This library provides a 
|  VERY EFFICIENT implementation of multiple precision numbers. This library 
|  is placed under the GNU GENERAL PUBLIC LICENSE. However, to avoid to fall 
|  under the restrictive GPL terms you can use the FGMP package (FGMP is a 
|  public domain implementation of a subset of the GNU gmp library with the
|  same API, written by Mark Henderson <markh@wimsey.bc.ca>). This package 
|  has the advantage to be totally *FREE*, and the disadventage to be *SLOW*.
|  
|  So, if your concern is speed, and if the GPL is not a problem for you, 
|  use the Gnu package.
|
|  Both package are in the distribution file. You don't need to ftp them.
|
---------------------------------------------------------------------
END OF IMPORTANT NOTE - END OF IMPORTANT NOTE - END OF IMPORTANT NOTE


To install this package:

*** 1. Configure the package for your system.

In the directory  that this file is in, type 

	$ /bin/sh ./configure

This line runs the `configure' shell script. This script attempts to
guess correct values for various system-dependent variables used
during compilation, and creates various files necessary for package
building.

Default configuration will compile the package with the the "gcc"
compiler and the "-O2" option. This can be changed by changing the
default value of the CC and CFLAGS shell variables. For instance:
	
	 $ /bin/sh -c 'CC=another-cc CFLAGS="-O2 -g" ./configure'

will configure the package to use the "another-cc" compiler with
options "-O2" and "-g".

By default, `make install' will install the package's files in
/usr/local/bin, /usr/local/lib, /usr/local/man, etc.  You can specify
an installation prefix other than /usr/local by giving `configure' the
option `--prefix=PATH'. For instance to place everything in the
directory whose name is 'another/place' You'll have to type

	$ /bin/sh configure --prefix=/another/place

By default STk is compiled with the Gnu MP library. If using GNU
software is a problem for you you can specify to use the FGMP package
with the '--with-fgmp' option. Example:
	
	$ /bin/sh configure --prefix=/another/place --with-fgmp

Several features can also specified at configuration time. To enable
the feature XXX you'll have to specify the '--enable-XXX'. Of course,
'--disable-XXX' permits to disable an option which is enabled by
default. The following table gives the list of possible features
available when compiling STk and their default value.

  ________________________________________________________________
  | XXX		| Default |					  |
  |		|  value  |					  |
  |=============|=========|=======================================|
  | hash	| enabled | Compile support for hash tables	  |
  |-------------|-------------------------------------------------|
  | stklos	| enabled | Compile support for stklos (requires  |
  |		|	  | hash tables)			  |
  |-------------|---------|---------------------------------------|
  | socket	| enabled | Compile support for sockets.	  |
  |-------------|-------------------------------------------------|
  | dynload	| depends | Specifies if STk uses dynamic loading |
  |		|	  | for extensions. By default, dynamic	  |
  |		|	  | loading is enabled for systems which  |
  |		|	  | support it (and for which support has |    
  |		|	  | been integrated into the interpreter  |
  |		|	  | This option permit to change this	  |
  |		|	  | default value.			  |
  |		|	  | See below for systems for which	  |
  |		|	  | dynamic loading support exists	  |
  |-------------|-------------------------------------------------|
  | elf		| depends | Use it to enable or disable ELF	  |
  |		|	  | dynamic loading on Linux system.	  |
  |		|	  | Default value is choosen by the	  |
  |		|	  | configure script. If this value is	  |
  |		|	  | incorrect, use this option to toggle  |
  |		|	  | it. This option works only on Linux	  |
  |		|	  | systems				  |
  |-------------|-------------------------------------------------|
  | pixmap	[ enabled | Add pixmap support for Tk images	  |
  |-------------|-------------------------------------------------|
  | jpeg	[ enabled | Add JPEG support for Tk images	  |
  |-------------|-------------------------------------------------|
  | html	| enabled | Compile support for html		  |
  |-------------|-------------------------------------------------|
  | dld		| disabled| Use it to enable synamic loading using|
  |		|	  | the DLD package (works on Linux only) |
  |-------------|---------|---------------------------------------|
  | regexp	| enabled | Add support for regular expressions	  |
  |-------------|---------|---------------------------------------|
  | process	| enabled | Add support for running processes from|
  |		|	  | the interpreter and redirecting their |
  |		|	  | IO					  |
  |-------------|---------|---------------------------------------|
  | posix	| enabled | Add support for POSIX.1 functions.	  |
  |		|	  | Support is very incmplete but will	  |
  |		|	  | grow				  |
  |-------------|-------------------------------------------------|
  | base64	| enabled | Compile support for Base64 encoding	  |
  |-------------|-------------------------------------------------|
  | locale	| enabled | Compile support for locale in string  |
  |		|         | comparisons				  |
  |_____________|_________|_______________________________________|
		      
For instance

	$ /bin/sh -c 'CC=gcc ./configure --with-fgmp \
		      --enable-socket --prefix=/scheme'

will configure the package to use the free bignum library and the socket
support . All the needed files will be installed in the /scheme/bin
/scheme/lib ... directories.


*** 2 . Compiling the package (and testing it)

Once configuration is done, just type 

	$ make

in this directory to make the whole system. Once the make is terminated you
can do a minimal test of stk with

	$ (cd Src; /bin/sh test-stk)

When you have the STk prompt (and if your DISPLAY variable is correctly set), 
just enter the following form:

	(pack (button '.test :text "Hello, world" :command (lambda () (exit 0))))

This will display an Hello world button. Clicking on it will leave the scheme
interpreter. A more complete demo can be obtained with:
	
	$ make demos

This command runs the STk HTML browser on a file which allows you to launch
simply the demos located in the "Demos" directory. 



*** 3. Documentation

Documentation is provided in Postscript and in TeX. To rebuild the
documentation, you'll have to type
	
	$ make doc

This will rebuilt the Postscript documentation. To make only the 
dvi files, use
	
	$ make dvi


*** 4. Installation

To install stk in the definitive place, type

	$ make install

Alternatively, you can use the command

	$ make install-no-strip

to install the executable without stripping them.
       

Intalling STk and Tk libraries (useless if you don't plan to write some C code)
is done with. 

	$ make install.lib

Have fun