GO32 environment is not supported. Regard directives such as '#ifdef GO32' scattered around sources as ancient monuments :-)

Files which need to be changed

include/rhiz_cnf.h

RK_HEAP_CHUNK_SIZE
RK_BULK_ALLOC_THRESHOLD
RK_EVAL_REGISTER_SIZE
You should not need to change them.

RK_OLD_SYSV_SIGNAL
Define according to specification of signal(). If program gets killed by hitting ctrl-C twice, you shoud define this. Conversely, if program is not interrupted by hitting ctrl-C while waiting input, you should undefine this.

RK_NO_IEEE754_SUPPORT
Define this if functions scalbn(), ilogb(), finte() are unavailable. If defined, these functions are not used, but exact->inexact will be slow. For reference,
double scalbn(double x, int n) returns x*(2^n)
int ilogb(double x) returns n such as 2^n <= x < 2^(n+1)
int finite(double x) 1 if x is an finite number, 0 otherwise

RK_HAS_FINITE
Define this if you need to define RK_NO_IEEE754_SUPPORT above, but the function finite() exists.

RK_PERSISTENT_ALLOC_SIZE
You should not need to change them (refered only in WIN32.)

RK_MALLOC_NO_PAGE_ALIGN
Define this if malloc() may return address which is not page aligned even if requested size is equal or larger than page size. Defining this may fix immediate error on startup (core dump or Dr. Watson.)

RK_USE_LOCALE
Define this to use mblen() to check double byte character in environments other than WIN32.

index
Define to strchr if needed.

kappa/Makefile, pi/Makefile

for platforms other than WIN32(except for cygnus gcc)
CDEBUGFLAGS Options concerning optimization and debugging
EXESUFFIX Suffix added automagically to executable file name (only in pi/Makefie.)
CC C compiler to use
CFLAGS Options for C compiler
RANLIB Name of ranlib program (define to : or such if not applicable)
SYSLIBS Additional libraries need to be linked
BASEDIR Base of installation target directory
BINDIR Directory to which executables are installed
LIBDIR Directory to which headders and libraries are installed

pi/compiler/Makefile

for platforms other than WIN32(except for cygnus gcc)
EXESUFFIX Same as above
AOUT File name of linker output when executable file name is not specified
RANLIB Same as above
SYSLIBS Additional libraries, Put -aux first because this is option for pisl
BOOTPISL Set argument of -cc option appropriately

kappa\MkWin32, pi\MkWin32

for WIN32 platform (except for cygnus gcc)
CDEBUGFLAGS Options concerning optimization and debugging. For Borland C++,
-k- Omit stack frame if possible
-v- No debugging information
-R- No symbols information for browser
-O2 Optimize for time
-Od Disable optimization
CC C compiler to use
CFLAGS Options for C compiler. For Borland C++,
-w- Disable warining messages.
-4 Assume 80486 instruction set.
LDFLAGS Options for linker. For Borland C++,
-l Instruct bcc32 to pass next argument to linker
/Tpe Generate .EXE
/ap Generate console application
AR Name of librarian program
BASEDIR Base of installation target directory
BINDIR Directory to which executables are installed
LIBDIR Directory to which headders and libraries are installed

These files are written for Borland C++ as distributed. If you wish to use other compilers such as Visual C++, you should check these files carefully. There is a kludge in pi\MkWin32, command for making all. This is caused from inability of make in Borland C++ to invoke long shell command. On Windows95, even this may not work (because batch file is processd by command.com.) If so, it may be impossible to do make in pi\compiler normally.

pi\compiler\MkWin32

for WIN32 platform (except for cygnus gcc)
PISLFLAGS Set argument of -cc option appropriately
AR Name of librarian program. Option /P32 is added here because the size of rhzscm.lib gets a bit larger.

Somewhat long command line appears while generating executables. This causes an error on make program included in Borland C++. If you are using Windows95 and only have command.com for shell, creating executables may be impossible even manually.

pi/compiler/config.scm

cm-path-separate-char Directory separator character in path names
cm-list-separate-char Character used to separate elements of search paths
cc-command-str Command line string of C compiler
cm-cc-command Use this as hook if cc-command-str is not sufficient
cm-cc-line Use this as hook even if cm-cc-command is insufficient
ld-command-str Command line string of linker
cm-ld-command Use this as hook if ld-command-str is not sufficient
ld-lib-str Library specification passed to linker
cm-ld-lib Use this as hook if ld-lib-str is not sufficient
output-option-str Option for linker to specify name of executable file
cm-add-output-option Use this as hook if output-option-str is not sufficient
obj-suffix-str Suffix of object file
cm-add-module Use this as hook if obj-suffix-str is not sufficient
cm-exit-status Expression to get exit status from the value of system
cm-lib-environment-var Name of environment variable that will point to the directory in which headers and libraries reside
cm-macro-path-var Name of environment variable that specifies macro package search path
cm-sigint-no Value of SIGINT in signal.h

Installation instructions for unix like operating systems

Do a make in directory pi after changing each files according to section 1. Doing `make install' in pi installs executables to $(BINDIR) and headers and libraries to $(LIBDIR).

Installation instructions for cygnus gcc

Same as unix like operating systems.
Be carefull in cases of file names because GNU's make respects them.
Makefile:
Define $(EXESUFFIX) as ".exe".
Define $(AOUT) as "a.exe".
Explicitly define $(RANLIB).

Installation instructions for for WIN32 platform (except for cygnus gcc)

Do `make -f MkWin32' in directory pi after changing each files.
Doing `make -f MkWin32 install' in pi installs executables to $(BINDIR) and headers and libraries to $(LIBDIR).
The followings are settings for use with Borland C++.
rhiz_cnf.h:
RK_NO_IEEE754_SUPPORT - Need to be defined.
index - Need to be defined.

config.scm:
Use commented out settings for each term.

Environment settings at run time

Assign path name of directory to which haders and libraries are installed to the environment valiable RHIZOME_LIB.
indexes