[GRASS5] Gmakefiles - $(VECTLIB) question
Markus Neteler
neteler at geog.uni-hannover.de
Thu Jan 4 04:03:34 EST 2001
On Wed, Jan 03, 2001 at 08:30:58PM +0100, Radim Blazek wrote:
> Markus Neteler wrote:
> > Hi all,
> >
> > a somewhat strange thing I found in r.in.shape Gmakefile:
> >
> > Using the LIBES line like that:
> > LIBES=$(VECTLIB) $(GISLIB) $(VASK) $(DATETIMELIB)
> >
> > I get this compilation error:
> > gcc -s -o
> > /home/neteler/ggg/dist.i686-pc-linux-gnu/etc/bin/contrib/cmd/r.in.shape
> > OBJ.i686-pc-linux-gnu/main.o
> > /home/neteler/ggg/src/libes/LIB.i686-pc-linux-gnu/libvect.a
> > /home/neteler/ggg/src/libes/LIB.i686-pc-linux-gnu/libdig2.a
> > /home/neteler/ggg/src/libes/LIB.i686-pc-linux-gnu/libgis.a
> > /home/neteler/ggg/src/libes/LIB.i686-pc-linux-gnu/libvask.a -lncurses
> > /home/neteler/ggg/src/libes/LIB.i686-pc-linux-gnu/libdatetime.a
> > /home/neteler/ggg/src/libes/vect32_64/shapelib-1.2.8/LIB.i686-pc-linux-gnu/libshape.a
> > -lm -lz
> > /home/neteler/ggg/src/libes/LIB.i686-pc-linux-gnu/libdig2.a(chk_inside.o):
> > In function 'dig_point_in_area':
> > /home/neteler/ggg/src/libes/vect32/diglib/chk_inside.c:56: undefined
> > reference to 'V2_read_line'
> > collect2: ld returned 1 exit status
> > make: ***
> > [/home/neteler/ggg/dist.i686-pc-linux-gnu/etc/bin/contrib/cmd/r.in.shape]
> > Error 1
> >
> >
> > If I change the LIBES line to
> > LIBES=$(VECTLIB) $(VECTLIB) $(GISLIB) $(VASK) $(DATETIMELIB)
> > ^^^^^^^^^^
> >
> > it is compiling o.k. I guess that's not correct, somewhere a reference is
> > missing. Although looking at
> > src/CMD/generic/make.mid
> >
> > I don't get an idea. Other modules having the same problem are:
> > ./mapdev/v.build/Gmakefile
> > ../mapdev/v.spag/Gmakefile
> > ../mapdev/v.what/cmd/Gmakefile
> >
> > Any comment is welcome!
> >
> > Markus
>
> I don't know how linker works but:
> Note: VECTLIB = VECTLIB_REAL(Vlib) DIG2LIB(diglib)
>
> Some functions from VECTLIB_REAL call functions from DIG2LIB
> and some functions from DIG2LIB call functions from VECTLIB_REAL
>
> In r.in.shape dig_point_in_poly() from DIG2LIB is in chk_inside.o which contains
> dig_point_in_area() also which calls V2_read_line() from VECTLIB_REAL which
> calls some functions from DIG2LIB.
> Then LIBES must contain:
> $(DIG2LIB) $(VECTLIB_REAL) $(DIG2LIB)
>
Hi Radim,
still I think that such double call is unusual (maybe I am wrong and it's
common). I have been posting this here to indicate that *maybe* something
referenced incorrectly within GRASS vector libs.
If you think that's o.k. then I will keep these double entries. Is that
documented somewhere?
Markus
----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo at geog.uni-hannover.de with
subject 'unsubscribe grass5'
More information about the grass-dev
mailing list