[GRASS-user] Makefile for v.strahler&co

Dear all,
I’m trying to write a working Makefile for v.strahler, r.strahler.sh, r.broscoe.sh and v.mainchannel, a Makefile that can simultaneously compile C and Shell modules… and, after some attempt, I found this version:

MODULE_TOPDIR = …/…

PGM = v.mainchannel r.strahler.sh r.broscoe.sh v.strahler

LIBES = $(DISPLAYLIB) $(RASTERLIB) $(VECTLIB) $(GRAPHLIB) $(DBMILIB) $(GISLIB)
DEPENDENCIES = $(DISPLAYDEP) $(RASTERDEP) $(VECTDEP) $(GISDEP)
EXTRA_INC = $(VECT_INC)
EXTRA_CFLAGS = $(VECT_CFLAGS)

include $(MODULE_TOPDIR)/include/Make/Module.make
include $(MODULE_TOPDIR)/include/Make/Script.make

default: script

so I do:

  • “make clean” in the v.strahler directory
  • “make” in the same directory
    and I obtain this error:

root@annalisa-laptop:/home/annalisa/grass_dev64/vector/v.strahler# make
…/…/include/Make/Module.make:14: warning: overriding commands for target [r.strahler.sh](http://r.strahler.sh)' ../../include/Make/Html.make:40: warning: ignoring old commands for target r.strahler.sh
…/…/include/Make/Module.make:14: warning: overriding commands for target [r.broscoe.sh](http://r.broscoe.sh)' ../../include/Make/Html.make:40: warning: ignoring old commands for target r.broscoe.sh
…/…/include/Make/Module.make:20: warning: overriding commands for target [r.strahler.sh](http://r.strahler.sh)' ../../include/Make/Module.make:14: warning: ignoring old commands for target r.strahler.sh
…/…/include/Make/Module.make:20: warning: overriding commands for target [r.broscoe.sh](http://r.broscoe.sh)' ../../include/Make/Module.make:14: warning: ignoring old commands for target r.broscoe.sh
…/…/include/Make/Module.make:20: warning: overriding commands for target v.strahler' ../../include/Make/Module.make:14: warning: ignoring old commands for target v.strahler’
…/…/include/Make/Grass.make:376: warning: overriding commands for target first' ../../include/Make/Grass.make:376: warning: ignoring old commands for target first’
…/…/include/Make/Grass.make:392: warning: overriding commands for target inst_now' ../../include/Make/Grass.make:392: warning: ignoring old commands for target inst_now’
…/…/include/Make/Grass.make:400: warning: overriding commands for target /home/annalisa/grass_dev64/bin.i686-pc-linux-gnu' ../../include/Make/Grass.make:400: warning: ignoring old commands for target /home/annalisa/grass_dev64/bin.i686-pc-linux-gnu’
…/…/include/Make/Grass.make:403: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include/grass' ../../include/Make/Grass.make:403: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include/grass’
…/…/include/Make/Grass.make:406: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/lib' ../../include/Make/Grass.make:406: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/lib’
…/…/include/Make/Grass.make:409: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/bin' ../../include/Make/Grass.make:409: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/bin’
…/…/include/Make/Grass.make:412: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/etc' ../../include/Make/Grass.make:412: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/etc’
…/…/include/Make/Grass.make:415: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/driver' ../../include/Make/Grass.make:415: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/driver’
…/…/include/Make/Grass.make:418: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/driver/db' ../../include/Make/Grass.make:418: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/driver/db’
…/…/include/Make/Grass.make:421: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/fonts' ../../include/Make/Grass.make:421: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/fonts’
…/…/include/Make/Rules.make:28: warning: overriding commands for target OBJ.i686-pc-linux-gnu' ../../include/Make/Rules.make:28: warning: ignoring old commands for target OBJ.i686-pc-linux-gnu’
…/…/include/Make/Rules.make:72: warning: overriding commands for target clean' ../../include/Make/Rules.make:72: warning: ignoring old commands for target clean’
…/…/include/Make/Html.make:40: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/docs/html/v.mainchannel' ../../include/Make/Html.make:40: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/docs/html/v.mainchannel’
…/…/include/Make/Html.make:40: warning: overriding commands for target [r.strahler.sh](http://r.strahler.sh)' ../../include/Make/Module.make:20: warning: ignoring old commands for target r.strahler.sh
…/…/include/Make/Html.make:40: warning: overriding commands for target [r.broscoe.sh](http://r.broscoe.sh)' ../../include/Make/Module.make:20: warning: ignoring old commands for target r.broscoe.sh
…/…/include/Make/Html.make:40: warning: overriding commands for target v.strahler.html' ../../include/Make/Html.make:40: warning: ignoring old commands for target v.strahler.html’
…/…/include/Make/Html.make:45: warning: overriding commands for target htmlcmd' ../../include/Make/Html.make:45: warning: ignoring old commands for target htmlcmd’
…/…/include/Make/Html.make:49: warning: overriding commands for target htmlscript' ../../include/Make/Html.make:49: warning: ignoring old commands for target htmlscript’
…/…/include/Make/Html.make:53: warning: overriding commands for target htmletc' ../../include/Make/Html.make:53: warning: ignoring old commands for target htmletc’
…/…/include/Make/Html.make:57: warning: overriding commands for target htmldir' ../../include/Make/Html.make:57: warning: ignoring old commands for target htmldir’
…/…/include/Make/Html.make:61: warning: overriding commands for target htmlmulti' ../../include/Make/Html.make:61: warning: ignoring old commands for target htmlmulti’
…/…/include/Make/Script.make:21: warning: overriding commands for target [r.strahler.sh](http://r.strahler.sh)' ../../include/Make/Html.make:40: warning: ignoring old commands for target r.strahler.sh
…/…/include/Make/Script.make:21: warning: overriding commands for target [r.broscoe.sh](http://r.broscoe.sh)' ../../include/Make/Html.make:40: warning: ignoring old commands for target r.broscoe.sh
…/…/include/Make/Script.make:21: warning: overriding commands for target v.strahler' ../../include/Make/Module.make:20: warning: ignoring old commands for target v.strahler’
…/…/include/Make/Script.make:26: warning: overriding commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/bin/v.mainchannel' ../../include/Make/Module.make:14: warning: ignoring old commands for target /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/bin/v.mainchannel’
…/…/include/Make/Script.make:26: warning: overriding commands for target [r.strahler.sh](http://r.strahler.sh)' ../../include/Make/Script.make:21: warning: ignoring old commands for target r.strahler.sh
…/…/include/Make/Script.make:26: warning: overriding commands for target [r.broscoe.sh](http://r.broscoe.sh)' ../../include/Make/Script.make:21: warning: ignoring old commands for target r.broscoe.sh
…/…/include/Make/Script.make:41: warning: overriding commands for target [r.strahler.sh](http://r.strahler.sh)' ../../include/Make/Script.make:26: warning: ignoring old commands for target r.strahler.sh
…/…/include/Make/Script.make:41: warning: overriding commands for target [r.broscoe.sh](http://r.broscoe.sh)' ../../include/Make/Script.make:26: warning: ignoring old commands for target r.broscoe.sh
make: Circular r.strahler.shr.strahler.sh dependency dropped.
make: Circular r.broscoe.shr.strahler.sh dependency dropped.
make: Circular r.broscoe.shr.broscoe.sh dependency dropped.
make: Circular v.strahler ← r.strahler.sh dependency dropped.
make: Circular v.strahler ← r.broscoe.sh dependency dropped.
make: Circular v.strahler ← v.strahler dependency dropped.
test -d OBJ.i686-pc-linux-gnu || mkdir -p OBJ.i686-pc-linux-gnu
gcc -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -g -O2 -I/usr/include/gdal -DPACKAGE="“grassmods”" -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -o OBJ.i686-pc-linux-gnu/forest2tree.o -c forest2tree.c
gcc -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -g -O2 -I/usr/include/gdal -DPACKAGE="“grassmods”" -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -o OBJ.i686-pc-linux-gnu/helper.o -c helper.c
gcc -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -g -O2 -I/usr/include/gdal -DPACKAGE="“grassmods”" -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -o OBJ.i686-pc-linux-gnu/main.o -c main.c
gcc -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -g -O2 -I/usr/include/gdal -DPACKAGE="“grassmods”" -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -o OBJ.i686-pc-linux-gnu/strahler.o -c strahler.c
gcc -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -g -O2 -I/usr/include/gdal -DPACKAGE="“grassmods”" -I/home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/include -o OBJ.i686-pc-linux-gnu/write.o -c write.c
if [ ! -d /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/scripts ]; then mkdir -p /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/scripts; fi
/usr/bin/install -c v.mainchannel r.strahler.sh r.broscoe.sh v.strahler /home/annalisa/grass_dev64/dist.i686-pc-linux-gnu/scripts/v.mainchannel r.strahler.sh r.broscoe.sh v.strahler
/usr/bin/install: target `v.strahler’ is not a directory
make: *** [v.strahler] Error 1

but then, if I do “make install” into the main GRASS directory, compiling gives me no errors and everything works fine… (all modules are at their place and everything works in GRASS, documentation too)…
but how can I solve this? is the form of the Makefile uncorrect?

many thanks

Annalisa

ps: I’m sorry but I’m not very expert in writing-code…