[GRASS5] XDRLIB make variable

Hello all

XDRLIB is used as a member of a LIBES variable definition in several
Gmakefiles. Then LIBES is used as a target and this can cause some problems on
SGI machines. The XDRLIB variable is defined as -lsun on an SGI. Thus, it does
not make sense to have -lsun as a target. What I would like to know is whether
or not XDRLIB is defined similarly on other platforms? That is, is the XDRLIB
variable -l<something> on most platforms, or can it be a path to a library
which the Gmakefile can recompile (similar to other grass libraries like
GISLIB)? If XDRLIB is always something like -lsun then it should not appear as
a target and should be removed from the LIBES variable definition. To check
this simply look in the file src/CMD/head/head.

Any information will be greatly appreciated and thank you for your time.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Justin,

See the src/CMD/head/os_specific directory. When you do
the configure, it will copy either sgi or sgi5 to head.

The windows XDRLIB is -lrpclib

John Huddleston

----- Original Message -----
From: Justin Hickey <jhickey@impact1.hpcc.nectec.or.th>
To: <grass5@geog.uni-hannover.de>
Sent: Wednesday, August 02, 2000 12:43 PM
Subject: [GRASS5] XDRLIB make variable

Hello all

XDRLIB is used as a member of a LIBES variable definition in several
Gmakefiles. Then LIBES is used as a target and this can cause some

problems on

SGI machines. The XDRLIB variable is defined as -lsun on an SGI. Thus, it

does

not make sense to have -lsun as a target. What I would like to know is

whether

or not XDRLIB is defined similarly on other platforms? That is, is the

XDRLIB

variable -l<something> on most platforms, or can it be a path to a library
which the Gmakefile can recompile (similar to other grass libraries like
GISLIB)? If XDRLIB is always something like -lsun then it should not

appear as

a target and should be removed from the LIBES variable definition. To

check

this simply look in the file src/CMD/head/head.

Any information will be greatly appreciated and thank you for your time.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write

to:

minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Hello John

On Aug 2, 6:20am, John Huddleston wrote:

See the src/CMD/head/os_specific directory. When you do
the configure, it will copy either sgi or sgi5 to head.

Actually, it seems that none of the files in src/CMD/head/os_specific are used
to create the src/CMD/head/head file. The head file does not look like anything
in these files with several variables being defined differently. Is the
src/CMD/head/os_specific files actually being used by configure anymore?

The windows XDRLIB is -lrpclib

Thank you for the information. I will remove the XDRLIB from any LIBES
definitions I find and add it to the appropriate link lines instead.

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'

Justin, (Cc to Grass)

Your suggestion seems harmless enough. If you have
the time to go through all the Gmakefiles, and if you
think this is an important venture then go for it.

Please don't break the system though.

John Huddleston

----- Original Message -----
From: Justin Hickey <jhickey@impact1.hpcc.nectec.or.th>
To: Markus Neteler <neteler@geog.uni-hannover.de>
Cc: John Huddleston <jhudd@lamar.colostate.edu>
Sent: Monday, August 21, 2000 10:01 AM
Subject: Re: [GRASS5] XDRLIB make variable

Hello Markus

On Aug 19, 5:55pm, Markus Neteler wrote:
> > Thank you for the information. I will remove the XDRLIB from any LIBES
> > definitions I find and add it to the appropriate link lines instead.
> Please don't! You will have to find another solution...
> It is required on various platforms and not -lrpclib there.
>
> The configure takes care for this.

It appears there is some confusion as to what I am proposing, it does not
concern the actual definition of XDRLIB, only where that definition is

used in

Gmakefiles. In several Gmakefiles there is a definition for LIBES, which

is

often used as a target further down in the file in order to indicate that

if a

library changes, then the current program should be recompiled. It usually
looks something like this

$(LIBES): #

Sometimes, people include the variables MATHLIB and XDRLIB in the

definition of

the LIBES variable. This is what I contend is an error. The reasoning is

as

follows. The MATHLIB and XDRLIB variables are usually defined something

like

-lm or -lrpclib which are options to the link command. It does not make

any

sense to have these in a target list since they are not objects that can

be

made. In fact some make programs treat this as an error. The expanded line
would look something like the following (where LIBES = $(GISLIB)

$(VASKLIB)

$(MATHLIB) $(XDRLIB) )

/home/grass/src/libes/libgis.a

/home/grass/src/libes/libvask.a -lm -lrpclib: #

As you can see, this line does not make sense in a Makefile. Therefore,

XDRLIB

and MATHLIB variables should not be included in LIBES definitions. What

people

are assuming is that since the names of the variables end in LIB, they can

be

included in the LIBES definition like the others. But their definitions do

not

form the name of a library, only the option required for the linker.

The proper place for these variables is on the link line of the Gmakefile

as

follows:

$(CC) $(LDFLAGS) -o $@ $(LIST) $(LIBES) $(XDRLIB) $(MATHLIB)

This is the change that I have proposed. Take the XDRLIB definition out of

the

LIBES definition and put it only on the link line instead. All that is

changing

is that it is being removed from the target list for LIBES.

Does this clarify the problem?

--
Sincerely,

Jazzman (a.k.a. Justin Hickey) e-mail: jhickey@hpcc.nectec.or.th
High Performance Computing Center
National Electronics and Computer Technology Center (NECTEC)
Bangkok, Thailand

People who think they know everything are very irritating to those
of us who do. ---Anonymous

Jazz and Trek Rule!!!

----------------------------------------
If you want to unsubscribe from GRASS Development Team mailing list write to:
minordomo@geog.uni-hannover.de with
subject 'unsubscribe grass5'