On Sun, 13 Mar 2005, Glynn Clements wrote:
Paul Kelly wrote:
> >> Did we not already decide that now that GRASS has shared libraries, it
> >> only needs the header files to be included in the binary distribution?
> >> Then only the new module needs to be compiled (and a script can be
> >> written to do this automatically).
> >> Radim may even have already done this (added the headers to the install).
> >
> > Am I completely wrong that for a module linking against say -lgis, you
> > still need a copy of libgis.a somewhere on the -L?
>
> Not if there is a shared library there--it can link against it instead.
I think that the point is that binary distributions should always
include the libraries regardless of whether they are shared or static.
IIRC, we currently only include the libraries if they are shared
libraries.
Yes, as of now 5.4.0 and 6.0.0 only install the *.so.
From a packaging (RPM etc) perspective, static libraries would
normally go into a separate -devel package, along with the headers,
while shared libraries would go into the main package.
That is an excellent idea - it would help the add-on modules a great deal.
Today a user is reporting failure to compile gstat against 5.4.0, with the
gstat configure:
if test -d $with_grass ; then
AC_DEFINE(HAVE_LIBGIS)
LIBS="$LIBS -L $with_grass/lib"
INCLUDES="$INCLUDES -I$with_grass/include"
AC_CHECK_LIB(grass_gis, G_gisinit, GISLIB="-lgrass_gis -lgrass_datetime",
AC_CHECK_LIB(gis, G_gisinit, GISLIB="-lgis -ldatetime"))
LIBS="$LIBS $GISLIB -lz"
fi
failing when $with_grass is set properly (I believe, and have tried it
myself) but /lib only has the *.so. This seems to be an example of the
problems of not having *.a installed when needed for development.
Roger
--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Breiviksveien 40, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 93 93
e-mail: Roger.Bivand@nhh.no