60 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
As of GC6.0alpha8, we attempt to 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 with a "Makefile" which will be overwritten
 | 
						|
by "configure" with one that is not at all equiavelent to the original.  The
 | 
						|
distribution contains a copy of the original "Makefile" in "Makefile.direct". 
 | 
						|
 | 
						|
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-full-debug	include full support for pointer backtracing 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.
 | 
						|
 | 
						|
 |