Blame doc/README.autoconf

Packit d28291
Starting from GC v6.0, we support GNU-style builds based on automake,
Packit d28291
autoconf and libtool.  This is based almost entirely on Tom Tromey's work
Packit d28291
with gcj.
Packit d28291
Packit d28291
To build and install libraries use
Packit d28291
Packit d28291
configure; make; make install
Packit d28291
Packit d28291
The advantages of this process are:
Packit d28291
Packit d28291
1) It should eventually do a better job of automatically determining the
Packit d28291
right compiler to use, etc.  It probably already does in some cases.
Packit d28291
Packit d28291
2) It tries to automatically set a good set of default GC parameters for
Packit d28291
the platform (e.g. thread support).  It provides an easier way to configure
Packit d28291
some of the others.
Packit d28291
Packit d28291
3) It integrates better with other projects using a GNU-style build process.
Packit d28291
Packit d28291
4) It builds both dynamic and static libraries.
Packit d28291
Packit d28291
The known disadvantages are:
Packit d28291
Packit d28291
1) The build scripts are much more complex and harder to debug (though largely
Packit d28291
standard).  I don't understand them all, and there's probably lots of redundant
Packit d28291
stuff.
Packit d28291
Packit d28291
2) It probably doesn't work on all Un*x-like platforms yet.  It probably will
Packit d28291
never work on the rest.
Packit d28291
Packit d28291
3) The scripts are not yet complete.  Some of the standard GNU targets don't
Packit d28291
yet work.  (Corrections/additions are very welcome.)
Packit d28291
Packit d28291
The distribution should contain all files needed to run "configure" and "make",
Packit d28291
as well as the sources needed to regenerate the derived files.  (If I missed
Packit d28291
some, please let me know.)
Packit d28291
Packit d28291
Note that the distribution comes without "Makefile" which is generated by
Packit d28291
"configure".  The distribution also contains "Makefile.direct" which is not
Packit d28291
always equivalent to the generated one.
Packit d28291
Packit d28291
Important options to configure:
Packit d28291
Packit d28291
  --prefix=PREFIX         install architecture-independent files in PREFIX
Packit d28291
                          [/usr/local]
Packit d28291
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
Packit d28291
                          [same as prefix]
Packit d28291
  --enable-threads=TYPE   choose threading package
Packit d28291
  --enable-parallel-mark  parallelize marking and free list construction
Packit d28291
  --enable-gc-debug (--enable-full-debug before about 7.0)
Packit d28291
                          include full support for pointer back-tracing etc.
Packit d28291
Packit d28291
Packit d28291
Unless --prefix is set (or --exec-prefix or one of the more obscure options),
Packit d28291
make install will install libgc.a and libgc.so in /usr/local/bin, which
Packit d28291
would typically require the "make install" to be run as root.
Packit d28291
Packit d28291
Most commonly --enable-threads=posix or will be needed.  --enable-parallel-mark
Packit d28291
is recommended for multiprocessors if it is supported on the platform.