Blob Blame History Raw
Starting from GC v6.0, we support GNU-style builds based on automake,
autoconf and libtool.  This is based almost entirely on Tom Tromey's work
with gcj.

To build and install libraries use

configure; make; make install

The advantages of this process are:

1) It should eventually do a better job of automatically determining the
right compiler to use, etc.  It probably already does in some cases.

2) It tries to automatically set a good set of default GC parameters for
the platform (e.g. thread support).  It provides an easier way to configure
some of the others.

3) It integrates better with other projects using a GNU-style build process.

4) It builds both dynamic and static libraries.

The known disadvantages are:

1) The build scripts are much more complex and harder to debug (though largely
standard).  I don't understand them all, and there's probably lots of redundant
stuff.

2) It probably doesn't work on all Un*x-like platforms yet.  It probably will
never work on the rest.

3) The scripts are not yet complete.  Some of the standard GNU targets don't
yet work.  (Corrections/additions are very welcome.)

The distribution should contain all files needed to run "configure" and "make",
as well as the sources needed to regenerate the derived files.  (If I missed
some, please let me know.)

Note that the distribution comes without "Makefile" which is generated by
"configure".  The distribution also contains "Makefile.direct" which is not
always equivalent to the generated one.

Important options to configure:

  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [same as prefix]
  --enable-threads=TYPE   choose threading package
  --enable-parallel-mark  parallelize marking and free list construction
  --enable-gc-debug (--enable-full-debug before about 7.0)
                          include full support for pointer back-tracing etc.


Unless --prefix is set (or --exec-prefix or one of the more obscure options),
make install will install libgc.a and libgc.so in /usr/local/bin, which
would typically require the "make install" to be run as root.

Most commonly --enable-threads=posix or will be needed.  --enable-parallel-mark
is recommended for multiprocessors if it is supported on the platform.