72 lines (49 with data), 2.5 kB
This file is for those who wants to hack the cutting-edge
Gauche sources from the subversion repository. If you just want to
compile from the distribution, you don't need to read any further.
[TOOLS REQUIRED FOR BUILDING]
On Unix platforms
-----------------
In order to build Gauche from the svn sources, instead of from
the distribution, you need to have autoconf 2.54 or higher.
The author using autoconf 2.57.
You also need to have the *latest* release of Gauche installed
on your machine, for it is required to generate some C files.
The svn source tree doesn't include "configure" scripts.
You can use the DIST script like the following to generate them.
% ./DIST gen
Note for seasoned libtool/automake users: the svn source tree
includes files that are usually generated automatically by
autotools, such as aclocal.m4, ltmain.sh, src/gauche/config.h.in,
etc. Be careful not to clobber these files. First, if your
autotools version doesn't match mine, it tends to break.
Second, those files are likely to be edited after generated,
in order to fix some build problem on certain platform.
On Windows/VisualC
------------------
Gauche build process largely relies on the code generation
during building, and it is lots of pain to adapt it for VC.
So we chose a hybrid approach; the source tree needs to be
preprocessed on the Unix platform (or Cygwin) with pre-installed
Gauche so that the machine-generated files are already there
when VC tries to compile.
To preprocess the source tree, run 'DIST' command as the following:
% ./DIST winvc
Once preparation is done, look for the VC solution file under
winnt/ subdirectory.
[DEPENDENCIES]
Quite a few files are generated by Gauche itself if you build
Gauche from scratch. Consequently, there are qute a few nasty
dependency issues. If you modify files listed below, be careful
not to introduce undesirable dependencies.
- The compiler (compile.scm) shouldn't depend on anything that
are not compiled into the libgauche core.
- gencomp, genstub, geninsn shouldn't depend on the extension
modules except the 'pre-loaded' ones in HOSTGOSH.
- An extension compiled by gencomp shouldn't depend on other
extension compiled by gencomp. This is because gencomp is
run by HOSTGOSH and it may not be able to load the other
extension compiled for the target gosh.
- ext/xlink shouldn't depend on anything that requires loading
extension modules, since it is called before all the extension
modules are generated.