[GRASS-dev] [bug #5255] (grass) Solaris 10 includes fail to copy

Glynn Clements glynn at gclements.plus.com
Fri Nov 3 18:15:05 EST 2006


Request Tracker wrote:

> this bug's URL: http://intevation.de/rt/webrt?serial_num=5255
> -------------------------------------------------------------------------
> 
> Subject: Solaris 10 includes fail to copy
> 
> Platform: Solaris2.x/Sparc
> grass obtained from: Trento Italy site
> grass binary for platform: Compiled from Sources
> GRASS Version: 6.2.0

> make[1]: Entering directory `/usr/local/src/grass-6.2.0/lib'

> /usr/local/src/grass-6.2.0/install-sh -c  -m 644 ../include/*.h /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include/grass/
> /usr/local/src/grass-6.2.0/install-sh -c  -m 644 ../include/vect/*.h /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include/grass/vect/

> make[2]: Entering directory `/usr/local/src/grass-6.2.0/lib/datetime'

> copy.c:7:28: grass/datetime.h: No such file or directory

> bash-3.00# ls -R /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/

> /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include:
> grass
> /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include/grass:
> CC.h  vect
> /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include/grass/vect: dig_defines.h

$(INSTALL) isn't guaranteed to work for multiple files. Clearly, on
this platform, it *doesn't* work for multiple files.

> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>               HACK FIX
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> 
> cp include/*.h /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include/grass
> cp include/vect/*.h /usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/include/grass/vect/

IMHO, the correct fix is:

-	$(INSTALL) -m 644 ../include/*.h $(GISBASE)/include/grass/
-	$(INSTALL) -m 644 ../include/vect/*.h $(GISBASE)/include/grass/vect/
+	for file in ../include/*.h ; do $(INSTALL) -m 644 $$file $(GISBASE)/include/grass/ ; done
+	for file in ../include/vect/*.h ; do $(INSTALL) -m 644 $$file $(GISBASE)/include/grass/vect/ ; done

"cp" preserves the file's permissions, which isn't a good idea (e.g. 
if the files were checked out with restrictive permissions, they will
be installed that way).

> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> Not sure if this is a problem but it looks odd
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> 
> make[3]: Entering directory `/usr/local/src/grass-6.2.0/db/base'
> Makefile:22: warning: overriding commands for target `/usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/bin/db.columns'
> ../../include/Make/Module.make:31: warning: ignoring old commands for target `/usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/bin/
> GISRC=/usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/demolocation/.grassrc62 GISBASE=/usr/local/src/grass-6.2.0/dist.sparc-sun-so
> rc/grass-6.2.0/dist.sparc-sun-solaris2.10/bin:$PATH LD_LIBRARY_PATH="/usr/local/src/grass-6.2.0/dist.sparc-sun-solaris2.10/lib:" LC_ALL=
> 0/dist.sparc-sun-solaris2.10/bin/db.columns --html-description | grep -v '</body>\|</html>' > db.columns.tmp.html ; true
> /bin/sh: !: not found
> /bin/sh: !: not found
> /bin/sh: !: not found

Do you get correct HTML documentation?

I interpret the above error as suggesting that the shell doesn't
support "!" as in "if ! grep ...". If you have bash installed, you
could try e.g. "make SHELL=/usr/local/bin/bash".

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list