#620: Platform.make odd variables settings ---------------------------+------------------------------------------------ Reporter: frankie | Owner: grass-dev@lists.osgeo.org Type: defect | Status: new Priority: normal | Milestone: 6.4.0 Component: Installation | Version: 6.4.0 RCs Resolution: | Keywords: Platform: Unspecified | Cpu: Unspecified ---------------------------+------------------------------------------------ Comment (by mlennert):
Replying to [comment:6 neteler]: > Replying to [comment:5 mlennert]: > > what is the recommended way of compiling addons without downloading the entire source tree ? > > Won't the new g.extension script do the job? > Here are my attempts (using self-compiled 6.4svn debian package after having moved the original build tree to simulate use on a different machine): {{{ Compiling 'r.terracost'... Makefile:15: warning: overriding commands for target `/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin/r.terracost' /usr/lib/grass/include/Make/Module.make:15: warning: ignoring old commands for target `/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin/r.terracost' mkdir -p /home/mlennert/SRC/GRASS/grass64_release/bin.i486-pc-linux-gnu mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/include/grass mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/lib mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/etc mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/driver mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/driver/db mkdir -p /home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/fonts test -d OBJ.i486-pc-linux-gnu || mkdir -p OBJ.i486-pc-linux-gnu c++ -I/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/include -g -O2 -DPACKAGE=\""grassmods"\" -I/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux-gnu/include -o OBJ.i486-pc-linux-gnu/boundary.o -c boundary.cc In file included from boundary.cc:18: boundary.h:22:32: error: grass/iostream/ami.h: No such file or directory In file included from boundary.h:25, from boundary.cc:18: common.h:30:23: error: grass/gis.h: No such file or directory In file included from boundary.cc:22: pqueue.h:24:31: error: grass/iostream/mm.h: No such file or directory [...] make: *** [OBJ.i486-pc-linux-gnu/boundary.o] Error 1 ERROR: Compilation failed, sorry. Please check above error messages. }}} i.e.: it obviously cannot find the headers since it is looking for them in the original build directory. If I go into /usr/lib/grass/include/Make/Platform.make and set GRASS_HOME to /usr/lib/grass, I get: {{{ Makefile:15: warning: overriding commands for target `/usr/lib/grass/dist. i486-pc-linux-gnu/bin/r.terracost' /usr/lib/grass/include/Make/Module.make:15: warning: ignoring old commands for target `/usr/lib/grass/dist.i486-pc-linux-gnu/bin/r.terracost' mkdir -p /usr/lib/grass/bin.i486-pc-linux-gnu mkdir: cannot create directory `/usr/lib/grass/bin.i486-pc-linux-gnu': Permission denied make: *** [/usr/lib/grass/bin.i486-pc-linux-gnu] Error 1 ERROR: Compilation failed, sorry. Please check above error messages. }}} And even if I use the original grass-dev with GRASS_HOME pointing to the local build directory and keep this directory accessible, I get: {{{ Installing 'r.terracost'... Makefile:15: warning: overriding commands for target `/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin/r.terracost' /usr/lib/grass/include/Make/Module.make:15: warning: ignoring old commands for target `/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin/r.terracost' /usr/bin/install -c /home/mlennert/SRC/GRASS/grass64_release/dist.i486- pc-linux-gnu/bin/r.terracost /home/mlennert/.grass/addons/bin/ /usr/bin/install: target `/home/mlennert/.grass/addons/bin/' is not a directory: No such file or directory make: *** [install] Error 1 WARNING: Installation failed, sorry. Please check above error messages. }}} If I create the .grass/addons/bin directory by hand, I get: {{{ Installing 'r.terracost'... Makefile:15: warning: overriding commands for target `/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin/r.terracost' /usr/lib/grass/include/Make/Module.make:15: warning: ignoring old commands for target `/home/mlennert/SRC/GRASS/grass64_release/dist.i486-pc-linux- gnu/bin/r.terracost' /usr/bin/install -c /home/mlennert/SRC/GRASS/grass64_release/dist.i486- pc-linux-gnu/bin/r.terracost /home/mlennert/.grass/addons/bin/ /usr/bin/install -c -m 644 /home/mlennert/SRC/GRASS/grass64_release/dist. i486-pc-linux-gnu/docs/html/r.terracost.html /home/mlennert/.grass/addons/docs/html/ /usr/bin/install: target `/home/mlennert/.grass/addons/docs/html/' is not a directory: No such file or directory make: *** [install] Error 1 WARNING: Installation failed, sorry. Please check above error messages. }}} I'll stop here before this becomes more of a bug report on g.extension than on the current issue, but it would be nice to get to a situation where by installing the grass binaries and libs and the grass headers, it is possible to compile extensions without needing the source tree. Moritz -- Ticket URL: <https://trac.osgeo.org/grass/ticket/620#comment:11> GRASS GIS <http://grass.osgeo.org>
_______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev