Thanks Moritz,
This is the kind of information I was trying to get at. Trying to get
a feel for what is really necessary to make an installable binary on
Mac and Windows.
Michael
______________________________
C. Michael Barton, Professor of Anthropology
Director of Graduate Studies
School of Human Evolution & Social Change
Center for Social Dynamics & Complexity
Arizona State University
Tempe, AZ 85287-2402
USA
voice: 480-965-6262; fax: 480-965-7671
www: http://www.public.asu.edu/~cmbarton
On Apr 15, 2009, at 9:58 AM, Moritz Lennert wrote:
On 15/04/09 18:40, Michael Barton wrote:
On Apr 15, 2009, at 8:40 AM, Moritz Lennert wrote:
On 15/04/09 17:13, Michael Barton wrote:
It would be useful to know for binary installations which
dependencies that GRASS actually needs to *run* as a binary
(i.e., not dependencies needed to compile).
AFAICT, it must have PROJ and PROJ requires GDAL (though I don't
think GRASS requires GDAL)
r.*.gdal, v.*.ogr require GDAL...
I thought that GRASS now compiles its own r.out.gdal and r.in.gdal
and so doesn't need GDAL for these.
It doesn't need the GDAL binary tools (gdal_translate, etc), but it
still needs the GDAL libaries which is what r.out.gdal is based on.
I don't know about v.*.ogr
ditto.
Some other dependencies may be for specific I/O
Anything else it needs just to run if is is already a compiled
binary?
Well, that kind of depends on how you compile it, i.e. the
configure statement before compilation.
Even if you compile with libtif do you need to have libtif to run?
On Windows? On Mac?
You can use libraries in a static or in a dynamic way. If you use
them statically, then all of the library is compiled into your
executable, making it easy to install without many dependencies, but
often making it fairly big, especially since your dependencies might
depend on something else and so on. And you have to do the same for
all programs, even if they use the same libaries (e.g. GDAL for
GRASS, QGIS, etc, etc)
So, generally, the choice is to compile with dynamic libraries,
meaning that the executable finds the relevant command in the libary
binary during execution. This allows different programs to share one
version of the library, which reduces size, but can lead to
dependency issues, especially if you compile against a different
version of the library than the one you use for running the program.
AFAIK, most libraries used in GRASS (including the system
libraries) are used as dynamic libraries, so you need those. It
also depends on what parts of GRASS you want to use, as, for
example, the gdal example shows. nviz has specific requirements
and so do some other modules.
As an example, check the required packages for the installation of
the GRASS Debian package:
http://packages.debian.org/lenny/grass
Not all of these packages are actually required to run the grass
binary, as long as you don't use all of the modules.
This is what I'm asking about. What is a minimal set of
dependencies to do most things?
Define "most things" ;-)
You definitely will need libc, I guess proj, don't know about zlib.
Don't know if you could create a working GRASS installation
(working, but stripped down in its functionality) with just those...
If you want some sort of output, you probably need libnpng.
But I'll leave this to the experts. Glynn ?
Moritz
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev