Hi everyone,
I am still working on the GEM installer program and need
some help regarding installation of externally compiled
libraries for GRASS 6:
which of the GRASS Makefiles is responsible for copying include
files into place? Where do I have to place include files so
they will get copied to /usr/local/grass-6.0.0/include when
doing "make install"? Does the make system also recursively copy
directories with contents or just *.h files in the top level.
Thanks,
Benjamin.
On Mon, 2005-05-09 at 15:32 +0200, benducke@compuserve.de wrote:
Hi everyone,
I am still working on the GEM installer program and need
some help regarding installation of externally compiled
libraries for GRASS 6:
which of the GRASS Makefiles is responsible for copying include
files into place? Where do I have to place include files so
they will get copied to /usr/local/grass-6.0.0/include when
doing "make install"? Does the make system also recursively copy
directories with contents or just *.h files in the top level.
the 'configure' script is used to create:
- include/Make/Grass.make
- include/Make/Platform.make
- include/version.h
- include/winname.h
The toplevel Makefile is responsible for copying headers into place (in
fact, it is responsible for installation of all files).
If you scroll down to the 'install:' section of Makefile you will see
that various directories are tarballed and extracted into the
installation directory. And yes, they are tarred recursively.
--
Brad Douglas <rez@touchofmadness.com>
benducke@compuserve.de wrote:
I am still working on the GEM installer program and need
some help regarding installation of externally compiled
libraries for GRASS 6:
which of the GRASS Makefiles is responsible for copying include
files into place?
The "headers" target in lib/Makefile copies them into
dist.<arch>/include. The "real-install" target in the top-level
Makefile copies everything under dist.<arch> into the final location.
Where do I have to place include files so
they will get copied to /usr/local/grass-6.0.0/include when
doing "make install"?
The "headers" target in lib/Makefile copies:
FROM TO
include/*.h dist.<arch>/include
include/*.h dist.<arch>/include/grass
include/vect/*.h dist.<arch>/include/vect
include/vect/*.h dist.<arch>/include/grass/vect
The "real-install" target in the top-level Makefile copies the entire
tree under dist.<arch>/include to the final location.
Does the make system also recursively copy directories with contents
or just *.h files in the top level.
The first stage only copies *.h and vect/*.h to the dist.<arch>
directory; "make install" copies the entire tree.
--
Glynn Clements <glynn@gclements.plus.com>
benducke@compuserve.de wrote:
Hi everyone,
I am still working on the GEM installer program and need
some help regarding installation of externally compiled
libraries for GRASS 6:
which of the GRASS Makefiles is responsible for copying include
files into place? Where do I have to place include files so
they will get copied to /usr/local/grass-6.0.0/include when
doing "make install"? Does the make system also recursively copy
directories with contents or just *.h files in the top level.
To avoid conflicts, the GRASS header files should be installed in include/grass directory and included as
#include "grass/gis.h"
we are in transition and you can find old files using #include "gis.h" but all new files should use the new location.
Radim
Radim Blazek wrote:
> I am still working on the GEM installer program and need
> some help regarding installation of externally compiled
> libraries for GRASS 6:
>
> which of the GRASS Makefiles is responsible for copying include
> files into place? Where do I have to place include files so
> they will get copied to /usr/local/grass-6.0.0/include when
> doing "make install"? Does the make system also recursively copy
> directories with contents or just *.h files in the top level.
To avoid conflicts, the GRASS header files should be installed in
include/grass directory and included as
#include "grass/gis.h"
That should be:
#include <grass/gis.h>
Using quotes causes the preprocessor to look for the file relative to
the directory containing the source file, before the directories
specified by -I switches and the system include directories.
IOW, quotes should only be used for headers which are in the same
directory as the source file.
--
Glynn Clements <glynn@gclements.plus.com>