[GRASSLIST:3515] gmake53 problems when porting code...

Dear list,

We are trying to port some older code used in generating sampling sites to grass53 - we seem to have missed something. There is a reoccurring message with timestamps. The code has been done rather fast but it still compiles the problem seems to be in the linking...

hope someone can point to re right direction...

---

[jster@streptocarpus r.vsample]# gmake53
   SRC = /mirror/grasscompile/grass-5.3.0/src
   CMD = /mirror/grasscompile/grass-5.3.0/src/CMD
   UNUSED = /mirror/grasscompile/grass-5.3.0/unused
   HEADER = head.i686-pc-linux-gnu
   ARCH = i686-pc-linux-gnu
   GISBASE = /mirror/grasscompile/grass-5.3.0/dist.i686-pc-linux-gnu
   VERSION = 5.3.0 15 May 2004
#################################################################
/mirror/grasscompile/grass-5.3.0/r.vsample
   make -f OBJ.i686-pc-linux-gnu/make.rules

gcc -I/mirror/grasscompile/grass-5.3.0/src/include -g -O2 -c wrtesite.c -o OBJ.i686-pc-linux-gnu/wrtesite.o
gcc -L/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu -Wl,--export-dynamic -o /mirror/grasscompile/grass-5.3.0/dist.i686-pc-linux-gnu/etc/bin/cmd/r.vsample OBJ.i686-pc-linux-gnu/vsample.o OBJ.i686-pc-linux-gnu/wrtesite.o -lgis -lm -lz
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(sites.o)(.text+0x107b): In function `G_site_get_head':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/sites.c:834: undefined reference to `datetime_error_msg'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x1f): In function `G_set_timestamp':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:44: undefined reference to `datetime_copy'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x3f): In function `G_set_timestamp_range':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:52: undefined reference to `datetime_copy'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x4d):/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:53: undefined reference to `datetime_copy'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x137): In function `G_format_timestamp':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:89: undefined reference to `datetime_format'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x1a7):/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:94: undefined reference to `datetime_format'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x1ff): In function `G_scan_timestamp':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:130: undefined reference to `datetime_scan'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x25b):/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:124: undefined reference to `datetime_scan'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x27a):/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:125: undefined reference to `datetime_scan'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x2b4): In function `G_get_timestamps':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:145: undefined reference to `datetime_copy'
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(timestamp.o)(.text+0x2db):/mirror/grasscompile/grass-5.3.0/src/libes/gis/timestamp.c:150: undefined reference to `datetime_copy'
collect2: ld returned 1 exit status
make: *** [/mirror/grasscompile/grass-5.3.0/dist.i686-pc-linux-gnu/etc/bin/cmd/r.vsample] Error 1

[jster@streptocarpus r.vsample]# more Gmakefile
PGM=r.vsample
LIST =vsample.o\
       wrtesite.o

LIBES = $(GISLIB)
DEPLIBS = $(DEPGISLIB)

$(BIN_CMD)/$(PGM): $(LIST) $(DEPLIBS)
         $(CC) $(LDFLAGS) -o $@ $(LIST) $(LIBES) $(MATHLIB) $(XDRLIB)

--
-Juhana Nieminen-----------------------------------------
Metsävarojen käytön laitos
Department of Forest Resource Management
P.O.Box 27 (Latokartanonkaari 7) Tel:+358-9-191 58190
FI-00014, University of Helsinki Fax:+358-9-191 58159
--or--
Department of Biological and Environmental Sciences
GIS Laboratory
P.O.Box 44 (Jyrangontie 2) tel:+358-9-191 50054
FI-00014 University of Helsinki fax:+358-9-191 50048
Finland

Juhana Nieminen wrote:

We are trying to port some older code used in generating sampling sites
to grass53 - we seem to have missed something. There is a reoccurring
message with timestamps. The code has been done rather fast but it still
  compiles the problem seems to be in the linking...

gcc -L/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu
-Wl,--export-dynamic -o
/mirror/grasscompile/grass-5.3.0/dist.i686-pc-linux-gnu/etc/bin/cmd/r.vsample
OBJ.i686-pc-linux-gnu/vsample.o OBJ.i686-pc-linux-gnu/wrtesite.o -lgis
  -lm -lz
/mirror/grasscompile/grass-5.3.0/src/libes/LIB.i686-pc-linux-gnu/libgis.a(sites.o)(.text+0x107b):
In function `G_site_get_head':
/mirror/grasscompile/grass-5.3.0/src/libes/gis/sites.c:834: undefined
reference to `datetime_error_msg'

libgis requires libdatetime, but you're not linking against it.

[jster@streptocarpus r.vsample]# more Gmakefile

LIBES = $(GISLIB)
DEPLIBS = $(DEPGISLIB)

You need:

  LIBES = $(GISLIB) $(DATETIMELIB)
  DEPLIBS = $(DEPGISLIB) $(DEPDATETIMELIB)

--
Glynn Clements <glynn.clements@virgin.net>