[GRASS5] Re: [GRASSLIST:2557] Re: build errors on r.le

Radim Blazek blazek at itc.it
Wed Feb 11 08:51:51 EST 2004


On Wednesday 11 February 2004 11:05, you wrote:
> > > There is no other way as following these rules:
> > >
> > > cd /where/your/grass530/lives/
> > > cvs update -dP
> > >
> > > cd /where/your/grass57/lives/
> > > make mixclean
> > > #here verify, that grass57/raster/r.le/r.le.setup/polytocell/ does
> > > # not contain any links to 5.3 (the file bmf_to_cll.c should not be
> > > there # any more which is causing the problem on your computer).
> >
> > AFAICT, "make copymix" will fall down in this situation; perhaps that
> > option should be removed?

Which situation exactly? After 'make mixclean'? 'copymix' is intended
to be run once to create complete source code, which cannot be later 
updated of course. And I prefer to keep this target, because to install
full 5.0 source if I want to compile 5.7 on iPaq, is realy impractical.

> > Also, this is one of the reasons why using tricks like:
> >
> > 	OBJS = $(subst .c,.o,$(wildcard *.c))
> >
> > is generally considered to be a bad idea.

This simplifies Makefiles of most modules and libs, I don't see 
as a problem to create list of objects authomaticaly if it is
possible (and in 95% it is). The problem is to create more modules using
one rule. It is possible to specify (at least GNU make) target specific variables:

default: cmd1 cmd2

cmd1: CMD_OBJS = maina.o
cmd1: PGM = testa
cmd1: cmd

cmd2 : PGM = testb
cmd2 : CMD_OBJ =mainb.o
cmd2 : cmd

but I don't know how to change this:

cmd: bincmd

ARCH_CMD_OBJS := $(foreach obj,$(CMD_OBJS),OBJ.$(ARCH)/$(obj))

bincmd: $(ARCH_INTER_OBJS) $(DEPENDENCIES)
        $(CC) $(LDFLAGS) $(XTRA_LDFLAGS) -o $@ $(ARCH_INTER_OBJS) $(LIBES) $(MATHLIB) $(XDRLIB)

to create properly list of objects and objects.

Radim





More information about the grass-dev mailing list