[GRASS5] Re: [GRASSLIST:7386] ANOUNCEMENT: GRASS 6 Exension Manager

OK. I browed the net and apparently there IS a problem
with Apple's version of the dirent.h system include file.
It seems there is an easy way to fix this, though.
Try the following:

In reg_entries.c (the file that throws the error by including
an erroneous dirent.h) add a line

#include <sys/types.h>

BEFORE the line that reads:

#include </usr/include/sys/dirent.h>

This should import the necessary type definitions, which Apple
seems to have overlooked.

Now, run

make clean

then

make

to see how far the compilation gets this time. If it stops at another
file with the same error message, apply the same fix to that file as
well.

Hope this helps

Benjamin

----- Originalnachricht -----
Von: Michael Barton <michael.barton@asu.edu>
Datum: Sonntag, 3. Juli 2005 6:57 pm
Betreff: Re: [GRASSLIST:7386] ANOUNCEMENT: GRASS 6 Exension Manager

Benjamin,

I'm very excited about GEM. I just got back from Valencia and
tried to
compile it. I'm on a Mac, using Lorenzo Moretti's binaries. I did
nothingspecial to see what happens. Here is the result.

So I have to do a bit more to get this to compile. Any suggestions?

Best regards
Michael

cmb-powerbook:/downloads/gem-0.9 cmbarton$ make
gcc -c at_exit_funcs.c -Wall
gcc -c error.c -Wall
gcc -c tools.c -Wall
gcc -c reg_deps.c -Wall
gcc -c reg_entries.c -Wall
/usr/include/sys/dirent.h:73: undefined type, found `u_int32_t'
/usr/include/sys/dirent.h:74: undefined type, found `u_int16_t'
/usr/include/sys/dirent.h:75: undefined type, found `u_int8_t'
/usr/include/sys/dirent.h:76: undefined type, found `u_int8_t'
cpp-precomp: warning: errors during smart preprocessing, retrying
in basic
mode
In file included from /usr/include/dirent.h:64,
                from reg_entries.c:25:
/usr/include/sys/dirent.h:73: parse error before "u_int32_t"
/usr/include/sys/dirent.h:75: parse error before "d_type"
/usr/include/sys/dirent.h:76: parse error before "d_namlen"
/usr/include/sys/dirent.h:83: parse error before '}' token
reg_entries.c: In function `restore_entries_gisman':
reg_entries.c:614: dereferencing pointer to incomplete type
reg_entries.c:616: dereferencing pointer to incomplete type
reg_entries.c:616: dereferencing pointer to incomplete type
reg_entries.c:666: dereferencing pointer to incomplete type
reg_entries.c:667: dereferencing pointer to incomplete type
reg_entries.c:667: dereferencing pointer to incomplete type
make: *** [reg_entries.o] Error 1
cmb-powerbook:/downloads/gem-0.9 cmbarton$

On 6/30/05 6:21 AM, "benducke@compuserve.de"
<benducke@compuserve.de> wrote:

> Sorry for the delay, everyone but I was tied up with other
things ...
>
> I just managed to wrap up a beta version of the GRASS Extensions
> Manager, as announced in the latest GRASS Newsletter.
> I am also providing a small sample extension consisting of an
overhauled> cumulative viewshed analysis module and another one to
calculate a
> prominence index.
> Please excuse the poor state of the documentation. I am working
on it,
> but field season will start soon, so don't expect too much
before autumn.
>
> You can download the files from my (German) homepage:
>
> http://www.uni-kiel.de/ufg/ufg_BerDucke.htm
>
> It's the two links at the bottom of the main text frame.
>
> gem-0.9.tgz is the C source code for the extensions manager plus
> some documentation and a Linux libc2.3 executable.
>
> cva.tgz is the cumulative viewshed extension.
>
> If you downloaded and compiled gem, you can try the following from
> inside a GRASS session:
>
> gem http://www.uni-kiel.de/ufg/dateienDucke/cva.tgz
>
> This should download the extension including HTML docs and
> GIS Manager entries. If you restart GIS Manager, you should
> find a new 'Xtns' menu. HTML docs are accessible from the
> main GRASS index.html.
>
> Please look for more info in the README file and let me know
> how it works for you. I would be thankful if someone could
> compile and try this program on MacOS X and CygWin as I do not
> have access to such a system right now.
>
> Cheers,
>
> Benjamin

____________________
C. Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>

Benjamin,

I tried your suggestion and got a bit further. However, now I have a
different error. Also, FWIW, the line in my reg_entries.c does not have a
complete path. That is,

#include <dirent.h>

Instead of

#include </usr/include/sys/dirent.h>

I can't see that this is making a difference, (I tried it both ways) but
can't say for sure.

Anyway, this is the new error:

cmb-powerbook:/downloads/gem-0.9 cmbarton$ make clean
rm -f *.o *.bak core *~ gem
cmb-powerbook:/downloads/gem-0.9 cmbarton$ make
gcc -c at_exit_funcs.c -Wall
gcc -c error.c -Wall
gcc -c tools.c -Wall
gcc -c reg_deps.c -Wall
gcc -c reg_entries.c -Wall
gcc -c reg_html.c -Wall
gcc -c actions.c -Wall
gcc -c main.c -Wall
gcc at_exit_funcs.o error.o tools.o reg_deps.o reg_entries.o reg_html.o
actions.o main.o -o gem -Wall
ld: can't locate file for: -lcrt1.o
make: *** [default] Error 1
cmb-powerbook:/downloads/gem-0.9 cmbarton$

This seems different from the prior error, so I haven't tried adding the
#include <sys/types.h> line. (Also, given the different error, I'm not sure
what file I'd add it to).

Michael

On 7/4/05 6:10 AM, "benducke@compuserve.de" <benducke@compuserve.de> wrote:

OK. I browed the net and apparently there IS a problem
with Apple's version of the dirent.h system include file.
It seems there is an easy way to fix this, though.
Try the following:

In reg_entries.c (the file that throws the error by including
an erroneous dirent.h) add a line

#include <sys/types.h>

BEFORE the line that reads:

#include </usr/include/sys/dirent.h>

This should import the necessary type definitions, which Apple
seems to have overlooked.

Now, run

make clean

then

make

to see how far the compilation gets this time. If it stops at another
file with the same error message, apply the same fix to that file as
well.

Hope this helps

Benjamin

----- Originalnachricht -----
Von: Michael Barton <michael.barton@asu.edu>
Datum: Sonntag, 3. Juli 2005 6:57 pm
Betreff: Re: [GRASSLIST:7386] ANOUNCEMENT: GRASS 6 Exension Manager

Benjamin,

I'm very excited about GEM. I just got back from Valencia and
tried to
compile it. I'm on a Mac, using Lorenzo Moretti's binaries. I did
nothingspecial to see what happens. Here is the result.

So I have to do a bit more to get this to compile. Any suggestions?

Best regards
Michael

cmb-powerbook:/downloads/gem-0.9 cmbarton$ make
gcc -c at_exit_funcs.c -Wall
gcc -c error.c -Wall
gcc -c tools.c -Wall
gcc -c reg_deps.c -Wall
gcc -c reg_entries.c -Wall
/usr/include/sys/dirent.h:73: undefined type, found `u_int32_t'
/usr/include/sys/dirent.h:74: undefined type, found `u_int16_t'
/usr/include/sys/dirent.h:75: undefined type, found `u_int8_t'
/usr/include/sys/dirent.h:76: undefined type, found `u_int8_t'
cpp-precomp: warning: errors during smart preprocessing, retrying
in basic
mode
In file included from /usr/include/dirent.h:64,
                from reg_entries.c:25:
/usr/include/sys/dirent.h:73: parse error before "u_int32_t"
/usr/include/sys/dirent.h:75: parse error before "d_type"
/usr/include/sys/dirent.h:76: parse error before "d_namlen"
/usr/include/sys/dirent.h:83: parse error before '}' token
reg_entries.c: In function `restore_entries_gisman':
reg_entries.c:614: dereferencing pointer to incomplete type
reg_entries.c:616: dereferencing pointer to incomplete type
reg_entries.c:616: dereferencing pointer to incomplete type
reg_entries.c:666: dereferencing pointer to incomplete type
reg_entries.c:667: dereferencing pointer to incomplete type
reg_entries.c:667: dereferencing pointer to incomplete type
make: *** [reg_entries.o] Error 1
cmb-powerbook:/downloads/gem-0.9 cmbarton$

On 6/30/05 6:21 AM, "benducke@compuserve.de"
<benducke@compuserve.de> wrote:

Sorry for the delay, everyone but I was tied up with other

things ...

I just managed to wrap up a beta version of the GRASS Extensions
Manager, as announced in the latest GRASS Newsletter.
I am also providing a small sample extension consisting of an

overhauled> cumulative viewshed analysis module and another one to
calculate a

prominence index.
Please excuse the poor state of the documentation. I am working

on it,

but field season will start soon, so don't expect too much

before autumn.

You can download the files from my (German) homepage:

http://www.uni-kiel.de/ufg/ufg_BerDucke.htm

It's the two links at the bottom of the main text frame.

gem-0.9.tgz is the C source code for the extensions manager plus
some documentation and a Linux libc2.3 executable.

cva.tgz is the cumulative viewshed extension.

If you downloaded and compiled gem, you can try the following from
inside a GRASS session:

gem http://www.uni-kiel.de/ufg/dateienDucke/cva.tgz

This should download the extension including HTML docs and
GIS Manager entries. If you restart GIS Manager, you should
find a new 'Xtns' menu. HTML docs are accessible from the
main GRASS index.html.

Please look for more info in the README file and let me know
how it works for you. I would be thankful if someone could
compile and try this program on MacOS X and CygWin as I do not
have access to such a system right now.

Cheers,

Benjamin

____________________
C. Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>

____________________
C. Michael Barton, Professor of Anthropology
School of Human Evolution and Social Change
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA

Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>

Michael Barton wrote:

I tried your suggestion and got a bit further. However, now I have a
different error. Also, FWIW, the line in my reg_entries.c does not have a
complete path. That is,

#include <dirent.h>

Instead of

#include </usr/include/sys/dirent.h>

I can't see that this is making a difference, (I tried it both ways) but
can't say for sure.

The former is correct. Header files should never be referenced by an
absolute path (although sometimes they may have directory components).

Anyway, this is the new error:

cmb-powerbook:/downloads/gem-0.9 cmbarton$ make clean
rm -f *.o *.bak core *~ gem
cmb-powerbook:/downloads/gem-0.9 cmbarton$ make
gcc -c at_exit_funcs.c -Wall
gcc -c error.c -Wall
gcc -c tools.c -Wall
gcc -c reg_deps.c -Wall
gcc -c reg_entries.c -Wall
gcc -c reg_html.c -Wall
gcc -c actions.c -Wall
gcc -c main.c -Wall
gcc at_exit_funcs.o error.o tools.o reg_deps.o reg_entries.o reg_html.o
actions.o main.o -o gem -Wall
ld: can't locate file for: -lcrt1.o
make: *** [default] Error 1

That indicates a problem with the gcc installation. The "crt" files
are the C runtime. They are part of gcc, which automatically adds the
appropriate options to the linker (ld) command when it is used for
linking (i.e. without a -c switch).

--
Glynn Clements <glynn@gclements.plus.com>